com-lihaoyi / mill

Mill is a fast JVM build tool that supports Java and Scala. 2-4x faster than Gradle and 5-10x faster than Maven for common workflows, Mill aims to make your project’s build process performant, maintainable, and flexible
https://mill-build.org/
MIT License
2.19k stars 347 forks source link

Split out scalac compiler plugins #2035

Closed lefou closed 2 years ago

lefou commented 2 years ago

We have essentially two compiler plugins in Mill which we currently build as one:

Those are currently packaged in one ordinary Scala artifact mill-moduledefs based on Scala binary version. Instead, they should be packaged for the full Scala version, to avoid conflicts.

Also, because of their packaging, they are currently not really usable outside of Mill, which makes developing external Mill plugins a bit more inconvenient, as e.g. the scaladoc encoding would be useful for external plugins too.

Contrary to the fact, that these modules change quite seldom, they need to be (re-)released whenever new Scala versions come out.

I suggest, to make them standalone project with their own release cycle and well defined compatibility scheme, so we can use them in Mill accordingly.

lefou commented 2 years ago

I started a new project: https://github.com/com-lihaoyi/mill-moduledefs

Once, we get it to properly publish, we can refactor to use that external project instead.

lefou commented 2 years ago

@lihaoyi I don't think we already have organization-wide secrets? Hence, could you please add the respective secrets to the new project? Thank you!

lolgab commented 2 years ago

Other projects like mainargs are using organization-wide secrets secrets

lefou commented 2 years ago

@lolgab Thanks for the info. I'll use these too, then.