build(registry): publish to Forgejo Maven package registry (PR-PLATFORM-CI-1) #10
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/maven-registry-deploy"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Forgejo Maven package registry — resolves the identity PR #5 MAJOR
Adds
<distributionManagement>(idforgejo-air) → the affinity-intelligence-rework org's Forgejo Maven package registry, so platform-libs1.1.0-SNAPSHOTis resolvable from a remote. This is the operator-chosen fix ("build the Maven registry first") for the identity PR #5 R3 MAJOR — a SNAPSHOT coordinate with no remote repo fails any clean/ephemeral build.Consumers add a matching
<repositories>entry (identity-service PR #5 R4 does this); credentials live ONLY in~/.m2/settings.xmlunder<server id="forgejo-air">(awrite:packageForgejo token), never in the POM.Verified end-to-end (2026-05-28)
mvn -DskipTests deploy→ all 6 modules + parent uploaded1.1.0-SNAPSHOT(timestamped1.1.0-20260528.151158-1) to the registry — BUILD SUCCESS.com.aim2be:redis-outbox-backend:1.1.0-SNAPSHOTfrom the registry (no local install) — BUILD SUCCESS.Deploy from any JDK17 host (does NOT need the Forgejo Actions runner — its toolchain bug is the separate half of PR-PLATFORM-CI-1, task #300).
Note: the Forgejo
mvn installCI check stays red here for that runner-toolchain reason; verified locally.Show previous round
hib-pr-reviewer review — PR #10 (affinity-intelligence-rework/im2be-platform-libs)
Round 1 — head
2d86c0f2e5fb, basemain, triggeropenedTL;DR: CONDITIONAL_APPROVE — kept 1 unique-to-A minor finding (verified: no source/javadoc plugins); B's summary-only observations noted in prose, not promoted to findings.
Summary
Arbitration — Round 1
One finding from A (unique, minor) was verified and kept. Reviewer B returned an empty findings array but mentioned two concerns in their narrative summary; per the output contract (rule 6) and my reconciliation mandate (not a fresh review), those summary-only observations are captured here in prose only.
A's finding — verified KEPT: Grep over the full
pom.xmlconfirms zero occurrences ofmaven-source-pluginormaven-javadoc-plugin. ThepluginManagementblock (lines 120-149) contains onlymaven-compiler-plugin,maven-surefire-plugin, andmaven-failsafe-plugin. WithdistributionManagementnow live,mvn deploywill publish assembled JARs only — no sources or javadoc artifacts. Finding is grounded; retained as minor.B's summary observations (not in findings[]): (1)
.forgejo/workflows/ci.ymlline 14 explicitly reads# Future: PR-PLATFORM-CI-1 adds a tag-push job— no such job appears in the file; the PR adds only the POM-sidedistributionManagement. (2)pom.xml:22-24retains a TODO referencingPR-PLATFORM-CI-1; configuringdistributionManagementpartially satisfies it but thealtDeploymentRepositoryCI step and the stale comment remain. B chose to omit these from findings[]; as arbiter I do not generate fresh findings, so they stay as prose notes only. The stale TODO is low-severity and consistent with A's defer posture.Blast Radius
The diff touches only
pom.xml, adding adistributionManagementblock that establishes the Forgejo Maven registry endpoint. While a single-file change, the effect is cross-cutting: once a deploy is triggered, all five library modules are published to a shared registry endpoint consumed by 8 downstream services. Misconfiguration would block resolution for all consumers, but the structural change here is mechanically correct.BLAST_SCORE: 4/10
CI status (head
2d86c0f2e5fb)Overall: ✗ failure
2 checks: 2 pending
Findings (1)
[MINOR] No
maven-source-pluginormaven-javadoc-pluginconfigured —mvn deploywill publish main JARs onlypom.xml:106
Verified: grep across the full
pom.xmlfinds no occurrences of either plugin. ThepluginManagementblock (lines 120-149) contains onlymaven-compiler-plugin,maven-surefire-plugin, andmaven-failsafe-plugin. ActivatingdistributionManagementmeansmvn deploywill upload compiled JARs but produce no*-sources.jaror*-javadoc.jarartifacts. For a shared library consumed by 8 services, missing sources JARs degrade IDE navigation for every downstream consumer at release time. Recommended fix: add both plugins topluginManagementwith<executions><execution><goals><goal>jar</goal></goals></execution></executions>bound to theverifyphase. Acceptable to defer until first release cut, but file now so it isn't forgotten.Verdict
CONDITIONAL_APPROVE
hib-pr-reviewer • round 1 • 1 finding (1m) • 2026-05-28T15:19:10.848Z → 2026-05-28T15:20:23.970Z • posted-as: pr-reviewer-bot
R1 verdict CONDITIONAL_APPROVE, 1 MINOR: (1) MINOR — no maven-source-plugin / maven-javadoc-plugin, so `mvn deploy` published only main JARs; a shared library consumed by 8 services should ship -sources + -javadoc for downstream IDE navigation. Fix: add both plugins to the parent <build><plugins> (versions managed by the spring-boot-starter-parent BOM) — every child JAR module now attaches a -sources.jar (source:jar-no-fork) + a -javadoc.jar (javadoc:jar). javadoc config: - doclint=all,-missing — validates the javadoc that EXISTS (HTML, @link, tag syntax) but does not fail on members without comments (standard published-lib config; private fields are excluded from output anyway). - <tags> registers the JDK doc tags apiNote/implSpec/implNote (the code uses @apiNote per the JDK convention; otherwise "unknown tag: apiNote"). Also fixed archunit-rules EntityVersionParityArchTest Javadoc: a line-start `@Version` was parsed as a block tag → "unknown tag: Version"; wrapped as {@code @Version}. Verified: mvn -DskipTests package → all 6 modules produce both -sources.jar + -javadoc.jar, BUILD SUCCESS. Re-deployed to the registry — main + sources + javadoc now published for every module (1.1.0-20260528.152612-2).hib-pr-reviewer review — PR #10 (affinity-intelligence-rework/im2be-platform-libs)
Round 2 — head
0bc1f67f7e6a, basemain, triggersynchronizeTL;DR: NO_NEW_FINDINGS — No new findings this round.
Summary
[quorum-converged] A=0 = B=0. ## Round 2 — PR #10 (
build(registry): publish to Forgejo Maven package registry)Round 1 finding status
The sole open finding from round 1 — No
maven-source-pluginormaven-javadoc-pluginconfigured — is fully resolved in this diff. Both plugins are now declared in<build><plugins>at lines 157–214 ofpom.xml.Diff analysis
pom.xmldistributionManagement: both<repository>and<snapshotRepository>correctly target the Forgejo packages API endpoint; using the same<id>for both is valid since they share credentials and point to the same URL (Forgejo dispatches by version suffix).maven-source-pluginwithjar-no-fork: correct goal choice (avoids a redundant compile fork). No explicit<version>needed — verified thatspring-boot-starter-parent3.x does manage this plugin in its pluginManagement. Both source and javadoc plugins will correctly skip thepom-packaged parent module (the source plugin checksproject.packaging == "pom"internally; the javadoc plugin'sAbstractJavadocMojosimilarly early-exits for pom modules).maven-javadoc-pluginwithdoclint:all,-missing: valid lint stance for a library (validates well-formed tags / HTML / @link targets without rejecting missing@param/@returnprose). Custom@apiNote,@implSpec,@implNotetag registrations are correct for Java 17 source that uses JDK convention tags.<quiet>true</quiet>: acceptable; does not suppress doclint errors, only informational lines.archunit-rules/…/EntityVersionParityArchTest.java@Versionbare in a Javadoc block comment would be treated by javadoc as an unknown block tag and would fail underdoclint:allonce the plugin is active. The replacement{@code @Version}is the correct Javadoc inline-code escape. This fix is necessary for the build to pass with the new plugin configuration.CI status (head
0bc1f67f7e6a)Overall: ✗ failure
2 checks: 2 pending
Findings
No new findings this round.
Quorum converged on empty findings (A + B both returned 0).
Verdict
NO_NEW_FINDINGS
hib-pr-reviewer • round 2 • 0 findings • 2026-05-28T15:26:55.258Z → 2026-05-28T15:29:48.426Z • posted-as: pr-reviewer-bot • [bookkeeping fallback]