ReviewOS

also looking at this

craft-native/craft

fix: validate native SDK release prerequisites before tagging

#364
Merged chris wants to merge codex/native-sdk-release-preflight into main
7 files +153 -15
docs/RELEASING.mdmodified+18-1
Changes to docs/RELEASING.md
@@ -11,7 +11,9 @@ They also read addressed native state from the main, child, and adopted windows.
1111Each installed-app smoke also checks creator teardown and adoption of a
1212surviving, unparented grandchild. The PKG case explicitly destroys the retained
1313macOS creator after close; DEB and MSI close already releases it.
14The release hook generates the next changelog section before that commit,
14The release command registers the workspace and Zig release manifests with
15Bumpx so their versions update and roll back together. The release hook
16generates the next changelog section before that commit,
1517deduplicates repeated issue references, and links the previous and new tags.
1618Do not run the hook again after it has written the section.
1719
@@ -61,3 +63,18 @@ registry publication can still fail after the native archives become public, so
6163the final workflow status remains the release signal. If a post-release registry
6264publication fails, the GitHub release still contains the full verified archive
6365set; inspect and rerun the failed job rather than republishing the draft.
66
67## Release prerequisites and failed tags
68
69Install the locked release tools with `bun install --frozen-lockfile` first.
70Preflight now checks the Bumpx and Logsmith CLIs, a clean `main`, and the current
71`origin/main` before changing versions. Use a separate release clone if `main`
72is in use by another worktree. Required release commands fail before committing,
73tagging or pushing; Bumpx restores the version files when they fail.
74
75Retain a tag that failed publication. Choose a new unused version with
76`bun run release:version <version>` and set `CRAFT_CHANGELOG_FROM` to the last
77successfully published tag. The standard version and patch commands run the
78same manifest synchronization, changelog generator and publication gates.
79Confirm the final Releaser result and actual registry artifacts before apps
80adopt the new version.