Create an account on the Sonatype issues site. Ask an existing publisher to open
an issue requesting publishing permissions for app.cash
projects. They can use this issue
as a template to copy.
-
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 wisp-$RELEASE_VERSION -m "Version $RELEASE_VERSION" git push && git push --tags # Then create PR and merge it
-
Trigger the "Publish a release" action manually. Wait until it completes, then visit Sonatype Nexus to publish the artifacts. Follow the guide here for detailed steps on how to promote (close then release) the artifact. Or drop it if there is a problem! Be warned, the UI is awful and may take much time to load the staging repository list.
-
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.