Conversation
The README's release section was four paragraphs that covered the happy path and little else. It omitted every step and hazard that has actually bitten us, and one of its two verification links (oss.sonatype.org) now returns 404 since legacy OSSRH was sunset. Add docs/releasing.md covering the full process: prerequisites, how the version number is chosen, the step-by-step run, what the workflow does under the hood, known issues, recovery, and the manual fallback. Reduce the README section to the quick version plus a pointer. The gaps worth calling out, all of which have cost us time before: - The -SNAPSHOT version in pom.xml is not an input. v0.10.29 was cut from a tree reading 0.10.28-SNAPSHOT and published 0.10.29 silently. The next development version is derived from the release version too, not from the POM. - The version input is unvalidated and Maven Central is immutable, so a typo is permanent. This is the highest-risk step and had no warning. - The workflow does not create the GitHub Release. Done by hand, it has twice been left flagged as a pre-release (#1011, and v0.10.30 for three months), so the releases page advertised a stale version. - Auto-generated notes only enumerate PRs, so a squashed cycle collapses to one bullet -- v0.10.30's Java 8 drop and SLF4J 2.x migration went unmentioned. - <scm><tag> is restored from the backup POM rather than computed, so a revert can bake in a stale literal that then replays forever (#1044). - The v0.10.29 tag does not point at the commit its artifacts were built from. - e2e tests do not run during a release, only in PR CI. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #1045 +/- ##
=========================================
Coverage 91.87% 91.87%
Complexity 288 288
=========================================
Files 27 27
Lines 1034 1034
Branches 90 90
=========================================
Hits 950 950
Misses 55 55
Partials 29 29 🚀 New features to boost your workflow:
|
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This branch has not been deployed
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.
Summary
The README's release section was four paragraphs covering the happy path. It omitted every step and hazard that has actually bitten us, and one of its two verification links (
https://oss.sonatype.org/) now returns HTTP 404 since legacy OSSRH was sunset.Adds
docs/releasing.md— prerequisites, choosing a version number, step-by-step, what the workflow does under the hood, known issues, recovery, and the manual fallback. The README section becomes the quick version plus a pointer.Gaps this closes
Each of these has cost us time on a previous release:
-SNAPSHOTinpom.xmlis not an input. v0.10.29 was cut from a tree reading0.10.28-SNAPSHOTand published0.10.29silently. The next development version is derived from the release version too, not from the POM — so the field commits us to nothing and editing it before a release changes nothing.versioninput is unvalidated and Maven Central is immutable. A typo is published permanently. The highest-risk step in the process carried no warning.<scm><tag>is restored from the backup POM rather than computed, so a revert can bake in a stale literal that replays forever (Restore HEAD sentinel in scm tag #1044).v0.10.29tag does not point at the commit its artifacts were built from (e032ae1vs558b87a).e2e/e2e.shis only invoked bymaven.yml.Also documents stale config that is inert but confusing:
maven.yml'sdeployjob isif: falseand references agithub-settings.xmlthat does not exist;sonatype-settings.xml's header describes Travis;nexus-staging-maven-pluginis declared only to disable itself (and keeps attracting Dependabot PRs, e.g. #1013);.github/release-drafter.ymlhas no workflow to run it;distributionManagementstill points at dead OSSRH endpoints.Notes
docs/releasing.md.<scm><tag>fix), but there is no file overlap and the two can merge in either order.Test plan
docs/releasing.mdrenders; in-page anchors (#known-issues,#recovery) match headingsdocs/releasing.mdresolves🤖 Generated with Claude Code