Skip to content

fix(build): publish parent POMs required for dependency resolution - #76

Merged
PimvanderLoos merged 4 commits into
masterfrom
fix/maven-publish-parent-poms
Jul 11, 2026
Merged

fix(build): publish parent POMs required for dependency resolution#76
PimvanderLoos merged 4 commits into
masterfrom
fix/maven-publish-parent-poms

Conversation

@PimvanderLoos

Copy link
Copy Markdown
Owner

Why

  • Consumers of core/hooks-api cannot resolve the artifacts (reported on Discord): the parent POM chain (BigDoors-parent, hooks) was never deployed, and Maven cannot read an artifact descriptor without it. Affects all published versions (0.1.8.64–.68).

How

  • Move the publication allowlist into the Maven model: root POM deploys itself; nms/hooks subtrees opt out via maven.deploy.skip; the hooks aggregator re-enables deployment for itself only (inherited=false) since it is hooks-api's parent. Published set is now exactly: BigDoors-parent (pom), hooks (pom), core (jar), hooks-api (jar).
  • Add a post-deploy CI verification step that fails the release (before git push) if any expected artifact is missing or any internal module leaked. CI only verifies; the POMs define what is published.

Tests

  • mvn deploy -DaltDeploymentRepository=local-test::file:///tmp/... → exactly 4 artifacts deployed, 47 modules skipped.
  • Scratch consumer + empty local cache against that file repo → core and hooks-api resolve (BUILD SUCCESS).
  • Baseline (same consumer against eldonexus today) reproduces the reported error verbatim.
  • Broken releases 0.1.8.64–.68 are being repaired separately by backfilling the two missing parent POMs per version (dry-run verified locally via layered file+remote repos).

🤖 Generated with Claude Code

PimvanderLoos and others added 4 commits July 11, 2026 14:12
Consumers of core and hooks-api could not resolve the artifacts because
their parent POM chain (BigDoors-parent, hooks) was never deployed: the
root POM globally skipped maven-deploy-plugin and only core/hooks-api
opted back in. Maven cannot read an artifact's descriptor without its
full parent chain, so every published version was unusable.

Move the publication allowlist into the Maven model itself:
- root POM (BigDoors-parent) now deploys itself
- nms subtree opts out via the maven.deploy.skip property
- hooks subtree opts out likewise, but the hooks aggregator POM
  re-enables deployment for itself only (inherited=false), as it is
  the parent of the published hooks-api artifact

Published set is now exactly: BigDoors-parent (pom), hooks (pom),
core (jar), hooks-api (jar).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The missing-parent-POM defect shipped silently in five consecutive
releases. Add a post-deploy verification step that fails the release
run if any of the four expected artifacts is absent from the public
repository, or if an internal module (nms-api, hooks-bundle, nms) was
published by mistake. Runs before the git push so a broken publication
pushes no commits or tags.

The step only verifies; WHAT gets published remains defined solely by
the maven-deploy-plugin configuration in the POMs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The top-of-README badge queried eldonexus for the pre-split
nl.pim16aap2:BigDoors coordinates, which stopped receiving releases at
0.1.8.58; it could never show a current version again. Replace it with
the GitHub latest-release badge (same label/color/style) linked to the
releases page, so it tracks every release with no maintenance.

Also bump the Maven/Gradle dependency snippets from 0.1.8.64 to the
current 0.1.8.68. A follow-up commit automates this bump in the release
pipeline; this brings the README current until the next release.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The post-release commit that clears the changelog now also rewrites the
version in the README's Maven and Gradle dependency snippets to the
version that was just released, so the copy-paste examples can no
longer go stale (they were stuck at 0.1.8.64 while 0.1.8.68 was out).

Guard greps after the seds fail the step loudly if a future README
reformat stops the patterns from matching, instead of silently
drifting again.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@PimvanderLoos
PimvanderLoos merged commit 4b2d117 into master Jul 11, 2026
7 checks passed
@PimvanderLoos
PimvanderLoos deleted the fix/maven-publish-parent-poms branch July 11, 2026 15:46
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