Repository navigation
Commit 7dc1b50
ADFA-6246 | Move the plugins to AGP 9.3.1 / Gradle 9.6.1 / Kotlin 2.3.21 (#108)
* chore(ADFA-6246): move the plugin toolchain to AGP 9.3.1 / Gradle 9.6.1 / Kotlin 2.3.21
Code On the Go ships AGP 9.3.1, Gradle 9.6.1 and Kotlin 2.3.21
(org.adfa.constants), so the standard these plugins track moves with it.
scripts/check-toolchain.sh holds the numbers and gates every PR; its header is
re-grounded on CoGo stage c263653bcf.
AGP 9 compiles Kotlin itself and refuses org.jetbrains.kotlin.android, so that
plugin is dropped from every module and Kotlin is pinned on the buildscript
classpath in settings.gradle.kts instead, which is where AGP 9 takes its
compiler from.
The check also skips the gitignored .cache/ clone that update-libs.sh creates.
CI never sees it, but locally it reported dozens of failures against a tree
that is not ours to hold to this standard.
* fix(ADFA-6246): build the asset-downloading and LiteRT plugins under Gradle 9
Gradle 9 turns an undeclared task dependency into a hard error. AI-Literacy-Course
and NDK-Installer download their archives into src/main/assets, which more than one
task then reads, so ordering only mergeAssets after the download moves the failure
to the next consumer rather than fixing it -- the lint model task reads the same
directory. Order every other task after the producers instead.
mustRunAfter, not dependsOn: a bare assemblePlugin must keep failing loudly on a
missing archive rather than quietly fetching 110 MB, which is the behaviour the
guard below it exists to enforce.
Sketch-to-UI: litert-support:1.0.1 is a 587-byte alias AAR with no classes whose
manifest declares the same namespace as litert-support-api, and AGP 9 fails the
manifest merge on the duplicate. Depend on litert-support-api, which carries all
75 classes.
* fix(ADFA-6246): build the PCF templates under AGP 9's built-in Kotlin
The same conversion ADFA-6180 made to the NDK template. PCFExample dropped the
kotlin("android") plugin request AGP 9 refuses, pins the Kotlin stdlib to
KOTLIN_VERSION rather than 1.9.22, and moves jvmTarget off the removed
kotlinOptions DSL.
PCFBuilder's root build was the older shape: a version catalog pinning AGP 8.10.1
and Kotlin 2.0.21 by hand, neither tracking the host. It becomes a .peb on
AGP_VERSION like every other template, so it follows Code On the Go instead of
drifting, and the catalog -- referenced by nothing once the plugin aliases are
gone -- is deleted rather than left as a stale number to grep.
Its wrapper also pinned Gradle 8.11.1 literally; it now takes GRADLE_VERSION.
* fix(ADFA-6246): generate templates in the AGP 9 shape
Project-to-Template rewrote the user's Kotlin plugin line as
kotlin("android") version "${{KOTLIN_VERSION}}", so every template it produced
declared the one plugin AGP 9 refuses. The build stayed green here and broke in
the user's hands, on the generated project.
Drop the line instead, and pin the Kotlin Gradle plugin on the generated root
build's buildscript classpath, matching the core templates and what ADFA-6180
did to the NDK one. The LANGUAGE conditional went with it: it only ever wrapped
that plugin line.
The test asserts on generated file contents, which needs the real org.json --
the android.jar stub returns null under isReturnDefaultValues, which is why the
existing test only exercises the dry-run path. Reverting the fix fails the new
test on exactly its kotlin("android") assertion.
* docs(ADFA-6246): drop the Kotlin plugin from the documented plugin shape
CLAUDE.md still told plugin authors to apply org.jetbrains.kotlin.android, which
AGP 9 rejects outright.
---------
Co-authored-by: Daniel Alome <astrocoder007@gmail.com>1 parent 2480ff9 commit 7dc1b50
95 files changed
Lines changed: 280 additions & 235 deletions
File tree
- cotg-ndk
- gradle/wrapper
- gradle/wrapper
- pebble-custom-function-template-installer
- gradle/wrapper
- src/main/assets/templates
- PCFBuilder
- ext
- gradle
- wrapper
- PCFExample
- app
- plugins
- AI-Agent-Gemini
- AI-Agent-Local
- gradle
- llama-impl
- AI-Agent-MCP
- AI-Agent-OpenAI
- AI-Code-Suggestions
- gradle/wrapper
- AI-Core
- AI-Literacy-Course
- APK-Analyzer
- gradle/wrapper
- Bookshelf
- gradle/wrapper
- Client-Time-Tracker
- gradle/wrapper
- Code-Together
- Favorite-Snippets
- gradle/wrapper
- Flutter-Templates
- Get-AI-Models
- gradle
- Icons-Repository
- gradle/wrapper
- Jetpack-Compose-Preview
- gradle/wrapper
- Keystore-Generator
- gradle/wrapper
- Layout-Editor
- gradle/wrapper
- Markdown-Previewer
- gradle/wrapper
- NDK-Installer
- gradle/wrapper
- Project-to-Template
- src
- main/kotlin/org/appdevforall/projecttotemplate
- test/java/org/appdevforall/projecttotemplate
- Python-Tools
- gradle/wrapper
- Rainbow-Brackets
- gradle/wrapper
- Random-XKCD
- gradle/wrapper
- Sketch-to-UI
- gradle/wrapper
- Speech-to-Text
- gradle/wrapper
- Vector-Search
- gradle/wrapper
- Voice-Alerts
- gradle/wrapper
- scripts
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
86 | 86 | | |
87 | 87 | | |
88 | 88 | | |
89 | | - | |
| 89 | + | |
90 | 90 | | |
91 | 91 | | |
92 | 92 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
6 | 5 | | |
7 | 6 | | |
8 | 7 | | |
| |||
63 | 62 | | |
64 | 63 | | |
65 | 64 | | |
66 | | - | |
| 65 | + | |
67 | 66 | | |
68 | 67 | | |
69 | 68 | | |
70 | 69 | | |
71 | 70 | | |
72 | | - | |
| 71 | + | |
73 | 72 | | |
74 | 73 | | |
75 | 74 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
18 | | - | |
| 17 | + | |
| 18 | + | |
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
Lines changed: 2 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
4 | 3 | | |
5 | 4 | | |
6 | 5 | | |
| |||
52 | 51 | | |
53 | 52 | | |
54 | 53 | | |
55 | | - | |
| 54 | + | |
56 | 55 | | |
57 | 56 | | |
58 | 57 | | |
| |||
63 | 62 | | |
64 | 63 | | |
65 | 64 | | |
66 | | - | |
| 65 | + | |
67 | 66 | | |
68 | 67 | | |
69 | 68 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
Lines changed: 2 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
18 | | - | |
| 17 | + | |
| 18 | + | |
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| |||
Lines changed: 0 additions & 6 deletions
This file was deleted.
Lines changed: 15 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
0 commit comments