I'm a big fan of Scala build tools, both sbt
and mill
. I've done some pretty big projects intimately based on sbt
. Recently I spend a lot of time in mill
because it's very well suited to static-site generators, and because I've had better success getting mill
builds to call into Scala 3 code, as some of my site-generation tools require. I've contributed to both projects.
There are a few hints I want to give myself for when I contribute to mill
.
Build and run
The trick is just
$ ./mill -i installLocal
in the mill repository. If the build succeeds, the a mill-release
executable appears in the target/
directory of the repository. One can test and play with that.
scalafmt
mill
wants code contributions to pass a scalafmt
check before merging. You build mill
with mill
of course, and mill
makes this check easy.
To check formatting...
$ mill mill.scalalib.scalafmt.ScalafmtModule/checkFormatAll __.sources
To have mill
go ahead and reformat your code...
$ mill mill.scalalib.scalafmt.ScalafmtModule/reformatAll __.sources
I have now twice, embarrassingly, forgotten to do this.
???
I'll probably update this entry in place over time, if I find more hints I want to keep.