Let a new release replace an older version still in store review #15

Merged
backmeupplz merged 1 commit from feat/release-replaces-pending-review into main 2026-10-04 01:27:20 +00:00
backmeupplz commented 2026-10-04 01:18:55 +00:00 (Migrated from github.com)

Owner decision: publishing a newer GitHub release should replace a previous version that's still in store review, instead of failing.

  • Chrome: if the pending submission is an older version in PENDING_REVIEW, the job calls :cancelSubmission (journaled as cancel) and then uploads and submits as usual. Newer, unparseable or STAGED submissions still fail closed with no writes.
  • Play: commits with changesInReviewBehavior=CANCEL_IN_REVIEW_AND_SUBMIT. Before signing or uploading, it refuses if the production track already has a higher versionCode.
  • docs/STORE_RELEASE.md is updated to match.

Checks

  • python3 -m unittest discover -s scripts/release -p 'test_*.py': 43 tests pass (1 skipped, as before).
  • New tests: Chrome cancels an older pending review, then uploads and submits. It refuses 0.2.4, 0.10.0, unparseable and STAGED pending versions with no writes. Play refuses to replace a newer release and never signs.
  • Not exercised against the live store APIs yet. The first real run will be v0.2.4, which replaces 0.2.3, currently in review in both stores.

🤖 Generated with Claude Code

Owner decision: publishing a newer GitHub release should replace a previous version that's still in store review, instead of failing. - **Chrome:** if the pending submission is an **older** version in `PENDING_REVIEW`, the job calls `:cancelSubmission` (journaled as `cancel`) and then uploads and submits as usual. Newer, unparseable or `STAGED` submissions still fail closed with no writes. - **Play:** commits with `changesInReviewBehavior=CANCEL_IN_REVIEW_AND_SUBMIT`. Before signing or uploading, it refuses if the production track already has a higher versionCode. - `docs/STORE_RELEASE.md` is updated to match. ## Checks - `python3 -m unittest discover -s scripts/release -p 'test_*.py'`: 43 tests pass (1 skipped, as before). - New tests: Chrome cancels an older pending review, then uploads and submits. It refuses `0.2.4`, `0.10.0`, unparseable and `STAGED` pending versions with no writes. Play refuses to replace a newer release and never signs. - Not exercised against the live store APIs yet. The first real run will be v0.2.4, which replaces 0.2.3, currently in review in both stores. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.
No description provided.