build,docs: on-device release verification gate (releaseTest build) #20

Merged
makiolaj merged 3 commits from chore/release-verification-process into main 2026-06-21 11:01:29 +00:00
Owner

Adds a mandatory on-device verification step to the release process so release-only / first-run bugs are caught before tagging — the gap that let the v2.7.0 launch crash ship.

What's new

  • releaseTest build type — same R8 shrinking + obfuscation as release, but debug-signed with a .releasetest applicationId suffix so it installs alongside the production and debug apps. Never published; CI still only builds the real release variant from the tag.
  • scripts/verify-release.sh — builds + installs the release candidate and resets it to a first-run (permission-not-granted) state, with an on-device checklist.
  • docs/RELEASING.md — formalizes the release/vX.Y.Z branch flow and the on-device gate before tagging.

Why
The v2.7.0 launch crash only manifested in the minified release build on a device that hadn't already granted calendar access — the debug build and an already-permissioned phone both hid it.

Validated: built releaseTest (R8 mapping generated), installed alongside prod+debug, and confirmed a permission-denied launch of the pre-fix build reproduces the exact crash — i.e. the new gate catches it. CI untouched (Debug-only tasks).

Adds a mandatory on-device verification step to the release process so release-only / first-run bugs are caught before tagging — the gap that let the v2.7.0 launch crash ship. **What's new** - `releaseTest` build type — same R8 shrinking + obfuscation as `release`, but debug-signed with a `.releasetest` applicationId suffix so it installs alongside the production and debug apps. Never published; CI still only builds the real `release` variant from the tag. - `scripts/verify-release.sh` — builds + installs the release candidate and resets it to a first-run (permission-not-granted) state, with an on-device checklist. - `docs/RELEASING.md` — formalizes the `release/vX.Y.Z` branch flow and the on-device gate before tagging. **Why** The v2.7.0 launch crash only manifested in the minified release build on a device that hadn't already granted calendar access — the debug build and an already-permissioned phone both hid it. **Validated:** built `releaseTest` (R8 mapping generated), installed alongside prod+debug, and confirmed a permission-denied launch of the pre-fix build reproduces the exact crash — i.e. the new gate catches it. CI untouched (Debug-only tasks).
makiolaj added 1 commit 2026-06-21 10:08:51 +00:00
build,docs: add on-device release verification gate
All checks were successful
CI / ci (push) Successful in 4m22s
6640794721
Adds a mandatory pre-tag step to the release process: build the R8-shrunk
release candidate and smoke-test it on a real device, including a first-run /
permission-not-granted state. The v2.7.0 launch crash (calendar observer
registered before the permission gate) reached users because it only manifests
in the minified release build on a device without the permission already
granted — the debug build and an already-permissioned phone both hid it.

- New `releaseTest` build type: same R8 shrinking + obfuscation as `release`,
  but debug-signed with a `.releasetest` applicationId suffix so it installs
  alongside the production and debug apps. Never published; CI only ever builds
  the real `release` variant from the tag.
- scripts/verify-release.sh: builds + installs `releaseTest` and resets it to a
  first-run state, with an on-device checklist.
- docs/RELEASING.md: formalize the release/vX.Y.Z branch flow and the on-device
  verification gate before tagging.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
makiolaj force-pushed chore/release-verification-process from 6640794721 to df203c0b6b 2026-06-21 10:33:10 +00:00 Compare
makiolaj added 1 commit 2026-06-21 10:33:57 +00:00
docs(architecture): describe merge-driven release flow
All checks were successful
Translations / check (pull_request) Successful in 6s
CI / ci (pull_request) Successful in 9m14s
8a80478555
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
makiolaj merged commit 9fb3c780f1 into main 2026-06-21 11:01:29 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: makiolaj/calendula#20