Improve Maven Central publishing resilience and debugging - #135
Merged
Conversation
The central-publishing-maven-plugin polls the Central Portal for the
'published' deployment state (waitUntil=published) with a default
waitMaxTime of 1800 seconds. The java-llama.cpp 5.0.6 release deploy hit
that 30-minute limit on a slow Central day ('Polling for <id> timed out
before the deployment completed') even though the bundle had uploaded
successfully and published server-side. Set waitMaxTime=21600 (6 h) so
the fail-loud 'published' gate survives slow portal processing, and add
an informational 'Show effective POM (debug)' step before each deploy so
the resolved publishing configuration is visible in the job log.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018e3Pk8a2yzmrmNb2DEw9JS
A Central publish-poll timeout (seen on the jllama 5.0.6 release) reds
the publish job after the bundle was already uploaded and published
server-side, but two layers then dropped the GitHub release assets:
the github-snapshot/github-release jobs required publish success, and
the 'Collect signed artifacts' + upload steps inside the publish job
ran after the deploy step and were skipped on its failure — even though
the signed jars + .asc files already exist (GPG signing happens at
verify, before the final Central wait).
Fix: run collect/upload with 'if: ${{ !cancelled() }}', and let the
GitHub jobs run on publish success OR failure (never on skipped or
cancelled, so the publish_to_central manual gate still holds). If a
deploy fails before signing, collect finds nothing, no artifact is
uploaded, and the GitHub job fails loud on download-artifact.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018e3Pk8a2yzmrmNb2DEw9JS
Portal validation is where real deployment errors surface (bad signatures, missing javadoc, POM rules) and completes within minutes; the publish/replication step then runs server-side via autoPublish and, after a passed validation, effectively only stalls on portal slowness - the exact false-alarm that timed out the jllama 5.0.6 release job while the deployment published fine. waitUntil=validated keeps the fail-loud gate for genuine errors without the multi-hour wait; waitMaxTime=21600 stays as headroom for the validation poll. (uploaded was rejected: it would leave the job green on a validation failure.) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018e3Pk8a2yzmrmNb2DEw9JS
PIT gate re-run green on 1.25.6 (565/565 mutations killed, 100%). The checker-qual dependencyManagement pin fixes a pre-existing build break unrelated to the pitest bump: this pom's checker-qual moved to 4.2.1 while net.ladenthin:llama 5.0.4 (deliberately kept at 5.0.4) transitively brings 4.2.0, failing the enforcer's DependencyConvergence rule on every build. Same convergence pattern as the existing slf4j-api entry. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018e3Pk8a2yzmrmNb2DEw9JS
…parately) The DependencyConvergence break (own checker-qual 4.2.1 vs llama 5.0.4's transitive 4.2.0) is left in place on purpose; it will be resolved by the llama dependency bump in a separate session. The pitest 1.25.6 bump from the previous commit stands; its 565/565 PIT verification ran with the (now-reverted) pin in place. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018e3Pk8a2yzmrmNb2DEw9JS
Replaces the multi-line, incident-specific comment with one generic line explaining why validated (not published) is used; no repo-specific references. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018e3Pk8a2yzmrmNb2DEw9JS
bernardladenthin
had a problem deploying
to
startgate
July 8, 2026 13:19 — with
GitHub Actions
Error
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
waitUntil=publishedtowaitUntil=validatedwith extended timeout (6 hours), avoiding slow server-side publish waits while still catching validation errorsTest plan
!cancelled()conditions ensure artifact collection and downstream jobs run on both success and failure (but not cancellation), preserving signed artifacts even when Central polling times outRelated issues / PRs
Checklist
CONTRIBUTING.mdandCODE_OF_CONDUCT.mdhttps://claude.ai/code/session_018e3Pk8a2yzmrmNb2DEw9JS