BUNYIP-59: immutable release tags, Cargo.lock sync, tag-collision guard #79
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/bunyip-59-release-hygiene"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes BUNYIP-59. Three release-process defects surfaced shipping the BUNYIP-58 fix.
Changes
bunyip-api/oci-build/get-tags.nu,bunyip-web/oci-build/get-tags.nu): avX.Y.Zimage tag is emitted only on a CI tag event (GITHUB_REF=refs/tags/vX.Y.Z), or for local runs with no CI ref when HEAD is exactly on av*tag. CI branch builds (main,feature-*) publish onlylatest. A routine push to main can no longer re-push and silently overwrite an already-released version tag, which is how the stubv0.2.0lingered. Verified all three paths: tag event ->vX.Y.Z,latest; main branch ->latest; local-on-tag ->vX.Y.Z,latest.create-release(justfile): after the version bump, runcargo update --workspaceandgit add Cargo.lockin the same release commit. The workspace crates inheritversion.workspace, so the bump changes their lock entries; v0.2.1 had to be hand-edited.justfile): abort if the computed tag already exists, so a stale manifest version can never target a published release (this is what produced the erroneous v0.1.2 attempt)..forgejo/workflows/check.yml): build with--lockedso a forgotten lock sync failscheckinstead of the release build.Not included
Deleting the off-history
v0.2.0git tag is destructive (published tag) and left to an operator. After this merges,git push origin :refs/tags/v0.2.0(and optionally prune the stalev0.2.0images) reconciles the tag state; the working release isv0.2.1, cut correctly from main.#BUNYIP-59