|
1 | 1 | # PyBLE App — Technical Design Document (TDD) |
2 | 2 |
|
3 | | -Status: **DRAFT** · Owner: project maintainer · Last updated: 2026-07-29 |
| 3 | +Status: **DRAFT** · Owner: project maintainer · Last updated: 2026-07-30 |
4 | 4 |
|
5 | 5 | ## 0. Naming note (acronym clash) |
6 | 6 |
|
@@ -1413,12 +1413,25 @@ The locale parity check fails on any missing/orphaned ARB key and blocks merges |
1413 | 1413 | (FR-I18N-2, BLD-5). The real |
1414 | 1414 | `integration_test/android_smoke_test.dart` platform boundary registers the |
1415 | 1415 | About and Blockly scenarios from non-entrypoint suite modules, so Flutter |
1416 | | -performs exactly one Android application build and install. It runs in CI on a |
1417 | | -fresh Android 14 / API 34 Google APIs x86_64 AVD with the pinned Flutter |
1418 | | -toolchain and NDK, 3 GiB RAM, KVM CPU acceleration, a software GPU, a bounded |
1419 | | -`sys.boot_completed` wait, and always-uploaded bounded emulator/logcat |
1420 | | -diagnostics. The runner reclaims only unused side-by-side NDK revisions before |
1421 | | -creating the API 34 emulator's required 6 GiB userdata image. |
| 1416 | +has one integration application entrypoint and installs one bundle containing |
| 1417 | +both scenarios. It runs in CI on a fresh Android 14 / API 34 Google APIs x86_64 |
| 1418 | +AVD with the pinned Flutter |
| 1419 | +toolchain and NDK, 2 GiB RAM, one virtual CPU, KVM acceleration, a software |
| 1420 | +GPU, a bounded `sys.boot_completed` wait, and always-uploaded bounded |
| 1421 | +emulator/logcat diagnostics. The runner reclaims only unused side-by-side NDK |
| 1422 | +revisions before creating the API 34 emulator's required 6 GiB userdata image. |
| 1423 | + |
| 1424 | +The checked-in Android Gradle configuration bounds the build JVM to a 3 GiB |
| 1425 | +heap, 1 GiB metaspace, and 256 MiB code cache. The hosted integration job |
| 1426 | +additionally disables the persistent Gradle daemon and permits one Gradle |
| 1427 | +worker. It prebuilds the sole integration entrypoint before starting the AVD, |
| 1428 | +then stops the build daemon; the device-backed `flutter test` reuses that |
| 1429 | +artifact cache for its build/install boundary. Prebuild and device test are |
| 1430 | +separately time-bounded and write directly to retained diagnostic logs, so a |
| 1431 | +failed timeout cannot be hidden behind a still-open shell pipeline. This keeps |
| 1432 | +the compiler and emulator peak allocations sequential on the smallest |
| 1433 | +supported hosted runner while preserving the single-entrypoint integration |
| 1434 | +contract. |
1422 | 1435 |
|
1423 | 1436 | The Blockly suite verifies the offline asset, JavaScript channel, |
1424 | 1437 | restore/recreation, source generation, examples, sidecar reopen, bounded Python |
|
0 commit comments