Skip to content

docs(releasing): correct the runbook before it is used for 2.2.0 - #998

Merged
simonoppowa merged 2 commits into
developfrom
fix/releasing-runbook-accuracy
Sep 1, 2026
Merged

docs(releasing): correct the runbook before it is used for 2.2.0#998
simonoppowa merged 2 commits into
developfrom
fix/releasing-runbook-accuracy

Conversation

@simonoppowa

Copy link
Copy Markdown
Owner

Found by the docs/ audit. This is the one worth landing before 2.2.0 is cut, because the runbook misdescribes the Android release step and 2.2.0 is the release that will hit it.

The dangerous one

The page told the releaser that android-deploy uploads to the Play internal track, so the only manual Android step is promoting internal to production.

It attempts the upload. Since 2.1.0 the bundle declares android.permission.health.*, and the Play Publishing API rejects health-permission bundles with "You must let us know whether your app includes any health features" regardless of the declaration — #942, a known upstream defect that fastlane closed unfixed and expo/eas-cli reproduced from a different toolchain. The workflow tolerates that one error, emits a ::warning::, and writes the recovery steps into the run's step summary.

So a green android-deploy does not mean a build reached the track. A releaser following the old text would promote an empty internal track and wonder where the build went.

The recovery procedure is now on the page — including step 3, reading the console's review warnings before publishing, which is the only place Play reports them and precisely how #959's minSdk regression went unnoticed for eight days.

The one that was false on the day it was written

A whole section described update-release-fingerprint.yml opening a PR into develop with the signing SHA-256, and deploy-site.yml publishing Pages. Both workflows and the entire docs/site/ tree were deleted with the project website in #786 on 2026-08-22 — five days before this page was committed. The checklist item "Merge the release-fingerprint PR into develop" told the releaser to wait for a PR nothing opens.

The Notes paragraph claiming those two workflows "exist only on main" is replaced. Neither exists anywhere, and the real difference is the reverse: develop carries ios-integration-attempt.yml, main does not.

The rest

  • fastlane/metadata/android/en-US/changelogs/ is in use again — 63.txt landed this morning with the 2.2.0 notes. The page said to treat the directory as unused on the strength of the stale 12.txt.
  • Version-bump example moved from 2.0.2/+61 to 2.2.0/+63.

Checked

  • releasing_doc_test.dart and ai_architecture_doc_test.dart both pass — every relative link and anchor still resolves, including the new #the-android-upload-usually-needs-a-hand
  • Workflow inventory verified per branch with git ls-tree on origin/main and origin/develop
  • The android-deploy fallback read in full on origin/release/2.2.0

Refs #991, which tracks this file among three docs describing code that has moved.

Every claim checked against origin/release/2.2.0. Five were wrong, and the two
that matter both concern the Android step -- the one part of a release that
actually needs a human.

- **The runbook said `android-deploy` uploads to the Play `internal` track.**
  It attempts to. Since 2.1.0 the bundle declares `android.permission.health.*`
  and the Publishing API rejects it with "You must let us know whether your app
  includes any health features" regardless of the declaration (#942). The step
  tolerates that one error, warns, and writes recovery steps into the run's step
  summary -- so a green job does not mean a build reached the track. A releaser
  following the old text believed it had. The recovery procedure is now on the
  page, including reading the console's review warnings, which is the only place
  Play reports them and how #959's minSdk regression sat unnoticed for eight
  days. "Promote the Android build" now says to check the summary first.

- **`update-release-fingerprint.yml`, `deploy-site.yml` and `docs/site/` do not
  exist.** They went with the project website in #786, five days before this
  page was written -- so the section was false the day it was committed, and the
  checklist told the releaser to wait for a PR that nothing opens. Removed, and
  the Notes paragraph claiming those two workflows "exist only on `main`"
  replaced: neither exists anywhere, and the real difference is the reverse,
  `develop` carrying `ios-integration-attempt.yml` that `main` lacks.

- **`fastlane/metadata/android/.../changelogs/` is in use again.** The page said
  to treat it as unused on the strength of a stale `12.txt`; `63.txt` now holds
  the 2.2.0 notes. The item now says to write the file, and that the pipeline
  still does not upload it.

- The version-bump example moves from `2.0.2`/`+61` to `2.2.0`/`+63`.

Refs #991
Copilot AI lite review requested due to automatic review settings September 1, 2026 15:28

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The updated runbook text includes non-linking upstream issue references and an ungrammatical sentence in the Android-upload section that should be corrected before the doc is relied on for release steps.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Updates the release runbook to accurately reflect current CI behavior for Android deployments (especially the Play Publishing API health-permission failure mode) and removes/adjusts outdated workflow and metadata guidance ahead of the 2.2.0 release.

Changes:

  • Clarifies that android-deploy may succeed while the Play internal upload did not occur, and documents the manual recovery steps via the run step summary.
  • Updates the pre-release checklist to reflect current Play “what’s new” changelog file usage and manual store listing updates.
  • Removes stale references to deleted website/fingerprint workflows and corrects the workflow-set differences between main and develop.
File summaries
File Description
docs/RELEASING.md Corrects Android release instructions and removes/updates outdated workflow and metadata guidance.
Review details

Suppressed comments (1)

docs/RELEASING.md:41

  • This sentence is ungrammatical (“is asked no health question”). Reword to clearly state that the console upload does not prompt for the health declaration and succeeds.
bundle uploaded by hand through the console is asked no health question and goes through.
  • Files reviewed: 1/1 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread docs/RELEASING.md Outdated
Copilot: `fastlane#22204` does not auto-link across repositories, so the
tracking issues behind the Play upload defect were unreachable from the page
that tells a releaser to work around it. Full URLs for both fastlane issues and
the expo one.
Copilot AI review requested due to automatic review settings September 1, 2026 16:04

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

Documentation-only changes are consistent with the repository’s current workflows and reduce release risk without introducing code-path or operational changes.

Review details
  • Files reviewed: 1/1 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

@simonoppowa
simonoppowa merged commit 9a9282b into develop Sep 1, 2026
14 checks passed
simonoppowa added a commit that referenced this pull request Sep 1, 2026
* docs(releasing): correct the runbook before it is used for 2.2.0

Every claim checked against origin/release/2.2.0. Five were wrong, and the two
that matter both concern the Android step -- the one part of a release that
actually needs a human.

- **The runbook said `android-deploy` uploads to the Play `internal` track.**
  It attempts to. Since 2.1.0 the bundle declares `android.permission.health.*`
  and the Publishing API rejects it with "You must let us know whether your app
  includes any health features" regardless of the declaration (#942). The step
  tolerates that one error, warns, and writes recovery steps into the run's step
  summary -- so a green job does not mean a build reached the track. A releaser
  following the old text believed it had. The recovery procedure is now on the
  page, including reading the console's review warnings, which is the only place
  Play reports them and how #959's minSdk regression sat unnoticed for eight
  days. "Promote the Android build" now says to check the summary first.

- **`update-release-fingerprint.yml`, `deploy-site.yml` and `docs/site/` do not
  exist.** They went with the project website in #786, five days before this
  page was written -- so the section was false the day it was committed, and the
  checklist told the releaser to wait for a PR that nothing opens. Removed, and
  the Notes paragraph claiming those two workflows "exist only on `main`"
  replaced: neither exists anywhere, and the real difference is the reverse,
  `develop` carrying `ios-integration-attempt.yml` that `main` lacks.

- **`fastlane/metadata/android/.../changelogs/` is in use again.** The page said
  to treat it as unused on the strength of a stale `12.txt`; `63.txt` now holds
  the 2.2.0 notes. The item now says to write the file, and that the pipeline
  still does not upload it.

- The version-bump example moves from `2.0.2`/`+61` to `2.2.0`/`+63`.

Refs #991

* docs(releasing): make the upstream issue references clickable

Copilot: `fastlane#22204` does not auto-link across repositories, so the
tracking issues behind the Play upload defect were unreachable from the page
that tells a releaser to work around it. Full URLs for both fastlane issues and
the expo one.

(cherry picked from commit 9a9282b)
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.

2 participants