Write down how a release is cut, and what keeps going wrong - #149
Merged
Merged
Conversation
2.0.0 took three tag cycles and two re-signed tags. The runbook that eventually worked existed nowhere in the repo, so docs/releasing.md now carries it: the sequence, and the three failures that came from the same cause. That cause is worth stating plainly, because it will recur: -Prelease runs only at tag time, so it drifts, and so does everything that only runs inside it. The secrets had never been created because no tag had run since #103 added the workflow. Javadoc had dangling {@link}s for the whole #82 epic because javadoc runs nowhere else. And a re-run cannot fix a workflow bug, because Actions executes the workflow as it exists at the tagged commit - which is the fact that turns a workflow mistake into a re-signed tag. Most of it is not jmsfx-specific, and is written so hallux can follow it. The README needed three corrections, all of them claims that outlived their condition - the same shape as the two exclusions this release found: - "JMSFX is not yet published to Maven Central, so build it from source" is now false, and it was the line a reader would hit first. Replaced with a Using it section carrying the coordinates, the one-library-only constraint, and how to depend on the test jar when writing an extension. - "rasterises to PNG", twice, when #32 and #37 removed rasterisation entirely - contradicted by a line seventy lines below it saying so. - jmsfx-battleorder described as "documentation only ... not yet in the reactor", when it is generated, in the reactor, and published. Co-Authored-By: Claude Opus 5 <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.
The retro's written output. Part of #144, and the companion to #148.
docs/releasing.md2.0.0 took three tag cycles and two re-signed tags, and the runbook that eventually worked existed nowhere in the repo. This carries the sequence and, more usefully, the failures.
One cause explains three of the four:
-Preleaseruns only at tag time, so it drifts, and so does everything that only runs inside it.gpg: no default secret key{@link}s to a renamed method-PreleaseAnd the fact that turned a workflow mistake into a re-signed tag: a re-run executes the workflow as it exists at the tagged commit, so you cannot fix it on master and re-run.
The doc also records the release-profile rehearsal that actually proves something —
-Pstandard,release clean packagewithout-Dmaven.javadoc.skip— since javadoc and GPG are the only two things the profile adds, and skipping both is what let the javadoc break through.Written so hallux can follow it; little of it is jmsfx-specific.
README: three claims that outlived their condition
Same shape as the two exclusions this release found — nobody re-reads a comment.
jmsfx-battleorder"documentation only … not yet in the reactor" — it is generated, in the reactor, and on Central.Verification
mvn -Pstandard verifyclean. Documentation only; no source or build changes.🤖 Generated with Claude Code