Skip to content

chore: use 3.1.1 migration baselines - #311

Merged
piotr-iohk merged 2 commits into
mainfrom
codex/migration-baseline-3.1.1
Nov 13, 2026
Merged

piotr-iohk merged 2 commits into
mainfrom
codex/migration-baseline-3.1.1

Conversation

@piotr-iohk

@piotr-iohk piotr-iohk commented Nov 12, 2026 •

Copy link
Copy Markdown
Collaborator

Future Android and iOS migration runs should start from the shipped 3.1.1 native release. Advance both defaults to 3.1.1 and record the SHA-256 digests of the archived regtest APK and iOS simulator ZIP. Keep historical checksums and React Native v1.1.6 coverage.

  • All nine migration helper tests passed.
  • Both migration matrices select 3.1.1 for native restore and upgrade, with v1.1.6 for both RN cases.

Hosted validation uses this PR's default pins and the standard RN cases. The targets are the 3.1.1 version-bump branches because both current masters still build 3.1.0.

Land the native version bumps before switching the default baseline so scheduled migration runs have compatible install-over targets.

  • Android passed all four routine cases. Both native jobs used the published 3.1.1 APK and verified its SHA-256.
  • iOS passed all four routine cases by workflow attempt 2. Both native jobs used the corrected public 3.1.1 simulator ZIP and verified its SHA-256. The initial ZIP used a lowercase bundle root, which the downloader rejected before running tests.
  • The iOS RN upgrade passed on retry against the same app and E2E revisions. The first run included an Appium session timeout, a wallet backup prompt covering the wallet, and a Spending Balance Error. The successful retry establishes intermittent behavior for this case. The cause of the Spending Balance Error remains undetermined.

@talosmachina talosmachina left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

No findings. Moves the Android and iOS native migration baselines from 3.1.0 to 3.1.1 and records the 3.1.1 archive digests. Reviewed 61fa986, light tier.

What I checked, and 3 candidates I ruled out

Read in full: config/migration-baselines.json, config/migration-checksums.json, and their readers scripts/migration-matrix.py (migration_plan) and scripts/download-migration-app.py (download)
CI: this repo runs no checks on the branch. The two hosted migration runs linked in the body were still in_progress when I looked.
Not run: talos-pr-run could not confirm the author's permission on this repo, so I did not execute the branch; this review is static plus the asset checks below. Both JSON files parse.

Ruled out

  • Digest mismatch: both new values equal GitHub's own digest for bitkit_e2e.apk and Bitkit.app.zip on the 3.1.1 release, and the release's SHA256SUMS.txt.
  • Asset name or tag drift: download() fetches releases/download/<version>/<asset> with the asset names bitkit_e2e.apk and Bitkit.app.zip, and looks up checksums[<version>][<asset>]; the new 3.1.1 key and both asset names match the release.
  • Helper tests pinned to the old baseline: test_migration_tools.py writes its own fixture baselines since #299, so the bump needs no test change.

Merge confidence: 4/5, a config value checked against the release, but the hosted migration runs it cites had not finished.

@talosmachina talosmachina left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Re-review of 0ea0ade after 61fa986. 0 earlier findings, 0 new findings. The new commit swaps the iOS 3.1.1 Bitkit.app.zip digest for the repackaged archive. Light tier.

What I checked

Diff since 61fa986: one line, config/migration-checksums.json 3.1.1 Bitkit.app.zip, 64f3717... to 173db90....
Digest: I downloaded the current Bitkit.app.zip from the 3.1.1 release and hashed it: 173db903...98d1. That matches the new value, GitHub's asset digest and the release's SHA256SUMS.txt. The APK digest is unchanged and still matches.
Bundle root: the archive's only top-level entry is Bitkit.app/ and it contains Bitkit.app/Info.plist, which is what download() in scripts/download-migration-app.py checks for a native archive. So the lowercase-root rejection the body describes no longer applies.
Hosted runs: Android migration succeeded on all four cases. iOS migration attempt 2 succeeded on all four cases.
Ordering: per the body, the native version bumps land first. synonymdev/bitkit-android#1904 and synonymdev/bitkit-ios#1319 are both still open.
Not run: nothing from the branch ran on this box. The JSON parses.

Merge confidence: 5/5. It is a config value checked against the published asset, and both hosted migration runs that use it are green.

@piotr-iohk
piotr-iohk requested review from a team, ben-kaufman and ovitrif and removed request for a team November 13, 2026 09:54

@ovi-reviewer ovi-reviewer Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Verdict: ✅ Approve

Findings: None.

QA for 0ea0ade:

Migration helper validation ✅ Existing helper tests pass.

Ran python3 -m unittest discover -s scripts -p 'test_migration_tools.py'; migration shell syntax and diff checks also passed.

Check: native and React Native baseline selection ✅ Both matrices retain the intended coverage.

Executed both matrix generators: native restore and upgrade select 3.1.1; both RN cases retain v1.1.6. Compared the checksum map against the base: every historical entry is unchanged.

Android baseline archive verification ✅ The published APK passes the downloader's validation.

Ran scripts/download-migration-app.py android native 3.1.1 against the published 3.1.1 archive: the downloaded APK matches the pinned SHA-256 and contains AndroidManifest.xml.

iOS baseline archive verification ✅ The corrected ZIP passes verification and extraction.

Ran scripts/download-migration-app.py ios native 3.1.1: the downloaded ZIP matches the pinned SHA-256 and extracts Bitkit.app. Its plist identifies simulator version 3.1.1, build 204; executable permissions are preserved.

Check: Android restore and upgrade coverage ✅ Hosted logs confirm the routine cases passed.

Verified native and RN restore/upgrade assertions in the hosted migration logs. They used E2E 61fa986; only the iOS checksum changed afterward. Both native jobs verified the pinned 3.1.1 APK.

Check: iOS restore and upgrade coverage ✅ Hosted logs confirm the routine cases passed, with a retry.

Verified native and RN restore/upgrade assertions in workflow attempt 2, using E2E 0ea0ade. Both native jobs verified the corrected ZIP. RN upgrade passed after a session-creation timeout and retry. The earlier Spending Balance Error described in the PR remains unexplained by that pass.

Reviewed the full two-file diff from ce9c0e2 to 0ea0ade and its consumers. No new device run or app build: reused the linked hosted coverage for these unchanged journeys. No application behavior changes are included.

The documented merge order still applies; both prerequisites remain open:


Reviewed by gpt-6.1-sol-high

@ovitrif ovitrif left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

utAck

@piotr-iohk
piotr-iohk merged commit 4b188ae into main Nov 13, 2026
1 check passed
@piotr-iohk
piotr-iohk deleted the codex/migration-baseline-3.1.1 branch November 13, 2026 12:43
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.

3 participants