This document describes how to release org.questdb:client to Maven Central.
Releases are performed using the Maven Release Plugin combined with the Sonatype Central Publishing Plugin. The maven-central-release profile handles signing, Javadoc generation, source attachment, and publishing.
A GPG key is required to sign the release artifacts. If you don't have one:
gpg --gen-key
gpg --keyserver keyserver.ubuntu.com --send-keys <YOUR_KEY_ID>More details on GPG key generation can be found in the Sonatype guide.
You need credentials for the Sonatype Central Portal (https://central.sonatype.com/).
Configure your ~/.m2/settings.xml with the Sonatype server credentials:
<settings>
<servers>
<server>
<id>central</id>
<username>YOUR_SONATYPE_USERNAME</username>
<password>YOUR_SONATYPE_PASSWORD</password>
</server>
</servers>
</settings>More details can be found in the Sonatype guide.
You need push access to the questdb/java-questdb-client repository on GitHub.
This bumps the version, creates a tag, and commits the changes:
mvn release:prepareThe plugin will prompt for:
- Release version (e.g.,
9.3.1) — the version to release - SCM tag (e.g.,
9.3.1) — the Git tag name (uses thetagNameFormatof@{project.version}) - Next development version (e.g.,
9.3.2-SNAPSHOT) — the next snapshot version
This creates two commits:
[maven-release-plugin] prepare release 9.3.1— sets the release version[maven-release-plugin] prepare for next development iteration— sets the next snapshot version
And a Git tag (e.g., 9.3.1).
This builds, signs, and publishes the artifacts to Maven Central:
mvn release:performThe maven-central-release profile is activated automatically. It:
- Compiles the source
- Generates Javadoc
- Attaches sources JAR
- Signs all artifacts with GPG
- Publishes to Maven Central via the Sonatype Central Publishing Plugin
- Waits until the artifacts are published (
waitUntil=published)
If not pushed automatically:
git push origin main --tagsCheck that the new version appears on Maven Central. Propagation may take some time after publishing.
- Go to GitHub Releases.
- Click Draft a new release.
- Select the tag created by the release plugin.
- Add release notes describing the changes.
- Publish the release.