github-actions
released this
27 Sep 22:39
·
45 commits
to refs/heads/main
since this release
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
andOrganizeImports.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 toScalafix.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
- allow to use RC versions in arguments (#2084) @bjaglin
- expose Scala 3 modifiers (#2055) @bjaglin
- Fix flaky integration tests (#2057) @bjaglin
- test all published artifacts (#2050) @bjaglin
- delete junk (#2051) @bjaglin
- core: reduce amount of scalac dependencies (#2048) @bjaglin
- remove unused scala-java8-compat (#2046) @bjaglin
- use cli_3.x.y to inspect Scala 3 sources (#2044) @bjaglin
- cli_3.x.y: support external 2.13 rules along rules_3.x.y & publish (#2034) @bjaglin
- delete unused internal classes (#2039) @bjaglin
- support running rules from source on WIndows (#2035) @bjaglin
- Scala3: test against both LTS & Next, build with LTS (#1926) @bjaglin
- refactor: Remove Unsafe at it's not accessible on all JDKs (#2022) @tgodzik
- remove unused attributes (#2012) @bjaglin
- remove references to sbt-only, deprecated key (#1993) @bjaglin
Docs
- RemoveUnused: document 2.13.15 patvars behavior (#2081) @bjaglin
- Add dedis/scapegoat-scalafix (#2080) @sideeffffect
- docs: drop sbt 1.3.x support (#1980) @bjaglin
- Clarify class name vs rule name in ServiceLoader section (#2058) @mjhoy
- docs: explain how users can customize linting behavior of rules (#2062) @bjaglin
- docs: unmanagedSources can be tweaked with Scala 3 (#2060) @bjaglin
- docs: remove stale instructions to verify setup (#2056) @bjaglin
- Scala 3 docs tweaks (#2053) @bjaglin
- add note about why 3.3.x is supported (#2045) @bjaglin
- document tested support for Scala3 LTS & Scala3 Next (#2043) @bjaglin
- docs: show default configuration for RedundantSyntax (#2032) @bjaglin
- docs: use slash syntax for sbt (#2031) @bjaglin
- preserve sonatype-stats dir when publishing docs (#2029) @bjaglin
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