Skip to content

Commit 806f68b

Browse files
mazhukinevgeniySpace Team
authored andcommitted
[FUS] Add FUS event for useFirRunner option in JVM builds
^KT-79032 Fixed Merge-request: KT-MR-22753 Merged-by: Evgenii Mazhukin <[email protected]>
1 parent 9b4b075 commit 806f68b

File tree

5 files changed

+47
-5
lines changed

5 files changed

+47
-5
lines changed

libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/FusStatisticsIT.kt

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -322,12 +322,12 @@ class FusStatisticsIT : KGPBaseTest() {
322322
}
323323
}
324324

325+
@JvmGradlePluginTests
325326
@DisplayName("fus metric for multiproject")
326327
@GradleTest
327328
@GradleTestVersions(
328329
additionalVersions = [TestVersions.Gradle.G_8_0, TestVersions.Gradle.G_8_2],
329330
)
330-
@JvmGradlePluginTests
331331
fun testFusStatisticsForMultiproject(gradleVersion: GradleVersion) {
332332
project(
333333
"incrementalMultiproject", gradleVersion,
@@ -374,6 +374,37 @@ class FusStatisticsIT : KGPBaseTest() {
374374
}
375375
}
376376

377+
@JvmGradlePluginTests
378+
@DisplayName("fus metric for jvm feature flags")
379+
@GradleTest
380+
@GradleTestVersions(
381+
additionalVersions = [TestVersions.Gradle.G_8_0, TestVersions.Gradle.G_8_2],
382+
)
383+
fun testFusStatisticsForJvmMultiprojectWithFeatureFlags(gradleVersion: GradleVersion) {
384+
project(
385+
"incrementalMultiproject", gradleVersion,
386+
) {
387+
assertNoErrorFilesCreated {
388+
//Collect metrics from BuildMetricsService also
389+
build(
390+
"compileKotlin", "-Pkotlin.session.logger.root.path=$projectPath",
391+
buildOptions = defaultBuildOptions
392+
.copy(
393+
buildReport = listOf(BuildReportType.FILE),
394+
useFirJvmRunner = true,
395+
).disableIsolatedProjects(),
396+
) {
397+
assertOutputDoesNotContainFusErrors()
398+
fusStatisticsDirectory.assertFusReportContains(
399+
"CONFIGURATION_IMPLEMENTATION_COUNT=2",
400+
"NUMBER_OF_SUBPROJECTS=2",
401+
"COMPILATIONS_COUNT=2",
402+
"KOTLIN_INCREMENTAL_FIR_RUNNER_ENABLED=true"
403+
)
404+
}
405+
}
406+
}
407+
}
377408

378409
@JvmGradlePluginTests
379410
@DisplayName("general fields with configuration cache")

libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/FusMetrics.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,7 @@ internal object CompileKotlinTaskMetrics : FusMetrics {
251251
name: String,
252252
compilerOptions: KotlinCommonCompilerOptions,
253253
separateKmpCompilationEnabled: Boolean,
254+
firRunnerEnabled: Boolean, // jvm only as of 2.2.20
254255
metricsContainer: StatisticsValuesConsumer,
255256
) {
256257
metricsContainer.report(BooleanMetrics.KOTLIN_PROGRESSIVE_MODE, compilerOptions.progressiveMode.get())
@@ -267,6 +268,9 @@ internal object CompileKotlinTaskMetrics : FusMetrics {
267268
if (separateKmpCompilationEnabled) {
268269
metricsContainer.report(BooleanMetrics.KOTLIN_SEPARATE_KMP_COMPILATION_ENABLED, true)
269270
}
271+
if (firRunnerEnabled) {
272+
metricsContainer.report(BooleanMetrics.KOTLIN_INCREMENTAL_FIR_RUNNER_ENABLED, true)
273+
}
270274
}
271275
}
272276

@@ -359,4 +363,4 @@ internal object KotlinStdlibConfigurationMetrics : FusMetrics {
359363
it.put(StringMetrics.KOTLIN_STDLIB_VERSION, requestedStdlibVersion)
360364
}
361365
}
362-
}
366+
}

libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/AbstractKotlinCompile.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,13 @@ abstract class AbstractKotlinCompile<T : CommonCompilerArguments> @Inject constr
236236
buildMetrics.addTimeMetric(GradleBuildPerformanceMetric.START_TASK_ACTION_EXECUTION)
237237
buildMetrics.measure(GradleBuildTime.OUT_OF_WORKER_TASK_ACTION) {
238238
buildFusService.orNull?.reportFusMetrics {
239-
CompileKotlinTaskMetrics.collectMetrics(name, compilerOptions, separateKmpCompilation.get(), it)
239+
CompileKotlinTaskMetrics.collectMetrics(
240+
name,
241+
compilerOptions,
242+
separateKmpCompilation.get(),
243+
firRunnerEnabled = (this as? KotlinCompile)?.useFirRunner?.get() == true,
244+
it
245+
)
240246
}
241247
validateCompilerClasspath()
242248
systemPropertiesService.get().startIntercept()

libraries/tools/kotlin-gradle-statistics/src/main/kotlin/org/jetbrains/kotlin/statistics/metrics/BooleanMetrics.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ enum class BooleanMetrics(val type: BooleanOverridePolicy, val anonymization: Bo
4747
KOTLIN_PROGRESSIVE_MODE(OVERRIDE, SAFE),
4848
KOTLIN_KTS_USED(OR, SAFE),
4949
KOTLIN_INCREMENTAL_NATIVE_ENABLED(OR, SAFE),
50+
KOTLIN_INCREMENTAL_FIR_RUNNER_ENABLED(OR, SAFE),
5051
KOTLIN_SEPARATE_KMP_COMPILATION_ENABLED(OR, SAFE),
5152
KMP_TOP_LEVEL_DEPENDENCIES_BLOCK(OR, SAFE),
5253

@@ -118,6 +119,6 @@ enum class BooleanMetrics(val type: BooleanOverridePolicy, val anonymization: Bo
118119
;
119120

120121
companion object {
121-
const val VERSION = 16
122+
const val VERSION = 17
122123
}
123124
}

libraries/tools/kotlin-gradle-statistics/src/test/kotlin/org/jetbrains/kotlin/statistics/ModuleChangesCatchingTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ private const val STRING_METRICS_RELATIVE_PATH = "$SOURCE_CODE_RELATIVE_PATH/Str
2323
private const val NUMERICAL_METRICS_RELATIVE_PATH = "$SOURCE_CODE_RELATIVE_PATH/NumericalMetrics.kt"
2424

2525
private val STRING_METRICS_EXPECTED_VERSION_AND_HASH = Pair(6, "9590d0e39131ec9814649a6e38a5b81e")
26-
private val BOOLEAN_METRICS_EXPECTED_VERSION_AND_HASH = Pair(16, "e6f8f64dc79393d70113c5eaa8711f3c")
26+
private val BOOLEAN_METRICS_EXPECTED_VERSION_AND_HASH = Pair(17, "7ee268355a9a9d92e398c9e1cb1c6f58")
2727
private val NUMERICAL_METRICS_EXPECTED_VERSION_AND_HASH = Pair(2, "d8c1a1f4fb7227fbe8247320bf3370ca")
2828
private val SOURCE_FOLDER_EXPECTED_VERSION_AND_HASH =
2929
Pair(

0 commit comments

Comments
 (0)