Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Release] Element Android v1.5.2 #7297

Closed
56 of 68 tasks
bmarty opened this issue Oct 5, 2022 · 3 comments
Closed
56 of 68 tasks

[Release] Element Android v1.5.2 #7297

bmarty opened this issue Oct 5, 2022 · 3 comments
Assignees
Labels
🚀 Release T-Task Refactoring, enabling or disabling functionality, other engineering tasks

Comments

@bmarty
Copy link
Member

bmarty commented Oct 5, 2022

Release checklist

Before the release

Weblate

  • 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.

Check PRs

Do the release

  • Make sure develop and main are up to date (git pull)
  • Checkout develop and create a release with gitflow, branch name release/1.5.2
  • Check the crashes from the PlayStore
  • Check the rageshake with the current dev version: https://github.com/matrix-org/element-android-rageshakes/labels/1.5.2-dev
  • Run the integration test, and especially UiAllScreensSanityTest.allScreensTest()
  • 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 build --version v1.5.2 --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
  • Add file for fastlane under ./fastlane/metadata/android/en-US/changelogs
  • (optional) Push the branch and start a draft PR (will not be merged), to check that the CI is happy with all the changes.
  • Finish release with gitflow, delete the draft PR (if created)
  • Push main and the new tag v1.5.2 to origin
  • Checkout develop
  • Increase version (versionPatch + 2) in ./vector/build.gradle
  • Change the value of SDK_VERSION in the file ./matrix-sdk-android/build.gradle
  • Commit and push develop
  • Wait for Buildkite 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.)
  • Create the release on gitHub from the tag, 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

  • 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 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
  • 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.

  • 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
  • Update the value of VERSION_NAME in the file gradle.properties
  • 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
  • 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)
  • Let the script finish to build the library
  • Update the file CHANGES.md
  • Finish the release using GitFlow
  • Push the branch main, the new tag and the branch develop to origin
Release on MavenCentral
  • Checkout the branch main
  • Run the command ./gradlew publish --no-daemon --no-parallel. You'll need some non-public element to do so
  • Run the command ./gradlew closeAndReleaseRepository. If it is working well, you can jump directly to the final step of this section.

If ./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

Final step

Release on GitHub
  • Create the release on GitHub from the tag
  • Upload the AAR on the GitHub release

Android SDK2 sample

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

@bmarty bmarty self-assigned this Oct 5, 2022
@bmarty
Copy link
Member Author

bmarty commented Oct 5, 2022

image

@bmarty
Copy link
Member Author

bmarty commented Oct 5, 2022

Still some crash when opening unknown room. #6978 does not fix completely...

Caused by java.lang.NullPointerException:
  at im.vector.app.features.home.room.detail.composer.MessageComposerViewModel.<init> (MessageComposerViewModel.kt:9)

@bmarty
Copy link
Member Author

bmarty commented Oct 5, 2022

image

@ganfra ganfra added the T-Task Refactoring, enabling or disabling functionality, other engineering tasks label Oct 5, 2022
@bmarty bmarty closed this as completed Nov 7, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🚀 Release T-Task Refactoring, enabling or disabling functionality, other engineering tasks
Projects
None yet
Development

No branches or pull requests

2 participants