Skip to content

Restore missing gradle/ build infra + fix build-blockers + CI#1

Merged
Peterc3-dev merged 1 commit into
mainfrom
wave4-android
May 31, 2026
Merged

Restore missing gradle/ build infra + fix build-blockers + CI#1
Peterc3-dev merged 1 commit into
mainfrom
wave4-android

Conversation

@Peterc3-dev
Copy link
Copy Markdown
Owner

Summary

d-board did not build at all as committed — three independent blockers. This PR makes it build green and adds CI.

  1. Missing gradle/ directory (the big one): both the Gradle wrapper and gradle/libs.versions.toml were never committed, so every libs.* reference in the build files was unresolved. Restored the wrapper (Gradle 8.9) and reconstructed the version catalog for the Compose template it uses (AGP 8.7.3, Kotlin 2.0.21, compose-bom 2024.09.03).
  2. AGP-9-only DSL: compileSdk { version = release(36) } requires AGP 9.x / Gradle 9. Switched to the stable compileSdk = 35 (and targetSdk 36 → 35) so it builds on the current stable toolchain.
  3. Malformed layout: res/layout/keyboard.xml had an unescaped < in the SPACE key label (android:text="<<=SPACE=>>"), which failed resource parsing. Escaped to &lt;&lt;=SPACE=>> (renders identically).

Plus a build/test/lint CI workflow.

Verification

Built locally with JDK 17 + Android SDK (platform 35):

./gradlew --no-daemon assembleDebug testDebugUnitTest lintDebug  →  BUILD SUCCESSFUL

Debug APK produced; unit tests + lint pass.

Notes

  • The IME logic (OrthoKeyboardService) is entirely Android-framework-bound (InputMethodService / View / KeyEvent), so there's no pure logic to unit-test without refactoring the service — I deliberately did not add coverage-theater tests. The existing example unit test is retained so the test task runs.
  • Reconstructed catalog versions are a current, coherent stable set; adjust if you intended a specific (e.g. AGP 9 / SDK 36) matrix.

🤖 Generated with Claude Code

The repo did not build at all: the entire gradle/ directory (Gradle wrapper AND
the libs.versions.toml version catalog the build depends on) was never committed,
so `libs.*` was unresolved. This restores it and fixes two more blockers.

- Add gradle/libs.versions.toml (reconstructed Compose template catalog:
  AGP 8.7.3, Kotlin 2.0.21, compose-bom 2024.09.03) + the Gradle 8.9 wrapper jar
- app/build.gradle.kts: replace the AGP-9-only `compileSdk { version = release(36) }`
  block with the stable `compileSdk = 35`; targetSdk 36 -> 35 (matches a current
  stable, locally-buildable SDK)
- res/layout/keyboard.xml: escape the unescaped '<' in the SPACE key label
  (android:text="<<=SPACE=>>" -> "&lt;&lt;=SPACE=>>"), which failed resource parsing
- Add a build/test/lint CI workflow

Verified locally: ./gradlew assembleDebug testDebugUnitTest lintDebug -> BUILD SUCCESSFUL.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Peterc3-dev Peterc3-dev merged commit 1b59369 into main May 31, 2026
1 check passed
@Peterc3-dev Peterc3-dev deleted the wave4-android branch May 31, 2026 01:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant