Repository navigation
Release prep: publish nodeup-npm to npm registry on v1.0.0 cut #35
Description
Tracks the manual npm-publish step for the v1.0.0 cut. The wrapper
itself shipped in #34 (nodeup-npm/ in repo, scripts/check.js +
scripts/install.js, pinned-version design). The npm package name
is nodeupx (not nodeup); see #37.
Pre-publish checklist
-
npmjs.comaccount exists with publish rights on the
nodeupxpackage name. The barenodeupname is owned
by an unrelated dormant 2015 package (romanmt/nodeup,
"a simple cluster implementation for node"), so we cannot
claim it —npm publishfails with
You do not have permission to publish "nodeup"if you
try the wrong name. - 2FA enabled on the npm account, authenticator-app mode (SMS
and email-only modes are not accepted for publish). Configure
at https://www.npmjs.com/settings//security. - v1.0.0 GitHub release exists with all 5 binaries uploaded by
GoReleaser (linux/darwin/windows × amd64/arm64, minus
windows/arm64 which is intentionally excluded). The wrapper's
install.jsdownloads from
https://github.com/dipto0321/nodeup/releases/download/v1.0.0/...,
so this has to land first. -
nodeup-npm/package.json'sbinaryVersionfield is set to
1.0.0(already true onmainas of chore(release): ship npm wrapper and install-method guidance #34).
Publish flow
cd nodeup-npm
npm pack --dry-run # expect 5 files: LICENSE, README.md, package.json, scripts/{check,install}.js
npm login # prompts for username + password + email; then for OTP from your authenticator app
npm publish # prompts for another OTP from your authenticatorFull details are in docs/release-checklist.md under "Publishing
nodeup-npm to the npm registry".
After the first publish
-
Confirm
npm view nodeupxshows version1.0.0on the
registry. -
Smoke test:
npm install -g nodeupxin a fresh shell,
thennodeup version. Should print the v1.0.0 build info
and download a ~6 MB static binary. -
Consider automating future publishes. npmjs.com permanently
revoked classic tokens on December 9, 2025; there's no
"Automation" token type anymore. The right options are:
1. OIDC Trusted Publishing (recommended) — the
publish-npmjob in.github/workflows/release.yml
already exchanges GitHub's OIDC token for a one-hour
publish token scoped tonodeupx. The trust entry
on the npmjs.com side must point at
release.ymlindipto0321/nodeup. NoNPM_TOKEN
secret, no rotation, no leak surface.
2. Granular access token — created at
<https://www.npmjs.com/settings//tokens>, 90-day
max expiry, package-scoped tonodeupx, optional
bypass_2fafor unattended CI. Stored as
gh secret set NPM_TOKENand consumed in release.yml.Don't automate the *first* publish; the manual `npm publish` establishes the package on npmjs.com and the OIDC trust entry can be registered on the package page right after.
Linked
- Closes the "publish npm wrapper" arm of chore(release): finalize GoReleaser config and npm wrapper #17 (the wrapper code
itself shipped in chore(release): ship npm wrapper and install-method guidance #34). - npm package name change
nodeup→nodeupxdocumented in
chore(release): rename npm wrapper to nodeup-cli #37 (the wrapper still installs the binary asnodeupon
$PATH). - Blocked on the v1.0.0 GitHub release tag + GoReleaser run.
Note
2026-07-04 updates:
- Package renamed
nodeup-cli→nodeupx(PR chore(release): rename npm package from nodeup-cli to nodeupx #108).nodeup-cli@1.0.0was unpublished and the name sat in the 24h unpublish hold, so the wrapper moved tonodeupx(verified unclaimed on the registry). Version/binaryVersionare at1.0.1per chore(release): bump nodeup-cli to 1.0.1 with binaryVersion sync and repo URL fix #107. - Automation decision made: OIDC Trusted Publishing (option 1 above) for every publish after the first.
release.yml'spublish-npmjob is already wired (PR ci(release): add --provenance to npm publish; pin actions to commit SHAs #100); the only remaining registry-side step is registering the trust entry (GitHub Actions /dipto0321/nodeup/release.yml) on https://www.npmjs.com/package/nodeupx/access right after the first manual publish. Flow documented indocs/release-checklist.md(PR docs(release): make OIDC trusted publishing the documented npm flow #109).
Activity
docs(release): document the npm wrapper publish step in the v1.0.0 ch…
dipto0321 commentedon Jul 1, 2026
Heads-up: the npm package name shipped in #37 is
nodeup-cli, notnodeup. The barenodeupname on npmjs.com is owned by an unrelated dormant 2015 package (romanmt/nodeup— "a simple cluster implementation for node"), so we can't claim it. The downloaded binary still installs as thenodeupCLI on$PATH; only the npm package name changed.Updates the pre-publish checklist in this issue:
nodeup-clion npmjs.com (notnodeup)npm pack --dry-runfromnodeup-npm/producesnodeup-cli-1.0.0.tgznpm install -g nodeup-cliis the user-facing install commanddocs(release): update npm publish flow for the post-Dec-2025 token mo…
dipto0321 commentedon Jul 1, 2026
Documentation correction: the npm token model I described when I
first opened this issue is stale. npmjs.com permanently revoked
classic tokens on December 9, 2025, and there's no "Automation"
token type anymore. The right options now are:
release.ymlexchanges GitHub's OIDC token for a one-hourpublish token scoped to
nodeup-cli. Per-package config innpm's "Trusted Publisher" UI. No
NPM_TOKENsecret, no rotation.NPM_TOKEN— browser-onlycreation at <https://www.npmjs.com/settings//tokens>,
90-day max expiry, package-scoped, optional
bypass_2faforunattended CI. Stored via
gh secret set NPM_TOKEN.The post-tag section of
docs/release-checklist.mdnow reflectsboth options (PR #38, just merged). If you're publishing
manually for v1.0.0, you don't need either —
npm login(now ashort-lived session token) +
npm publish+ the OTP from yourauthenticator app is enough for the first publish.
Still recommended order for the v1.0.0 cut:
v1.0.0→ GoReleaser uploads binariesdipto0321/homebrew-tapanddipto0321/scoop-bucketto publicnpm publishfromnodeup-npm/(this issue)release.ymlso futurepublishes happen automatically on tag push
chore(ci): publish nodeup-cli to npm via OIDC Trusted Publishing (#39)
chore(release): rename npm package from nodeup-cli to nodeupx (#108)
docs(release): make OIDC trusted publishing the documented npm flow (#…
dipto0321 commentedon Jul 3, 2026
Verified post-close:
npm view nodeupx→ version 1.0.1, dist-tags latest=1.0.1, published 2026-07-03T18:28Z. Trusted Publisher registered on npmjs.com per maintainer. Nextv*.*.*tag publishes automatically via the OIDCpublish-npmjob.