fix(release-script): install render-pptx before regenerating the showcase - #455
Merged
Merged
Conversation
…case
Step 4 runs ShowcaseSync from the examples module after the version bump,
so every train sibling the examples depend on must already be in the
local cache at the new version. The list it installs from was written
before render-pptx existed and never gained it, while examples/pom.xml
took a compile dependency on it for the PPTX twins.
The cut therefore aborts mid-flight — "Could not find artifact
graph-compose-render-pptx:jar:2.1.0" — with every pom, README and the
changelog date already rewritten, leaving a dirty tree to unwind by hand.
A new guard derives the required set from examples/pom.xml and fails the
build when the two drift. It matches only dependencies pinned to
${graphcompose.version}: fonts and emoji keep independent release lines
and resolve from Central. It does not assert the reverse, because the
list legitimately carries render-pdf, which the examples reach through
the wrapper and which is bumped all the same.
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.
What happened
The 2.1.0 cut aborted at Step 4:
No commit and no tag were created — but by that point Step 1 had already rewritten all 13 poms, the root and eight module READMEs,
web/index.html, the release-smoke defaults, and Step 2 had dated the changelog. 29 modified files to unwind by hand, at the exact moment a release is least forgiving.Why
cut-release.ps1:518installs the examples module's siblings from a literal list so thatShowcaseSynccan resolve them at the just-bumped version, which exists in no repository yet:The list predates
render-pptx.examples/pom.xmltook a compile dependency on it for the PPTX twin examples, and nothing connected the two. The failure cannot surface before a cut, because it needs a version that only exists mid-cut.render-pptxis inserted afterrender-pdf, which it depends on at compile scope.The guard
A literal list that must track another file will drift again — this is the second release-script list to do so.
ReleaseScriptInstallListGuardTestderives the required set fromexamples/pom.xmland fails the build when the script does not cover it.Two deliberate scoping decisions, both from what the pom actually says:
${graphcompose.version}dependencies count.graph-compose-fontsandgraph-compose-emojisit on independent release lines (${graphcompose.fonts.version}/${graphcompose.emoji.version}) and resolve from Central, so a cut never builds them. An earlier draft matched everygraph-compose-*artifactId and demanded those two plus the<parent>coordinate — wrong on all three.render-pdf, which the examples reach transitively through thegraph-composewrapper and which is bumped all the same. A subset assertion would have flagged it.Verification
ReleaseScriptInstallListGuardTestpasses with the fix; reverting just the list entry turns it red, so it is driving the behaviour rather than restating it.Dry-run across all three modes — the v1.6.5 lesson that a release step working in the default mode is not enough:
-Version 2.1.0 -DryRun-Version 2.1.0 -DryRun -SkipShowcase-PostReleaseOnly -DryRun