blob: 1a0776e6cf0385a2b6a410e86d3a06fcf7949592 [file] [log] [blame] [view]
# 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:
``` sh
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`](https://github.com/google/accompanist/blob/main/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`:
``` sh
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`](https://github.com/google/accompanist/blob/main/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](https://github.com/google/accompanist/blob/main/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](https://github.com/google/accompanist/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](https://google.github.io/accompanist/).
### #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](https://github.com/google/accompanist/blob/main/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
```