- Make sure that CI is green on
the
main
branch (builds & all tests pass) - Create a
Prepare for release X.Y.Z
commit with the following changes:- Update changelog.md with anything that's missing but don't document the new release version yet
- Update the
VERSION_NAME
property in gradle.properties for the new release using semantic versioning based on the changelog - Update the documentation if necessary but don't update the documented dependency version yet
- Create a GitHub release:
- Create a new tag
vX.Y.Z
matching the version from gradle.properties - Release Title:
X.Y.Z
- Description: Copy the changes from changelog.md for this release
- Copy the raw contents to avoid formatting issues due to escaped characters etc.
- Create a new tag
- Release artifacts in Maven Central:
- The previous step should have automatically triggered the release workflow
- Make sure the
Trigger Release
action completed successfully - Check the artifacts in Sonatype (navigate to
Publish
->Deployments
) - Release the publication if everything looks good
- Wait and refresh the deployment until the status shows
PUBLISHED
before proceeding to the next step. It can take a long time for the artifact status to go fromPUBLISHING
toPUBLISHED
so I recommend checking back every 30 minutes or so.
- Create a
Finalize release X.Y.Z
commit with the following changes:- Update README.md to reference the newly-released version in the gradle & maven dependency
- Document the new release version & date in the changelog.md