detekt's Path to 2.0 🚀 #6035
Replies: 13 comments 27 replies
-
Rename Package & Maven CoordinatesStatus 🟢 (up for grab but potentially something we want to do this later in the 2.x development). As we own Importing detekt will make for a nicer experience:
Plus this will allow us to align the compiler-plugin versioning schema to one similar to the KSP-one |
Beta Was this translation helpful? Give feedback.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
-
Add possibility to instantiate the same rule twice with different configStatus: 🟡 We're accepting proposals on how to implement this feature. Users are ending up in scenarions where they would like to instantiate a rule more than once, with different config. We don't have a simple way on how to do it right now.
We do have a couple of ideas in mind, but we'd like to discuss further before we deep dive into implementation mode. Proposals are more than welcome. |
Beta Was this translation helpful? Give feedback.
This comment has been hidden.
This comment has been hidden.
-
Revisit concept of Severity (Warning vs Error)Status 🟢 Assigned/In Progress Currently Detekt has a concept of Severity which is confusing: https://github.com/detekt/detekt/blob/main/detekt-api/src/main/kotlin/io/gitlab/arturbosch/detekt/api/Severity.kt in the sense that you can can specify it but the engine is ignoring it. This was briefly discussed here: #2680 (comment) As of today there is no concept of Warning, and we should probably introduce it. Further discussion will take place in: |
Beta Was this translation helpful? Give feedback.
-
Promote Type Resolution to stable and have it as defaultStatus: 🟢 Assigned For 2.0, we'd love to have Type Resolution as stable and enabled by default. We'll have to find a way to let user toggle this mechanism, as there are users that don't want to run Detekt with Type Resolution (say because they want faster results or are running in a pre-commit hook). On top of this, the whole Previous discussions on this:
There are currently two alternatives to this:
|
Beta Was this translation helpful? Give feedback.
-
Move rules with mixed behavior to run only on Type ResolutionStatus 🟢 In progress |
Beta Was this translation helpful? Give feedback.
-
Polish the Gradle Plugin API to be Gradle IdiomaticStatus: 🟢 See: |
Beta Was this translation helpful? Give feedback.
-
Create the
|
Beta Was this translation helpful? Give feedback.
-
Merging Reports & BaselinesStatus 🟡 (Needs further discussion)
Previous conversations here: |
Beta Was this translation helpful? Give feedback.
-
Update CLI path separators to be system dependentStatus: 🟢
|
Beta Was this translation helpful? Give feedback.
-
Split detekt in multiple tasks/functions that the clients should composeStatus 🟡 (Needs further discussion - it is happening here: #6085) |
Beta Was this translation helpful? Give feedback.
-
Hi all,
We'd love to share the plan for Detekt 2.0, in an effort to be as transparent as possible and get the community onboard with this process. We are really grateful for the role that the Kotlin community has had in the development of detekt, and we believe this is key to reach 2.0.
(Those plans were also presented last week at KotlinConf during the talk: To detekt 2.0 and beyond)
Timeline
1.23.x - released
We'll be releasing
1.23.0
in the coming future, as we have 200+ commits to release to the public: v1.22.0...mainSpecifically, you can already try the release candidates for 1.23.x as we're getting close to release stable.
1.23.0
is going to be the last stable release we release from main. Just after the stable release, we'll start to push a series of breaking changes onmain
.We foresee potential future releases in the
1.x
series, happening from a separate branch.Specifically, we believe we will be able to ship
1.x
versions with:2.x
As mentioned, development of
2.x
will happen onmain
. We believe detekt 2.0 stable will be ready by the time Kotlin 2.0 stable is released. We'll most likely still use the older Kotlin compiler to run analysis for Kotlin 2.0 as the Kotlin team is not planning to introduce new language features to Kotlin 2.03.x
detekt 3.0 (tentative version number), will be released alongside Kotlin 2.1 and will be using K2. Planning for detekt 3.0 is still pending, and we'll be sharing more in the future.
Modus Operandi
This discussion will have separate threads, one for each item we want to ship in 2.0.
Each item contains a small description of the change we want to do + references to existing issues/discussions. Please refrain from having detailed conversation in this thread, and reuse/open specific issues.
Each item has a status field which describes if it's up for grab or not.
Moreover, each item has an owner field, which should the person that is interested in contributing to this item.
Feel free to comment under the item you want to contribute to.
Make sure you get the item assigned to you by one of the detekt maintainer before starting working on it, as you risk to start working on something that might never land on
main
.Thank you all for joining us to our journey to detetk 2.0.
If you have doubts or questions, please open separate discussions, as we try to keep this one mostly focused on organization.
On behalf of the detekt maintainers,
— Nicola
Beta Was this translation helpful? Give feedback.
All reactions