2021-08-25 15:51:36 +02:00
name : Release checklist
description : Checklist for each release. This template is only for the core team.
2022-02-02 15:41:37 +01:00
title : "[Release] Element Android v"
2021-09-29 14:10:19 +02:00
labels : [ 🚀 Release]
2021-08-25 15:51:36 +02:00
assignees :
- bmarty
body :
- type : textarea
id : checklist
attributes :
label : Release checklist
2022-02-02 15:41:37 +01:00
description : For the template example, we are releasing the version 1.2.3. Replace 1.2.3 with the version in the issue body.
2021-08-25 15:51:36 +02:00
placeholder : |
If you are reading this, you have deleted the content of the release template : undo the deletion or start again.
value : |
### Before the release
- [ ] Weblate sync, fix lint issue if any (in a dedicated PR)
- [ ] Check the update of the store descriptions (using Google Translate if necessary) to ensure that the changes are acceptable to be published to the stores.
2022-04-05 18:53:40 +02:00
- [ ] While Weblate is locked, and after the PR from Weblate has been merged, handle all the TODOs in the main `strings.xml` file
2021-08-25 15:51:36 +02:00
- [ ] Run the script `./tools/release/pushPlayStoreMetaData.sh`. You can check in the GooglePlay console the Activity log to check the effect.
### Do the release
2022-05-05 14:55:34 +02:00
- [ ] Make sure `develop` and `main` are up to date (git pull)
- [ ] Checkout develop and create a release with gitflow, branch name `release/1.2.3`
2021-08-25 15:51:36 +02:00
- [ ] Check the crashes from the PlayStore
2022-02-02 15:41:37 +01:00
- [ ] Check the rageshake with the current dev version : https://github.com/matrix-org/element-android-rageshakes/labels/1.2.3-dev
2021-08-25 15:51:36 +02:00
- [ ] Run the integration test, and especially `UiAllScreensSanityTest.allScreensTest()`
2022-02-02 15:41:37 +01:00
- [ ] Create an account on matrix.org and do some smoke tests that the sanity test does not cover like : 1 -1 call, 1-1 video call, Jitsi call for instance
- [ ] Run towncrier : `towncrier --version v1.2.3 --draft` (remove `--draft` do write the file CHANGES.md)
- [ ] Check that the folder `changelog.d` is empty. It can happen that some remaining files stay here
- [ ] Check the file CHANGES.md consistency. It's possible to reorder items (most important changes first) or change their section if relevant. Also an opportunity to fix some typo, or rewrite things
2021-08-25 15:51:36 +02:00
- [ ] Add file for fastlane under ./fastlane/metadata/android/en-US/changelogs
2022-02-02 18:43:49 +01:00
- [ ] (optional) Push the branch and start a draft PR (will not be merged), to check that the CI is happy with all the changes.
2022-02-02 15:41:37 +01:00
- [ ] Finish release with gitflow, delete the draft PR (if created)
- [ ] Push `main` and the new tag `v1.2.3` to origin
2021-08-25 15:51:36 +02:00
- [ ] Checkout `develop`
2022-02-02 15:41:37 +01:00
- [ ] Increase version (versionPatch + 2) in `./vector/build.gradle`
2021-09-09 09:54:51 +02:00
- [ ] Change the value of SDK_VERSION in the file `./matrix-sdk-android/build.gradle`
2021-08-25 15:51:36 +02:00
- [ ] Commit and push `develop`
- [ ] Wait for [Buildkite](https://buildkite.com/matrix-dot-org/element-android/builds?branch=main) to build the `main` branch.
- [ ] Run the script `~/scripts/releaseElement.sh`. It will download the APKs from Buildkite check them and sign them.
- [ ] Install the APK on your phone to check that the upgrade went well (no init sync, etc.)
2022-02-02 15:41:37 +01:00
- [ ] Create the release on gitHub [from the tag](https://github.com/vector-im/element-android/tags), copy paste the block from the file CHANGES.md
- [ ] Add the 4 signed APKs to the GitHub release
- [ ] Ping the Android Internal room
### Once tested and validated internally
2022-06-08 10:45:26 +02:00
- [ ] Create a new open testing release on the GooglePlay console and upload the 4 signed Apks.
2021-08-25 15:51:36 +02:00
- [ ] Check that the version codes are correct
- [ ] Copy the fastlane change to the GooglePlay console in the section en-GB.
2022-06-08 10:45:26 +02:00
- [ ] Push the open testing release to 100% of the users
2022-06-08 10:26:56 +02:00
- [ ] Notify the F-Droid team [here](https://matrix.to/#/!LAAuJLQXYHjMNWKrCK:matrix.org?via=matrix.org&via=bubu1.eu&via=lant.uk) so that they can schedule the publication on F-Droid
2022-06-08 10:23:19 +02:00
- [ ] The application is available to the PlayStore testers (live). Google can take between 1 hour and up to 7 days to approve the release.
2022-06-08 10:26:56 +02:00
- [ ] The application is available to the F-Droid users.
2021-08-25 15:51:36 +02:00
2022-06-08 10:45:26 +02:00
### Once open testing is live on PlayStore
2021-08-25 15:51:36 +02:00
- [ ] Ping the Android public room and update its topic
2022-06-08 10:26:56 +02:00
### Once Live on F-Droid
- [ ] Update the Android public room topic
2022-06-08 10:45:26 +02:00
### After at least 2 days (generally next Monday)
2021-08-25 15:51:36 +02:00
- [ ] Check the [rageshakes](https://github.com/matrix-org/element-android-rageshakes/issues)
- [ ] Check the crash reports on the GooglePlay console
- [ ] Check the Android Element room for any reported issues on the new version
2022-06-08 10:45:26 +02:00
- [ ] If all is OK, promote the open testing release to production. Generally using a 100% roll out, but can be a smaller value depending on the release content.
2022-06-08 10:23:19 +02:00
- [ ] The application is available to the PlayStore users (live). Google can take (again!) between 1 hour and up to 7 days to approve the release.
2021-08-25 15:51:36 +02:00
2022-06-08 10:45:26 +02:00
### Once production is live on PlayStore
- [ ] Ping the Android public room and update its topic
- [ ] Add an entry in the internal diary
2021-08-25 15:51:36 +02:00
### Android SDK2
2022-02-02 15:41:37 +01:00
The SDK2 and the sample app are released only when Element has been pushed to production.
2021-08-25 15:51:36 +02:00
- [ ] Checkout the `main` branch on Element Android project
#### On the SDK2 project
https://github.com/matrix-org/matrix-android-sdk2
- [ ] Create a release with GitFlow
2021-09-27 15:41:17 +02:00
- [ ] Update the value of VERSION_NAME in the file gradle.properties
2021-08-25 15:51:36 +02:00
- [ ] Update the files `./build.gradle` and `./gradle/gradle-wrapper.properties` manually, to use the latest version for the dependency. You can get inspired by the same files on Element Android project.
- [ ] Run the script `./tools/import_from_element.sh`
2021-09-27 15:41:17 +02:00
- [ ] Check the diff in the file `./matrix-sdk-android/build.gradle` and restore what may have been erased (in particular the line `apply plugin : "com.vanniktech.maven.publish" ` and the line about the version)
2021-09-09 22:20:18 +02:00
- [ ] Let the script finish to build the library
2021-08-25 15:51:36 +02:00
- [ ] Update the file `CHANGES.md`
- [ ] Finish the release using GitFlow
2021-09-27 15:41:17 +02:00
- [ ] Push the branch `main`, the new tag and the branch `develop` to origin
2021-09-09 22:20:18 +02:00
##### Release on MavenCentral
- [ ] Run the command `./gradlew publish --no-daemon --no-parallel`. You'll need some non-public element to do so
- [ ] Connect to https://s01.oss.sonatype.org
- [ ] Click on Staging Repositories and check the the files have been uploaded
- [ ] Click on close
- [ ] Wait (check Activity tab until step "Repository closed" is displayed)
- [ ] Click on release. The staging repository will disappear
- [ ] Check that the release is available in https://repo1.maven.org/maven2/org/matrix/android/matrix-android-sdk2/ (it can take a few minutes)
##### Release on GitHub
2021-08-25 15:51:36 +02:00
- [ ] Create the release on GitHub from [the tag](https://github.com/matrix-org/matrix-android-sdk2/tags)
- [ ] Upload the AAR on the GitHub release
### Android SDK2 sample
https://github.com/matrix-org/matrix-android-sdk2-sample
2022-04-26 13:39:56 +02:00
- [ ] Update the dependency to the new version of the SDK2. It can take a few minutes for MavenCentral to make the library available. You can check status on https://repo1.maven.org/maven2/org/matrix/android/matrix-android-sdk2/
2021-08-25 15:51:36 +02:00
- [ ] Build and run the sample, you may have to fix some API break
- [ ] Commit and push directly on `main`
validations :
required : true