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]
:
- Update the
composesnapshot
property to be the snapshot number - 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]
:
- Update the
composesnapshot
property to a single character (usually-
). This disables the snapshot repository. - 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 to0.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