fix(release): restore the version bump inside just ship Phase 2#391
Merged
Conversation
R5 removed the Phase-2 version-increment step but left the rest of the ship machinery (commit -> open release/vX.Y.Z PR with auto-merge) intact -- so just ship/ship-fresh now fails at git-commit with "nothing to commit" (no version change to commit). This restores the bump in the place it always lived, instead of the parallel release-pr/just-go flow I wrongly added. - version.rs: bump_workspace_version(level) shells out to cargo set-version (handles workspace inheritance + internal dep reqs + lockfile) -- no re-implementation of the ~1430 LOC R5 deleted. - ship.rs Phase 2: bump (patch) runs AFTER Phase 1 validation passes, gated by the existing resumable version_incremented flag so a mid-ship re-run never double-bumps. Also reset a COMPLETED workflow state on (non-fresh) load so a second just ship starts a fresh release cycle instead of resuming a terminal state (which would skip validation AND the bump). - git_ops.rs: release-PR body now points at just release-tag (auto-tag- release.yml was deleted in R5). - just/build.just: drop the redundant release-pr recipe (ship does the bump+PR); keep release-tag as the post-merge tag->binaries step. Flow: just ship -> validate -> bump -> commit -> auto-merging release PR; after merge, just release-tag -> release.yml builds the binaries. Default bump is patch (the Ship command takes no level arg). uffs-ci-pipeline: clippy clean, 7 tests pass. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The resumable ship state skipped a validation step on any re-run where it was already marked complete — even if you edited code between runs (a passed step stays "completed"). This adds input-fingerprint invalidation so the resume speedup is kept ONLY for a byte-identical tree. - WorkflowState gains validated_fingerprint (serde-default, back-compatible): the working-tree fingerprint Phase 1 last validated. - working_tree_fingerprint() = DefaultHasher over HEAD + `git diff HEAD` (deterministic fixed-key SipHash). A new commit or any tracked-file edit changes it; a brand-new untracked file is the one gap, caught by PR CI. - run_enhanced_phase1: if the fingerprint changed since last validation, invalidate 03-format-code / 04-coverage-tests / 05-parallel-validation / 06-format-check so they re-run on the new code; store the post-fmt fingerprint after Phase 1 passes. An unchanged tree (e.g. resuming after a Phase-2 push failure) still skips them — a format error does NOT re-trigger cargo clean. ship-fresh (--fresh) resets validated_fingerprint to empty → always re-validates; ship honors the fingerprint and skips only when truly unchanged. Determinism test added. uffs-ci-pipeline: clippy clean, 8 tests pass. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Restore the version bump inside
just shipPhase 2Bug: R5 deleted the Phase-2 version-increment step but left the rest of the ship machinery intact (commit → open
release/vX.Y.ZPR with auto-merge). With no version change to commit,just ship/ship-freshfails atgit-commitwith "nothing to commit, working tree clean."Fix — put the bump back where it always lived (not the parallel
release-pr/just goflow I wrongly added first):version.rs—bump_workspace_version(level)shells out tocargo set-version(handles workspace inheritance + internal dep requirements + lockfile). No re-implementation of the ~1430 LOC R5 deleted.ship.rsPhase 2 — the bump (default patch) runs after Phase 1 validation passes, so code is verified clean before the version moves. Gated by the existing resumableversion_incrementedflag (no double-bump on a mid-ship re-run). Also resets a Completed workflow state on non-fresh load, so a secondjust shipstarts a fresh release cycle instead of resuming a terminal state (which would skip validation and the bump).git_ops.rs— the release-PR body now points atjust release-tag(the deletedauto-tag-release.ymlreference was stale).just/build.just— drop the redundantrelease-prrecipe; keeprelease-tag(post-merge tag → binaries).The flow
uffs-ci-pipeline: clippy clean, 7 tests pass.🤖 Generated with Claude Code