Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

port build from sbt to mill? #162

Closed
erikerlandson opened this issue Feb 24, 2021 · 8 comments
Closed

port build from sbt to mill? #162

erikerlandson opened this issue Feb 24, 2021 · 8 comments

Comments

@erikerlandson
Copy link
Owner

https://com-lihaoyi.github.io/mill/

@erikerlandson
Copy link
Owner Author

Use the following as a basis for replacing sbt clean unidoc ghpagesPushSite
com-lihaoyi/mill#1194

@erikerlandson
Copy link
Owner Author

can use this: ScaladocSiteModule

com-lihaoyi/mill#1194 (comment)

@erikerlandson
Copy link
Owner Author

I believe I've demonstrated nearly all that I need here:
https://github.com/erikerlandson/mill-testbed/blob/main/build.sc

Except also should test scalaJS building

@erikerlandson
Copy link
Owner Author

I now have a working jvm/js cross-platform example, so I think I am in a position to port the coulomb built to mill.
Will probably do this by constructing the Scala-3 build from the ground up using mill, and leave the legacy scala-2 libraries using sbt.

@cquiroz
Copy link

cquiroz commented Aug 28, 2021

What's the benefit of switching to mill. I have no experience with mill as to tell what the benefits are

@erikerlandson
Copy link
Owner Author

erikerlandson commented Aug 29, 2021

@cquiroz I've always found sbt's config model to be confusing. Probably the most comprehensive answer to "why mill" or "why not sbt" was written by @lihaoyi :
https://www.lihaoyi.com/post/SowhatswrongwithSBT.html

In my proof-of-concept testing, I feel like I confirmed that mill is easier to reason about than sbt, although such things are always subjective:
https://github.com/erikerlandson/mill-testbed/blob/main/build.sc

I think that no build system can ever be truly "easy", mostly because build systems by necessity live at the intersection of a large number of kinds of functionality, which are discussed here:
https://www.lihaoyi.com/post/BuildToolsasPureFunctionalPrograms.html

So my current point of view is that while mill doesn't magically make everything super easy, it's a solid improvement over sbt. Again, though YMMV.

I guess I'll add link to his third blog post on mill
https://www.lihaoyi.com/post/MillBetterScalaBuilds.html

@cquiroz
Copy link

cquiroz commented Aug 29, 2021

Thanks for the detailed write up. I haven't really tried, as hard as it i to understand sbt I have (after a long, long time) managed to make my peace with it. Maybe I should revisit mill

@erikerlandson
Copy link
Owner Author

For now I'm feeling OK about using sbt with sbt-typelevel, so I'll close this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants