Repository navigation
fix(ci): bump central-publishing-maven-plugin to 0.12.0 - #41
Merged
Merged
Conversation
Publishing 1.9.0 to Maven Central failed validation:
Bundle has content that does NOT have a .pom file: com/tinify/tinify
The runner image ships Maven 3.10.0, which writes maven-metadata-local.xml
and _remote.repositories into the local repository layout the plugin
stages from. 0.7.0 bundles them as-is, so the uploaded zip contains
com/tinify/tinify/maven-metadata-local.xml -- a file at the artifact
level with no version directory and therefore no .pom beside it, which
is exactly what Central reports.
Reproduced with Maven 3.10.0 against this pom: the staging tree gains
maven-metadata-local.xml and _remote.repositories. The same build under
Maven 3.9.15 is clean, which is why this never showed up locally.
0.12.0 strips them before bundling:
Pre Bundling - deleted .../com/tinify/tinify/maven-metadata-local.xml
Pre Bundling - deleted .../com/tinify/tinify/1.9.0/_remote.repositories
Pre Bundling - deleted .../central-staging/.locks
leaving the 20-file bundle Central expects, the same shape as 1.8.8.
Also passes --show-version so the Maven version is in the log; its
absence is what made this take a while to pin down.
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.
Publishing
1.9.0to Maven Central failed validation (run 41844578310):Cause
ubuntu-24.04image20261101.360ships Maven 3.10.0. 3.10.0 writesmaven-metadata-local.xmland_remote.repositoriesinto the local-repository layout thatcentral-publishing-maven-pluginstages from. 0.7.0 bundles the staging directory as-is, so the uploaded zip contains:A file at the artifact level, with no version directory and therefore no
.pombeside it — which is the path Central names verbatim in the error.Reproduced
Same pom, same command, Maven 3.10.0 (checksum-verified from archive.apache.org),
-Dgpg.skip:The identical build under Maven 3.9.15 produces a clean 20-file tree. That is why this never reproduced locally, and why the failure looked like a packaging problem rather than a toolchain one.
Fix verified
0.12.0 strips them before bundling:
Resulting bundle: 20 files, the same shape as
1.8.8on Central. The run then fails only on the dummy credentials I used (401 on upload), which is as far as I can verify without the real secrets.Also adds
--show-versionso the Maven version is in the log — its absence is most of why this took a while to find.Not in this PR
1.8.9(tagged 2026-03-17) never reached Central either. That pom still usednexus-staging-maven-pluginagainst OSSRH, which was already sunset — a different failure with the same symptom of a silent non-release. Central's latest is still1.8.8.org.apache.felix:maven-bundle-plugin:bundleexplicitly and via thebundlepackaging lifecycle, so the goal executes twice (default-clithendefault-bundle), about 25s wasted. Harmless, left alone.After merging
The
1.9.0tag points at the pre-fix commit, so the publish job will not re-run on it by itself. Nothing was published under1.9.0, so either the tag gets moved to the merge commit or1.9.1gets cut — your call.🤖 Generated with Claude Code