thunderbird-android/docs/RELEASING.md

3.5 KiB

Create K-9 Mail releases

One-time setup

  1. Download tb-android keystore from 1Password and place it somewhere outside the root of the Git repository.
  2. Add the following to ~/.gradle/gradle.properties (create the file if necessary)
    k9mail.storeFile=<path to keystore>
    k9mail.storePassword=<password 'tb-android keystore' in 1Password>
    k9mail.keyAlias=k9mail
    k9mail.keyPassword=<password 'k9mail@tb-android' in 1Password>
    

One-time setup for F-Droid builds

  1. Install fdroidserver by following the installation instructions.
  2. Sign up for a Gitlab account and fork the fdroiddata repository.
  3. Clone your fork of the fdroiddata repository.

Release a beta version

  1. Update versionCode and versionName in app/k9mail/build.gradle
  2. Create change log entries in
    • app/ui/legacy/src/main/res/raw/changelog_master.xml
    • fastlane/metadata/android/en-US/changelogs/${versionCode}.txt Use past tense. Try to keep them high level. Focus on the user (experience).
  3. Commit the changes. Message: "Version $versionName"
  4. Run gradlew clean :app:k9mail:assembleRelease --no-build-cache
  5. Update an existing installation to make sure the app is signed with the proper key and runs on a real device.
    adb install -r app/k9mail/build/outputs/apk/release/k9mail-release.apk
    
  6. Tag as $versionName, e.g. 6.508
  7. Copy app/k9mail/build/outputs/apk/release/k9mail-release.apk as k9-${versionName}.apk to Google Drive (MZLA Team > K9 > APKs)
  8. Change versionName in app/k9mail/build.gradle to next version name followed by -SNAPSHOT
  9. Commit the changes. Message: "Prepare for version $newVersionName"
  10. Update gh-pages branch with the new change log
  11. Push main branch
  12. Push tags
  13. Push gh-pages branch

Create release on GitHub

  1. Go to https://github.com/thundernest/k-9/tags and select the appropriate tag
  2. Click "Create release from tag"
  3. Fill out the form
    • Click "Generate release notes"
    • Replace contents under "What's changed" with change log entries
    • Add GitHub handles in parentheses to change log entries
    • If necessary, add another entry "Internal changes" (or similar) so people who contributed changes outside of the entries mentioned in the change log can be mentioned via GitHub handle.
    • Attach the APK
    • Select "Set as a pre-release"
    • Click "Publish release"

Create release on F-Droid

  1. Fetch the latest changes from the fdroiddata repository.
  2. Switch to a new branch in your copy of the fdroiddata repository.
  3. Edit metadata/com.fsck.k9.yml to create a new entry for the version you want to release. Usually it's copy & paste of the previous entry and adjusting versionName, versionCode, and commit (use the tag name). Leave CurrentVersion and CurrentVersionCode unchanged. Those specify which version is the stable/recommended build.
  4. Commit the changes. Message: "Update K-9 Mail to $newVersionName"
  5. Run fdroid build --latest com.fsck.k9 to build the project using F-Droid's toolchain.
  6. Push the changes to your fork of the fdroiddata repository.
  7. Open a merge request on Gitlab. (The message from the server after the push in the previous step should contain a URL)
  8. Select the App update template and fill it out.
  9. Create merge request and the F-Droid team will do the rest.

Create release on Google Play

TODO