From 80485809d9c3ad64044e9549f58adbd86ded8af4 Mon Sep 17 00:00:00 2001 From: "Nataliya.Valtman" Date: Fri, 20 Oct 2023 12:22:12 +0200 Subject: [PATCH] Add runtimeOnly and compileOnly dependencies to FUS #KT-62617 Fixed --- .../kotlin/gradle/FusStatisticsIT.kt | 22 +++++++++++++++++++ .../statistics/KotlinBuildStatHandler.kt | 8 +++++++ .../statistics/metrics/NumericalMetrics.kt | 2 ++ 3 files changed, 32 insertions(+) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/FusStatisticsIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/FusStatisticsIT.kt index 1362c8c1c3a..9b1d5919691 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/FusStatisticsIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/FusStatisticsIT.kt @@ -193,6 +193,28 @@ class FusStatisticsIT : KGPDaemonsBaseTest() { } } + @DisplayName("configuration type metrics") + @GradleTest + @GradleTestVersions( + additionalVersions = [TestVersions.Gradle.G_7_6, TestVersions.Gradle.G_8_0], + ) + fun testConfigurationTypeFusMetrics(gradleVersion: GradleVersion) { + project("simpleProject", gradleVersion) { + build( + "compileKotlin", + "-Pkotlin.session.logger.root.path=$projectPath", + ) { + assertFileContains( + fusStatisticsPath, + "CONFIGURATION_COMPILE_ONLY_COUNT=1", + "CONFIGURATION_API_COUNT=1", + "CONFIGURATION_IMPLEMENTATION_COUNT=1", + "CONFIGURATION_RUNTIME_ONLY_COUNT=1", + ) + } + } + } + private fun TestProject.applyDokka() { buildGradle.replaceText( "plugins {", diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildStatHandler.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildStatHandler.kt index a2daa4a9e66..f8702283a21 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildStatHandler.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildStatHandler.kt @@ -147,10 +147,18 @@ class KotlinBuildStatHandler { configurationTimeMetrics.put(NumericalMetrics.CONFIGURATION_COMPILE_COUNT, 1) reportLibrariesVersions(configurationTimeMetrics, dependencies) } + COMPILE_ONLY -> { + configurationTimeMetrics.put(NumericalMetrics.CONFIGURATION_COMPILE_ONLY_COUNT, 1) + reportLibrariesVersions(configurationTimeMetrics, dependencies) + } RUNTIME -> { configurationTimeMetrics.put(NumericalMetrics.CONFIGURATION_RUNTIME_COUNT, 1) reportLibrariesVersions(configurationTimeMetrics, dependencies) } + RUNTIME_ONLY -> { + configurationTimeMetrics.put(NumericalMetrics.CONFIGURATION_RUNTIME_ONLY_COUNT, 1) + reportLibrariesVersions(configurationTimeMetrics, dependencies) + } } } catch (e: Throwable) { // log? diff --git a/libraries/tools/kotlin-gradle-statistics/src/main/kotlin/org/jetbrains/kotlin/statistics/metrics/NumericalMetrics.kt b/libraries/tools/kotlin-gradle-statistics/src/main/kotlin/org/jetbrains/kotlin/statistics/metrics/NumericalMetrics.kt index b485d3e2afe..913e9a8f947 100644 --- a/libraries/tools/kotlin-gradle-statistics/src/main/kotlin/org/jetbrains/kotlin/statistics/metrics/NumericalMetrics.kt +++ b/libraries/tools/kotlin-gradle-statistics/src/main/kotlin/org/jetbrains/kotlin/statistics/metrics/NumericalMetrics.kt @@ -28,7 +28,9 @@ enum class NumericalMetrics(val type: NumberOverridePolicy, val anonymization: N CONFIGURATION_API_COUNT(SUM, RANDOM_10_PERCENT), CONFIGURATION_IMPLEMENTATION_COUNT(SUM, RANDOM_10_PERCENT), CONFIGURATION_COMPILE_COUNT(SUM, RANDOM_10_PERCENT), + CONFIGURATION_COMPILE_ONLY_COUNT(SUM, RANDOM_10_PERCENT), CONFIGURATION_RUNTIME_COUNT(SUM, RANDOM_10_PERCENT), + CONFIGURATION_RUNTIME_ONLY_COUNT(SUM, RANDOM_10_PERCENT), // gradle task types GRADLE_NUMBER_OF_TASKS(SUM, RANDOM_10_PERCENT),