Release Checklist
This page is the minimal checklist maintainers follow before and after publishing AI4J to Maven Central and GitHub Release.
Version strategy
AI4J currently uses uniform versioning across all modules:
- Release version: all release modules use the same stable version, e.g.
2.4.2 - Development branch: all Maven POMs use the next
SNAPSHOT, e.g.2.4.3-SNAPSHOT - README / docs examples: write the latest released stable version, never a
SNAPSHOT
When you only change the README, docs-site, or a demo, no new Maven version is required.
Pre-release
- Confirm the current branch is clean and cut a release fix branch from
main. - Bump all Maven POMs from
*-SNAPSHOTto the same release version. - Sync the user-facing install version in README, README-EN, and docs-site.
- Confirm
ai4j-bomcovers the release modules that need to align. - Confirm the release profile does not publish the aggregation root project, demo artifacts, or the CLI fat jar.
- Confirm Maven
settings.xmlcontains the Central server id, and the secret stays out of the repo. - Confirm GPG agent / Kleopatra can complete signing.
Local verification
mvn -DskipTests package
mvn -P release -DskipTests clean verify
If you modified docs-site:
npm --prefix docs-site ci
npm --prefix docs-site run build
Release
mvn -P release -DskipTests clean deploy
Record the Central deployment id. If Central returns validated but requires manual publishing, publish that deployment from the Sonatype Central Portal or the Publisher API.
Post-release verification
- Maven Central deployment status is
PUBLISHED. maven-metadata.xmllatestandreleaseequal this version.- The main module's
pom,jar,sources,javadoc, and.ascare downloadable. ai4j-cli-<version>-jar-with-dependencies.jardoes not exist.- Create a GitHub tag / Release describing the version changes and Maven coordinates.
- On a new branch, bump all Maven POMs to the next
SNAPSHOTand merge it back tomain.
Wrap-up
- Delete the merged release / bump branches.
- Confirm local
mainaligns withorigin/main. - Record the deployment id, GitHub release URL, verification commands, and residual risks in the HA task.