Skip to content

Stabilize native acceptance and recover alpha testing packages - #8

Merged
Llewellynvdm merged 6 commits into
mainfrom
fix/ios-simulator-release-recovery
Oct 11, 2026
Merged

Llewellynvdm merged 6 commits into
mainfrom
fix/ios-simulator-release-recovery

Conversation

@Llewellynvdm

@Llewellynvdm Llewellynvdm commented Oct 11, 2026 •

Copy link
Copy Markdown
Member

The alpha 5 main run built every platform package, but iPad acceptance hung after Xcode compilation and exhausted its 50-minute job timeout. Its buffered driver log was empty, so the timeout both blocked release publication and lost the diagnostic evidence needed to investigate.

This change builds the integration APP once and runs bounded simulator attempts against that exact bundle. Build, boot, launch/attachment and test phases have independent limits inside a 38-minute session, with a separate cleanup reserve. Child output goes straight to attempt logs; stage events, simulator screenshots and console diagnostics are retained. Owned process groups are terminated, and shutdown retains its own cleanup time.

A single reboot/relaunch is permitted only for an observed pre-driver simulator install/launch/VM-service stall without a reported error. Nonzero exits, build errors, started test journeys and failed assertions are never retried. No application behavior, version, package format or publication acceptance gate changes.

Native verification also exposed two harness assumptions: cold CoreSimulator discovery can exceed 30 seconds, and Android keyboard metrics can arrive after Flutter's pumpAndSettle. Discovery now uses the existing three-minute boot budget. The Study journey waits for bounded geometry stability and reveals the same complete form field its accessibility assertion checks. Mounted/focus/hit-test/content checks remain required, with delayed-metrics, zero-inset and timeout regressions.

The deployment and testing guides explain recovery by rerunning only the unsuccessful runtime job, allowing the publisher to reuse original package archives. The original main run 38078120633 attempt 2 is now green: the iPad retry passed all six integration checks. Automatic publisher 38138817407 successfully published v1.0.0-alpha.5 with all 26 verified assets from the original main commit b1bc3db21052ce18a7df695aa6af163be19cfc84. No packages were rebuilt for recovery.

Validation:

  • 62 developer-tool Python tests passed, including 21 focused iOS runner regressions.
  • 64 release-tool Python tests passed.
  • A real POSIX subprocess check verified timeout termination and retained partial output.
  • Regression coverage includes bounded silent waits, process-group escalation, output written just before exit, split/large output markers, one-time recovery, and preservation of genuine test failures.
  • Portable import and pure checks also pass with Windows-missing POSIX APIs removed; only seven process-group tests are appropriately skipped on unsupported hosts.
  • Native iPhone verification exercised a real pre-driver launch stall: the first attempt stopped at its deadline, retained diagnostics, rebooted once, and the second attempt reused the APP and passed all six integration checks.
  • Three exact geometry regressions passed locally on pinned Flutter 3.44.6 in an isolated SDK-only harness, with clean analysis/formatting. Full app dependency restoration was unavailable locally (uncached unorm_dart; bounded online resolution timed out), so hosted CI remains the full-journey gate.
  • Final revision 39cba4b618a75ab242c29cb8d738e17609d238e7 passed the complete Flutter CI run 38140948333: clean formatting/analysis, 512 Flutter tests, 126 Python tooling tests, seven platform package builds and all six native runtime jobs (Windows, macOS, Android phone/tablet, iPhone and iPad). Browser acceptance and package installation checks passed; optional signing jobs remain skipped on PRs.

Original failed job: https://github.com/getbible/app/actions/runs/38078120633/job/114289790888

@Llewellynvdm Llewellynvdm changed the title Bound iOS simulator acceptance and preserve release recovery evidence Stabilize native acceptance and recover alpha testing packages Oct 11, 2026
@Llewellynvdm
Llewellynvdm marked this pull request as ready for review October 11, 2026 13:08
@Llewellynvdm
Llewellynvdm merged commit 6bf43de into main Oct 11, 2026
20 checks passed
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