CI & Build / Python lint (push) Successful in 2s
CI & Build / Build now, or wait for Android? (push) Successful in 3s
Android / Build, or is the channel already serving this? (push) Successful in 3s
Desktop (Tauri) / Build, or is the channel already serving this? (push) Successful in 2s
Desktop (Tauri) / Web tests, clippy, Rust tests and rustfmt (push) Skipped
Desktop (Tauri) / Tauri desktop (Linux) (push) Skipped
Desktop (Tauri) / Windows installer (cross-compiled) (push) Skipped
Desktop (Tauri) / Update manifest (push) Skipped
CI & Build / Web typecheck and unit tests (push) Successful in 9s
CI & Build / Python tests (push) Successful in 15s
Android / Core and FFI clippy and tests (push) Successful in 27s
CI & Build / integration (push) Successful in 1m39s
CI & Build / Build & push image (push) Skipped
Android / Kotlin + Rust (APK) (push) Successful in 7m55s
Android / Build the server image (push) Successful in 6s
Milestone 546 "Bring the repo to the comment standard (rule 32) and compose defaults (rule 198)", step #6223 "Comment standard sweep: Android client". KDoc, comments, manifest and resource notes, Gradle and TOML comments and the ffi crate's docs now state what the code does and the non-obvious why in the present tense. Issue, Scribe-note, milestone (M13, M304, M315, M12) and family-idea references are gone, as are comparisons to Minstrel and the narration of what used to be: the capture sheet the editor replaced, the per-note colour story, the operator's device-pass feedback, the bindgen-as-[[bin]] failure, the 0.60 edge alpha before it was re-solved, and the checker bugs behind check-strings/check-symbols. Hazards stay as facts: the signing key that can't be rotated, the alias that keeps the earlier name, PKCS12's single password, unwind over abort, the UTC date-picker read, the DerivedTint/colors.ts mirror. One stale claim is gone: DerivedTint said the web had no test runner, but notes/grammar.test.ts runs the same tint cases. detekt.yml said "these two places" over a list of five. 49 files, comments only: a comment-stripping diff of every changed file against HEAD is identical. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
65 lines
3.5 KiB
TOML
65 lines
3.5 KiB
TOML
[versions]
|
|
# Pinned as a MATRIX:
|
|
# - Gradle 9.1.0 supports JDK 25 (see gradle-wrapper.properties)
|
|
# - AGP 9.0.1 requires Gradle 9.1.0+
|
|
# - Kotlin 2.3.x is AGP 9's built-in Kotlin path
|
|
# ci-rust-android ships JDK 25, so the wrapper floor is load-bearing: an older
|
|
# Gradle fails on that JDK with an opaque "25.0.3" message.
|
|
agp = "9.0.1"
|
|
kotlin = "2.3.21"
|
|
compose-bom = "2026.05.01"
|
|
lifecycle = "2.8.7"
|
|
activity-compose = "1.9.3"
|
|
coroutines = "1.9.0"
|
|
|
|
# WorkManager runs the background sync. `work-runtime-ktx` is NOT used: as of
|
|
# 2.11 it is a 6 KB stub and every Kotlin extension (`PeriodicWorkRequestBuilder`,
|
|
# `CoroutineWorker`) has moved into `work-runtime` itself.
|
|
work = "2.11.2"
|
|
|
|
# ktlint and detekt are NOT Gradle plugins here. ci-rust-android ships both as
|
|
# pinned CLIs, and the CI lane invokes those directly. The Gradle plugins would be
|
|
# a SECOND pinned version of each tool, resolved at build time, that has to be
|
|
# kept in lockstep with the image's by hand.
|
|
|
|
# JNA is not optional: uniffi's Kotlin bindings call into the .so through it.
|
|
# The @aar classifier matters — the plain jar has no Android native payload and
|
|
# fails at runtime with UnsatisfiedLinkError rather than at build time.
|
|
jna = "5.14.0"
|
|
|
|
junit = "4.13.2"
|
|
|
|
# Coil draws a link preview's image, the first image this client
|
|
# loads. Coil 3 ships its networking separately; the OkHttp fetcher is the one its
|
|
# docs name as the default, and it registers itself, so no loader is configured.
|
|
# Held at 3.5.0: 3.6.0 moved to compileSdk 37 and Compose 1.12, which need AGP 9.1.
|
|
# This project is on compileSdk 36 and AGP 9.0.1, so 3.6.x fails the AAR metadata
|
|
# check. Move it up together with agp and compileSdk.
|
|
coil = "3.5.0"
|
|
|
|
[libraries]
|
|
androidx-core-ktx = { module = "androidx.core:core-ktx", version = "1.13.1" }
|
|
androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "activity-compose" }
|
|
androidx-lifecycle-viewmodel-compose = { module = "androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "lifecycle" }
|
|
androidx-lifecycle-runtime-compose = { module = "androidx.lifecycle:lifecycle-runtime-compose", version.ref = "lifecycle" }
|
|
compose-bom = { module = "androidx.compose:compose-bom", version.ref = "compose-bom" }
|
|
compose-ui = { module = "androidx.compose.ui:ui" }
|
|
compose-ui-graphics = { module = "androidx.compose.ui:ui-graphics" }
|
|
compose-ui-tooling = { module = "androidx.compose.ui:ui-tooling" }
|
|
compose-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview" }
|
|
compose-material3 = { module = "androidx.compose.material3:material3" }
|
|
# Icons only from -core, deliberately: it carries the common set (Menu, Search,
|
|
# Close, Add) and is already on the material3 path. -extended adds ~1,000 vectors
|
|
# for the handful the drawer would use.
|
|
compose-material-icons-core = { module = "androidx.compose.material:material-icons-core" }
|
|
kotlinx-coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "coroutines" }
|
|
jna = { module = "net.java.dev.jna:jna", version.ref = "jna" }
|
|
androidx-work-runtime = { module = "androidx.work:work-runtime", version.ref = "work" }
|
|
junit = { module = "junit:junit", version.ref = "junit" }
|
|
coil-compose = { module = "io.coil-kt.coil3:coil-compose", version.ref = "coil" }
|
|
coil-network-okhttp = { module = "io.coil-kt.coil3:coil-network-okhttp", version.ref = "coil" }
|
|
|
|
[plugins]
|
|
android-application = { id = "com.android.application", version.ref = "agp" }
|
|
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
|