-
-
Notifications
You must be signed in to change notification settings - Fork 347
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
Migrate build.sc
to Scala 3
#3152
Comments
Some prior art, an attempt to move the |
I have a personal interest / curiosity in learning about mills internals, and support here could be a good way to do it. I'm realistic that I would fail alone through constraints on both time and skill :-). I would be happy to offer support, or bite off a little chunk on behalf of someone running point though. I don't have any interest in the bounty. I'm knocking around here or discord if anyone would imagine delegating a little chunk. |
Hi @lefou , is this task still up for grabs? |
Yes |
Thanks for confirming, don't assign this to me for now. I'll try to make this change, if i see some success, would update on this thread asap. |
I am also working on this |
I came across this ticket after unsuccessfully attempting to use Scala 3 optional braces syntax in the |
taking down the bounty since @bishabosha is working on this |
build.sc
to Scala 3 (1000USD Bounty)build.sc
to Scala 3
@lihaoyi Would you offer any migration tools for automatic rewriting, similar to what the compiler does when a |
The goal of this ticket is to move Mill from Scala 2.13 to Scala 3.
Most of Mill's code should be easily portable with minimal changes (e.g. syntax tweaks), but there are three major areas which may require more work:
The
import $ivy
parser is currently using FastParse's ScalaParse, and would need to be moved over to use a Scala 3 compatible parser similar to what Ammonite doesThe compiler plugin for auto-override would need to be migrated over
The various macros like Caller, Task, and Applicative would need to be ported over
The CodeSig analyzer used for fine grained invalidation on
build.sc
code changes may need to be ported over if Scala 3 generates very different bytecode (not sure, seems unlikely?)Any older dependencies that only support Scala 2 may need to be updated or replaced
The acceptance criteria is A PR that passes all existing tests on Scala 3, and either modify some existing tests to exercise Scala 3 language features, or add new tests to do so. We may not merge the PR immediately, but having the PR open with all tests passing should be enough for us to integrate the Scala 3 support and at our leisure. This would be a breaking change and would need a version bump, with associated downstream inconvenience
The text was updated successfully, but these errors were encountered: