Skip to content

fix(adapter-evm): skip release-trap changeset guard when changeset is consumed#57

Merged
pasevin merged 1 commit into
mainfrom
fix/sf5-release-changeset-guard
Jul 17, 2026
Merged

fix(adapter-evm): skip release-trap changeset guard when changeset is consumed#57
pasevin merged 1 commit into
mainfrom
fix/sf5-release-changeset-guard

Conversation

@pasevin

@pasevin pasevin commented Jul 17, 2026

Copy link
Copy Markdown
Collaborator

Problem

The changeset-release/main release PR (#56) CI failed on Test — 3 failures in packages/adapter-evm/test/sf-5-published-release.test.ts (INV-R1 RELEASE-TRAP GUARD):

Error: ENOENT: no such file or directory, open '.changeset/ens-mainnet-l1-opt-in-fallback.md'

The guard reads the pending changeset by a fixed path. changeset version consumes (deletes) that changeset on the release branch, so the assertions blow up even though the release is correct. Feature PR #55 passed because the changeset is still present there.

Fix

Gate the INV-R1 guard block with describe.skipIf(!existsSync(CHANGESET_PATH)):

  • Feature branches (changeset present): guard runs and enforces the dual-package bump (adapter-evm + adapter-evm-core) — the 002 release-trap protection is intact.
  • Release branch (changeset consumed): guard skips — the applied version bumps are the proof.

The ui-types ^3.3.0 floor probe and the bundled-tarball V-1..V-7 marker probes still run on both branches, so the shipped delta remains verified end-to-end.

Test plan

  • pnpm --filter @openzeppelin/adapter-evm run typecheck — green
  • pnpm --filter @openzeppelin/adapter-evm run lint + prettier — green
  • SF-5 release test on this branch (changeset present) — 9 passed, guard runs
  • On the release branch (changeset absent) the guard skips → unblocks chore(release): version packages #56

Made with Cursor

… consumed

The SF-5 INV-R1 guard read the pending changeset by a fixed path, which
`changeset version` deletes on the changeset-release branch — making the
release PR CI fail with ENOENT even though the release is correct.

Gate the guard on the changeset file's presence: it runs (and enforces the
dual-package bump) on feature branches, and skips on the release branch
where the changeset has already been consumed. The ui-types floor and
bundled-tarball (V-1..V-7) probes still validate the shipped delta on both.

Co-authored-by: Cursor <[email protected]>
@pasevin
pasevin merged commit a7fce78 into main Jul 17, 2026
9 checks passed
@pasevin
pasevin deleted the fix/sf5-release-changeset-guard branch July 17, 2026 17:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant