Modernizes the stale library pins in libs.versions.toml against the already-current agp/kotlin toolchain: - composeBom 2024.09.00 -> 2026.06.01 (Material3 1.3.x -> current) - activityCompose 1.8.0 -> 1.13.0 - navigationCompose 2.8.5 -> 2.9.8 - lifecycleRuntimeKtx 2.8.7 -> 2.10.0 (2.11.0 needs compileSdk 37, past what AGP 9.1.0 supports; held one minor back) - coreKtx 1.10.1 -> 1.18.0 (1.19.0 has the same compileSdk-37 issue) - workRuntimeKtx 2.10.1 -> 2.11.2 - espressoCore 3.5.1 -> 3.7.0, junitVersion (androidx.test.ext) 1.1.5 -> 1.3.0 compileSdk/targetSdk bumped 35 -> 36 to satisfy activity/activity-compose's minimum. Verified with build, gradlew test, lint-kotlin, and fmt-kotlin-check per the TODO's verification steps; removes the TODO.md entry. Compose 1.7->current and Material3 1.3->current introduced deprecation warnings (old TabRow, MenuAnchorType, LocalClipboardManager) across several screens -- these still compile and work, left as follow-up cleanup rather than folded into this bump. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0134Qxsmkvtr8hSGkhbT1nTg
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
dd4951ebc5
commit
028eda3b95
@@ -399,47 +399,6 @@ track count.
|
||||
- **Depends on**: nothing blocking; could be picked up independently of the
|
||||
PDF-library MVP.
|
||||
|
||||
### Modernize the Android dependency versions (Compose BOM and the AndroidX cluster)
|
||||
- **Description** (added 2026-08-05): `android/gradle/libs.versions.toml` has a
|
||||
current *build toolchain* pinned against a stale *library* set. `agp = "9.1.0"`
|
||||
and `kotlin = "2.2.10"` are recent; everything they compile is not:
|
||||
|
||||
| Pin | Vintage |
|
||||
|---|---|
|
||||
| `composeBom = "2024.09.00"` | Sept 2024 (Material3 1.3.x) |
|
||||
| `lifecycleRuntimeKtx = "2.8.7"`, `navigationCompose = "2.8.5"` | late 2024 |
|
||||
| `activityCompose = "1.8.0"` | Oct 2023 |
|
||||
| `coreKtx = "1.10.1"` | May 2023 |
|
||||
| `espressoCore = "3.5.1"`, `junitVersion = "1.1.5"` | 2022–23 |
|
||||
|
||||
- **Why it isn't already broken**: the Compose compiler is versioned with Kotlin
|
||||
now (the `kotlin-compose` plugin), so a current compiler against a two-year-old
|
||||
Compose runtime keeps working rather than failing loudly. That is exactly why it
|
||||
drifted this far unnoticed.
|
||||
- **Why it matters**: two years of Compose/Material3 fixes and APIs are being
|
||||
left on the table, and the gap only gets more expensive to close. The concrete
|
||||
near-term cost is in `docs/command-palette-and-search.md` §7.2: the shared
|
||||
Android search bar has to target Material3 1.3's older `SearchBar`
|
||||
(`query`/`active`/`onActiveChange`) rather than the `inputField`/`expanded` API
|
||||
that supersedes it, purely because of what is pinned.
|
||||
- **Details**: bump the AndroidX cluster together, not just the BOM — leaving
|
||||
`activityCompose` on 1.8.0 (Oct 2023) under a current Compose runtime keeps the
|
||||
oldest pin in place and defeats the point. Expect real behavior changes across
|
||||
Compose 1.7 → current and Material3 1.3 → current, affecting every screen; this
|
||||
wants to be its own change with its own verification pass, **not** folded into
|
||||
feature work.
|
||||
- **Verification is fully available without a local Android Studio install**:
|
||||
the flake runs Gradle inside the devShell rather than a sealed derivation, so
|
||||
dependency resolution is an ordinary network Gradle resolve — there is no
|
||||
vendored dependency hash to regenerate for a version bump. `just
|
||||
build-android-nix` builds the APK, and `nix develop --command just gradlew
|
||||
test` / `... just lint-kotlin` / `... just fmt-kotlin-check` cover unit tests,
|
||||
detekt, and formatting. A bump should be checked against all four, since the
|
||||
Compose/Material3 jump is expected to move behavior across every screen.
|
||||
- **Depends on**: nothing. Should land *before* the Android half of
|
||||
`docs/command-palette-and-search.md` (its §9 step 5), so §7.2 can target the
|
||||
current `SearchBar` API instead of the deprecated one.
|
||||
|
||||
### Look into Android Auto support
|
||||
- see how hard this would be to do
|
||||
- the lock-screen `MediaSessionService` foundation
|
||||
|
||||
@@ -9,12 +9,12 @@ plugins {
|
||||
|
||||
android {
|
||||
namespace = "com.gregshuflin.synchronicity"
|
||||
compileSdk = 35
|
||||
compileSdk = 36
|
||||
|
||||
defaultConfig {
|
||||
applicationId = "com.gregshuflin.synchronicity"
|
||||
minSdk = 31
|
||||
targetSdk = 35
|
||||
targetSdk = 36
|
||||
versionCode = 1
|
||||
versionName = "1.0"
|
||||
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
[versions]
|
||||
agp = "9.1.0"
|
||||
kotlin = "2.2.10"
|
||||
coreKtx = "1.10.1"
|
||||
coreKtx = "1.18.0"
|
||||
junit = "4.13.2"
|
||||
junitVersion = "1.1.5"
|
||||
espressoCore = "3.5.1"
|
||||
lifecycleRuntimeKtx = "2.8.7"
|
||||
navigationCompose = "2.8.5"
|
||||
activityCompose = "1.8.0"
|
||||
composeBom = "2024.09.00"
|
||||
junitVersion = "1.3.0"
|
||||
espressoCore = "3.7.0"
|
||||
lifecycleRuntimeKtx = "2.10.0"
|
||||
navigationCompose = "2.9.8"
|
||||
activityCompose = "1.13.0"
|
||||
composeBom = "2026.06.01"
|
||||
detekt = "1.23.8"
|
||||
ktfmt = "0.22.0"
|
||||
workRuntimeKtx = "2.10.1"
|
||||
workRuntimeKtx = "2.11.2"
|
||||
|
||||
[libraries]
|
||||
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
|
||||
|
||||
Reference in New Issue
Block a user