diff --git a/build-plugins/build-support/build.gradle.kts b/build-plugins/build-support/build.gradle.kts index 38ae0da9..2c8de499 100644 --- a/build-plugins/build-support/build.gradle.kts +++ b/build-plugins/build-support/build.gradle.kts @@ -18,12 +18,6 @@ repositories { } dependencies { - // make our custom lint rules available to the buildscript classpath - runtimeOnly(project(":ktlint-rules")) { - // Ensure that kotlin-compiler-embeddable isn't included in the buildscript classpath - exclude(group = "org.jetbrains.kotlin", module = "kotlin-compiler-embeddable") - } - implementation(libs.nexus.publish.plugin) implementation(libs.jreleaser.plugin) compileOnly(gradleApi()) diff --git a/build-plugins/build-support/src/main/kotlin/aws/sdk/kotlin/gradle/dsl/CodeStyle.kt b/build-plugins/build-support/src/main/kotlin/aws/sdk/kotlin/gradle/dsl/CodeStyle.kt index 9d295c98..fc927792 100644 --- a/build-plugins/build-support/src/main/kotlin/aws/sdk/kotlin/gradle/dsl/CodeStyle.kt +++ b/build-plugins/build-support/src/main/kotlin/aws/sdk/kotlin/gradle/dsl/CodeStyle.kt @@ -6,6 +6,7 @@ package aws.sdk.kotlin.gradle.dsl import aws.sdk.kotlin.gradle.util.verifyRootProject import org.gradle.api.Project +import org.gradle.api.artifacts.VersionCatalogsExtension import org.gradle.api.attributes.Bundling import org.gradle.api.tasks.JavaExec import org.gradle.kotlin.dsl.* @@ -24,6 +25,13 @@ fun Project.configureLinting(lintPaths: List) { ?.readText() ?: error("Missing ktlint-version.txt") + val repoToolsVersion = extensions + .getByType() + .named("libs") + .findVersion("aws-kotlin-repo-tools-version") + .get() + .requiredVersion + val ktlint by configurations.creating dependencies { @@ -32,6 +40,7 @@ fun Project.configureLinting(lintPaths: List) { attribute(Bundling.BUNDLING_ATTRIBUTE, objects.named(Bundling.SHADOWED)) } } + ktlint("aws.sdk.kotlin.gradle:ktlint-rules:$repoToolsVersion") } // add the buildscript classpath which should pick up our custom ktlint-rules (via runtimeOnly dep on this plugin) diff --git a/ktlint-rules/src/main/kotlin/software/aws/ktlint/rules/CopyrightHeaderRule.kt b/ktlint-rules/src/main/kotlin/software/aws/ktlint/rules/CopyrightHeaderRule.kt index dc0d9f1b..f62179ed 100644 --- a/ktlint-rules/src/main/kotlin/software/aws/ktlint/rules/CopyrightHeaderRule.kt +++ b/ktlint-rules/src/main/kotlin/software/aws/ktlint/rules/CopyrightHeaderRule.kt @@ -11,7 +11,7 @@ import org.jetbrains.kotlin.com.intellij.psi.impl.source.tree.PsiCommentImpl import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.psi.stubs.elements.KtFileElementType -class CopyrightHeaderRule : Rule(RuleId("copyright-header"), About()) { +class CopyrightHeaderRule : Rule(RuleId("aws-kotlin-repo-tools-rules:copyright-header"), About()) { companion object { private val header = """ /* diff --git a/ktlint-rules/src/main/kotlin/software/aws/ktlint/rules/CustomRuleSetProvider.kt b/ktlint-rules/src/main/kotlin/software/aws/ktlint/rules/CustomRuleSetProvider.kt index 48e3a338..f2fe298d 100644 --- a/ktlint-rules/src/main/kotlin/software/aws/ktlint/rules/CustomRuleSetProvider.kt +++ b/ktlint-rules/src/main/kotlin/software/aws/ktlint/rules/CustomRuleSetProvider.kt @@ -8,7 +8,7 @@ import com.pinterest.ktlint.cli.ruleset.core.api.RuleSetProviderV3 import com.pinterest.ktlint.rule.engine.core.api.RuleProvider import com.pinterest.ktlint.rule.engine.core.api.RuleSetId -class CustomRuleSetProvider : RuleSetProviderV3(RuleSetId("custom-ktlint-rules")) { +class CustomRuleSetProvider : RuleSetProviderV3(RuleSetId("aws-kotlin-repo-tools-rules")) { override fun getRuleProviders() = setOf( RuleProvider { CopyrightHeaderRule() }, RuleProvider { ExpressionBodyRule() }, diff --git a/ktlint-rules/src/main/kotlin/software/aws/ktlint/rules/ExpressionBodyRule.kt b/ktlint-rules/src/main/kotlin/software/aws/ktlint/rules/ExpressionBodyRule.kt index e54e5c0e..273e6765 100644 --- a/ktlint-rules/src/main/kotlin/software/aws/ktlint/rules/ExpressionBodyRule.kt +++ b/ktlint-rules/src/main/kotlin/software/aws/ktlint/rules/ExpressionBodyRule.kt @@ -11,7 +11,7 @@ import org.jetbrains.kotlin.psi.KtBlockExpression import org.jetbrains.kotlin.psi.KtNamedFunction import org.jetbrains.kotlin.psi.KtReturnExpression -class ExpressionBodyRule : Rule(RuleId("expression-body"), About()) { +class ExpressionBodyRule : Rule(RuleId("aws-kotlin-repo-tools-rules:expression-body"), About()) { override fun beforeVisitChildNodes( node: ASTNode, autoCorrect: Boolean, diff --git a/ktlint-rules/src/main/kotlin/software/aws/ktlint/rules/MultilineIfElseBlockRule.kt b/ktlint-rules/src/main/kotlin/software/aws/ktlint/rules/MultilineIfElseBlockRule.kt index 16fc2e8d..4223e070 100644 --- a/ktlint-rules/src/main/kotlin/software/aws/ktlint/rules/MultilineIfElseBlockRule.kt +++ b/ktlint-rules/src/main/kotlin/software/aws/ktlint/rules/MultilineIfElseBlockRule.kt @@ -9,7 +9,7 @@ import com.pinterest.ktlint.rule.engine.core.api.Rule import com.pinterest.ktlint.rule.engine.core.api.RuleId import org.jetbrains.kotlin.com.intellij.lang.ASTNode -class MultilineIfElseBlockRule : Rule(RuleId("multiline-if-else-block"), About()) { +class MultilineIfElseBlockRule : Rule(RuleId("aws-kotlin-repo-tools-rules:multiline-if-else-block"), About()) { override fun beforeVisitChildNodes( node: ASTNode, autoCorrect: Boolean, diff --git a/ktlint-rules/src/main/resources/META-INF/services/com.pinterest.ktlint.core.RuleSetProviderV3 b/ktlint-rules/src/main/resources/META-INF/services/com.pinterest.ktlint.cli.ruleset.core.api.RuleSetProviderV3 similarity index 100% rename from ktlint-rules/src/main/resources/META-INF/services/com.pinterest.ktlint.core.RuleSetProviderV3 rename to ktlint-rules/src/main/resources/META-INF/services/com.pinterest.ktlint.cli.ruleset.core.api.RuleSetProviderV3