Repository navigation
Phase 1.0a: Migrate to Gradle version catalog - #19
Merged
sjaramillo10 merged 3 commits intoMay 26, 2026
Merged
sjaramillo10 merged 3 commits into
sjaramillo10 merged 3 commits into
Conversation
Establishes operating context for future Claude Code sessions: repository state, common commands, codegen architecture, build/CI state, and conventions for the in-flight KMP migration. Includes explicit rules to keep CLAUDE.md in sync as phases land and to run the CI-parity gradle command locally before any commit or push.
Introduces gradle/libs.versions.toml as the single source of truth for dependency coordinates, versions, and plugin IDs. Replaces the ext.versions / ext.deps Groovy maps that previously lived in the root build.gradle. - Catalog covers every coordinate currently consumed: AndroidX, Compose 1.6.7, Material 1.4.0, XProcessing, KotlinPoet, KSP, Picasso, all test libraries, and the build-script plugin classpaths. - Defines plugin aliases (android-application, android-library, kotlin-android, kotlin-jvm, kotlin-kapt, ksp, compose-compiler, detekt, maven-publish, shot, paparazzi) so Phase 1.0b can switch to alias(libs.plugins.*) syntax with zero version churn. - Adds a compose-base bundle for the activity-compose + foundation + runtime + ui + ui-tooling cluster shared by most modules. - Root build.gradle now references libs.* for buildscript classpath entries and the top-level plugins block. - Every module's build.gradle dependency block uses libs.* accessors; no behavior or version changes. - Drops the previously unused 'espresso' and 'ktx' (1.1.0) version entries that had no corresponding library reference. - .gitignore: removes the over-broad 'gradle/' rule (which masked libs.versions.toml). Wrapper files were already tracked independently. Local verification: ./gradlew check assembleDebug :showkase-processor:test --stacktrace passes (3m37s, 762 tasks). Refs #2
sjaramillo10
enabled auto-merge (squash)
May 26, 2026 01:46
sjaramillo10
deleted the
2-10a-migrate-to-gradle-version-catalog-libsversionstoml
branch
May 26, 2026 01:56
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Linked issue
Closes #2.
What changed
gradle/libs.versions.toml(new): centralized[versions],[libraries],[bundles], and[plugins]covering every coordinate previously declared in the rootbuild.gradle'sext.versions/ext.depsmaps. Plugin aliases include the full Phase 1.0b set (android-application,android-library,kotlin-android,kotlin-jvm,kotlin-kapt,ksp,compose-compiler,detekt,maven-publish,shot,paparazzi) so the KTS conversion in 1.0b is a syntax-only change.build.gradle(root):ext.versions/ext.depsblocks removed. Buildscript classpaths now read fromlibs.*(libs.android.gradle.plugin,libs.kotlin.gradle.plugin,libs.shot.plugin,libs.maven.publish.plugin). Top-levelplugins {}block usesalias(libs.plugins.*)fordetekt,ksp,maven-publish,compose-compiler. Detekt-formatting wired throughlibs.detekt.formatting.build.gradlefiles: everydeps.xxx.yyyreference replaced with the correspondinglibs.*accessor. No version changes, no dependency additions, no removals beyond two unused entries in the catalog (espressoand the original 1.1.0ktx, which had no library declarations consuming them)..gitignore: removed the over-broadgradle/ignore rule that maskedgradle/libs.versions.toml. Wrapper files were already tracked independently so this has no other effect.compose-basebundle for theandroidx-activity-compose + compose-foundation + compose-runtime + compose-ui + compose-ui-toolingcluster shared by most modules. Not yet consumed by any module — it's available for cleanup in a future refactor without expanding the scope of 1.0a.How to validate locally
Ran locally: green in 3m37s, 762 actionable tasks executed.
CI status
The new
ci.ymlfrom PR #18 should runcheck assembleDebug :showkase-processor:teston JDK 17 against this branch. Expecting the same green signal.Out-of-scope follow-ups
apply plugin: '...'/id '...'strings toalias(libs.plugins.*). The catalog already defines every required alias.kotlin-kaptplugin alias from the catalog once no module consumes it.libs.versions.toml— that change becomes a single-file diff instead of touching every module.