@@ -22,38 +22,49 @@ WiFiAnalyzer is an Android application for analyzing WiFi networks. It helps use
2222| Code Style | ktlint |
2323| License | GNU General Public License v3.0 (GPLv3) |
2424
25- clearAdditional repository-specific versions and toolchain (source-of-truth files shown):
25+ Additional repository-specific versions and toolchain (source-of-truth files shown):
2626
27- - Kotlin: root ` build.gradle ` (look for ` kotlin_version ` )
28- - Android Gradle Plugin (AGP): root ` build.gradle ` (look for the ` com.android.tools.build:gradle ` classpath)
27+ The build uses the Gradle Kotlin DSL (` *.gradle.kts ` ) with a ** version catalog** . Every dependency, plugin,
28+ and tool version lives in ` gradle/libs.versions.toml ` — the build scripts only reference it via
29+ ` libs.* ` accessors and ` alias(libs.plugins.*) ` , so they contain no version literals.
30+
31+ - All library, plugin, and tool versions (Kotlin, AGP, ktlint, Robolectric, ...): ` gradle/libs.versions.toml `
2932- Gradle wrapper: ` gradle/wrapper/gradle-wrapper.properties ` (check ` distributionUrl ` )
3033- JDK used in CI: ` .github/actions/common-setup/action.yml ` and ` .github/workflows/* ` (search for ` java-version ` or ` setup-java ` usage)
31- - Kotlin JVM target, compileSdk, minSdk: ` app/build.gradle ` (` kotlinOptions.jvmTarget ` , ` compileSdk ` , ` minSdkVersion ` / ` minSdk ` )
32- - ktlint plugin version: ` app/build.gradle ` (plugin ` org.jlleitschuh.gradle.ktlint ` and its ` version ` )
34+ - compileSdk, minSdk, targetSdk, Java source/target compatibility: ` app/build.gradle.kts `
35+ - Version numbers and release signing: ` app/gradle/version.gradle.kts ` (values in ` app/build.properties ` )
36+ - JaCoCo tasks and coverage thresholds: ` app/gradle/jacoco.gradle.kts `
37+ - Android lint rules: ` app/lint.xml ` ; formatting rules: ` .editorconfig `
38+
39+ Do not use apply(from = ...). Prefer precompiled (convention) plugins or a ` build-logic ` module; this repository does not use Gradle ` extra ` properties.
3340
3441To extract these values quickly from a bash shell you can run (from the repository root):
3542
3643``` bash
37- # Kotlin version
38- grep -n " kotlin_version" build.gradle.kts
44+ # All versions at a glance
45+ cat gradle/libs.versions.toml
46+
47+ # A specific version (Kotlin, AGP, ktlint, Robolectric, ...)
48+ grep -nE " ^(agp|kotlin|ktlint|robolectric) = " gradle/libs.versions.toml
3949
40- # AGP classpath
41- grep -n " com.android.tools. build: gradle" build.gradle.kts
50+ # Which plugins are applied, and where
51+ grep -nE " alias\(libs\.plugins " build. gradle.kts app/ build.gradle.kts
4252
4353# Gradle wrapper distribution
4454grep -n " distributionUrl" gradle/wrapper/gradle-wrapper.properties
4555
4656# JDK in CI workflows
47- grep -R " java-version" .github
48-
49- # compileSdk / minSdk / jvmTarget / ktlint plugin
50- grep -nE " compileSdk|minSdk|kotlinOptions.jvmTarget|org.jlleitschuh.gradle.ktlint" app/build.gradle.kts
57+ grep -Rn " java-version" .github
5158
59+ # compileSdk / minSdk / targetSdk / Java compatibility
60+ grep -nE " compileSdk|minSdk|targetSdk|JavaVersion" app/build.gradle.kts
5261```
5362
5463## Project Structure
5564
5665```
66+ app/build.gradle.kts # Module build script
67+ app/gradle/ # Applied build scripts (version, jacoco)
5768app/src/main/kotlin/ # Main application source code
5869app/src/test/kotlin/ # Unit tests
5970app/src/androidTest/kotlin/ # Android instrumentation tests
@@ -95,10 +106,11 @@ All source files must include the GPLv3 license header:
95106Use ktlint for code formatting:
96107- Check: ` ./gradlew ktlintCheck `
97108- Format: ` ./gradlew ktlintFormat `
98-
109+
99110Repository-specific ktlint notes:
100- - Plugin configured in ` app/build.gradle ` as ` org.jlleitschuh.gradle.ktlint ` (version ` 14.2.0 ` ).
101- - Baseline and rules: see ` app/config/ktlint/baseline.xml ` and project ` .editorconfig ` for formatting rules.
111+ - Plugin applied in ` app/build.gradle.kts ` as ` alias(libs.plugins.ktlint) ` ; the version is the ` ktlint ` entry in ` gradle/libs.versions.toml ` .
112+ - Formatting rules: project ` .editorconfig ` . There is no ktlint baseline file — the codebase is expected to be clean.
113+ - ` app/gradle/*.gradle.kts ` is checked via ` kotlinScriptAdditionalPaths ` ; ktlint otherwise sees only top-level ` *.kts ` .
102114
103115## Communication Philosophy
104116
0 commit comments