We are happy to announce the release of Scalafix 0.9.28.Huge thanks to bjaglin and taisukeoe
for their great contributions (release notes: 1, 2).
This release brings many improvements, in particular it introduces support of Scala 3 for both users and rule authors.
Highlights of this last release:
-
Support Scala 3: it’s still experimental and some built-in rules may not work as expected. We started testing some community rules on Scala 3, one of them is the popular organize-imports rule. Most tests are passing except the ones relying on the
Wunused
scalacOption which is not yet supported by Scala 3 compiler. Some other rules will work out-of-the box with Scalafix 0.9.28, even if the source files use features or syntax introduced in Scala 3. We invite all rule authors to test their rules against Scala 3 and to adapt, if needed, the required scalacOptions (example of the on-going PR on scalafix-organize-imports) -
Update Tthe Scalafix.g8 template: to make it simple to test rules against Scala 3 source files. To test it you can run
sbt new scalacenter/scalafix.g8
- Drop SemanticRuleSuite and SyntacticRuleSuite: those two classes were already deprecated since 0.9.18 and we have created a migration rule to make the migration automatic for most cases. This will unlock the upgrade of scalatest for next versions.
-
Caching is now enabled by default on sbt-scalafix: successive invocations of the
scalafix
task with the same arguments & configuration will be incremental. This was already the case when scalafixOnCompile was enabled, but we believe this can improve user experience also for users starting scalafix sporadically. - Support of Scala 2.13.6 & -Xsource:3
- Support on-compile specific configuration: add triggered config description to docs by taisukeoe · Pull Request #1375 · scalacenter/scalafix · GitHub