This document is intended for CleanThat developers and users (e.g. through Spotless).
We adhere to the keepachangelog format
LocalVariableTypeInference
handles better Unresolved typesLineEnding
management is dropped fromILintFixer
andILintFixerWithPath
ModifierOrder
is promoted inSafeAndConsensual
UnnecessaryModifier
does not strip anymore thestatic
keyword ofMethodDeclaration
- Add empty constructor in
CompositeWalkableMutator
CompositeMutator.getIds()
do not return underlying identifiers anymore
- Invalid reports of any IMutators as not being idempotent
CreateTempFilesUsingNioCases
now handle a null directoryLocalVariableTypeInference
does not replace assignments with different types (e.g.ArrayList
assigned to aList
variable)- Introduces
IJavaparserMutator
, paving the way for other mutators (from Eclipse Cleanup, OpenRewrite, etc)
AllIncludingDraftCompositeMutators
was misbehaving givenMutatorsScanner
CreateTempFilesUsingNioCases
now handle a null directory
- Additional mutator:
EmptyControlStatement
turns{}
into `` - Additional mutator:
UnnecessaryModifier
turnspublic static final
into `` in interfaces - Implemented generic
trimTrailingWhitespace
,endWithNewline
andindex
from Spotless - Composite Mutators can now be referenced by one of their identifier
OptionalNotEmpty
is promoted inSafeAndConsensual
UnnecessaryModifier
is promoted inSafeAndConsensual
UnnecessaryFullyQualifiedName
is promoted inSafeAndConsensual
MarkdownFormatterFactory
includes pattern is now defaulted to*.MD
and*.md
JsonFormatterFactory
includes pattern is now defaulted to*.json
- BREAKING CHANGE
isProductionReady
has been removed, and replaced by a fully-functionalincludeDraft
- BREAKING CHANGE A draft-mutator explicitly listed is applied even if
includeDraft
is false
- Fixes ImportOrderStep when the ordersFile parameters is used.
- Additional mutator:
LocalVariableTypeInference
turnsint i = 10;
intovar i = 10;
- Additional composite mutators:
OptionalNotEmpty
,PMDMutators
,CheckStyleMutators
andSonarMutators
- CleanThat Robot will open a single Review-Request per protected-branch (instead of opening one for each dirty event, with a random). The naming convention is
cleanthat/headfor-XXX-yyyy-MM-dd
whereXXX
is the protected branch name andyyyy-MM-dd
is current day. - Handle any source JDK version (with the help of JavaVersion)
- Mutators can be included by their fully-qualified class name
- Fix issue related to dynamic IMutators detection
- Spotless oriented release
- Added Spotless as an Engine
- Additional mutator for PMD.ComparisonWithNaN
- Additional mutator for JDK8 Streams: StreamAnyMatch
- The concept of language has been replaced by engine. Instead of implementing language-specific formatters, CleanThat now targets wiring linter-engines (like Spotless).
- POTENTIALLY BREAKING Most CleanThat linters has been dropped
- Initial release!