Skip to content

Updating & releasing Accompanist

This doc is mostly for maintainers.

New features & bugfixes

All new features should be uploaded as PRs against the main branch.

Once merged into main, they will be automatically merged into the snapshot branch.

Jetpack Compose Snapshots

We publish snapshot versions of Accompanist, which depend on a SNAPSHOT versions of Jetpack Compose. These are built from the snapshot branch.

Updating to a newer Compose snapshot

As mentioned above, updating to a new Compose snapshot is done by submitting a new PR against the snapshot branch:

git checkout snapshot && git pull
# Create branch for PR
git checkout -b update_snapshot

Now edit the project to depend on the new Compose SNAPSHOT version:

Edit /gradle/libs.versions.toml:

Under [versions]:

  1. Update the composesnapshot property to be the snapshot number
  2. Ensure that the compose property is correct

Make sure the project builds and test pass:

./gradlew check

Now git commit the changes and push to GitHub.

Finally create a PR (with the base branch as snapshot) and send for review.

Releasing

Once the next Jetpack Compose version is out, we're ready to push a new release:

#1: Merge snapshot into main

First we merge the snapshot branch into main:

git checkout snapshot && git pull
git checkout main && git pull

# Create branch for PR
git checkout -b main_snapshot_merge

# Merge in the snapshot branch
git merge snapshot

#2: Update dependencies

Edit /gradle/libs.versions.toml:

Under [versions]:

  1. Update the composesnapshot property to a single character (usually -). This disables the snapshot repository.
  2. Update the compose property to match the new release (i.e. 1.0.0-beta06)

Make sure the project builds and test pass:

./gradlew check

Commit the changes.

#3: Bump the version number

Edit gradle.properties:

  • Update the VERSION_NAME property and remove the -SNAPSHOT suffix.

Commit the changes, using the commit message containing the new version name.

#4: Push to GitHub

Push the branch to GitHub and create a PR against the main branch, and send for review. Once approved and merged, it will be automatically deployed to Maven Central.

#5: Create release

Once the above PR has been approved and merged, we need to create the GitHub release:

  • Open up the Releases page.
  • At the top you should see a 'Draft' release, auto populated with any PRs since the last release. Click 'Edit'.
  • Make sure that the version number matches what we released (the tool guesses but is not always correct).
  • Double check everything, then press 'Publish release'.

At this point the release is published. This will trigger the docs action to run, which will auto-deploy a new version of the website.

#6: Prepare the next development version

The current release is now finished, but we need to update the version for the next development version:

Edit gradle.properties:

  • Update the VERSION_NAME property, by increasing the version number, and adding the -SNAPSHOT suffix.
  • Example: released version: 0.3.0. Update to 0.3.1-SNAPSHOT

git commit and push to main.

Finally, merge all of these changes back to snapshot:

git checkout snapshot && git pull
git merge main
git push