Skip to content

fix(release-script): install render-pptx before regenerating the showcase - #455

Merged
DemchaAV merged 1 commit into
developfrom
fix/cut-release-install-render-pptx
Jul 26, 2026
Merged

fix(release-script): install render-pptx before regenerating the showcase#455
DemchaAV merged 1 commit into
developfrom
fix/cut-release-install-render-pptx

Conversation

@DemchaAV

Copy link
Copy Markdown
Owner

What happened

The 2.1.0 cut aborted at Step 4:

[ERROR] Could not resolve dependencies for project io.github.demchaav:graph-compose-examples:jar:2.1.0
[ERROR] dependency: io.github.demchaav:graph-compose-render-pptx:jar:2.1.0 (compile)
[ERROR] 	Could not find artifact … in central
Exception: ShowcaseSync failed (exit 1)

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:518 installs the examples module's siblings from a literal list so that ShowcaseSync can resolve them at the just-bumped version, which exists in no repository yet:

$exampleSnapshotSiblings = @('render-pdf/pom.xml', 'wrapper/pom.xml', 'render-docx/pom.xml',
                             'templates/pom.xml', 'testing/pom.xml')

The list predates render-pptx. examples/pom.xml took 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-pptx is inserted after render-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. ReleaseScriptInstallListGuardTest derives the required set from examples/pom.xml and fails the build when the script does not cover it.

Two deliberate scoping decisions, both from what the pom actually says:

  • Only ${graphcompose.version} dependencies count. graph-compose-fonts and graph-compose-emoji sit on independent release lines (${graphcompose.fonts.version} / ${graphcompose.emoji.version}) and resolve from Central, so a cut never builds them. An earlier draft matched every graph-compose-* artifactId and demanded those two plus the <parent> coordinate — wrong on all three.
  • The reverse direction is not asserted. The list legitimately carries render-pdf, which the examples reach transitively through the graph-compose wrapper and which is bumped all the same. A subset assertion would have flagged it.

Verification

ReleaseScriptInstallListGuardTest passes 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:

Mode Exceptions Installs render-pptx
-Version 2.1.0 -DryRun 0 yes
-Version 2.1.0 -DryRun -SkipShowcase 0 no, as intended — the mode skips showcase entirely
-PostReleaseOnly -DryRun 0 yes

…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.
@DemchaAV
DemchaAV merged commit 953f4fc into develop Jul 26, 2026
14 checks passed
@DemchaAV
DemchaAV deleted the fix/cut-release-install-render-pptx branch July 26, 2026 11:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant