build(release): add sources/javadoc jars profile + canonicalise SCM block (D1)#95
Merged
Merged
Conversation
…lock (D1) Wires up Track D1 from the v1.6.5->1.7 readiness taskboard - the first step of the Maven Central pipeline. Two changes, one PR, both prerequisites for Central upload: 1. New 'release' Maven profile activated with -P release. Attaches *-sources.jar (maven-source-plugin 3.3.1 jar-no-fork) and *-javadoc.jar (maven-javadoc-plugin 3.12.0 jar) to the package phase. Javadoc runs with doclint=none + failOnError=false so Lombok-generated members and @internal engine surface don't block a publish; warnings surface quietly. Off by default; default mvnw verify does not pay the ~30s of extra packaging. 2. SCM block canonicalised. Central metadata validator is strict: <connection> now scm:git:https:// (HTTPS, not legacy git://), <developerConnection> now scm:git:ssh://git@github.com/ (canonical SSH URL with git@ user). Matches every Central artefact's POM shape. Verification: mvnw -P release -DskipTests package -pl . -> BUILD SUCCESS (36s) -> target/graphcompose-1.6.5.jar (19MB) -> target/graphcompose-1.6.5-sources.jar (18MB) -> target/graphcompose-1.6.5-javadoc.jar (4MB) -> Central jar trio complete; ready for GPG signing (D2) and central-publishing wiring (D3).
This was referenced May 31, 2026
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
Wires up Track D1 from the readiness taskboard — the first step of the Maven Central pipeline. Two changes, both prerequisites for Central upload:
1. New
releaseMaven profileActivated with
-P release. Attaches the*-sources.jarand*-javadoc.jarthat Central requires alongside the main.jar:maven-source-plugin3.3.1jar-no-forkpackagemaven-javadoc-plugin3.12.0jarpackagedoclint=none,failOnError=false,quiet=trueThe Javadoc plugin's
failOnError=falseis intentional — Lombok-generated members and the@Internalengine surface (e.g.document.layout.*) are not part of the public Javadoc contract, and a strict Javadoc pass would block the publish on things that aren't real problems. Warnings surface quietly so a maintainer running the profile by hand sees them, but they don't fail the build.The profile is off by default so a maintainer's everyday
mvnw verifydoes not pay the ~30 s of extra packaging.cut-release.ps1(after Track D3'scentral-publishing-pluginlands) and the publish workflow (Track D4) will activate it.2. SCM block canonicalised
Central's metadata validator is strict about the
<scm>block:<connection>flipped from the legacygit://(Git's anonymous transport, deprecated and blocked by many corporate networks) tohttps://— the universal anonymous-clone protocol.<developerConnection>flipped fromssh://github.com:DemchaAV/…(the older SCP-like form) tossh://git@github.com/…(the canonical SSH URL with thegit@user, the shape GitHub itself recommends).Both lines now match the exact shape every Central artefact's POM carries — and the shape the audit notes pinned as a precondition for
central-publishing-pluginvalidation.Verification
Artefact sizes confirmed against the produced files:
graphcompose-1.6.5.jargraphcompose-1.6.5-sources.jargraphcompose-1.6.5-javadoc.jarDefault
mvnw verify(no profile) unchanged — sources / javadoc jars are not produced.CHANGELOG entry added to
v1.6.6 — Plannedunder### Build.What this doesn't do
maven-gpg-pluginand theMAVEN_GPG_PRIVATE_KEY+MAVEN_GPG_PASSPHRASEsecrets.central-publishing-maven-plugin+ namespace verification on Central Portal)..github/workflows/publish.yml).D2 / D3 / D4 will land sequentially; this PR is just the artefacts layer.
Test plan
mvnw -P release -DskipTests package -pl .produces all three jarsmvnw verifyunchanged (no profile activation)validatephase before any of this runs)releaseprofile block (~45 LOC) and the two SCM-line replacements are the load-bearing pieces