chore(release): 1.10.0 - #341
Merged
Merged
Conversation
Attaches a signed attestation linking each published tarball to the exact commit and workflow run that built it, which npm surfaces as a Provenance badge on the package page. The value is not that it prevents a bad publish. It is that it makes one visible: a version pushed from a stolen NPM_TOKEN on someone's laptop carries no attestation, and the gap is public. Needs id-token: write, since the attestation is signed with a GitHub OIDC token. Without that permission the publish fails outright rather than quietly shipping unsigned, which is the behaviour we want.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two commits: the version bump, and the npm provenance change you asked about.
Release: 1.10.0
Per the process in
CLAUDE.md:package.jsonto1.10.0src/constants/version.tsandsrc/constants/version_cli.jsto1.10.0. These drive the service worker handshake, so a mismatch breaks request mocking rather than just showing a wrong number.src/tests/version.spec.tsasserts they equalpackage.jsonpackage-lock.jsonrefreshed bynpm installCHANGELOG.mdentryVerified in the built output: the version reaches
dist/mock-sw.js,dist/bundled.es.jsand the chunk carryingmockBridge, and no stale1.9.0is left anywhere indist/.Why this is not a major, even with a removal
twd.viewport()andtwd.resetViewport()are gone. That is a public API removal, and normally it would be a major.It is not one here because usage of that command is effectively nil, and it shipped in 1.6.0 as a beta that did not survive contact with real users. The CHANGELOG says all of that plainly, including that anyone calling those methods has to drop the calls, so the warning lands even though the version number does not carry it.
What is in the release
twd.matchLayout, layout snapshots in the browser with no SaaS account and no containers. Ships as a beta feature: strictly additive, skipped in the sidebar unless you opt in, and it needstwd-cli1.6.0 or newer to actually decide a snapshot.twdSnapshotVite plugin, plus the fix from fix(matchLayout): load the snapshot plugin, and say where the layout moved #339 without which it died on startup.twd.viewport()removal.npm provenance
You asked whether to add
--provenance, and pointed atci.yml. It belongs inpublish.ymlinstead, since that is the workflow that runsnpm publish;ci.ymlonly runs tests.Worth doing, yes. It attaches a signed attestation linking each published tarball to the exact commit and workflow run that built it, which npm shows as a Provenance badge on the package page.
The value is not that it prevents a bad publish. It is that it makes one visible: a version pushed from a stolen
NPM_TOKENon someone's laptop carries no attestation, and that gap is public and checkable by anyone.Requirements, all already true here except the last:
--access publicis already passedrelease: publishedid-token: writeon the job: added in this PR, since the attestation is signed with a GitHub OIDC tokenThe one thing to know before merging: once this is on, publishing by hand from a laptop produces a version with no provenance, which looks worse than never having had it. Since publishing here is driven entirely by GitHub Releases, that should not come up. It also means a publish will now fail outright if the OIDC permission is ever removed, rather than silently shipping unsigned. That is the behaviour you want.
Verification
npm run buildandnpm run docs:buildall clean