-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update dependency com.pinterest:ktlint to v0.51.0-FINAL #11
base: main
Are you sure you want to change the base?
Conversation
Important Review skippedBot user detected. To trigger a single review, invoke the You can disable this status message by setting the Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
|
Coverage summary from CodacySee diff coverage on Codacy
Coverage variation details
Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: Diff coverage details
Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: See your quality gate settings Change summary preferencesCodacy stopped sending the deprecated coverage status on June 5th, 2024. Learn more Footnotes
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #11 +/- ##
=======================================
Coverage 88.88% 88.88%
=======================================
Files 2 2
Lines 9 9
Branches 1 1
=======================================
Hits 8 8
Misses 1 1 ☔ View full report in Codecov by Sentry. |
This PR contains the following updates:
0.49.0
->0.51.0-FINAL
Release Notes
pinterest/ktlint (com.pinterest:ktlint)
v0.50.0
Compare Source
Deprecation of ktlint-enable and ktlint-disable directives
The
ktlint-disable
andktlint-enable
directives are no longer supported. Ktlint rules can now only be suppressed using the@Suppress
or@SuppressWarnings
annotations. A new rule,internal:ktlint-suppression
, is provided to replace the directives with annotations.API consumers do not need to provide this rule, but it does no harm when done.
The
internal:ktlint-suppression
rule can not be disabled via the.editorconfig
nor via@Suppress
or@SuppressWarnings
annotations.Custom Rule Providers need to prepare for Kotlin 1.9
In Kotlin 1.9 the extension points of the embedded kotlin compiler will change. Ktlint only uses the
org.jetbrains.kotlin.com.intellij.treeCopyHandler
extension point. This extension is not yet supported in 1.9, neither is it documented (#KT-58704). Without this extension point it might happen that your custom rules will throw exceptions during runtime. See #1981.In Ktlint, 7 out of 77 rules needed small and sometimes bigger changes to become independent of the extension point
org.jetbrains.kotlin.com.intellij.treeCopyHandler
. The impact on your custom rules may vary dependent on the way the autocorrect has been implemented. When manipulatingASTNode
s there seems to be no impact. When, manipulatingPsiElement
s, some functions consistently result in a runtime exception.Based on the refactoring of the rules as provided by
ktlint-ruleset-standard
in Ktlint0.49.x
the suggested refactoring is as follows:LeafElement.replaceWithText(String)
withLeafElement.rawReplaceWithText(String)
.PsiElement.addAfter(PsiElement, PsiElement)
withAstNode.addChild(AstNode, AstNode)
. Note that this method inserts the new node (first) argument before the second argument node and as of that is not a simple replacement of thePsiElement.addAfter(PsiElement, PsiElement)
.PsiElement.replace(PsiElement)
with a sequence ofAstNode.addChild(AstNode, AstNode)
andAstNode.removeChild(AstNode)
.Be aware that your custom rules might use other functions which also throw exceptions when the extension point
org.jetbrains.kotlin.com.intellij.treeCopyHandler
is no longer supported.In order to help you to analyse and fix the problems with your custom rules, ktlint temporarily supports to disable the extension point
org.jetbrains.kotlin.com.intellij.treeCopyHandler
using a flag. This flag is available in the Ktlint CLI and in theKtlintRuleEngine
. By default, the extension point is enabled like it was in previous versions of ktlint.At least you should analyse the problems by running your test suits by running ktlint and disabling the extension point. Next you can start with fixing and releasing the updated rules. All rules in this version of ktlint have already been refactored and are not dependent on the extension point anymore. In Ktlint CLI the flag is to be activated with parameter
--disable-kotlin-extension-point
. API Consumers that use theKtlintRuleEngine
directly, have to set propertyenableKotlinCompilerExtensionPoint
tofalse
.At this point in time, it is not yet decided what the next steps will be. Ktlint might drop the support of the extension points entirely. Or, if the extension point
org.jetbrains.kotlin.com.intellij.treeCopyHandler
is fully supported at the time that ktlint will be based on kotlin 1.9 it might be kept. In either case, the flag will be dropped in a next version of ktlint.Added
binary-expression-wrapping
. This rule wraps a binary expression in case the max line length is exceeded (#1940)org.jetbrains.kotlin.com.intellij.treeCopyHandler
to analyse impact on custom rules #1981no-empty-file
for all code styles. A kotlin (script) file may not be empty (#1074)statement-wrapping
which ensures function, class, or other blocks statement body doesn't start or end at starting or ending braces of the block (#1938). Note, although this rule is added in this release, it is never executed except in unit tests.blank-line-before-declaration
. This rule requires a blank line before class, function or property declarations (#1939)wrapping
(#1078)ktlint-suppression
to replace thektlint-disable
andktlint-enable
directives with annotations. This rule can not be disabled via the.editorconfig
(#1947)--format
option of KtLint CLI when finding a violation that can be autocorrected (#1071)Removed
0.49.x
is removed. Consult changelog of 0.49.x` released for more information. Summary of removed code:Fixed
property-naming
(#2024)serialVersionUID
inproperty-naming
(#2045)parameter-list-wrapping
(#1324)else
branch when body contains only chained calls or binary expression (#2057)Changed
RuleId
andRuleSetId
classes. Those classes were defined as value classes in0.49.0
and0.49.1
. Although the classes were marked with@JvmInline
it seems that it is not possible to uses those classes from Java base API Consumers like Spotless. The classes have now been replaced with data classes (#2041)info.picocli:picocli
tov4.7.4
org.junit.jupiter:junit-jupiter
tov5.9.3
1.8.22
and Kotlin version to1.8.22
.io.github.detekt.sarif4k:sarif4k
tov0.4.0
org.jetbrains.dokka:dokka-gradle-plugin
tov1.8.20
v0.49.1
Compare Source
Added
Removed
Fixed
--code-style=android_studio
in Ktlint CLI identical to deprecated parameter--android
(#1982)no-consecutive-blank-lines
(#1987).editorconfig
propertyktlint_function_signature_rule_force_multiline_when_parameter_count_greater_or_equal_than
when usingktlint_official
code stylefunction-signature
(#1977)indent
(#1993)indent
(#1976)ktlint_official
code style to keep formatting of other code styles consistent with0.48.x
and beforeindent
(#1971)no-single-line-block-comment
fromcomment-wrapping
rule. Theno-single-line-block-comment
rule is added as experimental rule to thektlint_official
code style, but it can be enabled explicitly for the other code styles as well. (#1980)Changed
Baseline
fromktlint-cli
toktlint-cli-reporter-baseline
so that Baseline functionality is reusable for API Consumers.Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.