From 1f5c18ac48447033359929b3abb3776ff7f88679 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 11 Aug 2026 07:27:01 +0000 Subject: [PATCH 1/2] ci: unblock changesets publish from npm's devEngines check `changeset publish` shells out to `npm info` to find out what is already on the registry. npm >= 11 validates the root package.json's devEngines on every command, so it errors with EBADDEVENGINES ("Invalid name \"pnpm\" does not match \"npm\"") before the release can start. Set npm_config_force on the changesets step, which downgrades that check to a warning. Publishing itself is unaffected: changesets detects the pnpm lockfile and uploads through `pnpm publish`. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01P2UZcjV4P98WFjzfRfLQvx --- .github/workflows/release.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e4c89d77..e6c75a56 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -56,3 +56,12 @@ jobs: publish: pnpm run release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # Changesets shells out to `npm info` (there is no pnpm equivalent it + # can use) to determine what is already published. npm ≥ 11 checks the + # root package.json's "devEngines" on every command and errors with + # EBADDEVENGINES because we require pnpm as the package manager, which + # fails the publish before it starts. Passing force downgrades that + # check to a warning; the actual publishing still runs through + # `pnpm publish`. Remove once changesets stops using npm for this or + # npm offers a way to skip the devEngines check. + npm_config_force: true From c0596f9d3e88f128b866ff860267f0014e3654af Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 11 Aug 2026 07:34:17 +0000 Subject: [PATCH 2/2] ci: point the devEngines workaround comment at the upstream fix Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01P2UZcjV4P98WFjzfRfLQvx --- .github/workflows/release.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e6c75a56..6774fc31 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -62,6 +62,8 @@ jobs: # EBADDEVENGINES because we require pnpm as the package manager, which # fails the publish before it starts. Passing force downgrades that # check to a warning; the actual publishing still runs through - # `pnpm publish`. Remove once changesets stops using npm for this or - # npm offers a way to skip the devEngines check. + # `pnpm publish`. Changesets v3 fixes this properly by running + # `pnpm info` when pnpm is detected, but it needs changesets/action v2 + # to go with it and both are prereleases for now — remove this once we + # upgrade to those. npm_config_force: true