All Versions
27
Latest Version
Avg Release Cycle
20 days
Latest Release
163 days ago

Changelog History
Page 1

  • v1.9.0

    May 12, 2020
    ๐Ÿ”„ Changelog
    • ๐Ÿ“š Extra documentation added to pitfalls section - #2675
    • ๐Ÿ”ง Use configuration avoidance for withType usages - #2672
    • GuardClause also matches if-with-body that contains a return - #2671
    • Simplify patterns - #2668
    • โœ… Include Kotlin multiplatform test folders to default exclude config - #2667
    • โœ‚ Remove duplicate MandatoryBracesLoops rule tests - #2665
    • โœ‚ Remove print statement in MandatoryBracesLoops - #2664
    • โœ‚ Remove $ as a valid char in class and method names - #2662
    • ๐Ÿ— Build detekt executable before publishing it - detekt#2654 - #2659
    • โž• Add style rule for mandatory braces in for loop bodies - #2658
    • ๐Ÿš€ Asset in release 1.8.0 is not up-to-date - #2654
    • Rule: Mandatory braces for single-line for loop bodies - #2652
    • ๐Ÿ”ง Use task configuration avoidance for detekt plugin - #2651
    • โž• Add detekt GitHub action to readme - #2650
    • Don't report unused private properties in expect class - #2646
    • UnusedPrivateMember: don't report parameters in expect/actual functions - #2643
    • UnusedPrivateMembers on expect class - #2636
    • ๐Ÿ”ง Include Kotlin multiplatform test folders to default exclude configuration - #2608

    ๐Ÿ‘€ See all issues at: 1.9.0

  • v1.8.0

    April 20, 2020
    Notable Changes
    • ๐Ÿ‘ Most rule properties now support yaml lists next to string's with comma-separated-entries.
    • ๐Ÿš€ Standalone detekt executable on GitHub release pages
    • ๐Ÿ†• New rules: UnnecessaryNotNullOperator and UnnecessarySafeCall
    Migration
    • Formatting rules get reported now on the correct lines. The baseline file may need to be adjusted/regenerated.
    • Issues concerning classes and objects are not reported at the identifier. The baseline file may need to be adjusted/regenerated.
    ๐Ÿ”„ Changelog
    • ๐Ÿ”ง Use yaml lists in our own configuration and tests - #2623
    • โš™ Run code coverage as an own action - #2622
    • ๐Ÿ— Modularize build script by introducing buildSrc module - #2621
    • *>excludes allow yaml list - #2620
    • Kotlin to 1.3.72 - #2619
    • ๐Ÿ”€ Set failfast to false for pre-merge - #2618
    • ๐Ÿ“š Update documentation - #2617
    • ThrowingExceptionsWithoutMessageOrCause>exceptions allow yaml list - #2616
    • SwallowedException>ignoredExceptionTypes allow yaml list - #2615
    • ๐Ÿ“ฆ ForbiddenPublicDataClass>ignorePackages allow yaml list - #2614
    • LabeledExpression>ignoredLabels allow yaml list - #2613
    • ForbiddenMethodCall>methods allow yaml list - #2612
    • Generate the cli as a stand alone executable - #2607
    • Report class and object violations at the identifier - #2606
    • ๐Ÿ›  Fix formatting line reporting - #2604
    • ๐Ÿ“š Correct documentation/recommendation of EmptyCatchBlock rule - #2603
    • Incorrect (or unclear) EmptyCatchBlock rule - #2602
    • ๐Ÿ‘• Use more lintAndCompile - #2601
    • MagicNumber>ignoredNumbers allow yaml list - #2600
    • โœ‚ Remove unnecesary symbolic link - #2598
    • WildcardImport>excludeImports allow yaml list - #2596
    • ForbiddenClassName>forbiddenName allow yaml list - #2595
    • ๐Ÿ›  Fix false positives in UndocumentedPublicProperty - #2591
    • ๐Ÿ›  Fix false positive in UndocumentedPublicClass - #2588
    • *>Annotated allow yaml lists - #2587
    • ForbiddenComment>values allow yaml list - #2585
    • ExceptionRaisedInUnexpectedLocation>methodNames allow yaml list - #2584
    • ComplexMethod>nestingFunctions allow yaml list - #2583
    • UndocumentedPublicClass false positive for inner types - #2580
    • ๐Ÿ†• New Rule: UnnecessaryNotNullOperator - #2578
    • ๐Ÿ†• New Rule: UnnecessarySafeCall - #2574
    • ๐Ÿ†• New Rule: UnnecessarySafeCall - #2572
    • โž• Add ignoreAnnotated option to LongParameterList - #2570
    • ๐Ÿ”ง Rule configuration request: Ignore based on annotations - #2563
    • โœ… codecov test coverage report doesn't work correctly - #2558
    • ๐Ÿ‘Œ Support yaml lists in the configuration values - #2498
    • Baseline ignoring MaxLineLength: on 1.0.1 - #1906
    • Formatting rules are reported at wrong line (e.g. MaximumLineLength) - #1843

    ๐Ÿ‘€ See all issues at: 1.8.0

  • v1.7.4

    April 03, 2020
    Notable Changes

    ๐Ÿ”Œ The last Gradle plugin version was referencing 1.7.2 instead of 1.7.3.
    ๐Ÿ›  This was fixed and specifying the toolVersion is not necessary anymore.

    detekt { toolversion = "1.7.3"}
    
    ๐Ÿ”„ Changelog
    • โช Revert warning: jcenter is missing (#2550) - #2576
    • โž• Add additional task input for plugin version task - #2575
    • jcenter() requirement - #2571

    ๐Ÿ‘€ See all issues at: 1.7.4

  • v1.7.3

    April 01, 2020
    ๐Ÿ”„ Changelog
    • OptionalWhenBraces: fix false positive with lambda which has no arrow - #2568
    • OptionalWhenBraces: false positive with lambda which has no arrow - #2567
    • 0๏ธโƒฃ valueOrDefaultCommaSeparated throws a ClassCastException - #2566
    • 1.6.0 -> 1.7.2: java.lang.String cannot be cast to java.util.List - #2561
    • Display actual and threshold values for several metric rules - #2559
    • Return the actual values for complexity rules - #2557
    • ๐Ÿ‘‰ UseCheckOrError/UseRequire: fix false positive with a non-String argument - #2556
    • ๐Ÿ‘ป InstanceOfCheckForException: do not report when catch blocks do not check for the subtype of an exception - #2555
    • Include statistics for our custom detekt tasks - #2554
    • โœ‚ Remove unnecesary parentheses - #2553
    • ๐Ÿ›  Fix console output indentation - #2552
    • Console output is not indented correctly - #2551
    • ๐Ÿ”Œ Check jcenter repository present in Gradle plugin - #2550
    • โž• Adding Detekt to a project from scratch, detektGenerateConfig is broken - #2549
    • Validate Wrapper only on push to master - #2548
    • Cleanup Gradle Folders - #2547
    • ๐Ÿ‘ท Require CI to pass to run codecov - #2546
    • Export bintray key to publish snapshots - #2544
    • ๐Ÿ‘€ Activate UseErrorOrCheck rule - #2542
    • โ™ป๏ธ Refactor build file to sections - #2541
    • False positive: UseCheckOrError - #2514
    • InstanceOfCheckForException should be ignored for catch blocks that is more than an if expression - #1927

    ๐Ÿ‘€ See all issues at: 1.7.3

  • v1.7.2

    March 28, 2020
    ๐Ÿ”„ Changelog
    • โœ‚ Remove ignore:AppVeyor from codecov config - #2540
    • ๐Ÿ‘‰ Use kotlin-stdlib-jdk8 to reduce dependency conflicts - #2527 - #2538
    • โšก๏ธ Update Gradle plugin-publish to 0.11.0 - #2537
    • โœ‚ Delete created temp dir automatically on JVM exit - #2536
    • โœ‚ Delete created temp file automatically on JVM exit - #2535
    • โ™ป๏ธ Refactor MemberNameEqualsClassNameSpec tests - #2534
    • ๐Ÿ›  Fix UnnecessaryAbstractClass false-positive - #2533
    • โšก๏ธ Update GroovyDSL doc to mention input - #2532
    • โšก๏ธ Update KotlinDSL doc to mention input - #2531
    • ๐Ÿ›  Fix report for documented data classes property - #2530
    • UndocumentedPublicProperty reported for documented data classes property - #2529
    • ๐Ÿ“š Detekt using gradle documentation out of data - #2528
    • 1.7.1 does not depend on Kotlin 1.3.71 - #2527
    • UnnecessaryAbstractClass false positive for abstractproperties - #2526
    • ๐Ÿ— Do not fail the build on config property warnings/deprecations - #2523 - #2525
    • regression 1.7.1, threshhold does not exist - #2523
    • Setup GitHub Actions - #2512

    ๐Ÿ‘€ See all issues at: 1.7.2

  • v1.7.1

    March 26, 2020
    ๐Ÿ”„ Changelog
    • UnnecessaryAbstractClass: fix false positive when abstract class has abstract inherited members - #2513
    • UnusedPrivateMember: report unused overloaded operators - #2510
    • ๐Ÿ›  Fix build compile error resulted from merging two conflicting PRs - #2508
    • โšก๏ธ Update Kotlin to 1.3.71 - #2507
    • โœ‚ Remove duplicated test task setup for gradle plugin - #2506
    • โž• Add LicenceHeaderExtension test to verify resource path loading is supported - #2505
    • Ensure filesystems are created so paths can be gotten - #2504
    • FileSystemNotFoundException in detekt 1.7.0 when using --config-resource - #2503
    • MemberNameEqualsClassName: fix false negative when function has no explicit return type - #2502
    • ๐Ÿ‘‰ Use the system-dependent line separator in NotificationReport - #2497
    • โœ‚ Remove default print stream - #2496
    • Don't use System.out in the ProgressListeners - #2495
    • ๐Ÿ”Œ Make the gradle plugin a sub project again - #2493
    • ๐Ÿšš Move test factory outside the main code - #2491
    • Single runner - #2490
    • ๐Ÿ–จ ProcessingSettings - #2489
    • ๐Ÿ–จ Don't use println :detekt-generator - #2488
    • โœ… Simplify tests with StringPrintStream - #2487
    • ๐Ÿ‘Œ Improve tests - #2486
    • ๐Ÿ–จ Use PrinterStream in AstPrinter - #2485
    • Errors running detekt in the detekt project - #2484
    • Unify yml strings - #2482
    • ๐Ÿ‘‰ Use yml arrays to list the ForbiddenImports - #2474
    • โž• Add date, detekt-version + link to HtmlReport - #2470
    • โ™ป๏ธ Refactor FindingsReport + FileBasedFindingsReport - #2454
    • The Detekt HTML Report should include date, version number, website link (Feature Request) - #2416
    • โž• Added validation of constructors to LongParameterList - #2410
    • โš  UnusedPrivateMember doesn't report the correct warning count - #1981
    • UnusedPrivateMember should consider overloaded operators - #1444
    • False positive on rule UnnecessaryAbstractClass - #727
    • MemberNameEqualsClassName ignores functions which return a single expression - #655

    ๐Ÿ‘€ See all issues at: 1.7.1

  • v1.7.0

    March 22, 2020
    Notable Changes
    • ๐ŸŽ The Gradle plugin should be on par with the CLI performance-wise
    • ๐Ÿ‘ Good to know: detekt CLI always supported argument files (java -jar detekt-cli.jar @argsfile)
    • ๐Ÿ†• New CLI --version flag
    • ๐Ÿ†• New Rule AbsentOrWrongFileLicense and other rule improvements
    ๐Ÿ”„ Changelog
    • โšก๏ธ Update Travis to use the newest xcode11.3 image - #2480
    • ๐Ÿ”€ Synchronize use of root extension point - #2479
    • ๐Ÿ‘ Extend ComplexInterface to support exclusion of private member/functions - #2478
    • โ™ป๏ธ Minor refactors around --create-baseline - #2477
    • Check primary ctor in UndocumentedPublicProperty - #2475
    • Unify yaml strings - #2472
    • โš™ Running detektBaseline generates too general exceptions, disabling rules - #2471
    • UndocumentedPublicProperty doesn't check primary constructor - #2468
    • โœ‚ Remove default implementations of toString() - #2467
    • โœ‚ Remove tags from core documentation sites - #2466
    • Validate boolean config values - Closes #2045 - #2465
    • โž• Add test for BaselineHandler - #2462
    • โ™ป๏ธ Refactor BaselineFormatSpec.kt - #2461
    • โž• Add tests for BaselineFacade - #2460
    • ๐Ÿ›  Fix toString() output for Whitelist class - #2459
    • โœ‚ Remove unused functions in XmlExtensions.kt - #2458
    • โž• Add test cases for invalid yaml config - #2457
    • โž• Add edge test cases for ComplexityReportGenerator - #2456
    • Simplify anonymous Detektion object creation - #2455
    • โšก๏ธ Update trim logic in Debt:toString() - #2453
    • โ™ป๏ธ Refactor FindingsReport + FileBasedFindingsReport - #2451
    • โœ… Rename tests with _Test prefix to _Spec - #2450
    • โ™ป๏ธ Refactor HtmlOutputReport - #2449
    • โœ… Simplify UnnecessaryApplySpec test cases - #2448
    • ๐Ÿ”— Link code samples package for extension guide - #2447
    • ComplexInterface - should it also count private methods? - #2446
    • โšก๏ธ Update AppVeyor branch conf to comply with Travis - #2445
    • โž• Add PsiViewer plugin to Contributing guide - #2444
    • UnnecessaryApply: fix false positive when it's used as an expression - #2442
    • โž• Add detekt-hint to integrations - #2441
    • SwallowedException: fix false negative when using variables - #2436
    • UnnecessaryApply false positive cases - #2435
    • ๐Ÿš€ Prepare 1.7.0-beta2 release - #2434
    • Parallel invocation of DetektFacade fails spuriously - #2433
    • ๐Ÿ—„ Deprecate BaseRule and state that it will be make sealed - #2365 - #2432
    • โž• Add License rule - #2429
    • Skip all guard clauses at function start for ReturnCount - Closes #2342 - #2428
    • Fail if --baseline file not found - #2427
    • โž• Add tests for YamlConfig - #2426
    • Choose a minimum codecov patch coverage ratio - #2425
    • Include ruleset-suppression feature doc - #2424
    • โž• Add Groovy DSL example for jvmTarget to homepage - #2423
    • โž• Add groovy dsl example for jvmTarget - Closes #2408 - #2422
    • ๐Ÿ—„ Deprecate hierarchical config - #2421
    • ๐Ÿ—„ Deprecate implementations of Config - #2420
    • โœ‚ Remove YAML Extension Requirement - #2419
    • โšก๏ธ Update Spek version to 2.0.10 - #2418
    • file does not end with .yml! - #2417
    • Disable autoCorrect property for all rules if global flag is set to false - #2413
    • ๐Ÿš€ Release 1.7.0 beta - #2409
    • Stop using kotlin-reflect - #2405
    • Stop compiling with experimental flag - #2404
    • Only post a code coverage patch status to PRs - #2402
    • ExplicitCollectionElementAccessMethod: Don't report on nullable collection - #2401
    • Discourage new Case files - #2399
    • ๐Ÿ‘ท Use argsfiles for CI - #2397
    • โšก๏ธ Update to Kotlin v1.3.70 - #2396
    • ๐Ÿ›  Fix typo in VersionPrinter test - #2395
    • โž• Add documentation for cli --version flag - #2392
    • ExplicitCollectionElementAccessMethod: Do not report map?.get("foo") - #2391
    • โšก๏ธ Update Gradle to 6.2.1 - #2390
    • Do not report conditional elvis continue statements - Closes#2388 - #2389
    • False positive: UnconditionalJumpStatementInLoop with elvis operator ?: - #2388
    • โ™ป๏ธ Refactor getting the detekt version for readability - #2387
    • Create less objects and sets when creating findings id map - #2385
    • โž• Add --version to cli - #2383
    • โž• Add --version CLI option - #2382
    • โž• Add test cases for cli/runners package - #2381
    • Sort and run correctable rules first - #2341 - #2378
    • Should fail if --baseline file does not found? - #2374
    • ๐Ÿ—„ Deprecate rule set methods which expose implementation details of detekt-core - #2366
    • ๐Ÿ—„ Deprecate api's exposing detekt-core implementation details - #2365
    • ReturnCount excludeGuardClauses not working - #2342
    • Mixing autocorrectable and non correctable rules results in obsolete issue locations for reports - #2341
    • ๐Ÿ‘ Allow Detekt CLI to take an args file. - #2318
    • Homepage doesn't show Jekyll tags correctly - #2309
    • Call detekt reflectively - #2282
    • Copyright header rule for Kotlin files - #1515 - #2077
    • SwallowedException false negative - #2049
    • Invalid boolean config values are evaluated silently to false - #2045
    • Detekt gradle is much slower than the jar - #2035
    • Cases files are super rigorous to work with - #1089

    ๐Ÿ‘€ See all issues at: 1.7.0

  • v1.7.0-beta2

    March 15, 2020
    Notable Changes
    • ๐ŸŽ The Gradle plugin should be on par with the CLI performance-wise
    • ๐Ÿ‘ Good to know: detekt CLI always supported argument files (java -jar detekt-cli.jar @argsfile)
    • ๐Ÿ†• New CLI --version flag
    • ๐Ÿ†• New Rule AbsentOrWrongFileLicense and other rule improvements
    ๐Ÿ”„ Changelog
    • ๐Ÿ—„ Deprecate BaseRule and state that it will be make sealed - #2365 - #2432
    • โž• Add License rule - #2429
    • Skip all guard clauses at function start for ReturnCount - Closes #2342 - #2428
    • Fail if --baseline file not found - #2427
    • โž• Add tests for YamlConfig - #2426
    • Choose a minimum codecov patch coverage ratio - #2425
    • Include ruleset-suppression feature doc - #2424
    • โž• Add Groovy DSL example for jvmTarget to homepage - #2423
    • โž• Add groovy dsl example for jvmTarget - Closes #2408 - #2422
    • ๐Ÿ—„ Deprecate hierarchical config - #2421
    • ๐Ÿ—„ Deprecate implementations of Config - #2420
    • โœ‚ Remove YAML Extension Requirement - #2419
    • โšก๏ธ Update Spek version to 2.0.10 - #2418
    • file does not end with .yml! - #2417
    • Disable autoCorrect property for all rules if global flag is set to false - #2413
    • ๐Ÿš€ Release 1.7.0 beta - #2409
    • Stop using kotlin-reflect - #2405
    • Stop compiling with experimental flag - #2404
    • Only post a code coverage patch status to PRs - #2402
    • ExplicitCollectionElementAccessMethod: Don't report on nullable collection - #2401
    • Discourage new Case files - #2399
    • ๐Ÿ‘ท Use argsfiles for CI - #2397
    • โšก๏ธ Update to Kotlin v1.3.70 - #2396
    • ๐Ÿ›  Fix typo in VersionPrinter test - #2395
    • โž• Add documentation for cli --version flag - #2392
    • ExplicitCollectionElementAccessMethod: Do not report map?.get("foo") - #2391
    • โšก๏ธ Update Gradle to 6.2.1 - #2390
    • Do not report conditional elvis continue statements - Closes#2388 - #2389
    • False positive: UnconditionalJumpStatementInLoop with elvis operator ?: - #2388
    • โ™ป๏ธ Refactor getting the detekt version for readability - #2387
    • Create less objects and sets when creating findings id map - #2385
    • โž• Add --version to cli - #2383
    • โž• Add --version CLI option - #2382
    • โž• Add test cases for cli/runners package - #2381
    • Sort and run correctable rules first - #2341 - #2378
    • Should fail if --baseline file does not found? - #2374
    • ๐Ÿ—„ Deprecate rule set methods which expose implementation details of detekt-core - #2366
    • ๐Ÿ—„ Deprecate api's exposing detekt-core implementation details - #2365
    • ReturnCount excludeGuardClauses not working - #2342
    • Mixing autocorrectable and non correctable rules results in obsolete issue locations for reports - #2341
    • ๐Ÿ‘ Allow Detekt CLI to take an args file. - #2318
    • Call detekt reflectively - #2282
    • Copyright header rule for Kotlin files - #1515 - #2077
    • Detekt gradle is much slower than the jar - #2035
    • Cases files are super rigorous to work with - #1089

    ๐Ÿ‘€ See all issues at: 1.7.0

  • v1.6.0

    February 26, 2020
    Migration

    Rule set authors do not need to exclude their rule set from config validation anymore.
    0๏ธโƒฃ This will be done by default now.

    If you need to include further config property checks, give the new ConfigValidator api a try.

    ๐Ÿ”„ Changelog
    • ๐Ÿ“š Check-in ConfigValidator documentation - #2368
    • โœ‚ Remove obsolete PathFilter class - #2367
    • Reference coroutines doc for homepage - #2363
    • ๐Ÿ“š [Documentation Request] Coroutine Ruleset - #2362
    • Extend AnnotationExcluder to catch fully qualified annotations - #2361
    • UnnecessaryAbstractClass excludeAnnotatedClasses not working - #2360
    • Replace LinkedList with ArrayDeque - #2358
    • ๐Ÿ›  Fix detection of CRLF line endings - #2357
    • Introduce new ConfigValidator extensions - #2285 - #2356
    • ๐Ÿ‘ Include options to better meet requirements for utility files - #2355
    • Don't normalize file content twice - #2354
    • โœ‚ Remove unused code in rules/Case.kt - #2351
    • โž• Add blog post about speeding up a detekt task - #2349
    • โž• Add tests for setting KtLint's config - #2348
    • โž• add details into internal validation - #2347
    • ๐Ÿšš Minor change in the HTML report: Remove extra space when you copy the file path - #2344
    • detekt does not always inject the required EDITOR_CONFIG_USER_DATA_KEY for ktlint - #2339
    • โœ‚ Remove duplicate tests for TooManyFunctions rule - #2338
    • โž• Add EmptyTryBlock rule - #2337
    • ๐Ÿ‘‰ Use requireNotNull for arguments checking - #2336
    • โ™ป๏ธ Refactor and add tests to Ast- and ElementPrinter - #2335
    • โž• Add test case for disabled reports - #2334
    • โ™ป๏ธ Refactor ReportPath:load() - #2333
    • โž• Add test case for FileProcessorLocator - #2332
    • โž• Add test cases for Kt(Tree)Compiler - #2331
    • โž• Add equality test cases for PathFiler - #2330
    • โž• Add local function test case for MethodOverloading rule - #2328
    • โž• Add anonymous object expression test case for MethodOverloading rule - #2327
    • Validate Gradle Wrapper - #2326
    • ๐Ÿ‘‰ Use more consistent metrics in HtmlReport - #2325
    • ๐Ÿ›  Fix ClassCastException in ExplicitCollectionElementAccessMethod - #2323
    • ExplicitCollectionElementAccessMethod crashes - #2322
    • 0๏ธโƒฃ use same behaviour for valueOrNull as for valueOrDefault - #2319
    • FailFastConfig.valueOrNull should return specified value for active and maxIssues - #2316
    • ๐Ÿ›  Bugfix: MagicNumber with ignoreNamedArgument and a negative value - #2315
    • More consistent reports - #2291
    • ๐Ÿ”„ Change MatchingDeclarationName to handle utility files - #1500
    • False-positive MagicNumber issue reported when using negative numbers - #530

    ๐Ÿ‘€ See all issues at: 1.6.0

  • v1.5.1

    February 06, 2020
    • โšก๏ธ Update intro page to deprecate input property - #2311
    • Update codecov run settings to after_n_builds=4 - #2305
    • โšก๏ธ Update GroovyDSL doc to deprecate input property - #2304
    • โšก๏ธ Update KotlinDSL doc to deprecate input property - #2303
    • ๐Ÿ›  Fix ExplicitCollectionElementAccessMethod crash - #2302
    • ExplicitCollectionElementAccessMethod crashes - #2301

    ๐Ÿ‘€ See all issues at: 1.5.1