Skip to content

Latest commit

 

History

History
105 lines (71 loc) · 3.2 KB

File metadata and controls

105 lines (71 loc) · 3.2 KB

Release Process for Yarrand

This document describes the steps to prepare and publish a new release of Yarrand, including APK generation, signing, renaming, and GitHub release management.

1. Prepare the environment

  • Make sure you have installed:
    • JDK 17+
    • Android SDK
    • Gradle
    • gh CLI for managing GitHub releases
    • adb (Android Debug Bridge) for device testing

2. Set up keystore for signing

The keystore is used to sign the release APK cryptographically. It's stored in keystore.jks in the project root.

Important: The keystore and its passwords should be kept secure and not committed to version control.

Default keystore passwords (used in Makefile):

  • Keystore password: password
  • Key password: password

To override these, set environment variables before building:

export KEYSTORE_PASSWORD="your_keystore_password"
export KEY_PASSWORD="your_key_password"

3. Update the version

  • Edit app/build.gradle.kts and update versionName and versionCode as needed.
  • Update any relevant documentation.

4. Build and sign APKs

Use the Makefile to build, sign, and prepare the APKs:

make clean
make release-rename   # Builds, signs, and renames the release APK to yarrand-vX.Y.Z.apk
make debug-rename     # (Optional) Builds and renames the debug APK to yarrand-vX.Y.Z-debug.apk

The release APK is automatically signed using the keystore configuration in app/build.gradle.kts.

Testing the APK on device

To quickly test the release APK on a connected Android device:

make install-release  # Builds, signs, and installs the release APK
make install-debug    # (Optional) Builds and installs the debug APK

5. Create the release tag

git tag -a vX.Y.Z -m "Release vX.Y.Z: <summary of changes>"
git push --tags

6. Create/update the release on GitHub

  • Prepare the release notes using git log:
git log v<PREVIOUS_VERSION>..HEAD --oneline --no-merges > release-notes.md
  • Review the previous release notes in GitHub for formatting and style consistency. IMPORTANT: The release notes are focused on user-facing changes and improvements, not internal implementation details.
  • Review and edit release-notes.md as needed as explained above.
  • Upload the renamed release APK:
gh release create vX.Y.Z yarrand-vX.Y.Z.apk --title "Yarrand vX.Y.Z" --notes-file release-notes.md
  • If the release already exists and you want to update the APK:
gh release upload vX.Y.Z yarrand-vX.Y.Z.apk --clobber

7. Verify and publish

  • Check that the GitHub release has the correct APK and complete notes
  • Perform final tests on a real device with the APK from the GitHub release download

8. Checklist for each release

  • Version updated in Gradle and docs
  • README reviewed
  • Release APK built and signed
  • Tested on real device (via make install-release)
  • Tag created and pushed
  • Release notes generated from git log
  • Release created/updated on GitHub with APK and notes
  • APK tested by downloading from GitHub release

This process ensures consistent, reproducible, and cryptographically signed releases that are easy to install for users and collaborators.