Skip to content

fix(release): give v0.4.15 its own versionCode so the release can actually ship - #180

Merged
dzianisv merged 1 commit into
mainfrom
release/v0.4.15-parity
Aug 14, 2026
Merged

fix(release): give v0.4.15 its own versionCode so the release can actually ship#180
dzianisv merged 1 commit into
mainfrom
release/v0.4.15-parity

Conversation

@dzianisv

Copy link
Copy Markdown
Owner

Why

Cutting v0.4.15 (f564869) bumped package.json + app.json expo.version but not android/app/build.gradle (still versionCode 41 / versionName "0.4.14") or app.json android.versionCode (still 41). On tag v0.4.15:

  • F-Droid publish 31820921979 failed at npm run check:versions, so nothing reached fdroid/repo.
  • No GitHub release exists for v0.4.15build.yml's release job needs build + build-fdroid, and the same parity check fails the test job. The in-app update check added in feat(update): tell sideloaded installs that a newer version exists #179 polls GitHub releases/latest, so the mechanism this release exists to ship had nothing to find.
  • versionCode 41 is v0.4.14's. F-Droid and direct-APK installs key upgrades off versionCode, so even a green publish would not have been offered to the stale cohort. Play was unaffected only because the publish workflow overrides the code with run_number + 100 (its production upload of 0.4.15 is fine).

What changed

  • versionCode 42 / versionName "0.4.15" in android/app/build.gradle, android.versionCode 42 in app.json.
  • distribution/changelogs/42.txt + fastlane/metadata/android/en-US/changelogs/42.txt (F-Droid reads the fastlane copy).
  • scripts/check-version-parity.mjs now also requires distribution/changelogs/<versionCode>.txt to exist and to describe the version being released, plus the fastlane copy. A stale versionCode is otherwise internally consistent and silent — the existing checks all passed on it.

Verification

  • npm run check:versionsVersion metadata aligned: 0.4.15 (42); with the code put back to 41 it fails with distribution/changelogs/41.txt describes "v0.4.14 …", not v0.4.15 — versionCode 41 belongs to an earlier release, so bump it. It discriminates.
  • npm test → 320 pass.

After merge the v0.4.15 tag is moved to this commit so the F-Droid publish and the GitHub release actually run for it. AGE-111.

…ually ship

The v0.4.15 release commit (f564869) bumped package.json and app.json
`expo.version` but left `android/app/build.gradle` at versionCode 41 /
versionName "0.4.14" and app.json `android.versionCode` at 41. Consequences,
all observed on tag v0.4.15:

- `npm run check:versions` fails, so the F-Droid publish (run 31820921979)
  died at its first step and the `release` job in build.yml never ran — no
  GitHub release exists for v0.4.15. That is the source the new in-app update
  check polls, so the mechanism this release exists to ship had nothing to
  find.
- versionCode 41 is v0.4.14's. F-Droid and every direct-APK install key
  upgrades off versionCode, so even a successful publish would not have been
  offered to the 0.4.10/0.4.14 cohort. Play was unaffected only because the
  publish workflow overrides the code with run_number+100.

Fix is the missing half of the release bump: versionCode 42 / versionName
0.4.15, plus the changelog files named after the code (distribution/ for the
record, fastlane/ for F-Droid).

check-version-parity.mjs now also requires distribution/changelogs/<code>.txt
to exist and to describe the version being released, and the fastlane copy to
exist. A stale versionCode is otherwise internally consistent and silent;
verified it discriminates — code 41 with version 0.4.15 fails, 42 passes.

Tests: npm test 320 pass.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
@dzianisv
dzianisv merged commit c43ec27 into main Aug 14, 2026
7 checks passed
@dzianisv

Copy link
Copy Markdown
Owner Author

Merged from AGE-109: main's test job was red since f564869 (version parity), which blocked every PR's required checks including #178. This PR was green and CLEAN, so I landed it rather than leave main broken. Nothing else changed.

dzianisv added a commit that referenced this pull request Aug 14, 2026
…nal (#181)

Two things the v0.4.15 cut got wrong were things this doc told it to do.

- PUBLISHING.md step 1 said not to bother hand-bumping `android.versionCode`.
  That is true for Play (CI overrides it with run_number+100) and false for the
  two channels that carry most of the install base: F-Droid and direct APK key
  upgrades off versionCode, so reusing the previous one means the release is
  never offered to anyone who already has that code. Step 1 now lists all four
  places to bump plus the changelog named after the code, and step 5 adds the
  two channel checks (GitHub release — the source the in-app update check polls
  — and the F-Droid index) that were previously implied to be unnecessary.
- docs/playstore.md release history: v0.4.15 at production versionCode 153,
  the first release to reach production from a tag push alone (#177), plus the
  superseded 152 from the pre-#180 tag.

Co-authored-by: engineer <engineer@gray-knight-m1.local>
Co-authored-by: Paperclip <noreply@paperclip.ing>
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