diff --git a/ci-requirements.md b/ci-requirements.md index a443498..a0e4e6b 100644 --- a/ci-requirements.md +++ b/ci-requirements.md @@ -159,14 +159,27 @@ backend/frontend push. - No Postgres lane (unchanged): the desktop app's local store + sync behavior is verified on the operator's machine, not in CI. -## Android lane — REMOVED 2026-08-17 +## Android lane — being rebuilt (M12) The Tauri-mobile Android lane is gone. Android is a native Kotlin/Compose client over the shared `thoughtsync-core` crate instead — see Scribe note 2730 for the -decision and milestone M12 for the arc. Its CI lane and image will be rebuilt on -that basis; `ci-tauri-android` is being repurposed (drop `tauri-cli`, add -`cargo-ndk`) rather than deleted, because its NDK binutils symlinks and PATH fix -are load-bearing for any Rust-on-Android cross-compile. +decision and milestone M12 for the arc. + +The image it will run on already exists: **`ci-rust-android:1.97`**, repurposed +from `ci-tauri-android` rather than deleted (CI-runner `dc802f2`, Scribe #2732). +`tauri-cli` is out and `cargo-ndk` is in; the NDK binutils symlinks and the PATH +append stayed, because they were never Tauri problems — NDK r23 removed the +triple-prefixed binutils that autotools, and so vendored OpenSSL, invokes by bare +name. It also carries `ktlint` + `detekt` so the Kotlin analyzer lane needs no +second image, and JDK 25 (which requires **Gradle 9.1+** in this repo's wrapper — +the old JDK 17 pin existed only because Tauri generated a Gradle 8.x project). + +The Rust pin is in LOCKSTEP with `ci-tauri` and `ci-tauri-win`. All three build +`thoughtsync-core` from one workspace `Cargo.lock` under `--locked`, so a +mismatched Rust minor across the lanes would mean divergent resolution for no +reason. Bump the three together or not at all. + +No workflow consumes it yet; the lane arrives with the app skeleton (M12 step 5). ## Formatting the Rust lane before pushing