2023-02-15 15:11:03 +00:00
# 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)
```
2023-02-16 16:50:51 +00:00
k9mail.storeFile=< path to keystore >
k9mail.storePassword=< password ' tb-android keystore ' in 1Password >
k9mail.keyAlias=k9mail
k9mail.keyPassword=< password ' k9mail @ tb-android ' in 1Password >
2023-02-15 15:11:03 +00:00
```
2023-10-04 12:42:26 +00:00
## One-time setup for F-Droid builds
2023-10-05 13:50:04 +00:00
1. Install _fdroidserver_ by following the [installation instructions ](https://f-droid.org/docs/Installing_the_Server_and_Repo_Tools ).
2. [Sign up for a Gitlab account ](https://gitlab.com/users/sign_up ) and fork the [fdroiddata ](https://gitlab.com/fdroid/fdroiddata ) repository.
3. Clone your fork of the _fdroiddata_ repository.
2023-10-04 12:42:26 +00:00
2023-02-15 15:11:03 +00:00
## 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
2023-11-02 11:18:12 +00:00
1. Go to https://github.com/thunderbird/thunderbird-android/tags and select the appropriate tag
2023-02-15 15:11:03 +00:00
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
2023-10-05 13:50:04 +00:00
1. Fetch the latest changes from the _fdroiddata_ repository.
2. Switch to a new branch in your copy of the _fdroiddata_ repository.
2023-10-04 12:42:26 +00:00
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"
2023-10-05 13:50:04 +00:00
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.
2023-10-04 12:42:26 +00:00
7. Open a merge request on Gitlab. (The message from the server after the push in the previous step should contain a URL)
2023-10-05 13:50:04 +00:00
8. Select the _App update_ template and fill it out.
2023-10-04 12:42:26 +00:00
9. Create merge request and the F-Droid team will do the rest.
2023-02-15 15:11:03 +00:00
### Create release on Google Play
TODO