Skip to content

Releases: detekt/detekt

v1.17.0-RC3

12 May 12:16
4d80329
Compare
Choose a tag to compare
  • 2021-05-12
Notable Changes
  • We're introducing our new Project logo :). See #3726
  • This release allows you to replace your jcenter() dependencies with mavenCentral() given that our dependency on kotlinx.html migrated to Maven Central - See #3455
  • We now introduced the src/test/java and src/test/kotlin by default for the plain detekt Gradle task. If you use that task, you might notice rule reports in your test sourceset. See #3649
  • We now default the baseline file to baseline.xml so you don't have to specify it manually. You can revert the previous behavior by setting the baseline to null - See #3619
  • We enabled the SARIF output format by default - See #3543
  • We're introducing annotations to provide metadata to rules, such as @ActiveByDefault, @Configuration and @RequiresTypeResolution - See #3637 #3592 and #3579
Changelog
  • Fix kdoc link on blog navigation - #3761
  • We don't need to talk about jcenter anymore at our docs - #3755
  • Skip publishing for detekt-cli shadowRuntimeElements variant - #3747
  • Set the org.gradle.dependency.bundling attribute to external - #3738
  • Support triple quoted strings in default value of config delegate - #3733
  • Properly populate versions.properties - #3730
  • We have a logo :) - #3726
  • [UndocumentedPublicProperty] Allow inline comments for properties in primary constructor as documentation - #3722
  • MultilineLambdaItParameter: don't report when lambda has no implicit parameter references - #3696
  • Fix false positives for UnnecessaryFilter - #3695
  • Add support for fallback property - #3675
  • Ignore actual members in UnusedPrivateMember - #3669
  • NamedArguments rule: fix false positive with trailing lambda - #3661
  • Add DeprecatedBlockTag rule - #3660
  • Noisy gradle - #3655
  • Drop support to Gradle 5 - #3647
  • Add MayBeConstant as alias for MayBeConst - #3644
  • [ThrowingExceptionInMain] [ExitOutsideMainfix] fix for KtNamedFunction.isMainFunction() - #3641
  • Fixing IllegalArgumentException in ForbiddenMethodCall rule for Intersection type parameters - #3626
  • Replace getJetTypeFqName with fqNameOrNull extension - #3613
  • New Rule: ObjectLiteralToLambda - #3599
  • [MemberNameEqualsClassName] Support factory exemption for generic classes - #3595
  • Refactor Analyzer so that RuleSetProvider.instance is only called once - #3585
  • SarifOutputReportSpec: Correctly detect Windows root directory on local development machine - #3584
  • Replace @SInCE KDoc tag with @SinceDetekt - #3582
  • Simplify code in RedundantSuspendModifier rule - #3580
  • Revert "Refactor Analyzer so that RuleSetProvider.instance is only called once" - #3578
  • fix error message -> buildUponDefaultConfig instead of buildOnDefaultConfig - #3572
  • UnnecessaryApply: fix false positive when lambda has multiple member references - #3564
  • Switch SARIF report off jackson - #3557
  • Fix rules not appearing in the sarif output - #3556
  • Refactor Analyzer so that RuleSetProvider.instance is only called once - #3555
  • New Rule: DoubleMutabilityForCollection - #3553
  • Adds a ForbiddenSingleExpressionSyntax rule - #3550
Dependency Updates
  • Update to Gradle 7.0.1 - #3760
  • Update Shadow plugin to 7.0.0 - #3759
  • Upgrade to AGP 4.2.0 - #3744
  • JaCoCo 0.8.7 - #3739
  • Upgrade to GitHub-native Dependabot - #3716
  • Upgrade to Gradle 7 - #3689
  • Bump com.gradle.plugin-publish from 0.13.0 to 0.14.0 - #3654
  • Bump kotlin-reflect from 1.4.0 to 1.4.32 - #3627
  • Upgrade to ktlint 0.41.0 - #3624
  • Update to Kotlin 1.4.32 - #3606
  • Bump AGP from 4.1.2 to 4.1.3 - #3589
  • Bump mockk from 1.10.6 to 1.11.0 - #3588
Housekeeping & Refactorings
  • Upload any heap dumps produced during CI build - #3758
  • Always run warningsAsErrors on CI - #3754
  • Clean ci - #3753
  • Revert "Set the org.gradle.dependency.bundling attribute to external" - #3750
  • Enable Gradle's type-safe project accessors - #3742
  • Enable Gradle's version catalogs - #3741
  • Ignore gradle plugin in codecov - #3740
  • Update config file due to invalid argument - #3735
  • Skip Multiplatform iOS tests if XCode is not configured - #3734
  • Specify Java language level in module plugin - #3732
  • Don't run unnecesary tasks - #3725
  • Remove --stacktrace now that we have scan - #3724
  • Drop JCenter usage from detekt's own build - #3711
  • Publish build scans for all CI builds - #3710
  • Remove deprecated kotlin-dsl Gradle config option - #3709
  • Update to setup-java@v2 - #3704
  • (Try to) improve CI build reliability - #3703
  • Simplify UpdateVersionInFileTask - #3693
  • Fix compilation issue in :detekt-rules-style:compileTestKotlin - #3691
  • Fix detekt failure in CI - #3674
  • Refactor UnusedPrivateMemberSpec - #3667
  • Warnings as errors - #3646
  • Skip ios tests if no ci - #3635
  • Fix tests - #3634
  • Include detekt-rules on CLI runtime classpath - #3625
  • Improve tests from :detekt-gradle-plugin - #3623
  • Improve generator test coverage - #3622
  • Improve tests - #3618
  • Apply more formatting rules to our code - #3615
  • Add negative test case for requiresTypeResolution - #3614
  • Simplify Gradle config - #3612
  • Decouple Gradle projects - #3611
  • Add --stacktrace to help triage CI flakiness - #3604
  • Fix CI failure for deploy-snapshot - #3598
  • Improve Deprecation and Documentation for allRules - #3596
  • Update files to support main branch in order to remove oppressive language - #3586
  • Format test code for RedundantSuspendModifierSpec - #3581
  • Gradle tweaks - #3575
  • Support Gradle config cache in detekt's build - #3574
  • Show information from @Active in the website - #3569
  • Update rule doc for SwallowedException config - #3547
  • Markdown: Reintroduce...
Read more

v1.17.0-RC2

03 May 22:03
9072c4f
Compare
Choose a tag to compare
  • 2021-05-04

Notable Changes

  • This release allows you to replace your jcenter() dependencies with mavenCentral() given that our dependency on kotlinx.html migrated to Maven Central - See #3455
  • We now introduced the src/test/java and src/test/kotlin by default for the plain detekt Gradle task. If you use that task, you might notice rule reports in your test sourceset. See #3649
  • We now default the baseline file to baseline.xml so you don't have to specify it manually. You can revert the previous behavior by setting the baseline to null - See #3619
  • We enabled the SARIF output format by default - See #3543
  • We're introducing annotations to provide metadata to rules, such as @ActiveByDefault, @Configuration and @RequiresTypeResolution - See #3637 #3592 and #3579

Changelog

  • Properly populate versions.properties - #3730
  • MultilineLambdaItParameter: don't report when lambda has no implicit parameter references - #3696
  • Fix false positives for UnnecessaryFilter - #3695
  • Ignore actual members in UnusedPrivateMember - #3669
  • NamedArguments rule: fix false positive with trailing lambda - #3661
  • Add DeprecatedBlockTag rule - #3660
  • Noisy gradle - #3655
  • Drop support to Gradle 5 - #3647
  • Add MayBeConstant as alias for MayBeConst - #3644
  • [ThrowingExceptionInMain] [ExitOutsideMainfix] fix for KtNamedFunction.isMainFunction() - #3641
  • Fixing IllegalArgumentException in ForbiddenMethodCall rule for Intersection type parameters - #3626
  • Replace getJetTypeFqName with fqNameOrNull extension - #3613
  • [MemberNameEqualsClassName] Support factory exemption for generic classes - #3595
  • Refactor Analyzer so that RuleSetProvider.instance is only called once - #3585
  • SarifOutputReportSpec: Correctly detect Windows root directory on local development machine - #3584
  • Replace @SInCE KDoc tag with @SinceDetekt - #3582
  • Simplify code in RedundantSuspendModifier rule - #3580
  • Revert "Refactor Analyzer so that RuleSetProvider.instance is only called once" - #3578
  • fix error message -> buildUponDefaultConfig instead of buildOnDefaultConfig - #3572
  • UnnecessaryApply: fix false positive when lambda has multiple member references - #3564
  • Switch SARIF report off jackson - #3557
  • Fix rules not appearing in the sarif output - #3556
  • Refactor Analyzer so that RuleSetProvider.instance is only called once - #3555
  • New Rule: DoubleMutabilityForCollection - #3553
  • Adds a ForbiddenSingleExpressionSyntax rule - #3550

Dependency Updates

  • Upgrade to GitHub-native Dependabot - #3716
  • Upgrade to Gradle 7 - #3689
  • Bump com.gradle.plugin-publish from 0.13.0 to 0.14.0 - #3654
  • Bump kotlin-reflect from 1.4.0 to 1.4.32 - #3627
  • Upgrade to ktlint 0.41.0 - #3624
  • Update to Kotlin 1.4.32 - #3606
  • Bump AGP from 4.1.2 to 4.1.3 - #3589
  • Bump mockk from 1.10.6 to 1.11.0 - #3588

Housekeeping & Refactorings

  • Update config file due to invalid argument - #3735
  • Specify Java language level in module plugin - #3732
  • Don't run unnecesary tasks - #3725
  • Remove --stacktrace now that we have scan - #3724
  • Drop JCenter usage from detekt's own build - #3711
  • Publish build scans for all CI builds - #3710
  • Remove deprecated kotlin-dsl Gradle config option - #3709
  • Update to setup-java@v2 - #3704
  • Simplify UpdateVersionInFileTask - #3693
  • Fix compilation issue in :detekt-rules-style:compileTestKotlin - #3691
  • Fix detekt failure in CI - #3674
  • Refactor UnusedPrivateMemberSpec - #3667
  • Warnings as errors - #3646
  • Skip ios tests if no ci - #3635
  • Fix tests - #3634
  • Include detekt-rules on CLI runtime classpath - #3625
  • Improve tests from :detekt-gradle-plugin - #3623
  • Improve generator test coverage - #3622
  • Improve tests - #3618
  • Apply more formatting rules to our code - #3615
  • Add negative test case for requiresTypeResolution - #3614
  • Simplify Gradle config - #3612
  • Decouple Gradle projects - #3611
  • Add --stacktrace to help triage CI flakiness - #3604
  • Fix CI failure for deploy-snapshot - #3598
  • Improve Deprecation and Documentation for allRules - #3596
  • Update files to support main branch in order to remove oppressive language - #3586
  • Format test code for RedundantSuspendModifierSpec - #3581
  • Gradle tweaks - #3575
  • Support Gradle config cache in detekt's build - #3574
  • Show information from @Active in the website - #3569
  • Update rule doc for SwallowedException config - #3547
  • Markdown: Reintroduce double-backticks for inline code rendering - #3545

See all issues at: 1.17.0

v1.17.0-RC1

01 May 08:40
64b2fa6
Compare
Choose a tag to compare

1.17.0-RC1 - 2021-05-01

Notable Changes

  • This release allows you to replace your jcenter() dependencies with mavenCentral() given that our dependency on kotlinx.html migrated to Maven Central - See #3455
  • We now introduced the src/test/java and src/test/kotlin by default for the plain detekt Gradle task. If you use that task, you might notice rule reports in your test sourceset. See #3649
  • We now default the baseline file to baseline.xml so you don't have to specify it manually. You can revert the previous behavior by setting the baseline to null - See #3619
  • We enabled the SARIF output format by default - See #3543
  • We're introducing annotations to provide metadata to rules, such as @ActiveByDefault, @Configuration and @RequiresTypeResolution - See #3637 #3592 and #3579

Changelog

  • MultilineLambdaItParameter: don't report when lambda has no implicit parameter references - #3696
  • Fix false positives for UnnecessaryFilter - #3695
  • Deprecate configuration of reports in detekt Gradle extension - #3687
  • Ignore actual members in UnusedPrivateMember - #3669
  • NamedArguments rule: fix false positive with trailing lambda - #3661
  • Add DeprecatedBlockTag rule - #3660
  • Noisy gradle - #3655
  • Drop support to Gradle 5 - #3647
  • Add MayBeConstant as alias for MayBeConst - #3644
  • [ThrowingExceptionInMain] [ExitOutsideMainfix] fix for KtNamedFunction.isMainFunction() - #3641
  • Fixing IllegalArgumentException in ForbiddenMethodCall rule for Intersection type parameters - #3626
  • Remove deprecated configurations and deprecate new ones - #3621
  • Replace getJetTypeFqName with fqNameOrNull extension - #3613
  • New Rule: ObjectLiteralToLambda - #3599
  • [MemberNameEqualsClassName] Support factory exemption for generic classes - #3595
  • Refactor Analyzer so that RuleSetProvider.instance is only called once - #3585
  • SarifOutputReportSpec: Correctly detect Windows root directory on local development machine - #3584
  • Replace @SInCE KDoc tag with @SinceDetekt - #3582
  • Simplify code in RedundantSuspendModifier rule - #3580
  • Revert "Refactor Analyzer so that RuleSetProvider.instance is only called once" - #3578
  • fix error message -> buildUponDefaultConfig instead of buildOnDefaultConfig - #3572
  • UnnecessaryApply: fix false positive when lambda has multiple member references - #3564
  • Fix [ClassOrdering] to treat extensions properties as functions. - #3559
  • Switch SARIF report off jackson - #3557
  • Fix rules not appearing in the sarif output - #3556
  • Refactor Analyzer so that RuleSetProvider.instance is only called once - #3555
  • New Rule: DoubleMutabilityForCollection - #3553
  • Adds a ForbiddenSingleExpressionSyntax rule - #3550

Dependency Updates

  • Upgrade to GitHub-native Dependabot - #3716
  • Upgrade to Gradle 7 - #3689
  • Bump com.gradle.plugin-publish from 0.13.0 to 0.14.0 - #3654
  • Bump kotlin-reflect from 1.4.0 to 1.4.32 - #3627
  • Upgrade to ktlint 0.41.0 - #3624
  • Update to Kotlin 1.4.32 - #3606
  • Bump AGP from 4.1.2 to 4.1.3 - #3589
  • Bump mockk from 1.10.6 to 1.11.0 - #3588

Housekeeping & Refactorings

  • Remove --stacktrace now that we have scan - #3724
  • Drop JCenter usage from detekt's own build - #3711
  • Publish build scans for all CI builds - #3710
  • Remove deprecated kotlin-dsl Gradle config option - #3709
  • Update to setup-java@v2 - #3704
  • Simplify UpdateVersionInFileTask - #3693
  • Fix compilation issue in :detekt-rules-style:compileTestKotlin - #3691
  • Fix detekt failure in CI - #3674
  • Refactor UnusedPrivateMemberSpec - #3667
  • Warnings as errors - #3646
  • Skip ios tests if no ci - #3635
  • Fix tests - #3634
  • Include detekt-rules on CLI runtime classpath - #3625
  • Improve tests from :detekt-gradle-plugin - #3623
  • Improve generator test coverage - #3622
  • Improve tests - #3618
  • Apply more formatting rules to our code - #3615
  • Add negative test case for requiresTypeResolution - #3614
  • Simplify Gradle config - #3612
  • Decouple Gradle projects - #3611
  • Add --stacktrace to help triage CI flakiness - #3604
  • Fix CI failure for deploy-snapshot - #3598
  • Improve Deprecation and Documentation for allRules - #3596
  • Update files to support main branch in order to remove oppressive language - #3586
  • Format test code for RedundantSuspendModifierSpec - #3581
  • Gradle tweaks - #3575
  • Support Gradle config cache in detekt's build - #3574
  • Show information from @Active in the website - #3569
  • Update rule doc for SwallowedException config - #3547
  • Markdown: Reintroduce double-backticks for inline code rendering - #3545

See all issues at: 1.17.0

v1.16.0

10 Mar 20:30
bfc0863
Compare
Choose a tag to compare
  • 2021-03-04
Notable Changes
Migration
Changelog
  • Gradle Plugin tests should access also Maven Local - #3510
  • Update Kotlin to version 1.4.31 - #3509
  • Fix SARIF validation failure - #3507
  • Remove off importing android util - #3506
  • Adding support for full method signatures in ForbiddenMethodCall - #3505
  • New rule: disallow to cast to nullable type - #3497
  • Merge XML report output - #3491
  • Allow using regular expressions when defining license header templates - #3486
  • Add UnreachableCatchBlock rule - #3478
  • Add NoNameShadowing rule - #3477
  • Fix false negative "UselessCallOnNotNull" with list.isNullOrEmpty() - #3475
  • Add UseOrEmpty rule - #3470
  • Add UseIsNullOrEmpty rule - #3469
  • Add support to Kotlin Multiplatform Projects - #3453
  • Fix false positives for MultilineLambdaItParameter.kt - #3451
  • Dont generate baseline if empty - #3450
  • Silence IndexOutOfBoundsException in getLineAndColumnInPsiFile() - #3446
  • Add new ObjectExtendsThrowable rule - #3443
  • Add allRules and deprecate failFast in gradle tasks - #3431
  • Add two missing ktlint rules - #3430
  • Don't fail if baseline doesn't exist in PlainDetekt - #3429
  • Fix False Positive on UnnecessarySafeCall - #3419
  • Fix false positive for UnusedPrivateMember with expect on objects - #3417
  • Fix code samples for UnnecessarySafeCall - #3416
  • New rule: DontDowncastCollectionTypes - #3413
  • Fix documentation in UnnecessarySafeCall - #3412
  • Bump gradle from 4.1.1 to 4.1.2 - #3405
  • Introduce --max-issues flag for cli - #2267 - #3391
  • Ignore actual functions in FunctionOnlyReturningConstant (#3388) - #3390
  • Fix hyperlink for elements of the type 'KtFile' - #3386
  • Update gradle doc to show table of contents correctly - #3383
  • Update cli doc to show table of contents correctly - #3382
  • Fix EmptyConfig making all rules active in production - #3380
  • Empty custom config enables rules disabled by default - #3379
  • Add setup-detekt action to README - #3373
  • GlobalClassLoaderCache: move call to getFiles out of synchronized block - #3370
  • Check for === instead of == - #3363
  • Filter existing files in classpath - #3361
  • Suppress RedundantVisibilityModifierRule if explicit API mode enabled - #3358
  • Add the final new line in the baseline again - #3351
  • [Security] Bump nokogiri from 1.10.10 to 1.11.1 in /docs - #3348
  • Remove trailing newline after ending IndentingXMLStreamWriter - #3347
  • [Security] Bump nokogiri from 1.10.10 to 1.11.0 in /docs - #3343
  • Add UnnecessaryFilter rule - #3341
  • Reorganize docs for the configuration file - #3337
  • Add new rule SleepInsteadOfDelay - #3335
  • Update Android Gradle Plugin to 4.1.1 - #3328
  • Support relative output paths - #3319
  • Fix runLastOnRoot being empty in KtLintMultiRule - #3318
  • Ensure binary-compatibility with previous versrions - #3315
  • Fix reports not propagated to detekt task with type resolution - #3313
  • Support configurable severity per ruleset/rule in XML and Sarif output - #3310
  • Configure default excludes for InvalidPackageDeclaration - #3305
  • Remove exceptions of Library rules - #3304
  • Move the questions to discussions - #3300
  • Magic number extension functions - #3299
  • NamedArguments: fix false positive with varargs - #3294
  • NamedArguments rule: false positive with varargs - #3291
  • NamedArguments with java code false positive - #3289
  • Upgrade ktlint to 0.40.0 - #3281
  • False positive "Unconditional loop jump" - #3280
  • ForbiddenComments don't report TODO: in KDoc - #3273
  • Add MultilineLambdaItParameter rule - #3259
  • Update Kotlin to 1.4.21 - #3254
  • Introduce --all-rules flag - #3253
  • Enable more rules by default - #3229
  • Running multiple Detekt tasks concurrently may cause deadlock - #3047
  • detektMain is noisy "Ignoring a file detekt cannot handle" - #3019
  • Configure default excludes for InvalidPackageDeclaration - #2539
  • Hyperlink to error inside Android studio - #2340
  • Align cli flags and defaults with other analysis tools - #2267
Housekeeping & Refactorings
  • Move gradle testkit test back to test/ - #3504
  • Add documentation on suppressing formatting rules - #3503
  • Change DetektMultiplatform from unit test to gradle testkit integrati… - #3500
  • Bump com.gradle.plugin-publish from 0.12.0 to 0.13.0 - #3494
  • Refactor Gradle integration tests - #3489
  • Refactor gradle integration test - #3487
  • Prepare Detekt 1.16.0-RC2 - #3485
  • Bump mockk from 1.10.5 to 1.10.6 - #3473
  • Upgrade to Gradle 6.8.2 - #3468
  • Correct maxIssues documentation - #3456
  • Bump junit-platform-launcher from 1.7.0 to 1.7.1 - #3454
  • Don't use deprecated functions - #3452
  • Bump github-pages from 210 to 211 in /docs - #3434
  • Add documentation for SARIF, severity and relative path - #3433
  • Refactor uploading SARIF to report without overriding the previous step - #3432
  • Fix githubRelease skipping assets - #3427
  • Prompt bug reporters to attach gradle scan - #3422
  • Fix invalid link in detekt html report - #3421
  • Prepare 1.16.0-rc1 release - #3411
  • Add full qualified name in documentation - #3410
  • Bump kotlinx-coroutines-core from 1.3.8 to 1.4.1 - #3407
  • Fix deploy website on master - #3406
  • Bump mockk from 1.10.4 to 1.10.5 - #3404
  • Bump assertj-core from 3.18.1 to 3.19.0 - #3403
  • Bump github-pages from 209 to 210 in /docs - #3401
  • Update dangling URLs pointing to the old website - #3400
  • Auto generate CLI options in docs - #3399
  • Update documentations on snapshots - [#3393](https://github.com/detekt...
Read more

v1.16.0-RC3

04 Mar 09:29
44b7847
Compare
Choose a tag to compare
  • 2021-02-19
Notable Changes
Migration
Changelog
  • Add UnreachableCatchBlock rule - #3478
  • Fix false negative "UselessCallOnNotNull" with list.isNullOrEmpty() - #3475
  • Add UseOrEmpty rule - #3470
  • Add UseIsNullOrEmpty rule - #3469
  • Fix false positives for MultilineLambdaItParameter.kt - #3451
  • Dont generate baseline if empty - #3450
  • Silence IndexOutOfBoundsException in getLineAndColumnInPsiFile() - #3446
  • Add new ObjectExtendsThrowable rule - #3443
  • Add allRules and deprecate failFast in gradle tasks - #3431
  • Add two missing ktlint rules - #3430
  • Don't fail if baseline doesn't exist in PlainDetekt - #3429
  • Fix False Positive on UnnecessarySafeCall - #3419
  • Fix false positive for UnusedPrivateMember with expect on objects - #3417
  • Fix code samples for UnnecessarySafeCall - #3416
  • New rule: DontDowncastCollectionTypes - #3413
  • Fix documentation in UnnecessarySafeCall - #3412
  • Bump gradle from 4.1.1 to 4.1.2 - #3405
  • Introduce --max-issues flag for cli - #2267 - #3391
  • Ignore actual functions in FunctionOnlyReturningConstant (#3388) - #3390
  • Fix hyperlink for elements of the type 'KtFile' - #3386
  • Update gradle doc to show table of contents correctly - #3383
  • Update cli doc to show table of contents correctly - #3382
  • Fix EmptyConfig making all rules active in production - #3380
  • Empty custom config enables rules disabled by default - #3379
  • Add setup-detekt action to README - #3373
  • GlobalClassLoaderCache: move call to getFiles out of synchronized block - #3370
  • Check for === instead of == - #3363
  • Filter existing files in classpath - #3361
  • Suppress RedundantVisibilityModifierRule if explicit API mode enabled - #3358
  • Add the final new line in the baseline again - #3351
  • [Security] Bump nokogiri from 1.10.10 to 1.11.1 in /docs - #3348
  • Remove trailing newline after ending IndentingXMLStreamWriter - #3347
  • [Security] Bump nokogiri from 1.10.10 to 1.11.0 in /docs - #3343
  • Add UnnecessaryFilter rule - #3341
  • Reorganize docs for the configuration file - #3337
  • Add new rule SleepInsteadOfDelay - #3335
  • Update Android Gradle Plugin to 4.1.1 - #3328
  • Support relative output paths - #3319
  • Fix runLastOnRoot being empty in KtLintMultiRule - #3318
  • Ensure binary-compatibility with previous versrions - #3315
  • Fix reports not propagated to detekt task with type resolution - #3313
  • Support configurable severity per ruleset/rule in XML and Sarif output - #3310
  • Configure default excludes for InvalidPackageDeclaration - #3305
  • Remove exceptions of Library rules - #3304
  • Move the questions to discussions - #3300
  • Magic number extension functions - #3299
  • NamedArguments: fix false positive with varargs - #3294
  • NamedArguments rule: false positive with varargs - #3291
  • NamedArguments with java code false positive - #3289
  • Upgrade ktlint to 0.40.0 - #3281
  • False positive "Unconditional loop jump" - #3280
  • ForbiddenComments don't report TODO: in KDoc - #3273
  • Add MultilineLambdaItParameter rule - #3259
  • Update Kotlin to 1.4.21 - #3254
  • Introduce --all-rules flag - #3253
  • Enable more rules by default - #3229
  • Running multiple Detekt tasks concurrently may cause deadlock - #3047
  • detektMain is noisy "Ignoring a file detekt cannot handle" - #3019
  • Configure default excludes for InvalidPackageDeclaration - #2539
  • Hyperlink to error inside Android studio - #2340
  • Align cli flags and defaults with other analysis tools - #2267
Housekeeping & Refactorings
  • Bump mockk from 1.10.5 to 1.10.6 - #3473
  • Upgrade to Gradle 6.8.2 - #3468
  • Correct maxIssues documentation - #3456
  • Bump junit-platform-launcher from 1.7.0 to 1.7.1 - #3454
  • Don't use deprecated functions - #3452
  • Bump github-pages from 210 to 211 in /docs - #3434
  • Add documentation for SARIF, severity and relative path - #3433
  • Refactor uploading SARIF to report without overriding the previous step - #3432
  • Fix githubRelease skipping assets - #3427
  • Prompt bug reporters to attach gradle scan - #3422
  • Fix invalid link in detekt html report - #3421
  • Prepare 1.16.0-rc1 release - #3411
  • Add full qualified name in documentation - #3410
  • Bump kotlinx-coroutines-core from 1.3.8 to 1.4.1 - #3407
  • Fix deploy website on master - #3406
  • Bump mockk from 1.10.4 to 1.10.5 - #3404
  • Bump assertj-core from 3.18.1 to 3.19.0 - #3403
  • Bump github-pages from 209 to 210 in /docs - #3401
  • Update dangling URLs pointing to the old website - #3400
  • Auto generate CLI options in docs - #3399
  • Update documentations on snapshots - #3393
  • Fix maven publish - #3392
  • Fix build script to avoid jvm plugin applied - #3389
  • Disable parallel test discovery; we already use Grade workers for max parallelism - #3387
  • Use more fluent assertions - #3381
  • Refactor orders of repositories - #3376
  • Add a test for UndocumentedPublicClass and fun interfaces - #3374
  • Refactor build.gradle.kts in detekt-gradle-plugin - #3371
  • Gradle to 6.8 - #3362
  • Integrate SARIF report with Github code scanning - #3359
  • Refactor integration test for detekt-gradle-plugin - #3356
  • Improve gradle plugin - #3354
  • Remove checkNotNull - #3352
  • Generate API validation for detekt-psi-utils - #3338
  • recover binary compatibility with 1.15.0 - #3336
  • Refactor tests in detekt-gradle-plugin - #3333
  • Fix failing website deployment on master - #3332
  • The output of updateVersion should not depend on the OS that executes it - [#3330](#333...
Read more

v1.16.0-RC2

23 Feb 18:57
d2dc38c
Compare
Choose a tag to compare
  • 2021-02-19
Notable Changes
Migration
Changelog
  • Add UnreachableCatchBlock rule - #3478
  • Fix false negative "UselessCallOnNotNull" with list.isNullOrEmpty() - #3475
  • Add UseOrEmpty rule - #3470
  • Add UseIsNullOrEmpty rule - #3469
  • Fix false positives for MultilineLambdaItParameter.kt - #3451
  • Dont generate baseline if empty - #3450
  • Silence IndexOutOfBoundsException in getLineAndColumnInPsiFile() - #3446
  • Add new ObjectExtendsThrowable rule - #3443
  • Add allRules and deprecate failFast in gradle tasks - #3431
  • Add two missing ktlint rules - #3430
  • Don't fail if baseline doesn't exist in PlainDetekt - #3429
  • Fix False Positive on UnnecessarySafeCall - #3419
  • Fix false positive for UnusedPrivateMember with expect on objects - #3417
  • Fix code samples for UnnecessarySafeCall - #3416
  • New rule: DontDowncastCollectionTypes - #3413
  • Fix documentation in UnnecessarySafeCall - #3412
  • Bump gradle from 4.1.1 to 4.1.2 - #3405
  • Introduce --max-issues flag for cli - #2267 - #3391
  • Ignore actual functions in FunctionOnlyReturningConstant (#3388) - #3390
  • Fix hyperlink for elements of the type 'KtFile' - #3386
  • Update gradle doc to show table of contents correctly - #3383
  • Update cli doc to show table of contents correctly - #3382
  • Fix EmptyConfig making all rules active in production - #3380
  • Empty custom config enables rules disabled by default - #3379
  • Add setup-detekt action to README - #3373
  • GlobalClassLoaderCache: move call to getFiles out of synchronized block - #3370
  • Check for === instead of == - #3363
  • Filter existing files in classpath - #3361
  • Suppress RedundantVisibilityModifierRule if explicit API mode enabled - #3358
  • Add the final new line in the baseline again - #3351
  • [Security] Bump nokogiri from 1.10.10 to 1.11.1 in /docs - #3348
  • Remove trailing newline after ending IndentingXMLStreamWriter - #3347
  • [Security] Bump nokogiri from 1.10.10 to 1.11.0 in /docs - #3343
  • Add UnnecessaryFilter rule - #3341
  • Reorganize docs for the configuration file - #3337
  • Add new rule SleepInsteadOfDelay - #3335
  • Update Android Gradle Plugin to 4.1.1 - #3328
  • Support relative output paths - #3319
  • Fix runLastOnRoot being empty in KtLintMultiRule - #3318
  • Ensure binary-compatibility with previous versrions - #3315
  • Fix reports not propagated to detekt task with type resolution - #3313
  • Support configurable severity per ruleset/rule in XML and Sarif output - #3310
  • Configure default excludes for InvalidPackageDeclaration - #3305
  • Remove exceptions of Library rules - #3304
  • Move the questions to discussions - #3300
  • Magic number extension functions - #3299
  • NamedArguments: fix false positive with varargs - #3294
  • NamedArguments rule: false positive with varargs - #3291
  • NamedArguments with java code false positive - #3289
  • Upgrade ktlint to 0.40.0 - #3281
  • False positive "Unconditional loop jump" - #3280
  • ForbiddenComments don't report TODO: in KDoc - #3273
  • Add MultilineLambdaItParameter rule - #3259
  • Update Kotlin to 1.4.21 - #3254
  • Introduce --all-rules flag - #3253
  • Enable more rules by default - #3229
  • Running multiple Detekt tasks concurrently may cause deadlock - #3047
  • detektMain is noisy "Ignoring a file detekt cannot handle" - #3019
  • Configure default excludes for InvalidPackageDeclaration - #2539
  • Hyperlink to error inside Android studio - #2340
  • Align cli flags and defaults with other analysis tools - #2267
Housekeeping & Refactorings
  • Bump mockk from 1.10.5 to 1.10.6 - #3473
  • Upgrade to Gradle 6.8.2 - #3468
  • Correct maxIssues documentation - #3456
  • Bump junit-platform-launcher from 1.7.0 to 1.7.1 - #3454
  • Don't use deprecated functions - #3452
  • Bump github-pages from 210 to 211 in /docs - #3434
  • Add documentation for SARIF, severity and relative path - #3433
  • Refactor uploading SARIF to report without overriding the previous step - #3432
  • Fix githubRelease skipping assets - #3427
  • Prompt bug reporters to attach gradle scan - #3422
  • Fix invalid link in detekt html report - #3421
  • Prepare 1.16.0-rc1 release - #3411
  • Add full qualified name in documentation - #3410
  • Bump kotlinx-coroutines-core from 1.3.8 to 1.4.1 - #3407
  • Fix deploy website on master - #3406
  • Bump mockk from 1.10.4 to 1.10.5 - #3404
  • Bump assertj-core from 3.18.1 to 3.19.0 - #3403
  • Bump github-pages from 209 to 210 in /docs - #3401
  • Update dangling URLs pointing to the old website - #3400
  • Auto generate CLI options in docs - #3399
  • Update documentations on snapshots - #3393
  • Fix maven publish - #3392
  • Fix build script to avoid jvm plugin applied - #3389
  • Disable parallel test discovery; we already use Grade workers for max parallelism - #3387
  • Use more fluent assertions - #3381
  • Refactor orders of repositories - #3376
  • Add a test for UndocumentedPublicClass and fun interfaces - #3374
  • Refactor build.gradle.kts in detekt-gradle-plugin - #3371
  • Gradle to 6.8 - #3362
  • Integrate SARIF report with Github code scanning - #3359
  • Refactor integration test for detekt-gradle-plugin - #3356
  • Improve gradle plugin - #3354
  • Remove checkNotNull - #3352
  • Generate API validation for detekt-psi-utils - #3338
  • recover binary compatibility with 1.15.0 - #3336
  • Refactor tests in detekt-gradle-plugin - #3333
  • Fix failing website deployment on master - #3332
  • The output of updateVersion should not depend on the OS that executes it - [#3330](#333...
Read more

v1.16.0-RC1

26 Jan 18:17
1aa682d
Compare
Choose a tag to compare
  • 2021-01-26
Changelog
  • Introduce --max-issues flag for cli - #2267 - #3391
  • Fix hyperlink for elements of the type 'KtFile' - #3386
  • Update gradle doc to show table of contents correctly - #3383
  • Update cli doc to show table of contents correctly - #3382
  • Fix EmptyConfig making all rules active in production - #3380
  • Empty custom config enables rules disabled by default - #3379
  • Add setup-detekt action to README - #3373
  • GlobalClassLoaderCache: move call to getFiles out of synchronized block - #3370
  • Check for === instead of == - #3363
  • Filter existing files in classpath - #3361
  • Suppress RedundantVisibilityModifierRule if explicit API mode enabled - #3358
  • Add the final new line in the baseline again - #3351
  • [Security] Bump nokogiri from 1.10.10 to 1.11.1 in /docs - #3348
  • Remove trailing newline after ending IndentingXMLStreamWriter - #3347
  • [Security] Bump nokogiri from 1.10.10 to 1.11.0 in /docs - #3343
  • Reorganize docs for the configuration file - #3337
  • Add new rule SleepInsteadOfDelay - #3335
  • Update Android Gradle Plugin to 4.1.1 - #3328
  • Support relative output paths - #3319
  • Fix runLastOnRoot being empty in KtLintMultiRule - #3318
  • Ensure binary-compatibility with previous versrions - #3315
  • Fix reports not propagated to detekt task with type resolution - #3313
  • Support configurable severity per ruleset/rule in XML and Sarif output - #3310
  • Configure default excludes for InvalidPackageDeclaration - #3305
  • Remove exceptions of Library rules - #3304
  • Move the questions to discussions - #3300
  • Magic number extension functions - #3299
  • NamedArguments: fix false positive with varargs - #3294
  • NamedArguments rule: false positive with varargs - #3291
  • NamedArguments with java code false positive - #3289
  • Upgrade ktlint to 0.40.0 - #3281
  • False positive "Unconditional loop jump" - #3280
  • ForbiddenComments don't report TODO: in KDoc - #3273
  • Add MultilineLambdaItParameter rule - #3259
  • Update Kotlin to 1.4.21 - #3254
  • Introduce --all-rules flag - #3253
  • Enable more rules by default - #3229
  • Running multiple Detekt tasks concurrently may cause deadlock - #3047
  • detektMain is noisy "Ignoring a file detekt cannot handle" - #3019
  • Configure default excludes for InvalidPackageDeclaration - #2539
  • Hyperlink to error inside Android studio - #2340
  • Align cli flags and defaults with other analysis tools - #2267
Housekeeping & Refactorings
  • Disable parallel test discovery; we already use Grade workers for max parallelism - #3387
  • Use more fluent assertions - #3381
  • Refactor orders of repositories - #3376
  • Add a test for UndocumentedPublicClass and fun interfaces - #3374
  • Refactor build.gradle.kts in detekt-gradle-plugin - #3371
  • Gradle to 6.8 - #3362
  • Integrate SARIF report with Github code scanning - #3359
  • Refactor integration test for detekt-gradle-plugin - #3356
  • Improve gradle plugin - #3354
  • Remove checkNotNull - #3352
  • Generate API validation for detekt-psi-utils - #3338
  • recover binary compatibility with 1.15.0 - #3336
  • Refactor tests in detekt-gradle-plugin - #3333
  • Fix failing website deployment on master - #3332
  • The output of updateVersion should not depend on the OS that executes it - #3330
  • Reduce visibility - #3326
  • Refactor XmlOutputFormatSpec - #3325
  • Simplify our buildSrc - #3322
  • Apply binary compatibility plugin to Detekt - #3320
  • Add KDoc for convoluted PathFilters.isIgnored - #3312
  • Don't mix kotlin 1.3 and 1.4 - #3309
  • Allow to overwrite in the task moveJarForIntegrationTest - #3308
  • Remove unnecessary .trimIndent() - housekeeping - #3307
  • Fix typo - #3301
  • General housekeeping - #3298
  • Inline UnconditionalJumpStatementInLoop case files - #3296

See all issues at: 1.16.0

v1.15.0

18 Dec 18:06
37f0a1d
Compare
Choose a tag to compare
  • 2020-12-18
Notable Changes

detekt 1.15.0 bundles Kotlin 1.4.10.
You may experience some known issues when your project already used 1.4.20

In addition to many rule improvements, there are also new ones:

  • RedundantHigherOrderMapUsage
  • ListAllWhenCases
  • UseIfEmptyOrIfBlank

We added documentation on how to configure type resolution.
Only the rules marked with Requires Type Resolution are run (
e.g. https://detekt.github.io/detekt/style.html#forbiddenmethodcall).

detekt now supports SARIF as an output format. In the future you will be able to
upload this format to GitHub and see detekt issues right in your pull requests.

Migration

We removed implementations of the Config interface from the public api.
It was first deprecated and then moved to internal package earlier this year.
Rule authors can use TestConfig(Map) or yamlConfig(String) from detekt-test to test their rules.

  • Move internal config api to core module - #3163
Changelog
  • NamedArguments: fix false positive with java method call - #3290
  • Prepare 1.15.0 rc2 - #3286
  • UnconditionalJumpStatementInLoop: don't report a return after a conditional jump
  • Add MuseDev to the list of integrations - #3284
  • Fix ForbiddenComment rule not checking for KDoc - #3275
  • ForbiddenComments don't report TODO: in KDoc - #3273
  • Add IntelliJ platform plugin template integration to readme - #3270
  • Bundle new sarif output format by default - #3268
  • Add a test for UnusedImports with annotations used as attributes #3246
  • Add documentation page on type resolution - #3225
  • ThrowsCount rule: fix false positive with nested function - #3223
  • False positive in ThrowsCount rule - #3222
  • Refactor UnsafeCallOnNullableType rule - #3221
  • Fix false negatives in UnreachableCode rule - #3220
  • False negatives in UnreachableCode rule - #3219
  • Refactor RedundantElseInWhen to use compiler warning - #3214
  • NullableToStringCall: fix false negative with safe qualified expression
  • False negative in NullableToStringCall - #3211
  • NullableToStringCall: fix false negatives with qualified expression
  • False negatives in NullableToStringCall - #3196
  • Check for presence of null case in MissingWhenCase rule - #3194
  • Throw error instead of logging as error in analysis phase - #3193
  • Make kotlinc adapted rule comments internal - #3190
  • MissingWhenCase false negative with nulls - #3189
  • Check for static imports in unused imports rule - #3188
  • Add allowElseExpression configuration for MissingWhenCase rule - #3187
  • Add UseIfEmptyOrIfBlank rule - #3186
  • Fix detektBaseline task filtering .java files - #3185
  • Internal exception should fail the gradle task - #3183
  • Add RedundantHigherOrderMapUsage rule - #3182
  • Fix false negative in IgnoredReturnValue - #3179
  • Fix false positive when to is used to create a pair within a function
  • False Positive PreferToOverPairSyntax - #3177
  • ListAllWhenCases new rule - #3176
  • Suppress RedundantVisibilityModifierRule if explicit API mode enabled
  • Hardcode default values - #3171
  • False negative in IgnoredReturnValue - #3170
  • Fix false positive in IgnoredReturnValue - #3169
  • Duplicate deprecated KtLint methods - #3168
  • Introduce NamedArguments rule - #3167
  • Add JSON Schema documentation - #3166
  • Fix MaxLineLengthSuppressed ignoring @Suppress annotation on class
  • Use the properties syntax in Gradle docs - #3158 - #3161
  • Fix rule LibraryCodeMustSpecifyReturnType - #3155
  • Update README to mention config auto-complete - #3143
  • @Suppress("MaxLineLength") not working for simple block comment inside class
  • Support sarif as a report type - #3045 - #3132
  • UnusedImports false positive for enums in annotation attributes (with type resolution)
  • Unable to generate detektMain baseline for UnsafeCallOnNullableType violations in Android (mixed Kotlin + Java)
    modules - #3130
  • Suppress RedundantVisibilityModifierRule if explicit API mode enabled
  • SARIF export support - #3045
  • IgnoredReturnValue false positives - #3043
  • Offset calculation in KtLint deprecated/made private - #3021
  • Map { it } must return an error - #2975
  • Upload detekt-formatting plugin to Github releases next to precompiled cli binary
  • Add a rule to flag places where ifBlank and ifEmpty can be used
  • Remove hardcoded default values from rules - #2597
  • Doc: type and symbol solving - #2259
  • Suggestion: LongParameterList rule but on method call if named argument is not used
Housekeeping & Refactorings
  • Standardize "active" constant - #3292
  • Update Spek to v2.0.15 - #3287
  • Reformat code indentation in ReturnFromFinallySpec.kt - #3278
  • Inline ReturnFromFinally report message text - #3277
  • Simplify ReturnFromFinally check for finally expressions - #3276
  • CI with Java 15 - #3262
  • Enabled publishing of sha256 and sha512 signatures - #3249
  • Remove default config entries in detekt.yml - #3239
  • Fix grammar in configuration guide - #3238
  • Exclude detekt:LargeClass rule in test sources - #3237
  • Release 1.15.0 rc1 - #3236
  • Remove unused format function in RuleExtensions - #3234
  • Update spek to v2.0.14 - #3231
  • Remove already activated rules from detekt.yml - #3230
  • Fix broken website redirects - #3227
  • Remove unused resources from the website - #3226
  • Simplify EqualsOnSignatureLine rule - #3224
  • Remove unnecessary suppression in main - #3217
  • Simplify MissingWhenCase by removing an unnecessary alternative path
  • Refactor HasPlatformType rule - #3210
  • Remove Suppress annotation from ArrayPrimitive - #3209
  • Refactor UselessCallOnNotNull rule - #3208
  • Refactor MissingWhenCase - #3207
  • Refactor NullableToStringCall - [#3206](https://github.com/de...
Read more

v1.15.0-RC2

14 Dec 16:03
84e42ec
Compare
Choose a tag to compare

-RC2 - 2020-12-14

Changelog
  • Fix ForbiddenComment rule not checking for KDoc - #3275
  • ForbiddenComments don't report TODO: in KDoc - #3273
  • Bundle new sarif output format by default - #3268
  • ThrowsCount rule: fix false positive with nested function - #3223
  • False positive in ThrowsCount rule - #3222
  • Refactor UnsafeCallOnNullableType rule - #3221
  • Fix false negatives in UnreachableCode rule - #3220
  • False negatives in UnreachableCode rule - #3219
  • Refactor RedundantElseInWhen to use compiler warning - #3214
  • NullableToStringCall: fix false negative with safe qualified expression - #3213
  • False negative in NullableToStringCall - #3211
  • NullableToStringCall: fix false negatives with qualified expression - #3198
  • False negatives in NullableToStringCall - #3196
  • Check for presence of null case in MissingWhenCase rule - #3194
  • Throw error instead of logging as error in analysis phase - #3193
  • Make kotlinc adapted rule comments internal - #3190
  • MissingWhenCase false negative with nulls - #3189
  • Check for static imports in unused imports rule - #3188
  • Add allowElseExpression configuration for MissingWhenCase rule - #3187
  • Add UseIfEmptyOrIfBlank rule - #3186
  • Fix detektBaseline task filtering .java files - #3185
  • Internal exception should fail the gradle task - #3183
  • Add RedundantHigherOrderMapUsage rule - #3182
  • Fix false negative in IgnoredReturnValue - #3179
  • Fix false positive when to is used to create a pair within a function - #3178
  • False Positive PreferToOverPairSyntax - #3177
  • ListAllWhenCases new rule - #3176
  • Suppress RedundantVisibilityModifierRule if explicit API mode enabled - #3175
  • Hardcode default values - #3171
  • False negative in IgnoredReturnValue - #3170
  • Fix false positive in IgnoredReturnValue - #3169
  • Duplicate deprecated KtLint methods - #3168
  • Introduce NamedArguments rule - #3167
  • Add JSON Schema documentation - #3166
  • Fix MaxLineLengthSuppressed ignoring @Suppress annotation on class - #3164
  • Move internal config api to core module - #3163
  • Use the properties syntax in Gradle docs - #3158 - #3161
  • Fix rule LibraryCodeMustSpecifyReturnType - #3155
  • Update README to mention config auto-complete - #3143
  • @Suppress("MaxLineLength") not working for simple block comment inside class - #3136
  • Support sarif as a report type - #3045 - #3132
  • UnusedImports false positive for enums in annotation attributes (with type resolution) - #3131
  • Unable to generate detektMain baseline for UnsafeCallOnNullableType violations in Android (mixed Kotlin + Java) modules - #3130
  • Suppress RedundantVisibilityModifierRule if explicit API mode enabled - #3125
  • SARIF export support - #3045
  • IgnoredReturnValue false positives - #3043
  • Offset calculation in KtLint deprecated/made private - #3021
  • Map { it } must return an error - #2975
  • Add a rule to flag places where ifBlank and ifEmpty can be used - #2840
  • Remove hardcoded default values from rules - #2597
  • Suggestion: LongParameterList rule but on method call if named argument is not used - #1007
Housekeeping & Refactorings
  • Reformat code indentation in ReturnFromFinallySpec.kt - #3278
  • Inline ReturnFromFinally report message text - #3277
  • Simplify ReturnFromFinally check for finally expressions - #3276
  • Enabled publishing of sha256 and sha512 signatures - #3249
  • Remove default config entries in detekt.yml - #3239
  • Fix grammar in configuration guide - #3238
  • Exclude detekt:LargeClass rule in test sources - #3237
  • Release 1.15.0 rc1 - #3236
  • Remove unused format function in RuleExtensions - #3234
  • Update spek to v2.0.14 - #3231
  • Remove already activated rules from detekt.yml - #3230
  • Fix broken website redirects - #3227
  • Remove unused resources from the website - #3226
  • Simplify EqualsOnSignatureLine rule - #3224
  • Remove unnecessary suppression in main - #3217
  • Simplify MissingWhenCase by removing an unnecessary alternative path - #3216
  • Refactor HasPlatformType rule - #3210
  • Remove Suppress annotation from ArrayPrimitive - #3209
  • Refactor UselessCallOnNotNull rule - #3208
  • Refactor MissingWhenCase - #3207
  • Refactor NullableToStringCall - #3206
  • Refactor RedundantElseInWhen - #3205
  • Refactor PreferToOverPairSyntax - #3204
  • Remove Suppress annotation from MagicNumber - #3203
  • Remove Suppress annotation from UnusedImports - #3202
  • Refactor FunctionNaming rule - #3201
  • Setup the website publishing pipeline - #3199
  • Improve code coverage for DefaultCliInvoker testing happy and error path - #3195
  • Make kotlinc adapted rule comments internal - #3192
  • Improve PreferToOverPairSyntax - #3181
  • Simplify PreferToOverPairSyntax check - #3180
  • Improves in IgnoredReturnValue - #3174
  • Move KtFileContent to FileParsingRule - #3173
  • Don't use deprectad onStart - #3172

See all issues at: 1.15.0

v1.15.0-RC1

16 Nov 17:04
415ca77
Compare
Choose a tag to compare

-RC1 - 2020-11-16

Changelog
  • ThrowsCount rule: fix false positive with nested function - #3223
  • False positive in ThrowsCount rule - #3222
  • Refactor UnsafeCallOnNullableType rule - #3221
  • Fix false negatives in UnreachableCode rule - #3220
  • False negatives in UnreachableCode rule - #3219
  • Refactor RedundantElseInWhen to use compiler warning - #3214
  • NullableToStringCall: fix false negative with safe qualified expression - #3213
  • False negative in NullableToStringCall - #3211
  • NullableToStringCall: fix false negatives with qualified expression - #3198
  • False negatives in NullableToStringCall - #3196
  • Check for presence of null case in MissingWhenCase rule - #3194
  • Throw error instead of logging as error in analysis phase - #3193
  • Make kotlinc adapted rule comments internal - #3190
  • MissingWhenCase false negative with nulls - #3189
  • Check for static imports in unused imports rule - #3188
  • Add allowElseExpression configuration for MissingWhenCase rule - #3187
  • Add UseIfEmptyOrIfBlank rule - #3186
  • Fix detektBaseline task filtering .java files - #3185
  • Internal exception should fail the gradle task - #3183
  • Add RedundantHigherOrderMapUsage rule - #3182
  • Fix false negative in IgnoredReturnValue - #3179
  • Fix false positive when to is used to create a pair within a function - #3178
  • False Positive PreferToOverPairSyntax - #3177
  • ListAllWhenCases new rule - #3176
  • Suppress RedundantVisibilityModifierRule if explicit API mode enabled - #3175
  • Hardcode default values - #3171
  • False negative in IgnoredReturnValue - #3170
  • Fix false positive in IgnoredReturnValue - #3169
  • Duplicate deprecated KtLint methods - #3168
  • Introduce NamedArguments rule - #3167
  • Add JSON Schema documentation - #3166
  • Fix MaxLineLengthSuppressed ignoring @Suppress annotation on class - #3164
  • Move internal config api to core module - #3163
  • Use the properties syntax in Gradle docs - #3158 - #3161
  • Fix rule LibraryCodeMustSpecifyReturnType - #3155
  • Update README to mention config auto-complete - #3143
  • @Suppress("MaxLineLength") not working for simple block comment inside class - #3136
  • Support sarif as a report type - #3045 - #3132
  • UnusedImports false positive for enums in annotation attributes (with type resolution) - #3131
  • Unable to generate detektMain baseline for UnsafeCallOnNullableType violations in Android (mixed Kotlin + Java) modules - #3130
  • Suppress RedundantVisibilityModifierRule if explicit API mode enabled - #3125
  • SARIF export support - #3045
  • IgnoredReturnValue false positives - #3043
  • Offset calculation in KtLint deprecated/made private - #3021
  • Map { it } must return an error - #2975
  • Add a rule to flag places where ifBlank and ifEmpty can be used - #2840
  • Remove hardcoded default values from rules - #2597
  • Suggestion: LongParameterList rule but on method call if named argument is not used - #1007
Housekeeping & Refactorings
  • Remove unused format function in RuleExtensions - #3234
  • Update spek to v2.0.14 - #3231
  • Remove already activated rules from detekt.yml - #3230
  • Fix broken website redirects - #3227
  • Remove unused resources from the website - #3226
  • Simplify EqualsOnSignatureLine rule - #3224
  • Remove unnecessary suppression in main - #3217
  • Simplify MissingWhenCase by removing an unnecessary alternative path - #3216
  • Refactor HasPlatformType rule - #3210
  • Remove Suppress annotation from ArrayPrimitive - #3209
  • Refactor UselessCallOnNotNull rule - #3208
  • Refactor MissingWhenCase - #3207
  • Refactor NullableToStringCall - #3206
  • Refactor RedundantElseInWhen - #3205
  • Refactor PreferToOverPairSyntax - #3204
  • Remove Suppress annotation from MagicNumber - #3203
  • Remove Suppress annotation from UnusedImports - #3202
  • Refactor FunctionNaming rule - #3201
  • Setup the website publishing pipeline - #3199
  • Improve code coverage for DefaultCliInvoker testing happy and error path - #3195
  • Make kotlinc adapted rule comments internal - #3192
  • Improve PreferToOverPairSyntax - #3181
  • Simplify PreferToOverPairSyntax check - #3180
  • Improves in IgnoredReturnValue - #3174
  • Move KtFileContent to FileParsingRule - #3173
  • Don't use deprectad onStart - #3172

See all issues at: 1.15.0