mirror of
https://git.mihon.tech/mihonapp/mihon
synced 2024-11-21 12:45:44 +03:00
Adding Detekt in the project (#216)
* Removing ktlint * Removing compose lint * Adding initial Detekt config * Setting up detekt config * Adding detekt baseline * Fixing workflows * Moving to a module based solution * Adding new line * Adding new line * Updating baseline * Addressing PR suggestions * Regenerating baseline.xml * Cleanup --------- Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
This commit is contained in:
parent
9c4d2b087f
commit
cc09230e26
13 changed files with 1403 additions and 33 deletions
2
.github/workflows/build_pull_request.yml
vendored
2
.github/workflows/build_pull_request.yml
vendored
|
@ -37,4 +37,4 @@ jobs:
|
|||
- name: Build app and run unit tests
|
||||
uses: gradle/gradle-command-action@v2
|
||||
with:
|
||||
arguments: ktlintCheck assembleStandardRelease testReleaseUnitTest
|
||||
arguments: detekt assembleStandardRelease testReleaseUnitTest
|
||||
|
|
2
.github/workflows/build_push.yml
vendored
2
.github/workflows/build_push.yml
vendored
|
@ -35,7 +35,7 @@ jobs:
|
|||
- name: Build app and run unit tests
|
||||
uses: gradle/gradle-command-action@v2
|
||||
with:
|
||||
arguments: ktlintCheck assembleStandardRelease testReleaseUnitTest
|
||||
arguments: detekt assembleStandardRelease testReleaseUnitTest
|
||||
|
||||
# Sign APK and create release for tags
|
||||
|
||||
|
|
|
@ -163,7 +163,6 @@ dependencies {
|
|||
implementation(compose.ui.util)
|
||||
implementation(compose.accompanist.webview)
|
||||
implementation(compose.accompanist.systemuicontroller)
|
||||
lintChecks(compose.lintchecks)
|
||||
|
||||
implementation(androidx.paging.runtime)
|
||||
implementation(androidx.paging.compose)
|
||||
|
|
|
@ -32,8 +32,7 @@ subprojects {
|
|||
}
|
||||
|
||||
plugins.withType<BasePlugin> {
|
||||
plugins.apply("tachiyomi.lint")
|
||||
|
||||
plugins.apply("detekt")
|
||||
configure<BaseExtension> {
|
||||
compileSdkVersion(AndroidConfig.compileSdk)
|
||||
defaultConfig {
|
||||
|
|
|
@ -3,9 +3,10 @@ plugins {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
implementation(files(libs.javaClass.superclass.protectionDomain.codeSource.location))
|
||||
implementation(androidxLibs.gradle)
|
||||
implementation(kotlinLibs.gradle)
|
||||
implementation(libs.ktlint)
|
||||
implementation(libs.detekt.gradlePlugin)
|
||||
implementation(gradleApi())
|
||||
}
|
||||
|
||||
|
|
47
buildSrc/src/main/kotlin/detekt.gradle.kts
Normal file
47
buildSrc/src/main/kotlin/detekt.gradle.kts
Normal file
|
@ -0,0 +1,47 @@
|
|||
import io.gitlab.arturbosch.detekt.Detekt
|
||||
import io.gitlab.arturbosch.detekt.DetektCreateBaselineTask
|
||||
import org.gradle.accessors.dm.LibrariesForLibs
|
||||
|
||||
plugins {
|
||||
id("io.gitlab.arturbosch.detekt")
|
||||
}
|
||||
|
||||
val libs = the<LibrariesForLibs>()
|
||||
dependencies {
|
||||
detektPlugins(libs.detekt.rules.formatting)
|
||||
detektPlugins(libs.detekt.rules.compose)
|
||||
}
|
||||
|
||||
private val configFile = files("$rootDir/config/detekt/detekt.yml")
|
||||
private val baselineFile = file("$rootDir/config/detekt/baseline.xml")
|
||||
private val kotlinFiles = "**/*.kt"
|
||||
private val resourceFiles = "**/resources/**"
|
||||
private val buildFiles = "**/build/**"
|
||||
private val generatedFiles = "**/generated/**"
|
||||
private val scriptsFiles = "**/*.kts"
|
||||
|
||||
detekt {
|
||||
buildUponDefaultConfig = true
|
||||
parallel = true
|
||||
autoCorrect = false
|
||||
ignoreFailures = false
|
||||
config.setFrom(configFile)
|
||||
baseline = file(baselineFile)
|
||||
}
|
||||
|
||||
tasks.withType<Detekt>().configureEach {
|
||||
include(kotlinFiles)
|
||||
exclude(resourceFiles, buildFiles, generatedFiles, scriptsFiles)
|
||||
reports {
|
||||
html.required.set(true)
|
||||
xml.required.set(false)
|
||||
txt.required.set(false)
|
||||
}
|
||||
}
|
||||
|
||||
tasks.withType<Detekt>().configureEach {
|
||||
jvmTarget = JavaVersion.VERSION_17.toString()
|
||||
}
|
||||
tasks.withType<DetektCreateBaselineTask>().configureEach {
|
||||
jvmTarget = JavaVersion.VERSION_17.toString()
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
import org.jlleitschuh.gradle.ktlint.KtlintExtension
|
||||
import org.jlleitschuh.gradle.ktlint.KtlintPlugin
|
||||
|
||||
apply<KtlintPlugin>()
|
||||
|
||||
extensions.configure<KtlintExtension>("ktlint") {
|
||||
version.set("0.50.0")
|
||||
android.set(true)
|
||||
enableExperimentalRules.set(true)
|
||||
|
||||
filter {
|
||||
exclude("**/generated/**")
|
||||
|
||||
// For some reason this is needed for Kotlin MPP
|
||||
exclude { tree ->
|
||||
val path = tree.file.path
|
||||
listOf("/generated/").any {
|
||||
path.contains(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
1327
config/detekt/baseline.xml
Normal file
1327
config/detekt/baseline.xml
Normal file
File diff suppressed because it is too large
Load diff
19
config/detekt/detekt.yml
Normal file
19
config/detekt/detekt.yml
Normal file
|
@ -0,0 +1,19 @@
|
|||
naming:
|
||||
FunctionNaming:
|
||||
functionPattern: '[a-z][a-zA-Z0-9]*'
|
||||
ignoreAnnotated: [ 'Composable' ]
|
||||
TopLevelPropertyNaming:
|
||||
constantPattern: '[A-Z][A-Za-z0-9]*'
|
||||
|
||||
complexity:
|
||||
LongParameterList:
|
||||
functionThreshold: 6
|
||||
constructorThreshold: 7
|
||||
ignoreDefaultParameters: true
|
||||
|
||||
style:
|
||||
MagicNumber:
|
||||
ignorePropertyDeclaration: true
|
||||
ignoreCompanionObjectPropertyDeclaration: true
|
||||
UnusedPrivateMember:
|
||||
ignoreAnnotated: [ 'Preview' ]
|
|
@ -23,5 +23,3 @@ glance = "androidx.glance:glance-appwidget:1.0.0"
|
|||
|
||||
accompanist-webview = { module = "com.google.accompanist:accompanist-webview", version.ref = "accompanist" }
|
||||
accompanist-systemuicontroller = { module = "com.google.accompanist:accompanist-systemuicontroller", version.ref = "accompanist" }
|
||||
|
||||
lintchecks = { module = "com.slack.lint.compose:compose-lint-checks", version = "1.2.0" }
|
|
@ -8,6 +8,8 @@ shizuku_version = "12.2.0"
|
|||
sqldelight = "2.0.0"
|
||||
sqlite = "2.4.0"
|
||||
voyager = "1.0.0"
|
||||
detekt = "1.23.1"
|
||||
detektCompose = "0.3.11"
|
||||
|
||||
[libraries]
|
||||
desugar = "com.android.tools:desugar_jdk_libs:2.0.4"
|
||||
|
@ -93,7 +95,9 @@ voyager-screenmodel = { module = "cafe.adriel.voyager:voyager-screenmodel", vers
|
|||
voyager-tab-navigator = { module = "cafe.adriel.voyager:voyager-tab-navigator", version.ref = "voyager" }
|
||||
voyager-transitions = { module = "cafe.adriel.voyager:voyager-transitions", version.ref = "voyager" }
|
||||
|
||||
ktlint = "org.jlleitschuh.gradle:ktlint-gradle:12.0.3"
|
||||
detekt-gradlePlugin = { module = "io.gitlab.arturbosch.detekt:detekt-gradle-plugin", version.ref = "detekt" }
|
||||
detekt-rules-formatting = { module = "io.gitlab.arturbosch.detekt:detekt-formatting", version.ref = "detekt" }
|
||||
detekt-rules-compose = { module = "io.nlopez.compose.rules:detekt", version.ref = "detektCompose" }
|
||||
|
||||
[bundles]
|
||||
okhttp = ["okhttp-core", "okhttp-logging", "okhttp-brotli", "okhttp-dnsoverhttps"]
|
||||
|
|
|
@ -36,7 +36,6 @@ dependencies {
|
|||
debugImplementation(compose.ui.tooling)
|
||||
implementation(compose.ui.tooling.preview)
|
||||
implementation(compose.ui.util)
|
||||
lintChecks(compose.lintchecks)
|
||||
|
||||
implementation(kotlinx.immutables)
|
||||
}
|
||||
|
|
|
@ -27,7 +27,6 @@ dependencies {
|
|||
api(projects.i18n)
|
||||
|
||||
implementation(compose.glance)
|
||||
lintChecks(compose.lintchecks)
|
||||
|
||||
implementation(kotlinx.immutables)
|
||||
|
||||
|
|
Loading…
Reference in a new issue