All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
12.2.0 - 2025-02-27
- Update Gradle wrapper and Gradle versions for testing. #819
- Test against newest kotlin, gradle, ktlint, and AGP versions #833. Drop testing for gradle 7.4 and 7.5 because they cause our tests with kotlin 2.x to fail, but the plugin will still work in those gradle versions if kotlin 1.x is being used
12.1.2 - 2024-11-25
- Bump
org.gradle.toolchains.foojay-resolver-convention
from0.7.0
to0.8.0
#779 - Bump gradle/wrapper-validation-action from 1 to 3 #784
- Bump github/codeql-action from 2.2.4 to 3.27.0 #777
- Bump al-cheb/configure-pagefile-action from 1.3 to 1.4 #780
- Bump commons-io:commons-io from 2.8.0 to 2.17.0 #802
- Update version for jgit to 5.13.3.202401111512-r #766
- builds: remove specific lintian version, as latest ubuntu is now a new version #767
- docs: add Version Catalog setup instructions in README #770 #767
- fix tests which relied on a third party reporter in jcenter #772
12.1.1 - 2024-05-07
- fix #544: make git filter work with any os #738
- fix #750: additionalEditorconfig property not being accounted for up-to-date checks and caching #758
- Update versions used for testing #763
12.1.0 - 2024-01-09
- fix detection of android kotlin source directories in AGP >= 7 #733
12.0.3 - 2023-12-11
- fix: apply configuration for source sets and targets that are added after the plugin is applied #732
12.0.2 - 2023-12-01
- remove KtLintIdea Plugin #726. This plugin is no longer needed as ktlint configuration is driven by .editorconfig now, which IDEA will respect out of the box.
12.0.1 - 2023-11-30
- update configure-pagefile-action task #725
12.0.0 - 2023-11-28
- update latest version text file manually #716
- Fix configuration cache for relative paths #722
- Drop support for Gradle 6 and ktlint < 0.47.1 #720
11.6.1 - 2023-10-10
- fix "additionalEditorconfig not supported until ktlint 0.49" warning #712
- update latest version text file manually #709
- Improve error logging #711
11.6.0 - 2023-09-18
- ktlint 1.0 support #708
- Allow editorconfig overrides in ktlint 0.49+ #708
- update latest version text file manually #700
11.5.1 - 2023-08-07
11.5.0 - 2023-07-03
11.4.2 - 2023-06-22
- set kotlin version to 1.4 as its the minimum required for ktlint 0.49 #683
- update latest version text file manually #682
11.4.1 - 2023-06-21
- update latest version text file manually #674
- decrease plugin build workers to 4 to prevent thrashing #675
- exclude deleted files from incremental checks #681
11.4.0 - 2023-06-06
- Add files previously found to have errors to the list of files to check in incremental builds. #672
- Added ktlint 0.49.1 support #667
- Refactored multi-ktlint support to use multiple source sets with different compileOnly dependencies rather than reflection. #667
11.3.2 - 2023-04-25
- fix new ktlint errors that come from our new default version of ktlint #651
- fix syntax bug in release logic for VERSION_LATEST_RELEASE.txt #651
- fix isRootEditorConfig #664
- Update build to use Gradle 7.3.3 to support testing with Java 17 #658
11.3.1 - 2023-03-03
- Fixed release github actions #650
- warn when additionalEditorconfigFile is used in 0.47+ #637
- work around reflection error on Gradle 8/JDK 16+ #634
- add ktlint version 0.48.2 to testing #632
- update latest gradle version for testing to 7.6 #632
- improve release process to update VERSION_LATEST_RELEASE automatically #631
- test against all supported jvm versions #642
11.2.0 - 2023-02-14
- change compile target to 0.45.2
- change default ktlint version applied by plugin to 0.47.1 #624
- Fixed ktlint API compatibility issue around baselines in 0.46 and 0.47+
- Fixed disabled_rules warning when using new editorconfig syntax in ktlint 0.48+ #625
- Fixed disabled_rules set only in editorconfig in ktlint 0.46+ #628
11.1.0 - 2023-01-27
- The plugin will now work with ktlint
0.46.1
-0.48.1
#620
11.0.0 - 2022-08-24
- Breaking: minimal supported Gradle version is
6.8
(#597) - Update Kotlin to
1.5.31
version (#597) - Set default KtLint version to
0.43.2
(#597)
10.3.0 - 2022-05-03
relative
option to generate reports with paths relative to the root project (#573)
- Fix install hook action when git
hooks
folder doesn't exist issue: #557, #563 - Fix pre-commit hook command not found error issue: #562, #564
- Fix some resolution issues when a project using the plugin in some specific setups is depended upon by another project issue: #523, #571
10.2.1 - 2021.12.27
- Deleted file causes file not found exception (issue: #539, #548)
- Use Gradle command exit code as hook exit code to ensure un-staged changes are always re-applied to the working directory #551
10.2.0 - 2021.09.08
- sarif reporter to provided reporters (#516)
- Update Gradle to
7.1.1
version - Update Shadow plugin to
7.0.0
version - Update Kotlin to
1.5.21
version - Set default KtLint version to
0.42.1
- Rethink format task approach (issue: #306)
- Pre-commit hook causing conflicts (issue: #443) (#502)
ktlintFormat
create empty directories insrc/
dir (issue: #423)- Add Git hook task breaks configuration cache (issue: #505)
- Plugin failed to apply on eager tasks creation (issue: #495)
10.1.0 - 2021.06.02
-
Baseline support (#414)
Limitations:
- Format tasks ignore baseline
- One baseline file per-Gradle project (module)
- Updated Gradle to
6.8.3
version - Updated default KtLint version to
0.41.0
- Plugin fails to apply on non-Kotlin projects (#443)
- Pre-commit hook adds entire file to commit when only part of the file was indexed (#470)
- Pre-commit hook doesn't format files that have been renamed (#471)
- Reset KtLint internal caches on any
.editorconfig
files changes (#456) - On KtLint parse error print path to file (#476)
- Add workaround for format tasks showing deprecation messages in Gradle 7.0 (#480)
10.0.0 - 2021.02.09
-
Updated Kotlin to
1.4.30
version.Breaking - removed support for following deprecated Kotlin plugins:
- "kotlin2js"
- "kotlin-platform-*"
-
Updated Android Gradle Plugin to
4.1.0
version.Breaking - removed build variants meta tasks. Minimum supported AGP version is
4.0.0
. -
Updated shadow plugin to
6.1.0
version. -
Set default ktlint version to
0.40.0
-
Updated Gradle to
6.8.1
version -
Set minimal supported Gradle version to
6.0
-
Set minimal supported KtLint version to
0.34.0
-
Use KtLint directly instead of invoking it via CLI #424
Breaking:
- Tasks classes were completely changed and new one were introduced. Configuration should stay the same, so, if you don't configure tasks directly, update should be done without issues.
- To configure reports output directory, use
GenerateReportsTask#reportsOutputDirectory
property. - Errors in Gradle console does not use colors. If you still need it, please open a new issue.
- Linting is running in workers with process isolation.
To configure maximum heap size, use
BaseKtLintCheckTask#workerMaxHeapSize
property. - "ktlintRuleset" and "ktlintReporter" configurations dependencies versions are constraint by main "ktlint" configuration dependencies versions.
9.4.1 - 2020.10.05
- Plugin now correctly validates files on Windows OS #399
9.4.0 - 2020.09.06
- Updated Gradle to
6.6.1
version - Each task will output reports into subdirectory inside
build/reports/ktlint
directory to fix non-working caching #379 - Set default ktlint version to
0.38.1
- KtLint was not checking files that contains whitespace in path or name #362
- Skip check if incremental changes contains only removed files #385
9.3.0 - 2020.07.17
- Allow to specify reporters output dir #321
- Check pre-commit hook will not add partially committed files to git commit #330
- Update Gradle to
6.5.1
version - Update Android Gradle plugin to
3.6.3
version - Set default ktlint version to
0.37.2
- Executing ktlint uses now uses the Gradle worker API when supported.
ktlintFormat
andktlintCheck
tasks now support the configuration cache #364- Make pre-commit hook working with Windows path separator #359
9.2.1 - 2020-02-12
- Git hook fails to check multiple files #336
9.2.0 - 2020-02-10
- Html reporter to provided reporters #312
- Plugin will search for project
.git
folder relative to gradle root project to install git hook #284
- Update Gradle to
6.0.1
version - Update Kotlin to
1.3.60
version - Set default ktlint version to
0.36.0
- Shadow plugin dependencies into plugin jar
- Fix
ktlintApplyToIdea
task fails whenandroid = true
is set #311
9.1.1 - 2019-11-12
- Running format task may delete source files (#302): disable incremental support for format tasks. Lint tasks are still incremental.
9.1.0 - 2019-11-01
- Support for outputColorName property (#297)
- Support for incremental checks (#231)
- Set default ktlint version to
0.35.0
- Ktlint configuration could be tried to configured after been resolved (#283)
9.0.0 - 2019-09-30
- Breaking: Add support for 3rd party reporters:
- new reporters configuration DSL (#125)
- tasks
reportOutputFiles
property was replaced withallReportsOutputFiles
disabledRules
extension property to disable rules usage by id (#267)
- Update Gradle to
5.6.2
version - Update Kotlin to
1.3.50
version - Set default ktlint version to
0.34.2
- Update Android Gradle plugin to
3.5.0
version - Minimal supported Gradle version updated to
5.4.1
- Support for "konan" plugin
- Support for "kotlin-native-gradle-plugin" plugin
- Deprecated
ruleset
extension property, please useruleset
configuration instead
- Task failing when command line arguments limit was reached (#233)
8.2.0 - 2019-07-18
- Support for new JS plugin: "org.jetbrains.kotlin.js" (#252)
- Support for android "com.android.dynamic-feature" plugin (#260)
- Update Kotlin to
1.3.41
version
- Usage of bashisms in git hook script (#251)
8.1.0 - 2019-06-16
additionalEditorconfigFile
property to plugin extension (#210)
- Default ktlint version to
0.33.0
.
8.0.0 - 2019-05-06
ktlintRuleset
configuration to provide 3rd party ktlint rules (#71)
- Update Kotlin to
1.3.30
version - Deprecated providing 3rd party ktlint rules via extension (#71)
- Breaking: Change tasks inheritance - now
KtlintFormat
andKtlintCheck
extendBaseKtlintCheckTask
(#225) - Update Android Gradle plugin to
3.4.0
version
- Proper lazy adding ktlint dependency (#219)
- Gradle 5.x deprecation messages (#208)
- Support different ktlint group/package name after pinterest ownership of ktlint project (#228)
- Default ktlint version to
0.32.0
.
-
Git pre-commit hook (#101):
Current implementation does not support
buildSrc
or composite builds. -
Flag to enable experimental rules (#215)
- Default ktlint version is set to
0.31.0
- Failed task verification on Gradle
5.2.1
(#217)
- Tasks to check and format kotlin script files (#98)
- Update Kotlin to
1.3.21
version - Update Android gradle plugin to
3.3.0
version
.editorconfig
file in project root dir is not considered as tasks input (#209)
- Warning about using vulnerable ktlint version
- Default ktlint version is set to
0.30.0
- Used ktlint version is always default one (#198)
- Gradle
5.2
fails the build in pure kotlin project (#201)
- Meta tasks to run check or format on all sources in android variant. (#170)
Example: In an Android project with
foo
flavor,ktlintFooDebugSourceSetCheck
task will check thefoo
sourceSet (not main).ktlintFooDebugCheck
meta task will check all the sourceSets forfooDebug
build variant. - Plugin tasks configuration avoidance
- Update Kotlin to
1.3.10
version - Breaking: check/format tasks for specific source sets
and according reports outputs now include
SourceSet
in their name(#170) - Breaking: minimal supported Gradle version is
4.10
- Breaking: minimal supported ktlint version is
0.22.0
- Adding explicit meta check and format tasks to the root project
- Format task may produce up-to-date state if sources was restored to pre-format state (#194)
- Updated SemVer dependency to
1.1.1
version (#162)
- Added support for new kotlin multiplatform plugin (#144)
- Update Kotlin to
1.3.0
version - Sync native plugins version with kotlin main release version
- Failure on Windows due to long argument line (#156)
- Fixed additional android source dirs for SourceSet are not checked (#153)
- Allow to exclude sources from check (#97)
- Update Android gradle plugin version to
3.2.0
- Check and format tasks now extend
SourceTask
(#85)
- Console colored output (#50)
- Update Kotlin to
1.2.71
version - Update Gradle to
4.10.2
version - Update default KtLint version to
0.29.0
- Hide specific source sets tasks
- Fixed plugin fails to configure android project with flavors (#131)
- Separate KtlintFormatTask task (#111)
ktlintApplyToIdea
task is always added, though it will fail on ktlint versions less then0.22.0
- Plugin extension now uses Gradle properties for configuration
ktlint.reporters
extension property has to use importedReporterType
in groovy Gradle build scripts.- reporters output file name changed to be the same as task name. For example for
PLAIN
it will bektlintMainCheck.txt
. - format tasks now are also generate reports. For example:
ktlintMainFormat.txt
.
- Usages of
afterEvaluate {}
in plugin and sample projects (#122)
- Support for new kotlin native experimental plugin (#119)
- Update Kotlin to
1.2.61
version - Update Kotlin-native dependency to
0.8.2
version - Update Gradle to
4.9.0
version - Update default KtLint version to
0.27.0
.editorconfig
file change doesn't resetUP-TO-DATE
ktlintCheck
task state (#106)
- Split project into multiple smaller plugins.
ktlint-base
,ktlint-idea
&ktlint
- Update Kotlin to 1.2.50 version
- Update Gradle to 4.8.1 version
- Does not automatically apply plugin tasks to all sub-projects (it breaks the Gradle plugin model).
- apply to IDEA task (in the project) (#91)
- apply to IDEA task (global settings) (#91)
- Add support for providing custom rulesets (#71)
- Also check
*.kts
files in Kotlin source directories - Use a cacheable task for the KtLint check
- Update Kotlin to 1.2.41 version
- Update Gradle wrapper to 4.7 version
- Changed default KtLint version to
0.23.1
- KtLint versions prior to 0.10.0 are not supported anymore
- Gradle versions prior to 4.3 are not supported anymore
- Deprecated ReporterType typealias
- Deprecated reporter field from extension
- Check for spaces in output path for KtLint versions earlier then 0.20.0 (#83)
- Use relative for input file path sensitivity (#67)
- Update default Ktlint version to 0.22.0
- Remove usage of deprecated Gradle features (#60)
- Update Kotlin to 1.2.30 version
- Update Gradle to 4.6 version
- Update default Ktlint version to 0.19.0
- Fix running check task also runs some android tasks (#63)
- Support for Kotlin javascript (kotlin2js) (#58)
- Support for Kotlin multiplatform projects (#58)
- Support for Kotlin native (konan) (#58)
- Output to console (#38)
- Support multiple reporters for ktlint >0.10.x (#38)
- Set default ktltint version to
0.15.0
- Update Kotlin to
1.2.21
version
- Update kotlin to 1.2.0 version
- Bumped android tools versions to 3.0 and now support multidimension projects >0.10.x (#29)
- Add configuration parameter
android
with default value to false (#39)
- Define a different output file for each sourceSet
- Fixed plugin doesn't apply custom reporter for ktlint versions >0.10.x (#28)
- Fixed report output is always opened since task is created
- Add configuration parameter
ignoreFailures
with default value to false
- Update default ktlint version to 0.9.2
- Fixed report output is not closed after task run is finished (#25)
- Update default ktlint version to 0.8.1
- Fix extension version has no effect on used ktlint version
- Add check task also depends on ktlintCheck task
- Add output report
- Add report type to extension
- Android support
- Ability to only apply plugin to the root project that contains subprojects with kotlin code
- Remove dependency on Gradle Script Kotlin plugin API. (#9)
- Compatibility with Gradle v4.0. (#9)
- Renamed task with name
ktlint
toktlintCheck
(#3) - Renamed tasks with names
ktlint[source set name]
toktlint[source set name]Check
(#3)