Skip to content

Upgrading com.diffplug.spotless:spotless-plugin-gradle 7 to 8

Breaking7.2.1 → 8.10.4Breaking8Security1New18Changed49Fixed45Other1

BreakingUpgrade verdict

8 breaking changes and a security fix.

  • If you pin an old ktlint version older than 1.0, Spotless no longer supports it.
  • The option that bans wildcard imports has a new name.
  • The default ktfmt version is newer, and the trailing comma option now takes an enum instead of a true/false value.
  • If your build still uses the old plugin id com.diffplug.gradle.spotless, it will no longer resolve and the build fails instead of showing a migration message.
Top 4 of 9 that need code or config changes
Breaking8
Removes support for ktlint versions below 1.0.
ktlint
Renames removeWildcardImports to forbidWildcardImports.
removeWildcardImportsforbidWildcardImports
Bumps default ktfmt from 0.53 to 0.58 and replaces manageTrailingCommas boolean with TrailingCommaManagementStrategy enum.
ktfmtmanageTrailingCommasTrailingCommaManagementStrategy
Stops publishing the plugin marker for the legacy com.diffplug.gradle.spotless id, so builds requesting it now fail with a not-found error.
com.diffplug.gradle.spotlesscom.diffplug.spotless
Bumps the minimum supported Gradle version from 7.3 to 8.1.
Bumps the required Gradle to 7.3 and required Java to 17.
Installs the spotlessInstallGitPrePushHook task only on the root project.
spotlessInstallGitPrePushHook
LintSuppression.setPath now enforces unix-style paths.
LintSuppressionsetPath
Security1
Fixes a shell-injection vector in licenseHeader with setLicenseHeaderYearsFromGitHistory() by no longer running git log through a shell.
licenseHeadersetLicenseHeaderYearsFromGitHistory()git log

Generated by DepDelta from published JVM bytecode. Not mixed with prose notes.

  • removed: method SpotlessExtension.predeclare(GradleProvisioner.Policy): void
  • removed: method SpotlessExtensionPredeclare.predeclare(GradleProvisioner.Policy): void
  • changed: class BaseKotlinExtension.DiktatConfig → final class BaseKotlinExtension.DiktatConfig
  • changed: class BaseKotlinExtension.KtfmtConfig → final class BaseKotlinExtension.KtfmtConfig
  • changed: class BaseKotlinExtension.KtlintConfig → final class BaseKotlinExtension.KtlintConfig
  • changed: class SpotlessInstallPrePushHookTask extends DefaultTask → abstract class SpotlessInstallPrePushHookTask extends DefaultTask
  • changed: ctor SpotlessExtensionPredeclare(Project, GradleProvisioner.Policy) → ctor SpotlessExtensionPredeclare(Project)
  • changed: method RegisterDependenciesTask.getUnitOutput(): File → method RegisterDependenciesTask.getUnitOutput(): RegularFileProperty
  • changed: method SpotlessDiagnoseTask.getSource(): SpotlessTask → method SpotlessDiagnoseTask.getSource(): TaskProvider
  • changed: static class BaseGroovyExtension.GrEclipseConfig → static final class BaseGroovyExtension.GrEclipseConfig
  • added: class AsciidocExtension extends FormatExtension
  • added: class AsciidocExtension.AdocfmtFormatterConfig
  • added: class JavaExtension.PrinceOfSpaceConfig
  • added: class JavaExtension.TableTestFormatterConfig
  • added: class TableTestExtension extends FormatExtension
  • added: class TableTestExtension.TableTestFormatterConfig
  • added: class TomlExtension extends FormatExtension
  • added: class TomlExtension.VersionCatalogConfig
  • added: ctor AsciidocExtension(SpotlessExtension)
  • added: ctor TableTestExtension(SpotlessExtension)
  • added: ctor TomlExtension(SpotlessExtension)
  • added: ctor TomlExtension.VersionCatalogConfig(TomlExtension)
  • added: final class BaseKotlinExtension.TableTestFormatterConfig
  • added: final class GradleCompat
  • added: method AsciidocExtension.AdocfmtFormatterConfig.collapseConsecutiveBlankLines(boolean): AsciidocExtension.AdocfmtFormatterConfig
  • added: method AsciidocExtension.AdocfmtFormatterConfig.ensureHeadingBlankLines(boolean): AsciidocExtension.AdocfmtFormatterConfig
  • added: method AsciidocExtension.AdocfmtFormatterConfig.ensureSourceDelimiters(boolean): AsciidocExtension.AdocfmtFormatterConfig
  • added: method AsciidocExtension.AdocfmtFormatterConfig.formatTables(boolean): AsciidocExtension.AdocfmtFormatterConfig
  • added: method AsciidocExtension.AdocfmtFormatterConfig.normalizeBlockDelimiters(boolean): AsciidocExtension.AdocfmtFormatterConfig
  • added: method AsciidocExtension.AdocfmtFormatterConfig.normalizeListBullets(boolean): AsciidocExtension.AdocfmtFormatterConfig
  • added: method AsciidocExtension.AdocfmtFormatterConfig.normalizeOrderedListMarkers(boolean): AsciidocExtension.AdocfmtFormatterConfig
  • added: method AsciidocExtension.AdocfmtFormatterConfig.normalizeSetextHeadings(boolean): AsciidocExtension.AdocfmtFormatterConfig
  • added: method AsciidocExtension.AdocfmtFormatterConfig.oneSentencePerLine(boolean): AsciidocExtension.AdocfmtFormatterConfig
  • added: method AsciidocExtension.AdocfmtFormatterConfig.removeTrailingHeaderEqualsSign(boolean): AsciidocExtension.AdocfmtFormatterConfig
  • added: method AsciidocExtension.AdocfmtFormatterConfig.removeTrailingWhitespace(boolean): AsciidocExtension.AdocfmtFormatterConfig
  • added: method AsciidocExtension.AdocfmtFormatterConfig.tableBlankLines(String): AsciidocExtension.AdocfmtFormatterConfig
  • added: method AsciidocExtension.AdocfmtFormatterConfig.tableLayout(String): AsciidocExtension.AdocfmtFormatterConfig
  • added: method AsciidocExtension.AdocfmtFormatterConfig.tableMaxLineWidth(int): AsciidocExtension.AdocfmtFormatterConfig
  • added: method AsciidocExtension.AdocfmtFormatterConfig.titleCase(boolean): AsciidocExtension.AdocfmtFormatterConfig
  • added: method AsciidocExtension.adocfmt(): AsciidocExtension.AdocfmtFormatterConfig
  • added: method AsciidocExtension.adocfmt(String): AsciidocExtension.AdocfmtFormatterConfig
  • added: method AsciidocExtension.setupTask(SpotlessTask): void
  • added: method BaseGroovyExtension.GrEclipseConfig.cacheDirectory(Object): BaseGroovyExtension.GrEclipseConfig
  • added: method BaseKotlinExtension.tableTestFormatter(): BaseKotlinExtension.TableTestFormatterConfig
  • added: method BaseKotlinExtension.tableTestFormatter(String): BaseKotlinExtension.TableTestFormatterConfig
  • added: method CppExtension.EclipseConfig.cacheDirectory(Object): CppExtension.EclipseConfig
  • added: method FlexmarkExtension.FlexmarkFormatterConfig.emulationProfile(String): FlexmarkExtension.FlexmarkFormatterConfig
  • added: method FlexmarkExtension.FlexmarkFormatterConfig.extensions(String[]): FlexmarkExtension.FlexmarkFormatterConfig
  • added: method FlexmarkExtension.FlexmarkFormatterConfig.formatterOptions(Map): FlexmarkExtension.FlexmarkFormatterConfig
  • added: method FlexmarkExtension.FlexmarkFormatterConfig.pegdownExtensions(String[]): FlexmarkExtension.FlexmarkFormatterConfig
  • added: method FlexmarkExtension.FlexmarkFormatterConfig.pegdownExtensions(int): FlexmarkExtension.FlexmarkFormatterConfig
  • added: method FormatExtension.LicenseHeaderConfig.yearStringFormat(String): FormatExtension.LicenseHeaderConfig
  • added: method FormatExtension.forbidRegex(String, String, String): void
  • added: method FormatExtension.p2Provisioner(): P2Provisioner
  • added: method JavaExtension.CleanthatJavaConfig.javaparserVersion(String): JavaExtension.CleanthatJavaConfig
  • added: method JavaExtension.EclipseConfig.cacheDirectory(Object): JavaExtension.EclipseConfig
  • added: method JavaExtension.PrinceOfSpaceConfig.closingParenOnNewLine(boolean): JavaExtension.PrinceOfSpaceConfig
  • added: method JavaExtension.PrinceOfSpaceConfig.indentSize(int): JavaExtension.PrinceOfSpaceConfig
  • added: method JavaExtension.PrinceOfSpaceConfig.indentStyle(String): JavaExtension.PrinceOfSpaceConfig
  • added: method JavaExtension.PrinceOfSpaceConfig.javaLanguageLevel(int): JavaExtension.PrinceOfSpaceConfig
  • added: method JavaExtension.PrinceOfSpaceConfig.lineLength(int): JavaExtension.PrinceOfSpaceConfig
  • added: method JavaExtension.PrinceOfSpaceConfig.trailingCommas(boolean): JavaExtension.PrinceOfSpaceConfig
  • added: method JavaExtension.PrinceOfSpaceConfig.wrapStyle(String): JavaExtension.PrinceOfSpaceConfig
  • added: method JavaExtension.expandWildcardImports(): void
  • added: method JavaExtension.forbidModuleImports(): void
  • added: method JavaExtension.forbidWildcardImports(): void
  • added: method JavaExtension.princeOfSpace(): JavaExtension.PrinceOfSpaceConfig
  • added: method JavaExtension.princeOfSpace(String): JavaExtension.PrinceOfSpaceConfig
  • added: method JavaExtension.shortenFullyQualifiedTypes(): void
  • added: method JavaExtension.tableTestFormatter(): JavaExtension.TableTestFormatterConfig
  • added: method JavaExtension.tableTestFormatter(String): JavaExtension.TableTestFormatterConfig
  • added: method JsonExtension.JacksonJsonGradleConfig.setSpaceBeforeSeparator(boolean): JsonExtension.JacksonJsonGradleConfig
  • added: method SpotlessExtension.asciidoc(Action): void
  • added: method SpotlessExtension.tableTest(Action): void
  • added: method SpotlessExtension.toml(Action): void
  • added: method SpotlessExtensionPredeclare.fromBuildscriptRepositories(): void
  • added: method SpotlessExtensionPredeclare.fromProjectRepositories(): void
  • added: method SpotlessInstallPrePushHookTask.getExecOperations(): ExecOperations
  • added: method SpotlessTaskService.hookSubprojectTask(Project, SpotlessTask): void
  • added: method TableTestExtension.TableTestFormatterConfig.withIndentSize(int): TableTestExtension.TableTestFormatterConfig
  • added: method TableTestExtension.TableTestFormatterConfig.withIndentStyle(String): TableTestExtension.TableTestFormatterConfig
  • added: method TableTestExtension.setupTask(SpotlessTask): void
  • added: method TableTestExtension.tableTestFormatter(): TableTestExtension.TableTestFormatterConfig
  • added: method TableTestExtension.tableTestFormatter(String): TableTestExtension.TableTestFormatterConfig
  • added: method TomlExtension.VersionCatalogConfig.stripQuotedKeys(boolean): void
  • added: method TomlExtension.setupTask(SpotlessTask): void
  • added: method TomlExtension.versionCatalog(): TomlExtension.VersionCatalogConfig
  • added: static method GradleCompat.findOptionalProperty(Project, String): String
  • added: static method GradleCompat.isPropertyPresent(Project, String): boolean
  • added: static method SpotlessTaskService.registerIfAbsent(Project, String): Provider