mill icon indicating copy to clipboard operation
mill copied to clipboard

Split out scalac compiler plugins

Open lefou opened this issue 3 years ago • 0 comments

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

  • we don't require override on overridden defs and vals and special handle mill.moduledefs.Cacher instances
  • we encode the ScalaDoc of targets as annotation mill.moduledefs.Scaladoc, se we can later extract and re-use them in mill inspect

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 avatar Sep 14 '22 21:09 lefou