mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-30 22:07:57 +01: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:
		
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							9c4d2b087f
						
					
				
				
					commit
					cc09230e26
				
			
							
								
								
									
										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) | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user