Conversation
The version properties for the two plugins a release needs have been in the parent pom since the repository was laid out, and neither plugin was configured, so `mvn deploy` would have put the artifacts nowhere. It publishes now. One upload for the whole reactor rather than one per module, because Central validates a deployment as a unit and a half-published version is a version nobody can use and nobody can replace. autoPublish is off, so what a tag produces is a deployment waiting in the portal, and dropping it there is the only undo there is. The version lives in the tag rather than in the pom. A repository whose version has to be bumped in a commit before every release is a repository where a checkout between the bump and the tag says a version that was never built. The engine and this client move on one number, so the tag also names the engine release the libraries come from, and the suite runs against the library that is about to be published rather than against a build of main. A release that cannot answer a query does not go out. Central wants a sources jar and a javadoc jar beside every jar and has no way of being told that an artifact made of shared libraries has neither, so zudb-native attaches both by hand, each holding one file that says why it is empty. An empty jar with nothing at all in it reads like a build that went wrong. gpg runs with a loopback pinentry, because a release runs where there is no terminal and the default is to open one and wait until the job is cancelled.
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.
The version properties for
maven-gpg-pluginandcentral-publishing-maven-pluginhave been in the parent pom since the repository was laid out and neither plugin was ever configured, somvn deploywould have put the artifacts nowhere at all. This wires both up and adds the workflow that runs them.One upload for the whole reactor rather than one per module. Central validates a deployment as a unit, and a half-published version is a version nobody can use and nobody can replace.
autoPublishis off, so a tag produces a deployment sitting in the portal and nothing more, and dropping it there is the only undo that exists once a version has gone out.The version lives in the tag rather than in the pom.
v0.11.0builds0.11.0withversions:setand never commits it, because a repository whose version has to be bumped before every release is a repository where a checkout between the bump and the tag claims a version that was never built.The engine and this client move on one number, so the same tag names the engine release the libraries are downloaded from, and the suite then runs against the very library that is about to be published rather than against a build of main. A release that cannot answer a query does not go out.
Central wants a sources jar and a javadoc jar beside every jar it publishes and has no way of being told that an artifact made of shared libraries has neither. So
zudb-nativeattaches both by hand and both hold one file explaining why they are empty, which is more use to whoever opens one than a jar with nothing in it, which reads like a build that went wrong.gpg runs with
--pinentry-mode=loopback, because a release runs where there is no terminal and the default is to try to open one and hang until the job is cancelled.A dispatch with
publishunticked does everything up to the upload, so the packaging can be changed and checked without spending a version on it.Locally
mvn -Prelease,natives -DskipTests -Dgpg.skip=true packageproduces the tenzudb-nativejars and sources and javadoc forzudbandzudb-ffm, andmvn -Prelease -DskipTests package, which is what the javadoc job in CI runs, is unchanged. Four secrets are needed before a tag will work:CENTRAL_USERNAME,CENTRAL_PASSWORD,GPG_PRIVATE_KEYandGPG_PASSPHRASE.