From 64a2e93ca6095fc87cf321796cee2899eb2a9eb2 Mon Sep 17 00:00:00 2001 From: Jeremi Joslin Date: Fri, 14 Aug 2026 03:58:22 +0700 Subject: [PATCH 1/2] fix(release): pack platform clients by relative path Signed-off-by: Jeremi Joslin --- .github/workflows/release-candidate.yml | 2 +- release/scripts/test_release_workflow_structure.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release-candidate.yml b/.github/workflows/release-candidate.yml index 4ff9c4328..c37e72434 100644 --- a/.github/workflows/release-candidate.yml +++ b/.github/workflows/release-candidate.yml @@ -610,7 +610,7 @@ jobs: cp "${client_dir}/${client}-client.${{ matrix.napi_platform }}.node" \ "${platform_dir}/" (cd "${client_dir}" && npm pack \ - "npm/${{ matrix.napi_platform }}" \ + "./npm/${{ matrix.napi_platform }}" \ --ignore-scripts --pack-destination "${RUNNER_TEMP}") platform_package="registrystack-${client}-client-${{ matrix.napi_platform }}-${CLIENT_VERSION}.tgz" test -f "${RUNNER_TEMP}/${platform_package}" diff --git a/release/scripts/test_release_workflow_structure.py b/release/scripts/test_release_workflow_structure.py index 49fa1afc8..fbb79ca7d 100644 --- a/release/scripts/test_release_workflow_structure.py +++ b/release/scripts/test_release_workflow_structure.py @@ -569,6 +569,7 @@ def test_builds_and_smokes_stable_native_client_packages(self) -> None: "package/${client}-client.${{ matrix.napi_platform }}.node", node, ) + self.assertIn('"./npm/${{ matrix.napi_platform }}"', node) self.assertIn("registry-${client}-client-node", node) for name in ("Smoke Python client wheels", "Smoke Node client packages"): smoke = step_run(document, "clients", name) From 3bf7cd1b18cda75799cbb153aa45a41b5f4bd4a1 Mon Sep 17 00:00:00 2001 From: Jeremi Joslin Date: Fri, 14 Aug 2026 04:02:35 +0700 Subject: [PATCH 2/2] fix(release): publish npm tarballs by relative path Signed-off-by: Jeremi Joslin --- .github/workflows/release.yml | 2 +- release/scripts/test_release_workflow_structure.py | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 99b5ca03b..fe10e9a30 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1263,7 +1263,7 @@ jobs: --tarball "${tarball}")" if [[ "${state}" == absent ]]; then require_unexpired_candidate - npm publish "${tarball}" --access public --provenance + npm publish "./${tarball}" --access public --provenance else test "${state}" = present fi diff --git a/release/scripts/test_release_workflow_structure.py b/release/scripts/test_release_workflow_structure.py index fbb79ca7d..1e910c1a4 100644 --- a/release/scripts/test_release_workflow_structure.py +++ b/release/scripts/test_release_workflow_structure.py @@ -1017,7 +1017,8 @@ def test_promotes_exact_client_packages_with_oidc_and_retry_safety(self) -> None "Reconcile platform packages, then publish the root package", ) self.assertIn("client_registry.py npm-state", npm_publish) - self.assertIn("npm publish", npm_publish) + self.assertIn('npm publish "./${tarball}"', npm_publish) + self.assertNotIn('npm publish "${tarball}"', npm_publish) self.assertIn("require_unexpired_candidate", npm_publish) self.assertLess( npm_publish.rindex("require_unexpired_candidate"),