Skip to content

fix(release-script): install root artifact before ShowcaseSync#83

Merged
DemchaAV merged 1 commit into
developfrom
fix/cut-release-install-root-before-showcasesync
May 31, 2026
Merged

fix(release-script): install root artifact before ShowcaseSync#83
DemchaAV merged 1 commit into
developfrom
fix/cut-release-install-root-before-showcasesync

Conversation

@DemchaAV

Copy link
Copy Markdown
Owner

Summary

  • cut-release.ps1 Run-ShowcaseSync now runs ./mvnw -B -ntp -DskipTests install -pl . immediately before exec:java, in both Release and PostReleaseOnly modes.
  • Step 0 pre-flight branch / clean / sync gates are relaxed for -DryRun so the script can be previewed from a feature branch while iterating on it. Live cuts still fail the gates loudly.
  • Lesson captured in docs/contributing/release-process.md section 4 alongside the v1.5.0 / v1.6.0 / v1.6.5-prep entries.

Why

During the v1.6.5 cut Step 4 (ShowcaseSync) aborted with:

Could not find artifact io.github.demchaav:graphcompose:jar:1.6.5 in central

Sequence of events that produced it:

  1. Step 1 bumped the four pom.xml files (root, aggregator, inherited examples, inherited benchmarks) to 1.6.5.
  2. Step 4 invoked mvnw -f examples/pom.xml exec:java ... to regenerate docs/examples.json.
  3. The examples module's dependency on graphcompose:${project.version} resolved to 1.6.5.
  4. Local ~/.m2 only had 1.6.4 (the previous release) — there was no install gate between Step 1 and Step 4.
  5. Maven failed dependency resolution; ShowcaseSync exit 1; the script threw.

The cut had to finish by hand: mvnw install, re-run ShowcaseSync, verify, commit, tag, push. Same gap will fire on every future cut on a maintainer machine whose ~/.m2 doesn't already contain the new version (clean checkout, CI, fresh laptop). The install is cheap (~15-20 s) and idempotent.

What changes

  • Run-ShowcaseSync: prepend the install call. Both the live invocation and the dry-run preview emit it.
  • Step 0 (pre-flight): wrap the branch / clean / origin-sync checks in a -DryRun guard so dry-runs work from any branch. Live cuts still see all three gates.
  • release-process.md section 4: new "v1.6.5 cut" lesson entry.

Verification

Dry-run from this feature branch shows both Maven invocations in the right order:

[3] Switch ShowcaseMetadata GH_BASE to /blob/v1.6.6-test
    [DRY RUN] ShowcaseMetadata GH_BASE -> /blob/v1.6.6-test

[4] Regenerate docs/examples.json with v1.6.6-test links
    [DRY RUN] mvnw.cmd -B -ntp -DskipTests install -pl .
    [DRY RUN] mvnw.cmd -f examples/pom.xml exec:java "-Dexec.mainClass=com.demcha.examples.support.ShowcaseSync"

[5] Run mvnw verify (sanity check)
    [DRY RUN] mvnw.cmd verify -pl .

Pre-flight gate output confirms relaxation only in dry-run:

[0] Pre-flight checks
    branch: fix/cut-release-install-root-before-showcasesync (gate relaxed for -DryRun)

Test plan

  • Dry-run from this feature branch shows install step before ShowcaseSync
  • Dry-run from this feature branch shows pre-flight relaxation note
  • Reviewer skim of the script diff — fix is localized to Run-ShowcaseSync and Step 0
  • Next live cut (v1.6.6 Maven Central debut) exercises the fix end-to-end — this PR is the gate before that work starts

…vent cut abort

cut-release.ps1 Step 4 (ShowcaseSync) aborted during the v1.6.5 cut
with "Could not find artifact io.github.demchaav:graphcompose:jar:1.6.5":
after Step 1 bumped the four pom.xml files to 1.6.5, the examples
module's graphcompose:\${project.version} dependency had no matching
artifact in local ~/.m2 (only the previous 1.6.4 was there) and Step 4
had no install gate. The cut had to finish by hand — install root, re-run
ShowcaseSync, verify, commit, tag, push.

Run-ShowcaseSync now executes ./mvnw -B -ntp -DskipTests install -pl .
immediately before exec:java, in both Release and PostReleaseOnly modes.
The dry-run preview now lists both steps so the install is visible
before any cut.

Also relaxes the Step 0 pre-flight branch / clean / sync gates for
-DryRun so the script can be previewed from a feature branch while
iterating on it. Live cuts still fail the gates loudly.

Lesson captured in docs/contributing/release-process.md section 4.
@DemchaAV DemchaAV merged commit b80fa5d into develop May 31, 2026
8 checks passed
@DemchaAV DemchaAV deleted the fix/cut-release-install-root-before-showcasesync branch May 31, 2026 09:35
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