Skip to content

v0.12.0

Compare
Choose a tag to compare
@github-actions github-actions released this 02 Mar 15:54
· 327 commits to refs/heads/main since this release
c1d8a34

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 and MatchType 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 wrapping Term.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
    • tree.pos == Position.None is no longer a reliable way to check whether a given tree 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
  • 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)

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

Docs

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