diff --git a/CHANGELOG.md b/CHANGELOG.md index 4149fac..8e663c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.2.4] - 2026-11-02 + ### Fixed - The "Detected an interrupted upgrade" warning could fire forever, pointing at a file that no longer existed. The upgrade *marker* @@ -1109,7 +1111,8 @@ without weakening the body-length guard for hand-authored commits. ### Added - Project blueprint — internal design doc covering language choice, scope, detection engine, version resolution, package migration, architecture, CLI design, edge cases, git workflow, conventional commits, versioning, CI/CD, and distribution. (Superseded by `README.md`; the standalone doc was removed in the Unreleased section.) -[Unreleased]: https://github.com/dipto0321/nodeup/compare/v1.2.3...HEAD +[Unreleased]: https://github.com/dipto0321/nodeup/compare/v1.2.4...HEAD +[1.2.4]: https://github.com/dipto0321/nodeup/compare/v1.2.3...v1.2.4 [1.2.3]: https://github.com/dipto0321/nodeup/compare/v1.2.2...v1.2.3 [1.2.2]: https://github.com/dipto0321/nodeup/compare/v1.2.1...v1.2.2 [1.2.1]: https://github.com/dipto0321/nodeup/compare/v1.2.0...v1.2.1 diff --git a/CLAUDE.md b/CLAUDE.md index 298f873..d54b37b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -136,7 +136,7 @@ orchestrator. | 5 — Config subsystem | Done | merged | | 6 — Cross-platform polish | Done | merged (interrupted-upgrade sentinel, `QuotePath`, system-node classifier) | | 7 — Distribution packaging | Done | GoReleaser, brew/scoop/npm wrappers all shipped (#17, #18); manual v1.0.0 npm publish (#35) bootstrapped the OIDC trust | -| 8 — v1.0.0 → v1.2.3 releases | Done | `nodeupx@1.2.3` live on npm (matching the Go binary); trusted-publisher OIDC flow active for every tag (`#109`) | +| 8 — v1.0.0 → v1.2.4 releases | Done | `nodeupx@1.2.4` live on npm (matching the Go binary); trusted-publisher OIDC flow active for every tag (`#109`) | ## On-disk data layout diff --git a/README.md b/README.md index 7dfc4db..89674e9 100644 --- a/README.md +++ b/README.md @@ -305,9 +305,9 @@ See [`docs/configuration.md`](./docs/configuration.md) for the full schema. ## Project status -Current release: **v1.2.3** (`nodeupx@1.2.3` on npm — the wrapper +Current release: **v1.2.4** (`nodeupx@1.2.4` on npm — the wrapper publishes automatically alongside the tag). See `CHANGELOG.md` for the -v1.1.0 → v1.2.3 history. +v1.1.0 → v1.2.4 history. | Phase | Status | What shipped | |---|---|---| @@ -318,7 +318,7 @@ v1.1.0 → v1.2.3 history. | 5 — Config subsystem | ✅ | YAML config at `~/.nodeup/config.yaml` + `config {show,get,set,init}` + env vars | | 6 — Cross-platform polish | ✅ | `QuotePath`, interrupted-upgrade replay, system-node classifier, lock file | | 7 — Distribution packaging | ✅ | GoReleaser + brew tap + Scoop bucket + npm wrapper (`nodeupx` via OIDC Trusted Publishing) | -| 8 — Tagged releases | ✅ | `v1.0.0` shipped (PR #35); `v1.1.0` shipped with the `internal/ui` rollout (`#117`/`#118`/`#119`); `v1.2.0` adds Vite+ support (`#124`); `v1.2.1` repairs the npm install path (`#126`); `v1.2.2` stops the snapshot leak (`#130`); `v1.2.3` fixes the wrapper's `tar` advisory (`#136`) | +| 8 — Tagged releases | ✅ | `v1.0.0` shipped (PR #35); `v1.1.0` shipped with the `internal/ui` rollout (`#117`/`#118`/`#119`); `v1.2.0` adds Vite+ support (`#124`); `v1.2.1` repairs the npm install path (`#126`); `v1.2.2` stops the snapshot leak (`#130`); `v1.2.3` fixes the wrapper's `tar` advisory (`#136`); `v1.2.4` stops the stale upgrade marker from warning forever (`#141`) | **Release train:** every `v*.*.*` tag triggers GoReleaser → brew cask push → Scoop manifest push → `nodeupx` publish via OIDC. To ship a diff --git a/SPEC.md b/SPEC.md index b12c9da..36beda4 100644 --- a/SPEC.md +++ b/SPEC.md @@ -1,10 +1,11 @@ # SPEC — nodeup Distilled from code (README, CLAUDE.md, CONTRIBUTING.md, docs/*, and -`internal/*` source). Last refresh: 2026-11-02 (post v1.2.3 release; +`internal/*` source). Last refresh: 2026-11-02 (post v1.2.4 release; §C/§I/§V/§T updated to match current state — snapshot cleanup complete via #130, Vite+ support complete via #124, `internal/ui` rollout complete via #117/#118/#119, wrapper `tar` advisory fix via #136, +stale upgrade-marker fix via #141, #120/#121 are commitlint relaxations). Caveman encoding per FORMAT.md convention (not present at repo root — using shapes from the caveman skill). diff --git a/docs/managers.md b/docs/managers.md index 7b8df41..52dfd37 100644 --- a/docs/managers.md +++ b/docs/managers.md @@ -1,6 +1,6 @@ # Supported Version Managers -All 9 managers listed below are fully detected by `nodeup` as of v1.2.3 +All 9 managers listed below are fully detected by `nodeup` as of v1.2.4 (macOS, Linux, and Windows where applicable). The matrix is the source of truth — keep it in sync with `internal/detector/registry_*.go` and the per-manager files (`fnm.go`, `nvm.go`, `volta.go`, `asdf.go`, `mise.go`, @@ -78,7 +78,7 @@ bin dir (e.g., `fnm env --use-on-cd | source`, or add points at a binary inside the manager's data dir, nodeup's next run will classify it as `manager` and proceed without warning. -> _Status: Phase 7 complete. Post-upgrade cleanup prompt, per-manager native mutation commands, and full distribution packaging (GoReleaser, brew/scoop taps, npm wrapper at `nodeupx@1.2.3` via OIDC Trusted Publishing) have all shipped — see `CHANGELOG.md` for the v1.1.0 → v1.2.3 history._ +> _Status: Phase 7 complete. Post-upgrade cleanup prompt, per-manager native mutation commands, and full distribution packaging (GoReleaser, brew/scoop taps, npm wrapper at `nodeupx@1.2.4` via OIDC Trusted Publishing) have all shipped — see `CHANGELOG.md` for the v1.1.0 → v1.2.4 history._ ## Post-upgrade cleanup diff --git a/docs/release-checklist.md b/docs/release-checklist.md index b4ec6f2..949dc6b 100644 --- a/docs/release-checklist.md +++ b/docs/release-checklist.md @@ -54,14 +54,18 @@ git push origin vX.Y.Z The `postinstall` script is the part that actually breaks for users, so verify it against the **published** package, not the local checkout. +Set `VERSION` to the tag you're shipping (without the `v`): + ```bash +VERSION=1.2.4 + # 1. Confirm the published metadata. npm view nodeupx version dependencies engines -# → version 1.2.3, dependencies { tar: '7.5.22' }, engines { node: '>=18' } +# → version $VERSION, dependencies { tar: '7.5.22' }, engines { node: '>=18' } # 2. Install into a scratch dir and audit. mkdir -p /tmp/nodeupx-check && cd /tmp/nodeupx-check && npm init -y -npm install nodeupx@1.2.3 +npm install nodeupx@$VERSION npm audit # → "found 0 vulnerabilities" ``` @@ -71,14 +75,14 @@ unless the package is approved: ``` npm warn install-scripts 1 package had install scripts blocked because they are not covered by allowScripts: -npm warn install-scripts nodeupx@1.2.3 (preinstall: node scripts/check.js; postinstall: node scripts/install.js) +npm warn install-scripts nodeupx@1.2.4 (preinstall: node scripts/check.js; postinstall: node scripts/install.js) ``` Approve it and re-install, then confirm the binary landed and runs: ```bash npm install-scripts approve nodeupx -npm install nodeupx@1.2.3 +npm install nodeupx@$VERSION ls -l node_modules/nodeupx/bin/nodeup xattr -p com.apple.quarantine node_modules/nodeupx/bin/nodeup # → no such xattr node_modules/nodeupx/bin/nodeup version diff --git a/nodeup-npm/README.md b/nodeup-npm/README.md index a1db853..73bfa06 100644 --- a/nodeup-npm/README.md +++ b/nodeup-npm/README.md @@ -38,7 +38,7 @@ on your `$PATH`, and the install log says: ``` npm warn install-scripts 1 package had install scripts blocked because they are not covered by allowScripts: -npm warn install-scripts nodeupx@1.2.3 (preinstall: node scripts/check.js; postinstall: node scripts/install.js) +npm warn install-scripts nodeupx@1.2.4 (preinstall: node scripts/check.js; postinstall: node scripts/install.js) ``` Approve the script and re-run the install: diff --git a/nodeup-npm/package.json b/nodeup-npm/package.json index 6314037..3925683 100644 --- a/nodeup-npm/package.json +++ b/nodeup-npm/package.json @@ -1,6 +1,6 @@ { "name": "nodeupx", - "version": "1.2.3", + "version": "1.2.4", "description": "Automated Node.js version upgrade + global package migration CLI. Static Go binary wrapped for npm distribution.", "license": "MIT", "author": "Dipto Karmakar ", @@ -42,5 +42,5 @@ "README.md", "LICENSE" ], - "binaryVersion": "1.2.3" + "binaryVersion": "1.2.4" }