detekt

Developer ToolsApache-2.0

Static analysis for Kotlin.

Latest v1.23.8 · by detektWritten in MDXWebsitedetekt/detektRSS

Release activity

Release activity — 6 releases across 6 days in the last year. Each cell is one day; darker means more releases that day. Older weeks are hidden at this screen width.
JunJulAugSep
SundayNo releases on May 24, 2026No releases on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026No releases on Aug 16, 2026No releases on Aug 23, 2026No releases on Aug 30, 2026No releases on Sep 6, 2026
MondayNo releases on May 25, 2026No releases on Jun 1, 2026No releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026No releases on Aug 10, 2026No releases on Aug 17, 2026No releases on Aug 24, 2026No releases on Aug 31, 2026No releases on Sep 7, 2026
TuesdayNo releases on May 26, 2026No releases on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 20261 release on Aug 4, 2026No releases on Aug 11, 2026No releases on Aug 18, 2026No releases on Aug 25, 2026No releases on Sep 1, 2026No releases on Sep 8, 2026
WednesdayNo releases on May 27, 2026No releases on Jun 3, 2026No releases on Jun 10, 20261 release on Jun 17, 2026No releases on Jun 24, 2026No releases on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026No releases on Aug 12, 2026No releases on Aug 19, 2026No releases on Aug 26, 2026No releases on Sep 2, 2026
ThursdayNo releases on May 28, 2026No releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026No releases on Aug 13, 2026No releases on Aug 20, 2026No releases on Aug 27, 2026No releases on Sep 3, 2026
FridayNo releases on May 29, 2026No releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026No releases on Aug 14, 2026No releases on Aug 21, 2026No releases on Aug 28, 2026No releases on Sep 4, 2026
SaturdayNo releases on May 30, 2026No releases on Jun 6, 20261 release on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026No releases on Aug 15, 2026No releases on Aug 22, 2026No releases on Aug 29, 2026No releases on Sep 5, 2026

6 releases in the last year

Changelog

v2.0.0-alpha.6

Pre-release
Added 3
  • Add ignoreSealedClasses option to AbstractClassCanBeInterface rule
  • Add configuration ignoredFullyQualifiedNames to UnnecessaryFullyQualifiedName rule
  • Expose multiline parameter in ClassSignature
Changed 3
  • detekt-rules-ktlint-wrapper now targets JVM 17
  • Extend PropertyUsedBeforeDeclaration to follow private init calls
  • Recommend to use Locale.ROOT instead of Locale.US
Fixed 10
  • Fix UnusedPrivateProperty false negative for constructor properties
  • Fix MissingSuperCall false positive when annotation is in grandparent
  • Fix UseDataClass false positive for properties with a custom accessor
  • Fix a potential bug on Config.getListOrDefault
  • Fix UnusedPrivateFunction false positive for overloaded private extension functions with a Java or generated receiver type
  • Fix CanBeNonNullable false negative on local variables

From detekt

2.0.0-alpha.6 - 2026-08-04

This is an alpha release of Detekt 2.0.0. It's built against Kotlin 2.4.10, Gradle 9.6.1, AGP 9.3.1 and is tested against JDK 25.

Notable Changes
  • detekt-rules-ktlint-wrapper now targets JVM 17, in preparation for the next ktlint major release which requires JVM 17+, the rest of detekt still targets JVM 8+ - #9453
Changelog
  • feat(rules): add ignoreSealedClasses option to AbstractClassCanBeInterface - #9557
  • docs: drop stale Android compile classpath warning note - #9550
  • Recommend to use Locale.ROOT instead of Locale.US - #9532
  • Recognize params swallowed by KDoc lexer in OutdatedDocumentation - #9529
  • Fix UnusedPrivateProperty false negative for constructor properties - #9491
  • Fix MissingSuperCall false positive when annotation is in grandparent - #9469
  • Fix UseDataClass false positive for properties with a custom accessor - #9462
  • Fix a potential bug on Config.getListOrDefault - #9461
  • Fix UnusedPrivateFunction false positive for overloaded private extension functions with a Java (or generated) receiver type - #9450
  • Fix CanBeNonNullable false negative on local variables - #9432
  • Fix CognitiveComplexMethod false positive for object literal methods - #9431
  • Fix ReturnCount/ThrowsCount false positive where a guard clause following a local variable declaration was still counted (with excludeGuardClauses enabled) - #9424
  • Extend PropertyUsedBeforeDeclaration to follow private init calls - #9334
  • Add configuration ignoredFullyQualifiedNames to UnnecessaryFullyQualifiedName rule - #9301
  • Expose multiline parameter in ClassSignature - #9084
Dependency Updates
  • Update agp to v9.3.1 - #9538
  • Update kotlin monorepo to v2.4.10 - #9518
  • Update Gradle to v9.6.1 - #9444
  • Update Gradle to v9.6.0 - #9420
Housekeeping & Refactorings
  • Reduce scope of @Suppress("UNCHECKED_CAST") - #9459
  • Remove irrelevant test for YamlConfig - #9457
  • fix: handle trailing commas in @Configuration annotation parsing in JS generator - #9447
  • Production code should not depend on fixtures - #9439
Contributors

We would like to thank the following contributors that made this release possible: @3flex, @BraisGabin, @ChristophyBarth, @FilippoVigani, @Phoenix1808, @ShubhamWorks02, @cortinico, @e5l, @eyupcanakman, @iuryeng, @loganrosen, @marpalat, @roian6, @sahilpatel2521, @tonytonycoder11

See all issues at: 2.0.0

View originalPermalink
How v2.0.0-alpha.6 went

v2.0.0-alpha.5

Pre-release
Changed 1
  • Stop accepting unsupported API or language versions passed to CLI
Fixed 2
  • Stop leaking ktlint-repackage as a transitive dependency
  • Exclude gradle-public-api from published POM

From detekt

2.0.0-alpha.5 - 2026-06-17

This is a hotfix release for 2.0.0-alpha.4 where we fixed 2 bugs that were preventing detekt from running correctly.

Changelog
  • fix: stop leaking ktlint-repackage as a transitive dependency - #9391
  • fix: exclude gradle-public-api from published POM - #9408
  • Stop accepting unsupported API or language versions passed to CLI - #9410
View originalPermalink
How v2.0.0-alpha.5 went

v2.0.0-alpha.4

Pre-release
Added 2
  • Support Kotlin 2.4.0
  • Add new rule LeakingSessionBoundType
Changed 9
  • Apply the indent_style configuration to all the ktlint wrapper rules
  • Expose Glob-to-Regex functions in psi-utils
  • Make Detektion immutable
  • Include ktlint-repackage in ktlint-wrapper JAR
  • Declare DGP compatibility with Gradle's configuration cache
  • Forward languageVersionSettings to KotlinAnalysisApiEngine.compile
Fixed 6
  • Prevent ArrayPrimitive crash on unresolved types
  • Fix PrintStackTrace nested call detection
  • Fix unused import false positive for companion object member extension properties
  • Accept punctuation after a link
  • Fix UnnecessaryFullyQualifiedName false positive with explicit import shadowing
  • Fix UnnecessaryFullyQualifiedName clashes with kotlin package name
Removed 3
  • Stop publishing ktlint-repackage
  • Stop exposing ktlint's StandardRule to detekt-rules-ktlint-wrapper consumers
  • Remove excludeImportStatements from Deprecation rule

From detekt

2.0.0-alpha.4 - 2026-06-13

This is an alpha release of Detekt 2.0.0. Is built against Kotlin 2.4.0, Gradle 9.5.1, AGP 9.2.1 and is tested against JDK 25.

Notable Changes
  • Support Kotlin 2.4.0 - #9218
  • Add new rule LeakingSessionBoundType - #9242
  • Apply the indent_style configuration to all the ktlint wrapper rules (previsouly this was applied only to the Indentation rule) - #9315
Breaking Changes
  • Expose Glob-to-Regex functions in psi-utils - #9340
  • Make Detektion immutable - #8583
Changelog
  • fix: prevent ArrayPrimitive crash on unresolved types - #9364
  • Update ktlint documentation links - #9354
  • Fix PrintStackTrace nested call detection - #9352
  • Fix unused import false positive for companion object member extension properties - #9349
  • Accept punctuation after a link - #9341
  • Fixes UnnecessaryFullyQualifiedName false positive with explicit import shadowing - #9329
  • docs: fix KMP type resolution task names - #9316
  • Stop publishing ktlint-repackage - #9314
  • Stop exposing ktlint's StandardRule to detekt-rules-ktlint-wrapper consumers - #9313
  • Include ktlint-repackage in ktlint-wrapper JAR - #9312
  • Declare DGP compatibility with Gradle's configuration cache - #9311
  • Forward languageVersionSettings to KotlinAnalysisApiEngine.compile - #9305
  • docs: add ForbiddenImport configuration example - #9302
  • Fix UnnecessaryFullyQualifiedName clashes with kotlin package name - #9289
  • Remove excludeImportStatements from Deprecation rule - #9287
  • Improve repackaging of Analysis API dependencies - #9285
  • MaxChainedCallsOnSameLine - Fix AA type leaks - #9261
  • SuspendFunSwallowedCancellation - Fix AA type leaks - #9256
  • feat: Add exhaustive option to OutdatedDocumentation rule, also improve error messages - #9255
  • Excluding generated sources by default - #9251
  • Move FileProcessListenerExtensions to :detekt-test - #9212
  • Improve SuspendFunSwallowedCancellation - #9208
  • Cli filters - #9200
  • Allow single-argument Boolean generics in NonBooleanPropertyPrefixedWithIs - #9173
  • Remove Config.parentPath - #9036
Dependency Updates
  • Update Poko to v0.23.1 - #9371
  • Update slf4j monorepo to v2.0.18 - #9324
  • Update agp to v9.2.1 - #9268
Housekeeping & Refactorings
  • Update test to avoid typealias to compiler-required annotation - #9361
  • Remove unnecessary compileOnly dependencies - #9318
Contributors

We would like to thank the following contributors that made this release possible: @3flex, @BraisGabin, @ChristophyBarth, @FletchMcKee, @Lucas-FManager, @ShubhamWorks02, @Will-thom, @e5l, @fru1tworld, @jonapoul, @luanpotter, @matejdro, @mirkoalicastro, @nchen000, @ninebolt6, @paulkagiri, @travisMiehm

View originalPermalink
How v2.0.0-alpha.4 went

v2.0.0-alpha.3

Pre-release
Added 5
  • Add support for AGP 9 built-in Kotlin
  • Add new rule: UnnecessaryRun
  • Suggest similar property names for misspelled config properties
  • Add ignoreClass config to MissingUseCall
  • Add severity to different md, html reports
Changed 5
  • Bump Kotlin to v2.3.21
  • Bump AGP to v9.1.1
  • Rule UnnecessaryFullyQualifiedName now requires full mode to run
  • Do not forbid use of java.lang.annotation.Inherited annotation by default
  • Support indent_style in ktlint Indention rule
Fixed 8
  • Fix AA type leaks in UseOrEmpty
  • Fix AA type leaks in ForbiddenNamedParam
  • Fix AA type leaks in UnusedVariable
  • Fix AA type leaks in UnnecessaryNotNullOperator
  • Fix AA type leaks in Deprecation
  • Fix AA type leaks in NestedScopeFunctions
  • Fix false positive with name collisions
  • Fix false positive for ExplicitCollectionElementAccessMethod with lambdas
Removed 2
  • Remove DetektProgressListener from public API
  • Remove InvalidConfigurationError from public API

From detekt

2.0.0-alpha.3 - 2026-04-24

This is an alpha release of Detekt 2.0.0. Is built against Kotlin 2.3.21, Gradle 9.3.1, AGP 9.1.1 and is tested against JDK 25.

As of this release, the workaround of disabling the new DSL and built-in Kotlin via gradle.properties for AGP 9.x projects is no longer required.

Notable Changes
  • Bump Kotlin to v2.3.21 - #9272
  • Bump AGP to v9.1.1 - #9244
  • Add support for AGP 9 built-in Kotlin - #9100
  • Rule UnnecessaryFullyQualifiedName now requires full mode to run - #9061
  • Add new rule: UnnecessaryRun - #7428
Breaking Changes
  • Remove DetektProgressListener from our public API - #9221
  • Remove InvalidConfigurationError from our public API - #8994
Changelog
  • UseOrEmpty - Fix AA type leaks - #9263
  • ForbiddenNamedParam - Fix AA type leaks - #9262
  • UnusedVariable - Fix AA type leaks - #9260
  • UnnecessaryNotNullOperator - Fix AA type leaks - #9259
  • Deprecation - Fix AA type leaks - #9258
  • NestedScopeFunctions - Fix AA type leaks - #9257
  • Suggest similar property names for misspelled config properties - #9250
  • MagicNumber DslGradleRunner test fix - #9245
  • Don't forbid use of java.lang.annotation.Inherited annotation by default - #9224
  • Fixes #9017 - false positive with name collisions - #9223
  • Optimize how we get project statistics - #9217
  • Rename ProjectComplexityProcessor to ProjectCyclomaticComplexityProcessor - #9213
  • Add ignoreClass config to MissingUseCall - #9205
  • Remove LicenseHeaderLoaderExtension from the list of processors - #9204
  • cli: Improve messages and exception types of --report - #9203
  • Validate --classpath with JCommander - #9202
  • System-dependent path separators - #9199
  • Do not report IgnoredReturnValue on lambda invocation that returns Unit - #9192
  • Point to valOrVarKeyword for reporting the issue - #9191
  • Check Throwable class - #9190
  • Do no report when parent has class - #9189
  • Add support of indent_style in ktlint Indention rule - #9180
  • Add severity to different md, html reports - #9167
  • Check local class which can't be converted to interface - #9166
  • Inline yaml config in the test - #9154
  • Tests: Don't check compilation errors with compile-test-snippets=false - #9153
  • YamlConfig.load returns YamlConfig instead of Config - #9151
  • Generator: The --config flag value should be a directory or it shouldn't exist - #9131
  • Fix broken test JvmSpec - #9129
  • Performance improvement - consolidated KaLibraryModules - #9127
  • Print cli arguments with debug = true - #9126
  • MissingUseCall: Fix false negative for checkNotNull/requireNotNull - #9123
  • Make functionalTest os dependent - #9098
  • Fix false positive for ExplicitCollectionElementAccessMethod with lambdas - #9096
  • Expose only LanguageVersionSettings instead of CompilerConfiguration - #9092
  • Remove project from EnvironmentFacade - #9089
  • Ensure that AA knows types of excluded files - #9082
  • Updated to using Gradle's lazy APIs - #9080
  • Simplify KotlinEnvironmentContainer - #9077
  • Reduce calls to analyze in MapGetWithNotNullAssertionOperator - #9067
  • Report MapGetWithNonNullAssertionOperator violations on MutableMaps - #9065
  • Fix ExplicitCollectionElementAccessMethodSpec for unresolved types - #9059
  • Allow external dependencies in analysis tests - #9051
  • Improve exception handling on YamlConfig - #9048
  • Remove YamlConfig.load(Path) - #9047
  • Refine AbstractClassCanBeInterface treatment of open properties - #9043
  • rename Claude.md to CLAUDE.md for cross-platform compatibility - #9033
  • Clarify CommentOverPrivate... renames in detekt 2 - #9025
  • Exclude generated sources from default sources - #9019
  • fix(UnusedVariable): recognize destructured lambda parameters as used - #9015
  • Replace Lifecycle.bindingProvider by a private function and rename it to validateClasspath - #9003
  • Remove unnecessary interface - #9002
  • Remove dependecy of :detekt-test with :detekt-core - #8987
  • Move yamlConfig functions to :detekt-core - #8976
  • Only print paths of reports when detektion fails - #8560
Dependency Updates
  • Bump Kotlin 2.3.20 - #8959
  • Bump AGP to v9.1.0 - #9110
  • Add coroutinesCore Intellij to the classpath - #9176
  • chore: update Kotlin 2.3.20-RC2 → 2.3.20 - #9160
  • chore(deps): update plugin dev.drewhamilton.poko to v0.22.0 - #9159
  • Make KotlinAnalysisApiEngine AutoCloseable - #9144
  • fix(deps): update kotlin monorepo to v2.3.10 - #9037
Housekeeping & Refactorings
  • Don't use paths to read files from resources/ - #9175
  • Remove unnecessary test nesting - #9150
Contributors

We would like to thank the following contributors that made this release possible: @3flex, @BraisGabin, @FletchMcKee, @TWiStErRob, @UnguidedFreedom, @atulgpt, @cortinico, @fru1tworld, @jonapoul, @matejdro, @mirkoalicastro, @picklebento, @t-kameyama, @travisMiehm

View originalPermalink
How v2.0.0-alpha.3 went

v2.0.0-alpha.2

Pre-release
Added 4
  • Enable rules by default that are now standard in ktlint 1.8.0
  • New ktlint Rule: ThenSpacingRule
  • New Rule: UnnecessaryInitOnArray
  • New Rule: UnnecessaryFullyQualifiedName
Changed 13
  • Bump Kotlin to 2.3.0
  • Bump Gradle to 9.3.0
  • Bump AGP to 9
  • Bump minimum AGP to 8.2.2
  • Bump KtLint to v1.8.0
  • Rename documentation to comments
Fixed 2
  • Fix UnusedImport to detect named companion objects correctly
  • Skip underscore placeholders for unused variables on NonNameShadowing rule
Removed 1
  • Remove UnnecessaryAnnotationUseSiteTarget rule

From detekt

2.0.0-alpha.2 - 2026-01-27

This is an alpha release of Detekt 2.0.0. It's built against Kotlin 2.3.0, Gradle 9.3.0, AGP 9.0.0 and is tested against JDK 25.

Please note that in order for this alpha of Detekt to run in an AGP 9.0.0 project, you will need to disable the new DSL and built-in Kotlin by adding these properties to gradle.properties:

android.newDsl=false
android.builtInKotlin=false

Further updates on builtInKotlin support in Detekt Gradle Plugin will be available here.

Notable Changes
  • Bump Kotlin to 2.3.0 - #8743
  • Bump Gradle to 9.3.0 - #8982
  • Bump AGP to 9 - #8553
  • Bump minimum AGP to 8.2.2 - #8931
  • Enable rules by default that are now standard in ktlint 1.8.0 - #8849
  • Bump KtLint to v1.8.0 - #8843
  • New ktlint Rule: ThenSpacingRule - #8850
  • New Rule: UnnecessaryInitOnArray - #8784
  • New Rule: UnnecessaryFullyQualifiedName - #8917
Breaking Changes
  • Rename documentation to comments - #8889
  • Rename empty to emptyblocks - #8888
  • Rename bugs rules to potentialbugs - #8887
  • Remove UnnecessaryAnnotationUseSiteTarget rule - #8861
  • Rename RuleSet.Id to RuleSetId - #8810
  • Rename rule CommentOverPrivateMethod to DocumentationOverPrivateMethod - #8778
  • Refactor AbsentOrWrongFileLicense - #8969
  • Compile DGP against kotlin-plugin-api only not KGP itself - #8756
  • Change configuration options for ForbiddenImport rule - #8747
Changelog
  • fix(UnusedImport): detect named companion objects correctly - #9005
  • Remove unnecessary tests - #8985
  • Pass the correct type to TestConfig - #8984
  • Remove special case for active at TestConfig - #8983
  • TestConfig over yamlConfigFromContent - #8974
  • Skip underscore placeholders for unused variables on NonNameShadowing rule (#8962) - #8965
  • docs: clarify function type handling in ForbiddenMethodCall - #8964
  • Check if there suspend function in try block before reporting - #8950
  • Fix SubpluginArtifact coordinates for dev.detekt:detekt-compiler-plugin - #8938
  • Handle case when inner is required as parent is inner - #8927
  • Add paragraph on AI contributed PR - #8922
  • Handle case when reference is provided - #8895
  • Don't enable rules by default that are only enabled when using ktlint_official code style - #8845
  • Filter operations which are terminal as they don't continue sequence - #8804
  • Add modality check from analysis api - #8803
  • Update getPropertyAccessorSymbol method to correctly return getter … - #8787
  • Fix #8160 - Exclude classes in NamedArguments rule - #8782
  • remove suppression - #8736
  • Remove "V2" from DGP plugin display name and description - #8628
Dependency Updates
  • Bump Kotlin to v2.2.21 - #8807
  • Bump AGP to 8.13.2 - #8914
  • Add transitive assertj dep of assertj core in detekt-test-assertj - #8923
  • chore(deps): update gradle to v9.2.1 - #8868
  • fix(deps): update dependency com.android.tools.build:gradle to v8.13.1 - #8838
  • chore(deps): update gradle to v9.2.0 - #8820
Housekeeping & Refactorings
  • Bump min Node version for website build - #8875
  • Enable ValueArgumentComment for detekt project - #8854
Contributors

We would like to thank the following contributors that made this release possible: @3flex, @BraisGabin, @atulgpt, @chao2zhang, @cortinico, @csbiy, @forketyfork, @marschwar, @rschattauer

View originalPermalink
How v2.0.0-alpha.2 went

v2.0.0-alpha.1

Pre-release
2.0.0-alpha.1 - 2025-10-21

This is an alpha release of Detekt 2.0.0. Is built against Kotlin 2.2.20, Gradle 9.1.0 and is tested against JDK 25.

Full changelog is available here: https://detekt.dev/changelog-2.0.0

Requirements
Detekt VersionGradleKotlinAGPJava Target LevelJDK Max Version
2.0.0-alpha.19.1.02.2.208.13.01.825
Contributors

We would like to thank the following contributors that made this release possible: @3flex @BraisGabin @Copilot @CziSKY @atulgpt @jonapoul @marschwar @mikaelreiersolmoen

See all issues at: 2.0.0

View originalPermalink
How v2.0.0-alpha.1 went

v2.0.0-alpha.0

Pre-release
Changed 5
  • Minimum Gradle version is now 8.13.0
  • Minimum Kotlin version is now 2.2.10
  • Minimum AGP version is now 8.13.0
  • Java target level is 1.8
  • Maximum JDK version supported is 21

From detekt

2.0.0-alpha.0 - 2025-09-04

This is an initial alpha release of Detekt 2.0.0.

Full changelog is available here: https://detekt.dev/changelog-2.0.0

Requirements
Detekt VersionGradleKotlinAGPJava Target LevelJDK Max Version
2.0.0-alpha.08.13.02.2.108.13.01.821
Contributors

We would like to thank the following contributors that made this release possible: @3flex, @BraisGabin, @ErdoganSeref, @GeorgCantor, @Goooler, @Gosunet, @Hexcles, @JordanLongstaff, @LeoColman, @MaximSysoev, @Nava2, @PStrelchenko, @PhilippNowak96, @PoisonedYouth, @TWiStErRob, @VirtualParticle, @VovaStelmashchuk, @arturbosch, @atulgpt, @baseballyama, @bmuschko, @bomiyr, @bric3, @brunoescalona, @chao2zhang, @cortinico, @dzirbel, @eygraber, @hirokinoue, @hudson155, @ilim-ablyaev, @inorichi, @kkocel, @lexa-diky, @marschwar, @matejdro, @mdemianova, @mgroth0, @neugartf, @noar-t, @pablobaxter, @paolorotolo, @psuzn, @rhazarian, @rmarquis, @robholmes, @schalkms, @segunfamisa, @severn-everett, @stellingsimon, @t-kameyama, @tfcporciuncula, @xouabita.

See all issues at: 2.0.0

View originalPermalink
How v2.0.0-alpha.0 went

v1.23.8

Latest
Changed 5
  • Update Kotlin to 2.0.21
  • Update AGP to v8.8.1
  • Update Gradle to v8.12.1
  • Make UndocumentedPublicClass configurable to flag companion objects
  • MatchingDeclarationName now supports platform suffixes
Fixed 5
  • UseDataClass rule no longer reports on expect classes
  • Fix InjectDispatcher false positives
  • UnnecessaryParentheses rule now allows float/double without integer part
  • Fix ThrowingExceptionsWithoutMessageOrCause false positive
  • Fix redundant empty tags in baseline XML

From detekt

1.23.8 - 2025-02-20

This is a point release for Detekt 1.23.0, built against Kotlin 2.0.21, with fixes for several bugs that got reported by the community.

Notable Changes
  • fix(deps): Update kotlin to 2.0.21 - #7580
  • fix(deps): Update AGP to v8.8.1 - #7879
  • fix(deps): update Gradle to v8.12.1 - #7780
Changelog
  • UseDataClass: do not report on expect classes - #7857
  • Fix InjectDispatcher false positives - #7797
  • [UnnecessaryParentheses] Allow float/double without integer part - #7751
  • Fix ThrowingExceptionsWithoutMessageOrCause false positive - #7715
  • Issue #7634: Make UndocumentedPublicClass configurable to flag `com… - #7635
  • Fix redundant empty tags in baseline XML - #7625
  • MatchingDeclarationName now supports platofrm suffixes - #6426
Contributors

We would like to thank the following contributors that made this release possible: @BraisGabin, @JordanLongstaff, @Nava2, @atulgpt, @eygraber, @lexa-diky, @t-kameyama

View originalPermalink
How v1.23.8 went

v1.23.7

Added 4
  • Add basic support for isolated projects to 1.x
  • Add enum entry check in UndocumentedPublicProperty
  • Publish detekt-compiler-plugin-all to Maven and GH Releases
  • Support rangeUntil operator for UnusedImport rule
Changed 4
  • Update Kotlin monorepo to v2.0.10
  • Update Kotlin monorepo to v1.9.24
  • Update dependency com.android.tools.build:gradle to v8.5.2
  • Update dependency gradle to v8.10
Fixed 9
  • ExplicitCollectionElementAccessMethod: fix false positive when Map put has 3 arguments
  • BracesOnIfStatements: fix false-positive when chained
  • SwallowedException: fix false positive when exception is used as a receiver
  • NamedArguments: fix false positive on spread varargs
  • MultilineLambdaItParameter: fix false negative with single statement on multiple lines
  • Fix corner-case in SerialVersionUIDInSerializableClass rule

From detekt

1.23.7 - 2024-09-08

This is a point release for Detekt 1.23.0, built against Kotlin 2.0.10, with fixes for several bugs that got reported by the community.

Notable Changes
  • fix(deps): update kotlin monorepo to v2.0.10 - #7517
  • Update to Kotlin 2.0.0 #6640
  • fix(deps): update kotlin monorepo to v1.9.24 - #7264
  • fix(deps): update dependency com.android.tools.build:gradle to v8.5.2 - #7525
  • chore(deps): update dependency gradle to v8.10 - #7546
Changelog
  • Add basic support for isolated projects to 1.x - #7526
  • ExplicitCollectionElementAccessMethod: fix false positive when Map put has 3 arguments - #7563
  • BracesOnIfStatements: fix false-positive when chained - #7444
  • Add enum entry check in UndocumentedPublicProperty - #7426
  • Use the anchor which is already present before - #7423
  • Fix small corner-case in "SerialVersionUIDInSerializableClass" rule, … - #7346
  • SwallowedException: fix false positive when exception is used as a receiver - #7288
  • NamedArguments: fix false positive on spread varargs - #7283
  • MultilineLambdaItParameter: fix false negative with single statement on multiple lines - #7221
  • Check for root of receiver in selector expression - #7220
  • Check for public companion object for UndocumentedPublicClass - #7219
  • fix: TopLevelPropertyNaming also detecting extension property name - #7212
  • Publish detekt-compiler-plugin-all to Maven and GH Releases - #7179
  • versioned default detekt config file link - #7161
  • Support rangeUntil operator for UnusedImport rule - #7104
  • Fix false positive on it usages when type parameter is specified - #6850
Housekeeping/Docs
  • [bugfix] AnnotationOnSeparateLine in snippets - #6526
  • Add docs about using the Compiler Plugin with the Kotlin CLI compiler - #7184
View originalPermalink
How v1.23.7 went

v1.23.6

Changed 1
  • Update Kotlin monorepo to v1.9.23
Fixed 4
  • UselessPostfixExpression - Fix false positive postfix
  • Don't allow invalid Source Locations
  • UnusedPrivateClass: don't report if private classes are used for type conversion
  • RedundantSuspendModifier: do not report when the function has 'actual' modifier

From detekt

1.23.6 - 2024-03-23

This is a point release for Detekt 1.23.0, where we added support for Kotlin 1.9.23 and fixed several bugs that got reported by the community.

Changelog
  • UselessPostfixExpression - Fix #7037 false positive postfix - #7084
  • Don't allow invalid Source Locations - #7030
  • UnusedPrivateClass: don't report if private classes are used for type conversion - #6995
  • RedundantSuspendModifier: do not report when the function has 'actual' modifier - #6951
  • Update dependency gradle to v8.7 - #7080
  • Update kotlin monorepo to v1.9.23 - #7027
  • Update dependency gradle to v8.6 - #6939
  • Update dependency com.android.tools.build:gradle to v8.3.1 - #7070
Contributors

We would like to thank the following contributors that made this release possible: @BraisGabin, @psuzn, @t-kameyama.

View originalPermalink
How v1.23.6 went

v1.23.5

Added 1
  • Add ignoreAnnotatedFunctions option to TooManyFunctions rule
Changed 2
  • Update Kotlin monorepo to v1.9.22
  • Update Gradle to v8.5
Fixed 4
  • Report rule's default severity in sarif output
  • Fix label existence check in previous statements
  • Also check USELESS_ELVIS in UnreachableCode rule
  • Fix by adding last method call to the set

From detekt

This is a point release for Detekt 1.23.0, where we added support for Kotlin 1.9.22 and fixed several bugs that got reported by the community.

Notable Changes
  • Test Gradle plugin with AGP 8.2.0 - #6672
  • chore(deps): update dependency gradle to v8.5 - #6663
  • fix(deps): update kotlin monorepo to v1.9.22 - #6746
Changelog
  • Report rule's default severity in sarif backport - #6916
  • Add ignoreAnnotatedFunctions to TooManyFunctions - #6875
  • Fix by checking the existence of label in previous statements - #6671
  • Also check USELESS_ELVIS in UnreachableCode - #6624
  • Fix by adding last method call to the set - #6567
Housekeeping & Refactorings
  • Opt in to ExperimentalCompilerApi in all compilations in compiler-plugin - #6534
Contributors

We would like to thank the following contributors that made this release possible: @3flex, @TWiStErRob, @atulgpt, @matejdro

View originalPermalink
How v1.23.5 went
View all

Discussion

If you publish detekt, you can claim this product by proving you administer its repository.