Scalafix v0.5 released

Announcement: http://www.scala-lang.org/blog/2017/09/11/scalafix-v0.5.html
Changelog: https://github.com/scalacenter/scalafix/releases/tag/v0.5.0-RC3

Happy to answer any questions! :smile:

1 Like

Great work, I like it a lot!

What is the stand of similar projects maintainers like abide, scalacheck, wartremover and so on? Was there any initiative to take scalafix as a standard or would we still have few different projects aiming at the same goal?

Second question: if I understand correctly, scalafix right now has only this NoInfer rule. Is it planned to put more rules there or should they be handled by external projects as shown in the post?

3rd question: is it possible right now to have “break build if scalafix rules fail” in sbt?

Could you also post this announcement on users.scala-lang.org? I imagine
folks hanging out there may be interested in this too!

Done! https://users.scala-lang.org/t/scalafix-v0-5-is-out/1687

We (as abide maintainers) suggested consolidation, because we couldn’t find the time to maintain abide, sadly.

Good questions!

What is the stand of similar projects maintainers like abide, scalacheck, wartremover and so on?

Abide: See @adriaanm’s response and What's the status of Abide
Wartremover: Rewrite with Scala Meta once the Semantic API is released · Issue #360 · wartremover/wartremover · GitHub I have reached out to Claire Neveu to discuss collaboration.
ScalaStyle: I met with Matthew Farwell last fall to discuss collaboraion on scalameta and scalafix. I should probably ping him again!

Was there any initiative to take scalafix as a standard or would we still have few different projects aiming at the same goal?

The fixture to use the scalameta semantic api from scalafix-cli is quite different from how wartremover runs as a compiler plugin. I would love to unite efforts to provide an extensive set of linter rules under a single tool. However, I can understand if some people prefer running a linter tool as part of compilation (failing with compile error) instead of through another process/integration.

Is it planned to put more rules there or should they be handled by external projects as shown in the post?

Ideally, I’d like most of the rules to move out of the core module, although they can stay in the scalacenter/scalafix repository. I have no specific plans to add other linter rules, but suggestions are welcome!

is it possible right now to have “break build if scalafix rules fail” in sbt?

Hmm, seems sbt-scalafix is missing task that use the --test flag in scalafix-cli. It should be simple to add support for sbt "scalafixTest MyScalafixRule", see scalafixTest and sbtfixTest are missing in sbt-scalafix · Issue #349 · scalacenter/scalafix · GitHub to track progress.

1 Like