Skip to content

Derive Android app versions from root VERSION - #413

Merged
zeth merged 1 commit into
mainfrom
feat/root-version-android
Nov 9, 2026
Merged

zeth merged 1 commit into
mainfrom
feat/root-version-android

Conversation

@zeth

@zeth zeth commented Nov 8, 2026

Copy link
Copy Markdown
Contributor

Android still hardcodes 0.2.0-dev / version code 2, so a root-only product version change leaves its APK behind. Read root VERSION through a tracked Gradle file input and derive versionCode as major * 1000000 + minor * 1000 + patch. The current version becomes 0.2.6 / 2006, with -debug preserved for debug builds.

Bound major to 0–2099 and minor/patch to 0–999, and reject zero, missing or unsupported versions. This preserves numeric release ordering within the supported range and stays below the Google Play code limit. Rebuilds retain their code; every published Android release needs a greater product version.

Root-only version edits now select the Android build/unit checks. CI exercises root changes with Gradle configuration-cache reuse and checks the assembled APK's binary manifest against root VERSION. Update the version policy and release runbook.

Validation: debug APK assembly and Android unit tests pass; debug/release manifests contain 0.2.6-debug / 0.2.6 and code 2006; the APK verifier passes and rejects a wrong suffix. Gradle regression cases cover patch/minor/major changes, cache reuse/invalidation, bounds and missing/malformed input. All 19 release tests, core/contract boundary checks, workflow YAML parsing and diff checks pass.

Continues #130 and #122 after #410 and #411. Keep #130 open for the final consumer/artifact audit; this PR does not publish a release or change root VERSION.

@zeth
zeth merged commit 276e218 into main Nov 9, 2026
61 checks passed
@zeth
zeth deleted the feat/root-version-android branch November 9, 2026 00:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant