From a1157178813e5a0f043fb7e78411f545bd3f8c9c Mon Sep 17 00:00:00 2001 From: Pim van der Loos Date: Sat, 11 Jul 2026 14:12:03 +0200 Subject: [PATCH 1/4] fix(build): publish parent POMs required for dependency resolution 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 --- hooks/pom.xml | 22 ++++++++++++++++++++++ nms/pom.xml | 2 ++ pom.xml | 3 --- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/hooks/pom.xml b/hooks/pom.xml index 1ff7d36ae..c1cfad3d2 100644 --- a/hooks/pom.xml +++ b/hooks/pom.xml @@ -12,6 +12,8 @@ true + + true @@ -50,4 +52,24 @@ provided + + + + + org.apache.maven.plugins + maven-deploy-plugin + ${dependency.maven-deploy.version} + + false + + false + + + + diff --git a/nms/pom.xml b/nms/pom.xml index d1f6ee72d..96e47af0d 100644 --- a/nms/pom.xml +++ b/nms/pom.xml @@ -68,5 +68,7 @@ 8 8 UTF-8 + + true diff --git a/pom.xml b/pom.xml index ef07a7333..aa4c35c86 100644 --- a/pom.xml +++ b/pom.xml @@ -117,9 +117,6 @@ org.apache.maven.plugins maven-deploy-plugin ${dependency.maven-deploy.version} - - true - From c56fcd642e2c3360a3c131a7c710c321224978a7 Mon Sep 17 00:00:00 2001 From: Pim van der Loos Date: Sat, 11 Jul 2026 14:12:03 +0200 Subject: [PATCH 2/4] ci(release): verify published artifact set after release 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 --- .github/workflows/release.yml | 37 +++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e92380a39..d4561a5fd 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -130,6 +130,43 @@ jobs: -Prelease \ release:perform + # The published artifact set is defined by the Maven model (maven-deploy-plugin skip + # flags in the POMs); this step only verifies the outcome. It runs before the git push + # so that a broken publication fails the release without pushing commits or tags. + - name: Verify published artifact set + run: | + BASE_URL='https://eldonexus.de/repository/maven-public/nl/pim16aap2/BigDoors' + failed=0 + + # These artifacts (and their full parent POM chain) must be resolvable by consumers. + for artifact in \ + "BigDoors-parent/${RELEASE_VERSION}/BigDoors-parent-${RELEASE_VERSION}.pom" \ + "hooks/${RELEASE_VERSION}/hooks-${RELEASE_VERSION}.pom" \ + "core/${RELEASE_VERSION}/core-${RELEASE_VERSION}.pom" \ + "core/${RELEASE_VERSION}/core-${RELEASE_VERSION}.jar" \ + "hooks-api/${RELEASE_VERSION}/hooks-api-${RELEASE_VERSION}.pom" \ + "hooks-api/${RELEASE_VERSION}/hooks-api-${RELEASE_VERSION}.jar"; do + code=$(curl -s -o /dev/null -w '%{http_code}' "${BASE_URL}/${artifact}") + if [ "${code}" != "200" ]; then + echo "::error::Expected artifact missing (HTTP ${code}): ${artifact}" + failed=1 + fi + done + + # Internal modules must never be published. + for artifact in \ + "nms-api/${RELEASE_VERSION}/nms-api-${RELEASE_VERSION}.pom" \ + "hooks-bundle/${RELEASE_VERSION}/hooks-bundle-${RELEASE_VERSION}.pom" \ + "nms/${RELEASE_VERSION}/nms-${RELEASE_VERSION}.pom"; do + code=$(curl -s -o /dev/null -w '%{http_code}' "${BASE_URL}/${artifact}") + if [ "${code}" != "404" ]; then + echo "::error::Internal artifact unexpectedly published (HTTP ${code}): ${artifact}" + failed=1 + fi + done + + exit "${failed}" + - name: Push release commits and tag run: git push origin master --follow-tags From dcf01c689712f69ba9e78e82ff6b645015493fe0 Mon Sep 17 00:00:00 2001 From: Pim van der Loos Date: Sat, 11 Jul 2026 16:35:41 +0200 Subject: [PATCH 3/4] docs(readme): fix stale release badge and bump dependency snippets 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 --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6216686ff..61a062108 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -![Static Badge](https://img.shields.io/nexus/r/nl.pim16aap2/BigDoors?color=green&label=BigDoors&logo=BigDoors&logoColor=red&server=https%3A%2F%2Feldonexus.de&style=flat-square) +[![BigDoors release](https://img.shields.io/github/v/release/PimvanderLoos/BigDoors?label=BigDoors&color=green&style=flat-square)](https://github.com/PimvanderLoos/BigDoors/releases/latest) # BigDoors v1 BigDoors is a plugin for the Minecraft server mod [Spigot](https://spigotmc.org). Its aim is to enhance your server with @@ -393,7 +393,7 @@ There are 2 modules available: nl.pim16aap2.BigDoors core - 0.1.8.64 + 0.1.8.68 provided @@ -407,7 +407,7 @@ maven { } dependencies { - compileOnly 'nl.pim16aap2.BigDoors:core:0.1.8.64' + compileOnly 'nl.pim16aap2.BigDoors:core:0.1.8.68' } ``` From ea8a57fbbdb54878da30f49653291982c2cff38b Mon Sep 17 00:00:00 2001 From: Pim van der Loos Date: Sat, 11 Jul 2026 16:36:33 +0200 Subject: [PATCH 4/4] ci(release): keep README dependency snippets current on release 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 --- .github/workflows/release.yml | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d4561a5fd..893193009 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -196,19 +196,26 @@ jobs: core/target/BigDoors.jar.asc core/target/BigDoors.jar.SHA-256 - - name: Clear changelog for next release + - name: Clear changelog and bump README version for next release env: GPG_KEY: ${{ secrets.MAVEN_GPG_KEY }} Maven_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }} run: | echo "$GPG_KEY" | gpg --batch --import - + version_line=$(echo "${{ env.NEXT_DEV_VERSION }}" | sed 's/-SNAPSHOT//g') { printf '%s\n\n' "$version_line"; cat changelog.txt; } > changelog.tmp mv changelog.tmp changelog.txt - + > NEXT_RELEASE_CHANGELOG.md - - git add changelog.txt NEXT_RELEASE_CHANGELOG.md - git commit -S -m "chore: clear next changelog after v${{ env.RELEASE_VERSION }} release" + + # Point the README dependency snippets at the version that was just released. + # The greps fail the step loudly if a README reformat ever breaks the sed patterns. + sed -i "s|[0-9][0-9.]*|${RELEASE_VERSION}|" README.md + sed -i "s|BigDoors:core:[0-9][0-9.]*|BigDoors:core:${RELEASE_VERSION}|" README.md + grep -q "${RELEASE_VERSION}" README.md + grep -q "BigDoors:core:${RELEASE_VERSION}" README.md + + git add changelog.txt NEXT_RELEASE_CHANGELOG.md README.md + git commit -S -m "chore: clear changelog and bump README to v${{ env.RELEASE_VERSION }} after release" git push origin master