docs(plan): adapt foundation plan to actual dev toolchain
Dev machine has no host gradle binary; bootstrap from HouseHoldKeaper's wrapper (Gradle 8.14, compatible with AGP 8.7.2). Default JDK is 26, but AGP 8.7.2 needs JDK 17-21; require JAVA_HOME=jdk-17 on local invocations. CI is unaffected (setup-java pins 17). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
**Architecture:** Single Gradle module `:app`, Kotlin 2.1 + Jetpack Compose mit Material 3 Expressive (1.5+), Hilt für DI, DataStore-Preferences für App-Settings. Build via Gradle Kotlin DSL und Version Catalog (`libs.versions.toml`). CI über Gitea Workflows (adaptiert von HouseHoldKeaper, Flutter-Steps durch Gradle-Steps ersetzt). Alle Resourcen + Strings i18n-fähig ab Tag 1 (DE + EN).
|
||||
|
||||
**Tech Stack:**
|
||||
- Kotlin 2.1.0, Gradle 8.11.1, AGP 8.7.2, JVM Target 17
|
||||
- Kotlin 2.1.0, Gradle 8.14 (bootstrapped from HouseHoldKeaper's wrapper), AGP 8.7.2, JVM Target 17
|
||||
- minSdk 29, targetSdk 36, compileSdk 36
|
||||
- Jetpack Compose BOM 2025.05.00, Material3 1.5.0 (Expressive APIs)
|
||||
- Hilt 2.53 + KSP 2.1.0-1.0.29
|
||||
@@ -140,12 +140,9 @@ local, WebCal subscriptions, ...) is shown.
|
||||
|
||||
## Building
|
||||
|
||||
Requires Android SDK 36 and JDK 17.
|
||||
Requires Android SDK 36 and JDK 17. The Gradle wrapper is checked in, so no host Gradle install is needed:
|
||||
|
||||
```bash
|
||||
# Bootstrap the gradle wrapper (one-time, requires a host gradle install)
|
||||
gradle wrapper --gradle-version 8.11.1 --distribution-type bin
|
||||
|
||||
# Build debug APK
|
||||
./gradlew assembleDebug
|
||||
|
||||
@@ -156,6 +153,12 @@ gradle wrapper --gradle-version 8.11.1 --distribution-type bin
|
||||
./gradlew lint
|
||||
```
|
||||
|
||||
If your default JDK is something other than 17, set `JAVA_HOME` explicitly:
|
||||
|
||||
```bash
|
||||
JAVA_HOME=/path/to/jdk-17 ./gradlew assembleDebug
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
[MIT](LICENSE) — Jean-Luc Makiola, 2026
|
||||
@@ -675,35 +678,35 @@ kotlin.incremental=true
|
||||
android.uniquePackageNames=true
|
||||
```
|
||||
|
||||
- [ ] **Step 5: Bootstrap the Gradle wrapper**
|
||||
- [ ] **Step 5: Bootstrap the Gradle wrapper from sibling project**
|
||||
|
||||
This requires a host `gradle` installation. Run once:
|
||||
|
||||
```bash
|
||||
gradle wrapper --gradle-version 8.11.1 --distribution-type bin
|
||||
```
|
||||
|
||||
Expected: creates `gradle/wrapper/gradle-wrapper.jar`, `gradle/wrapper/gradle-wrapper.properties`, `gradlew`, `gradlew.bat`.
|
||||
|
||||
Then make `gradlew` executable:
|
||||
The dev machine has no host `gradle` installed, but `HouseHoldKeaper/android/` already has a working wrapper (Gradle 8.14). Bootstrap from there:
|
||||
|
||||
```bash
|
||||
mkdir -p gradle/wrapper
|
||||
cp /home/jlmak/Projects/jlmak/HouseHoldKeaper/android/gradlew .
|
||||
cp /home/jlmak/Projects/jlmak/HouseHoldKeaper/android/gradlew.bat .
|
||||
cp /home/jlmak/Projects/jlmak/HouseHoldKeaper/android/gradle/wrapper/gradle-wrapper.jar gradle/wrapper/
|
||||
cp /home/jlmak/Projects/jlmak/HouseHoldKeaper/android/gradle/wrapper/gradle-wrapper.properties gradle/wrapper/
|
||||
chmod +x gradlew
|
||||
```
|
||||
|
||||
- [ ] **Step 6: Verify gradle wrapper works**
|
||||
Gradle 8.14 is compatible with AGP 8.7.2 (Gradle is backward-compatible for AGP versions; newer Gradle works fine).
|
||||
|
||||
- [ ] **Step 6: Verify gradle wrapper works (with JDK 17)**
|
||||
|
||||
The system default JDK is 26, but AGP 8.7.2's compatibility envelope is JDK 17–21. Use JDK 17 explicitly for every gradle invocation in this plan:
|
||||
|
||||
```bash
|
||||
./gradlew --version
|
||||
JAVA_HOME=/usr/lib/jvm/java-17-openjdk ./gradlew --version
|
||||
```
|
||||
|
||||
Expected output includes:
|
||||
```
|
||||
Gradle 8.11.1
|
||||
Kotlin: 2.0.x
|
||||
Gradle 8.14
|
||||
```
|
||||
|
||||
(Don't worry about the specific Kotlin version in the gradle output — that's gradle's bundled Kotlin, separate from our project Kotlin 2.1.0.)
|
||||
> Going forward in this plan, every `./gradlew ...` invocation must be prefixed with `JAVA_HOME=/usr/lib/jvm/java-17-openjdk` on this dev machine. CI sets `setup-java@v4 java-version: 17` so no prefix is needed there.
|
||||
|
||||
- [ ] **Step 7: Commit**
|
||||
|
||||
|
||||
Reference in New Issue
Block a user