-
Set versions:
export RELEASE_VERSION=A.B.C export NEXT_VERSION=A.B.D-SNAPSHOT
-
Check out the release branch.
git checkout -b release-$RELEASE_VERSION
-
Update
CHANGELOG.md
with changes since the last release. This step is manual and somewhat tedious. Follow the existingCHANGELOG.md
format. -
Update documentation and Gradle properties with
RELEASE_VERSION
sed -i "" \ "s/VERSION_NAME=.*/VERSION_NAME=$RELEASE_VERSION/g" \ gradle.properties
-
Tag the release and push to GitHub. Submit and merge PR.
git commit -am "Prepare for release $RELEASE_VERSION." git tag -a quiver-$RELEASE_VERSION -m "Version $RELEASE_VERSION" git push && git push --tags # Then create PR and merge it
-
Trigger the "Publish a release" action manually. This will publish to Sonatype Nexus, closing and releasing the artifact automatically to promote it to Maven Central. Note that it can take 10 to 30 minutes or more for the artifacts to appear on Maven Central.
-
Checkout
main
branch and pull the latest changesgit checkout main git pull
-
In a new branch, prepare for the next release and push to GitHub. Submit and merge PR.
git checkout -b next-version-$NEXT_VERSION sed -i "" \ "s/VERSION_NAME=.*/VERSION_NAME=$NEXT_VERSION/g" \ gradle.properties git commit -am "Prepare next development version." git push # The create PR and merge it
-
Draft a new release of
A.B.C
and publish it.- (Trialing) Copy release notes added to
CHANGELOG.md
in step 1 into Github release.
- (Trialing) Copy release notes added to
- If the GitHub action fails, drop the artifacts from Sonatype and re-run the job. A Sonatype account with app.cash permissions is required. Raise an issue if you do not have this.