We're more than excited to introduce you a next stable release of Detekt: 1.18.0 🎉
This release is coming with a lot of changes, new rules, evolution in the API and stability improvements.
We want to take the opportunity to thank our contributors for testing, bug reporting and helping
us release this new version of Detekt.
Notable Changes
We've added two new rules: AvoidReferentialEquality and BooleanPropertyNaming (see #3924 and #3795)
This version of Detekt ships with Kotlin 1.5.21, and we're compiling with apiVersion set to 1.4 - #3956 and #3852
The minimum version of Gradle to use Detekt Gradle Plugin is now 6.1 - #3830
This version of Detekt has been tested against Java 16 - #3698
We fixed a long-standing bug related to parallel execution (#3248) - #3799 and #3822
We now use multi-line format for list options in the default detekt config file - #3827
The rule VarCouldBeVal has been updated and now works only with type resolution to provide more precise findings - #3880
We removed all the references to Extensions.getRootArea that is now deprecated from our codebase. This was affecting users with sporadic crashes. - #3848
For detekt rule authors: We created a Github Template that you can use to bootstrap your custom rule project: detekt-custom-rule-template. You can use JitPack to host it and share your rule easily with other members of the community.
For detekt rule authors: We finished the rework to use the annotations instead of kdoc tags in rules. Specifically configurations must be configured using @Configuration while auto-correction capability should be specified with the @AutoCorrectable annotation #3820.
Migration
We renamed the input property inside the detekt{} extension of the Gradle plugin to source. The input property has been deprecated, and we invite you to migrate to the new property (see #3951)
// BEFORE
detekt {
input = files(...)
}
// AFTER
detekt {
source = files(...)
</tr></table>
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps detekt-formatting from 1.17.1 to 1.18.1.
Release notes
Sourced from detekt-formatting's releases.
... (truncated)
Commits
85c9a62
Prepare Detekt 1.18.1ff4f87c
MultiRule should pass correctly the BindingContext (#4071)3ca29ea
Allow active, excludes and includes in the rule-set configuration (#4045)cfee00f
Remove Error from ThrowingExceptionsWithoutMessageOrCause because is a common...a2510a2
Fix issue IDs for ReferentialEquality and DoubleMutability (#4040)6594ce3
Prepare Detekt 1.18.0 (#4032)9d4ae9d
[KMP] Fix resolution of Android test classpaths (#4026)66049c5
Sort config lists (#4014)bca4a15
Multiplatform tasks should not depend on check (#4025)28830b8
Enable UnnecessaryLet rule for detekt code base (#4024)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)