Skip to content

chore(release): v1.2.4 — the stale upgrade marker no longer warns forever - #144

Merged
dipto0321 merged 1 commit into
mainfrom
chore/release/v1.2.4
Nov 2, 2026
Merged

dipto0321 merged 1 commit into
mainfrom
chore/release/v1.2.4

Conversation

@dipto0321

@dipto0321 dipto0321 commented Nov 2, 2026 •

Copy link
Copy Markdown
Owner

Summary

Cuts the v1.2.4 patch release, carrying the stale upgrade-marker fix merged in #142.

  • The npm wrapper's version and binaryVersion both move to 1.2.4. binaryVersion is the tag the postinstall script downloads from, so it must match the release tag exactly — a mismatch would 404 every install.
  • The CHANGELOG's [Unreleased] section becomes [1.2.4], with the compare links updated.
  • Version references refreshed in README.md, CLAUDE.md, docs/managers.md, and SPEC.md.
  • docs/release-checklist.md's wrapper-verification steps now take the version as a shell variable, so the next release doesn't need to edit them.

What ships in this release

The user-facing fix from #142:

  • The "Detected an interrupted upgrade" warning now validates its own advice. If the snapshot it points at is still on disk, it's a genuine interrupted upgrade and the warning plus resume hint are unchanged (the bug(packages): restore aborts on first failed install; migration report never written #46 contract). If the snapshot is gone, the marker is stale — nodeup says so and clears it instead of printing a hint that cannot work.
  • Clearing is race-safe: the marker is claimed with an atomic rename before it's inspected, so a concurrent nodeup upgrade that arms a fresh marker can't have it deleted out from under it.
  • nodeup packages cleanup --stale-sentinel clears a stale marker on demand, and refuses to clear one whose snapshot still exists.

Test plan

  • make ci green locally (0 lint issues; all packages pass under -race)
  • go build ./..., go vet ./..., gofmt -l . clean
  • Verified against the reported state: a stale marker is cleared with an explanatory message, a live marker keeps its warning and its resume hint
  • GitHub Release carries 5 binaries + checksums.txt
  • Homebrew cask at 1.2.4 with sha256s matching the release's checksums.txt
  • Scoop manifest at 1.2.4 with the matching Windows hash
  • npm view nodeupx version → 1.2.4, and a real npm install nodeupx@1.2.4 yields an unquarantined binary that runs
  • Direct-binary download: sha256 matches checksums.txt, no quarantine, runs
  • The installed v1.2.4 binary clears a stale marker and keeps a live one

Closes #141

🤖 Generated with puku-cli

Cuts the v1.2.4 patch release carrying the stale upgrade-marker fix
(#141, merged in #142).

The npm wrapper's `binaryVersion` moves in lockstep with the package
version: it is the tag the postinstall script downloads from, so a
mismatch would 404 every install.

The CHANGELOG's [Unreleased] section becomes [1.2.4]; the release
checklist's wrapper-verification steps now take the version as a
variable so they don't need editing for every release.

Refs #141
@cocogitto-bot

cocogitto-bot Bot commented Nov 2, 2026

Copy link
Copy Markdown

✔️ c0a3171 - Conventional commits check succeeded.

@dipto0321
dipto0321 merged commit 7ee5ce9 into main Nov 2, 2026
11 checks passed
@dipto0321
dipto0321 deleted the chore/release/v1.2.4 branch November 2, 2026 08:29
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.

fix(packages): the interrupted-upgrade sentinel outlives its snapshot and warns forever about a dead file

1 participant