Skip to content

Release through npm staged publishing; bump to 1.0.0-alpha.2 - #54

Merged
jallers merged 2 commits into
proposed_type_script_api_versionfrom
ccr-21370f44-nm031v-stage-publish
Nov 11, 2026
Merged

jallers merged 2 commits into
proposed_type_script_api_versionfrom
ccr-21370f44-nm031v-stage-publish

Conversation

@jallers

@jallers jallers commented Nov 11, 2026

Copy link
Copy Markdown
Contributor

Why

The v1.0.0-alpha.1 publish run failed with ENEEDAUTH. The npm trusted-publisher link for this repository grants only npm stage publish and npm dist-tag, which is what npm recommends, so the workflow's plain npm publish was never allowed. (The link had also expired; it has since been recreated and shows as valid.)

Changes

  • .github/workflows/publish.yml
    • Runs npm stage publish --provenance --access public --tag <dist-tag> instead of npm publish. A tagged release now sits in the registry uninstallable until a maintainer approves it with 2FA.
    • Writes the stage ID to the run's summary along with the npm stage view / approve / reject commands. If the stage ID can't be parsed from the output, the summary says to use npm stage list.
    • Installs npm ^11.15.0, the first release that has npm stage (11.14.0 doesn't).
    • The header comments describe the flow.
  • README, Releasing section: covers the approval step, the link's stage-only permission, and that an expired link has to be deleted and recreated (until then the run fails with ENEEDAUTH).
  • Version bumped to 1.0.0-alpha.2. alpha.1 was tagged but never published. Its tag points at the old workflow, so we're releasing a new version rather than moving that tag.

npm run verify passes (19 files, 131 tests). I couldn't run the stage step itself outside a tagged run. The line that extracts the stage ID matches npm's + <pkg>@<version> (staged with id <id>) output (lib/commands/publish.js in npm 12.2.2).

Releasing after merge

  1. git tag v1.0.0-alpha.2 <merge-sha> && git push origin v1.0.0-alpha.2
  2. Approve the npm environment on the Publish run.
  3. Approve the staged version with npm stage approve <stage-id> (2FA), or on the package's npmjs page.

Generated by Claude Code

publish.yml now runs `npm stage publish`, so a tagged release lands in
the registry uninstallable until a maintainer approves it with 2FA
(`npm stage approve <stage-id>` or on npmjs). The stage ID and the
approve/reject commands go to the run's summary. npm 11.15.0 is the
first release with `npm stage`.

The trusted-publisher link on npmjs grants only `npm stage publish`
(and `npm dist-tag`), as npm recommends, which is why the direct
`npm publish` of v1.0.0-alpha.1 failed with ENEEDAUTH. The README's
Releasing section describes the approval step and the expiring link.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016NSWj8mSZ8LrMj16R2cozL
1.0.0-alpha.1 was tagged but never published: its workflow ran a plain
npm publish, which the trusted-publisher link does not allow. The next
release goes out through npm stage publish as 1.0.0-alpha.2.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016NSWj8mSZ8LrMj16R2cozL
@jallers
jallers merged commit 2841655 into proposed_type_script_api_version Nov 11, 2026
4 checks passed
@jallers
jallers deleted the ccr-21370f44-nm031v-stage-publish branch November 11, 2026 17:00
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.

2 participants