Skip to content

v0.13.0

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 27 Sep 22:39
· 45 commits to refs/heads/main since this release
aadace9

Significant changes since v0.12.1

For users

  • An initial version of ExplicitResultTypes for Scala 3 is available.
    • Expect limitations and bugs compared to the Scala 2 version - please report issues when possible, with a compact snippet.
    • Scala 3.3 LTS and Scala 3.5 Next are supported out of the box. Experimental support for Scala 3.4 can be unlocked via ExplicitResultTypes.fetchScala3CompilerArtifactsOnVersionMismatch = true.
    • To try it, the freshly published Scala 3 version of Scalafix must be loaded:
      • If you use scalafix-cli, pick the Scala 3.3.x LTS artifact if your sources are compiled with Scala 3 LTS, or the latest Scala Next otherwise.
      • If you use sbt-scalafix, make sure that scalafixScalaBinaryVersion (deprecated in sbt-scalafix 0.12.1) is not set in your build.
      • A small change is required for other build tools (see below), so reach out to the maintainer of the Scalafix plugin if you keep getting the error "The ExplicitResultTypes rule needs to run with the same Scala binary version as the one used to compile target sources" after upgrading.
  • Scala 3.3.4 exposes unused warnings to SemanticDB, so RemoveUnused and OrganizeImports.removeUnused can now be used on sources compiled with Scala 3.3 LTS (Scala 3.4+ was already supported since Scalafix 0.12.0).

For rule authors

  • Scalafix is now cross-built & tested against the latest Scala 2.x patch releases (2.12.20 & 2.13.15), unlocking upgrades of your builds depending on scalafix-testkit.
  • Scalameta was bumped from 4.9.3 to 4.10.1, bringing many bugfixes and a few features, as well as some tree hierarchy changes in the parser, breaking forward & backward compatibility. See #2079 to tell whether your rule(s) are impacted, and scalameta/scalameta#3913 to understand the changes.
  • Despite the support of the built-in rule ExplicitResultTypes for Scala 3, scalafix-core is not yet published for Scala 3, so you should stick to cross-building for Scala 2.12 & 2.13 only. Check #2041 if you are curious about the current blockers and the next steps on that journey.

For tooling maintainers (scalafix-interfaces clients)

  • To support ExplicitResultTypes on Scala 3 sources, scalafix-interfaces can and should classload the freshly published Scala 3 artifacts. You should therefore remove the fallback to 2.13 when targeting Scala 3 sources. Also, to better support Scala 3 LTS, the full Scala version should be passed to Scalafix.fetchAndClassloadInstance() instead of the binary one. See scalacenter/sbt-scalafix#430 as an example of expected changes.

Pull Requests

Rules

  • feature: ExplicitResultTypes for Scala 3 (#2023) @tgodzik
  • handle unused warnings for sources compiled with upcoming LTS 3.3.4 (#1942) @bjaglin

Framework

Docs

Updates

  • build and test against Scala 3.3.4 final (#2076) @bjaglin
  • Update scalameta to 4.10.1 (#2083) @scala-center-steward
  • scalameta 4.10.0 (#2078) @bjaglin
  • build with and test against Scala 2.12.20 & 2.13.15 (#2052) @bjaglin
  • latest scalameta introduces new items in tree hierarchy (#2079) @bjaglin
  • build and test against Scala 3.5.1 (#2077) @bjaglin
  • Update interface to 1.0.20 (#2068) @scala-center-steward
  • Update sbt-scoverage to 2.2.0 (#2072) @scala-center-steward
  • Update munit to 1.0.2 (#2071) @scala-center-steward
  • Update scala3-compiler, scala3-library to 3.3.4-RC3 (#2070) @scala-center-steward
  • Update coursier to 2.1.12 (#2067) @scala-center-steward
  • build & test against 3.3.4-RC2 (#2066) @bjaglin
  • Update sbt-scoverage to 2.1.1 (#2063) @scala-center-steward
  • Bump VirtusLab/scala-cli-setup from 1.4.3 to 1.5.0 (#2059) @dependabot
  • bump scalameta to pre-4.9.10 SNAPSHOT (was 4.9.3) (#2047) @bjaglin
  • bump sbt-ci-release to fix JDK8 support (#2040) @bjaglin
  • Update sbt-ci-release to 1.6.0 (#2036) @scala-center-steward
  • Update munit to 1.0.1 (#2037) @scala-center-steward
  • test against Scala 3.5.0 (#2033) @bjaglin
  • Bump VirtusLab/scala-cli-setup from 1.4.1 to 1.4.3 (#2030) @dependabot
  • Update metaconfig-typesafe-config to 0.13.0 (#2025) @scala-center-steward
  • Update scalafmt-core to 3.8.3 (#2026) @scala-center-steward
  • Update mdoc, sbt-mdoc to 2.5.4 (#2019) @scala-center-steward
  • Update sbt-scoverage to 2.1.0 (#2020) @scala-center-steward
  • Update sbt to 1.10.1 (#2018) @scala-center-steward
  • Bump VirtusLab/scala-cli-setup from 1.4.0 to 1.4.1 (#2021) @dependabot
  • Update mdoc, sbt-mdoc to 2.5.3 (#2013) @scala-center-steward
  • Update scalatest to 3.2.19 (#2015) @scala-center-steward
  • Bump VirtusLab/scala-cli-setup from 1.3.2 to 1.4.0 (#2016) @dependabot
  • Update sbt to 1.10.0 (#1997) @scala-center-steward
  • Update scalafmt-core to 3.8.2 (#2009) @scala-center-steward
  • Update scala3-compiler, scala3-library to 3.4.2 (#2003) @scala-center-steward
  • Bump VirtusLab/scala-cli-setup from 1.3.0 to 1.3.2 (#2002) @dependabot
  • Update sbt-scoverage to 2.0.12 (#1999) @scala-center-steward
  • Update coursier to 2.1.10 (#1996) @scala-center-steward
  • Update munit to 1.0.0 (#2004) @scala-center-steward
  • Post 0.12.1 release (#1991) @bjaglin