name: Release checklist
description: Checklist for each release. This template is only for the core team.
title: "[Release] Element Android v"
labels: [🚀 Release]
assignees:
  - bmarty

body:
  - type: textarea
    id: checklist
    attributes:
      label: Release checklist
      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.
        - [ ] While Weblate is locked, and after the PR from Weblate has been merged, handle all the TODOs in the main `strings.xml` file
        - [ ] Run the script `./tools/release/pushPlayStoreMetaData.sh`. You can check in the GooglePlay console the Activity log to check the effect.
        - [ ] Ensure all [the required PRs](https://github.com/element-hq/element-android/pulls?q=is%3Aopen+is%3Apr+label%3AZ-NextRelease) have been merged

        ### Do the release

        - [ ] Run the script ./tools/release/releaseScript.sh and follow the steps.

        ### Once tested and validated internally

        - [ ] Create a new open testing release on the GooglePlay console and upload the 4 signed Apks.
        - [ ] Check that the version codes are correct
        - [ ] Copy the fastlane change to the GooglePlay console in the section en-GB.
        - [ ] Push the open testing release to 100% of the users
        - [ ] 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
        - [ ] The application is available to the PlayStore testers (live). Google can take between 1 hour and up to 7 days to approve the release.
        - [ ] The application is available to the F-Droid users.

        ### Once open testing is live on PlayStore

        - [ ] Ping the Android public room and update its topic

        ### Once Live on F-Droid

        - [ ] Update the Android public room topic

        ### After at least 2 days (generally next Monday)

        - [ ] 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
        - [ ] 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.
        - [ ] 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.

        ### Once production is live on PlayStore

        - [ ] Ping the Android public room and update its topic
        - [ ] Add an entry in the internal diary

        ### Android SDK2

        The SDK2 and the sample app are released only when Element has been pushed to production.

        - [ ] On the [SDK2 project](https://github.com/matrix-org/matrix-android-sdk2), run the script ./tools/releaseScript.sh and follow the instructions.

        Note: if the step `./gradlew closeAndReleaseRepository` fails (for instance, several repositories are waiting to be handled), you have to close and release the repository manually. Do the following steps:

        - [ ] 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

        ### Android SDK2 sample

        https://github.com/matrix-org/matrix-android-sdk2-sample

        - [ ] 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/
        - [ ] Build and run the sample, you may have to fix some API break
        - [ ] Commit and push directly on `main`
    validations:
      required: true
