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.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)