mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-04-20 22:23:37 +00:00
chore(build-logic): Apply Spotless and Detekt to build-logic module (#3962)
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
This commit is contained in:
parent
14f6a46769
commit
ce732203ae
4 changed files with 80 additions and 7 deletions
|
|
@ -21,6 +21,8 @@ plugins {
|
|||
`kotlin-dsl`
|
||||
alias(libs.plugins.android.lint)
|
||||
alias(libs.plugins.dependency.analysis)
|
||||
alias(libs.plugins.spotless)
|
||||
alias(libs.plugins.detekt)
|
||||
}
|
||||
|
||||
group = "com.geeksville.mesh.buildlogic"
|
||||
|
|
@ -54,6 +56,8 @@ dependencies {
|
|||
compileOnly(libs.secrets.gradlePlugin)
|
||||
compileOnly(libs.spotless.gradlePlugin)
|
||||
compileOnly(libs.truth)
|
||||
|
||||
detektPlugins(libs.detekt.formatting)
|
||||
}
|
||||
|
||||
tasks {
|
||||
|
|
@ -63,6 +67,39 @@ tasks {
|
|||
}
|
||||
}
|
||||
|
||||
spotless {
|
||||
ratchetFrom("origin/main")
|
||||
kotlin {
|
||||
target("src/*/kotlin/**/*.kt", "src/*/java/**/*.kt")
|
||||
targetExclude("**/build/**/*.kt")
|
||||
ktfmt().kotlinlangStyle().configure { it.setMaxWidth(120) }
|
||||
ktlint(libs.versions.ktlint.get()).setEditorConfigPath(rootProject.file("../config/spotless/.editorconfig").path)
|
||||
licenseHeaderFile(rootProject.file("../config/spotless/copyright.kt"))
|
||||
}
|
||||
kotlinGradle {
|
||||
target("**/*.gradle.kts")
|
||||
ktfmt().kotlinlangStyle().configure { it.setMaxWidth(120) }
|
||||
ktlint(libs.versions.ktlint.get()).setEditorConfigPath(rootProject.file("../config/spotless/.editorconfig").path)
|
||||
licenseHeaderFile(
|
||||
rootProject.file("../config/spotless/copyright.kts"),
|
||||
"(^(?![\\/ ]\\*).*$)"
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
detekt {
|
||||
toolVersion = libs.versions.detekt.get()
|
||||
config.setFrom(rootProject.file("../config/detekt/detekt.yml"))
|
||||
buildUponDefaultConfig = true
|
||||
allRules = false
|
||||
baseline = file("detekt-baseline.xml")
|
||||
source.setFrom(
|
||||
files(
|
||||
"src/main/java",
|
||||
"src/main/kotlin",
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
gradlePlugin {
|
||||
plugins {
|
||||
|
|
|
|||
37
build-logic/convention/detekt-baseline.xml
Normal file
37
build-logic/convention/detekt-baseline.xml
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
<?xml version="1.0" ?>
|
||||
<SmellBaseline>
|
||||
<ManuallySuppressedIssues/>
|
||||
<CurrentIssues>
|
||||
<ID>AbsentOrWrongFileLicense:DetektConventionPlugin.kt$.DetektConventionPlugin.kt</ID>
|
||||
<ID>AbsentOrWrongFileLicense:SpotlessConventionPlugin.kt$.SpotlessConventionPlugin.kt</ID>
|
||||
<ID>ChainWrapping:AndroidInstrumentedTests.kt$&&</ID>
|
||||
<ID>EnumNaming:MeshtasticFlavor.kt$FlavorDimension$marketplace</ID>
|
||||
<ID>EnumNaming:MeshtasticFlavor.kt$MeshtasticFlavor$fdroid : MeshtasticFlavor</ID>
|
||||
<ID>EnumNaming:MeshtasticFlavor.kt$MeshtasticFlavor$google : MeshtasticFlavor</ID>
|
||||
<ID>FinalNewline:ProjectExtensions.kt$com.geeksville.mesh.buildlogic.ProjectExtensions.kt</ID>
|
||||
<ID>MagicNumber:AndroidApplicationConventionPlugin.kt$AndroidApplicationConventionPlugin$36</ID>
|
||||
<ID>MagicNumber:AndroidLibraryConventionPlugin.kt$AndroidLibraryConventionPlugin$36</ID>
|
||||
<ID>MagicNumber:KotlinAndroid.kt$21</ID>
|
||||
<ID>MagicNumber:KotlinAndroid.kt$26</ID>
|
||||
<ID>MagicNumber:KotlinAndroid.kt$36</ID>
|
||||
<ID>MagicNumber:Spotless.kt$120</ID>
|
||||
<ID>MaxLineLength:GitVersionValueSource.kt$GitVersionValueSource$throw RuntimeException("Failed to determine git commit count for versionCode. Ensure you have a full git history (not a shallow clone) and .git is present.\nOriginal error: ${e.message}", e)</ID>
|
||||
<ID>NewLineAtEndOfFile:ProjectExtensions.kt$com.geeksville.mesh.buildlogic.ProjectExtensions.kt</ID>
|
||||
<ID>NoBlankLineBeforeRbrace:AndroidApplicationComposeConventionPlugin.kt$AndroidApplicationComposeConventionPlugin$ </ID>
|
||||
<ID>NoBlankLineBeforeRbrace:AndroidLibraryComposeConventionPlugin.kt$AndroidLibraryComposeConventionPlugin$ </ID>
|
||||
<ID>NoConsecutiveBlankLines:MeshtasticFlavor.kt$ </ID>
|
||||
<ID>NoUnusedImports:AndroidApplicationFlavorsConventionPlugin.kt$.AndroidApplicationFlavorsConventionPlugin.kt</ID>
|
||||
<ID>NoUnusedImports:AndroidLibraryConventionPlugin.kt$.AndroidLibraryConventionPlugin.kt</ID>
|
||||
<ID>SpacingAroundParens:MeshtasticFlavor.kt$MeshtasticFlavor.fdroid$)</ID>
|
||||
<ID>TooGenericExceptionCaught:GitVersionValueSource.kt$GitVersionValueSource$e: Exception</ID>
|
||||
<ID>TooGenericExceptionThrown:GitVersionValueSource.kt$GitVersionValueSource$throw RuntimeException("Failed to determine git commit count for versionCode. Ensure you have a full git history (not a shallow clone) and .git is present.\nOriginal error: ${e.message}", e)</ID>
|
||||
<ID>UnusedImports:AndroidApplicationFlavorsConventionPlugin.kt$import com.geeksville.mesh.buildlogic.MeshtasticFlavor</ID>
|
||||
<ID>UnusedImports:AndroidApplicationFlavorsConventionPlugin.kt$import com.geeksville.mesh.buildlogic.libs</ID>
|
||||
<ID>UnusedImports:AndroidApplicationFlavorsConventionPlugin.kt$import org.gradle.kotlin.dsl.apply</ID>
|
||||
<ID>UnusedImports:AndroidApplicationFlavorsConventionPlugin.kt$import org.gradle.kotlin.dsl.dependencies</ID>
|
||||
<ID>UnusedImports:AndroidApplicationFlavorsConventionPlugin.kt$import org.gradle.kotlin.dsl.exclude</ID>
|
||||
<ID>UnusedImports:AndroidLibraryConventionPlugin.kt$import com.geeksville.mesh.buildlogic.libs</ID>
|
||||
<ID>UnusedImports:AndroidLibraryConventionPlugin.kt$import org.gradle.kotlin.dsl.dependencies</ID>
|
||||
<ID>UnusedParameter:AndroidLintConventionPlugin.kt$project: Project</ID>
|
||||
</CurrentIssues>
|
||||
</SmellBaseline>
|
||||
|
|
@ -18,11 +18,7 @@
|
|||
package com.geeksville.mesh.buildlogic
|
||||
|
||||
import com.diffplug.gradle.spotless.SpotlessExtension
|
||||
import io.gitlab.arturbosch.detekt.Detekt
|
||||
import io.gitlab.arturbosch.detekt.extensions.DetektExtension
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.kotlin.dsl.dependencies
|
||||
import org.gradle.kotlin.dsl.named
|
||||
|
||||
internal fun Project.configureSpotless(extension: SpotlessExtension) = extension.apply {
|
||||
extension.apply {
|
||||
|
|
@ -31,17 +27,19 @@ internal fun Project.configureSpotless(extension: SpotlessExtension) = extension
|
|||
target("src/*/kotlin/**/*.kt", "src/*/java/**/*.kt")
|
||||
targetExclude("**/build/**/*.kt")
|
||||
ktfmt().kotlinlangStyle().configure { it.setMaxWidth(120) }
|
||||
ktlint("1.7.1").setEditorConfigPath(rootProject.file("config/spotless/.editorconfig").path)
|
||||
ktlint(libs.findVersion("ktlint").get().requiredVersion)
|
||||
.setEditorConfigPath(rootProject.file("config/spotless/.editorconfig").path)
|
||||
licenseHeaderFile(rootProject.file("config/spotless/copyright.kt"))
|
||||
}
|
||||
kotlinGradle {
|
||||
target("**/*.gradle.kts")
|
||||
ktfmt().kotlinlangStyle().configure { it.setMaxWidth(120) }
|
||||
ktlint("1.7.1").setEditorConfigPath(rootProject.file("config/spotless/.editorconfig").path)
|
||||
ktlint(libs.findVersion("ktlint").get().requiredVersion)
|
||||
.setEditorConfigPath(rootProject.file("config/spotless/.editorconfig").path)
|
||||
licenseHeaderFile(
|
||||
rootProject.file("config/spotless/copyright.kts"),
|
||||
"(^(?![\\/ ]\\*).*$)"
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ room = "2.8.4"
|
|||
kotlin = "2.2.21"
|
||||
kotlinx-coroutines-android = "1.10.2"
|
||||
kotlinx-serialization = "1.9.0"
|
||||
ktlint = "1.7.1"
|
||||
|
||||
# Google
|
||||
hilt = "2.57.2"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue