v0.12.0
github-actions
released this
02 Mar 15:54
·
327 commits
to refs/heads/main
since this release
Significant changes since v0.11.1
For users
- Better Scala 3 support
OrganizeImports.removeUnused
&RemoveUnused
(with a known limitation for unused function parameters) are now supported with Scala 3.4+- New flag
OrganizeImports.targetDialect
to control wildcard/rename syntax & curly braces stripping behavior (see documentation) LambdaType
andMatchType
are now fully supported
- JDK21 is now fully supported
- Script files (.sc) are now supported
For rule authors
- Scalameta was bumped from 4.8.10 to 4.9.1, bringing many bugfixes and a few features, as well as some behavioral changes breaking backward compatibility
Term.Interpolate
now always capture curly braces through a wrappingTerm.Block
when parsed with scalafix 0.12.x (scalameta/scalameta#3594)- This may trigger false negatives for rules tested against 0.11.1 or earlier, which do not expect that
Term.Block
- Such rules must be updated to work with Scalafix 0.12.x, ideally with logic handling both presence and absence of
Term.Block
to preserve compatibility with earlier Scalafix versions
- This may trigger false negatives for rules tested against 0.11.1 or earlier, which do not expect that
tree.pos == Position.None
is no longer a reliable way to check whether a giventree
comes from the input document, since trees built via quasiquotes with scalafix 0.12.x may now have positions (scalameta/scalameta#3450)- To avoid false negatives on Scalafix 0.12.x, check equality on
tree.origin
, ideally combining this check with the previous predicate to preserve compatibility with earlier Scalafix versions
- To avoid false negatives on Scalafix 0.12.x, check equality on
- scalafix-testkit is now published for Scala 2.12.19 & Scala 2.13.13
- Usage of API methods decorated via implicits trigger new fatal warnings for rules built with
-Xsource:3
(#1949)
- Usage of API methods decorated via implicits trigger new fatal warnings for rules built with
Pull Requests
Rules
- Support OrganizeImports.removeUnused in Scala 3.4+ (#1800) @tanishiking
- OrganizeImports: don't leak state from one fix execution to another (#1921) @bjaglin
- Support RemoveUnused in Scala 3.4+ (#1728) @bjaglin
- OrganizeImports.targetDialect: wildcard/rename syntax & curly braces stripping (#1896) @bjaglin
- RedundantSyntax: distinguish single and triple quotes (#1851) @bjaglin
Framework
- support -Xsource:3-cross introduced in Scala 2.13.13 (#1943) @bjaglin
- Support
LambdaType
andMatchType
(#1801) @mrdziuban - run RemoveUnused (#1922) @bjaglin
- avoid flood of unused compiler warnings (#1920) @bjaglin
- run windows CI with latest LTS JDK21 (#1919) @bjaglin
- run scalafix on Scala 3 sources (#1918) @bjaglin
- improvement: Support script files (#1901) @tgodzik
- Add isAtomic to ScalafixPatch interface (#1892) @LaurenceWarne
- rules capturing leading tokens can be suppressed with scalafix:ok (#1890) @bjaglin
- better support of backquoted identifiers in SymbolMatcher (#1888) @bjaglin
- add support for -Xsource:3 testkit input & output (#1666) @bjaglin
Docs
- remove obsolete docs about cross-publishing rules (#1939) @bjaglin
- advertize hamnis/dataclass-scalafix (#1938) @bjaglin
- document new ability to customize ScalafixInterface at project-level (#1907) @bjaglin
- Suggest using the
OrganizeImports
rule on theExplicitResultTypes
page (#1911) @danicheg - Add description to the OrganizeImports rule (#1897) @marcelocenerine
Updates
- Update scalameta to 4.9.1 (#1950) @scala-center-steward
- Update sbt-scoverage to 2.0.11 (#1948) @scala-center-steward
- Update scalafmt-core to 3.8.0 (#1947) @scala-center-steward
- Update sbt to 1.9.9 (#1946) @scala-center-steward
- Scalameta 4.9.1-RC1 (#1945) @bjaglin
- Bump all Scala versions (2.12.19, 2.13.13, 3.4.0) (#1932) @bjaglin
- Bump VirtusLab/scala-cli-setup from 1.1.2 to 1.1.3 (#1934) @dependabot
- scalameta 4.9.x (#1927) @bjaglin
- Update sbt-scoverage to 2.0.10 (#1931) @scala-center-steward
- Update scalatest to 3.2.18 (#1930) @scala-center-steward
- Update coursier to 2.1.9 (#1928) @scala-center-steward
- Update sbt-version-policy to 3.2.0 (#1902) @scala-center-steward
- Bump release-drafter/release-drafter from 5 to 6 (#1923) @dependabot
- Bump VirtusLab/scala-cli-setup from 1.1.1 to 1.1.2 (#1917) @dependabot
- Update sbt-projectmatrix to 0.9.2 (#1913) @scala-center-steward
- Update org.eclipse.jgit to 5.13.3.202401111512-r (#1914) @scala-center-steward
- Update mdoc, sbt-mdoc to 2.5.2 (#1915) @scala-center-steward
- Bump VirtusLab/scala-cli-setup from 1.1.0 to 1.1.1 (#1916) @dependabot
- Update scalameta to 4.8.15 (#1909) @scala-center-steward
- Update scalafmt-core to 3.7.17 (#1906) @scala-center-steward
- Update mdoc, sbt-mdoc to 2.5.1 (#1905) @scala-center-steward
- Update sbt to 1.9.8 (#1904) @scala-center-steward
- Update coursier to 2.1.8 (#1903) @scala-center-steward
- Update scalameta to 4.8.14 (#1899) @scala-center-steward
- Bump VirtusLab/scala-cli-setup from 1.0.6 to 1.1.0 (#1898) @dependabot
- Bump VirtusLab/scala-cli-setup from 1.0.5 to 1.0.6 (#1893) @dependabot
- full support for JDK21 via scalameta 4.8.13 (#1810) @bjaglin
- Update scalafmt-core to 3.7.15 (#1886) @scala-center-steward
- Update sbt to 1.9.7 (#1885) @scala-center-steward
- Update commons-text to 1.11.0 (#1884) @scala-center-steward
- Bump VirtusLab/scala-cli-setup from 1.0.4 to 1.0.5 (#1883) @dependabot
- Update metaconfig-docs, ... to 0.12.0 (#1877) @scala-center-steward
- Update scalameta to 4.8.12 (#1879) @scala-center-steward
- Update scalameta, semanticdb-scalac-core, ... to 4.8.11 (#1872) @scala-center-steward
- Update interface to 1.0.19 (#1875) @scala-center-steward
- Update mdoc, sbt-mdoc to 2.3.8 (#1878) @scala-center-steward
- Update sbt to 1.9.6 (#1876) @scala-center-steward
- Update sbt-scoverage to 2.0.9 (#1871) @scala-center-steward
- Update scalatest to 3.2.17 (#1870) @scala-center-steward
- Update coursier to 2.1.7 (#1868) @scala-center-steward
- Update scalafmt-core to 3.7.14 (#1869) @scala-center-steward
- Bump actions/checkout from 3 to 4 (#1867) @dependabot
- Post 0.11.1 release (#1866) @bjaglin