Skip to content

Commit 8f06b5e

Browse files
authored
Fix generated telemetry types file exceeding IDE code insight size limit (#4829)
1 parent 0568012 commit 8f06b5e

File tree

4 files changed

+36
-33
lines changed

4 files changed

+36
-33
lines changed

buildSrc/src/main/kotlin/toolkit-detekt.gradle.kts

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,7 @@
22
// SPDX-License-Identifier: Apache-2.0
33
import io.gitlab.arturbosch.detekt.Detekt
44
import io.gitlab.arturbosch.detekt.DetektCreateBaselineTask
5-
import kotlin.reflect.KVisibility
6-
import kotlin.reflect.full.companionObject
7-
import kotlin.reflect.full.companionObjectInstance
8-
import kotlin.reflect.full.functions
9-
import kotlin.reflect.full.memberFunctions
10-
import kotlin.reflect.full.memberProperties
5+
import software.aws.toolkits.gradle.jvmTarget
116

127
plugins {
138
id("io.gitlab.arturbosch.detekt")
@@ -21,9 +16,9 @@ dependencies {
2116
detektPlugins(project(":detekt-rules"))
2217
}
2318

24-
private val detektFiles = fileTree(projectDir).asFileTree.matching {
19+
private val detektFiles = fileTree(projectDir).matching {
2520
include("**/*.kt", "**/*.kts")
26-
exclude("**/build/**")
21+
exclude("**/build")
2722
}
2823

2924
detekt {
@@ -36,14 +31,22 @@ detekt {
3631
autoCorrect = true
3732
}
3833

34+
val javaVersion = project.jvmTarget().get()
35+
3936
tasks.withType<Detekt>().configureEach {
37+
jvmTarget = javaVersion.majorVersion
38+
dependsOn(":detekt-rules:assemble")
39+
4040
reports {
4141
html.required.set(true) // Human readable report
4242
xml.required.set(true) // Checkstyle like format for CI tool integrations
4343
}
4444
}
4545

4646
tasks.withType<DetektCreateBaselineTask>().configureEach {
47+
jvmTarget = javaVersion.majorVersion
48+
dependsOn(":detekt-rules:assemble")
49+
4750
// weird issue where the baseline tasks can't find the source code
4851
source.plus(detektFiles)
4952
}

buildSrc/src/main/kotlin/toolkit-kotlin-conventions.gradle.kts

Lines changed: 20 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
// Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2-
// SPDX-License-Identifier: Apache-2.0
3-
41
import io.gitlab.arturbosch.detekt.Detekt
52
import io.gitlab.arturbosch.detekt.DetektCreateBaselineTask
6-
import software.aws.toolkits.gradle.jvmTarget
3+
import io.gitlab.arturbosch.detekt.DetektPlugin
4+
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmProjectExtension
5+
6+
// Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
7+
// SPDX-License-Identifier: Apache-2.0
78

89
plugins {
910
id("java-library")
@@ -49,26 +50,6 @@ sourceSets {
4950
}
5051
}
5152

52-
val javaVersion = project.jvmTarget().get()
53-
54-
tasks.withType<Detekt>().configureEach {
55-
jvmTarget = javaVersion.majorVersion
56-
dependsOn(":detekt-rules:assemble")
57-
include("**/*.kt")
58-
exclude("build/**")
59-
exclude("**/*.Generated.kt")
60-
exclude("**/TelemetryDefinitions.kt")
61-
}
62-
63-
tasks.withType<DetektCreateBaselineTask>().configureEach {
64-
jvmTarget = javaVersion.majorVersion
65-
dependsOn(":detekt-rules:assemble")
66-
include("**/*.kt")
67-
exclude("build/**")
68-
exclude("**/*.Generated.kt")
69-
exclude("**/TelemetryDefinitions.kt")
70-
}
71-
7253
project.afterEvaluate {
7354
tasks.check {
7455
dependsOn(tasks.detekt, tasks.detektMain, tasks.detektTest)
@@ -78,3 +59,18 @@ project.afterEvaluate {
7859
}
7960
}
8061
}
62+
63+
// can't figure out why exclude() doesn't work on the generated source tree, so copy logic from detekt
64+
project.extensions.getByType(KotlinJvmProjectExtension::class.java).target.compilations.configureEach {
65+
val inputSource = kotlinSourceSets
66+
.map { it.kotlin.sourceDirectories.filter { !it.path.contains("build") } }
67+
.fold(project.files() as FileCollection) { collection, next -> collection.plus(next) }
68+
69+
tasks.named<Detekt>(DetektPlugin.DETEKT_TASK_NAME + name.capitalize()).configure {
70+
setSource(inputSource)
71+
}
72+
73+
tasks.named<DetektCreateBaselineTask>(DetektPlugin.BASELINE_TASK_NAME + name.capitalize()).configure {
74+
setSource(inputSource)
75+
}
76+
}

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ mockitoKotlin = "5.4.0"
2525
mockk = "1.13.10"
2626
nimbus-jose-jwt = "9.40"
2727
node-gradle = "7.0.2"
28-
telemetryGenerator = "1.0.243"
28+
telemetryGenerator = "1.0.247"
2929
testLogger = "4.0.0"
3030
testRetry = "1.5.10"
3131
# test-only; platform provides slf4j transitively at runtime

plugins/core/jetbrains-community/build.gradle.kts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ sourceSets {
2828
val generateTelemetry = tasks.register<GenerateTelemetry>("generateTelemetry") {
2929
inputFiles = listOf(file("${project.projectDir}/resources/telemetryOverride.json"))
3030
outputDirectory = project.layout.buildDirectory.dir("generated-src").get().asFile
31+
32+
doFirst {
33+
outputDirectory.deleteRecursively()
34+
}
3135
}
3236

3337
tasks.compileKotlin {

0 commit comments

Comments
 (0)