Bump Ktlint to 1.7.1 by Goooler · Pull Request #2555 · diffplug/spotless

@Goooler

Goooler

@Goooler

Strange! The test failed in the Maven plugin but the Gradle plugin

@Test
void testWithCustomRuleSetApply() throws Exception {
writePomWithKotlinSteps("<ktlint>\n" +
" <customRuleSets>\n" +
" <value>io.nlopez.compose.rules:ktlint:0.4.16</value>\n" +
" </customRuleSets>\n" +
" <editorConfigOverride>\n" +
" <ktlint_function_naming_ignore_when_annotated_with>Composable</ktlint_function_naming_ignore_when_annotated_with>\n" +
" </editorConfigOverride>\n" +
"</ktlint>");
setFile("src/main/kotlin/Main.kt").toResource("kotlin/ktlint/listScreen.dirty");
ProcessRunner.Result result = mavenRunner().withArguments("spotless:check").runHasError();
Assertions.assertThat(result.toString()).contains("Composable functions that return Unit should start with an uppercase letter.");
}
java.lang.AssertionError: 
Expecting actual:
  "> arguments: [sh, -c, ./mvnw -e spotless:check]
exit code: 1
   stdout: (below)
[INFO] Error stacktraces are turned on.
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Spotless Maven Plugin Tests 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- spotless-maven-plugin:2.45.1-SNAPSHOT:check (default-cli) @ spotless-maven-plugin-tests ---
[INFO] Index file does not exist. Fallback to an empty index
[ERROR] Step 'ktlint' found problem in 'Main.kt':
com/pinterest/ktlint/rule/engine/core/api/Rule$OnlyWhenEnabledInEditorconfig
java.lang.NoClassDefFoundError: com/pinterest/ktlint/rule/engine/core/api/Rule$OnlyWhenEnabledInEditorconfig
  at java.base/java.lang.ClassLoader.defineClass1(Native Method)
  at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
  at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
  at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:524)
  at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:427)
  at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:421)
  at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
  at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:420)
  at com.diffplug.spotless.FeatureClassLoader.findClass(FeatureClassLoader.java:79)
  at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:592)
  at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
  at com.pinterest.ktlint.ruleset.standard.StandardRuleSetProvider.getRuleProviders$lambda$61(StandardRuleSetProvider.kt:171)
  at com.pinterest.ktlint.rule.engine.core.api.RuleProvider$Companion.invoke(RuleProvider.kt:41)
  at com.pinterest.ktlint.ruleset.standard.StandardRuleSetProvider.getRuleProviders(StandardRuleSetProvider.kt:171)
  at com.diffplug.spotless.glue.ktlint.compat.KtLintCompat1Dot0Dot0Adapter.lambda$format$0(KtLintCompat1Dot0Dot0Adapter.java:93)

@nedtwigg

I wonder if it's related to <customRuleSets> or io.nlopez.compose.rules:ktlint:0.4.16

@mrmans0n

My custom rules project (io.nlopez.compose.rules:ktlint) hasn't been updated yet to use kotlin 2.2 / latest versions of ktlint. You could use the snapshots of the latest version for now if you wanted to keep this one, or force an earlier ktlint version in the config, or go with a different project that's updated. Sorry about that (indirectly haha)

@Goooler

@Goooler

@Goooler Goooler changed the title Bump Ktlint to 1.7.0 Bump Ktlint to 1.7.1

Jul 22, 2025

@Goooler

@Goooler

@Goooler Goooler marked this pull request as ready for review

July 22, 2025 02:48

@Goooler Goooler deleted the g/20250715/ktlint branch

July 22, 2025 02:49