You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Since Mill got support for meta-builds, it should be rather easy to support source-plugins. What are source plugins? Mill plgins, that aren't consumed as binary artifact but instead are distributes as source code and will be build and loaded by the local Mill process.
In the meta build, instead of adding a Mill plugin as binary dependency to mvnDeps we want to add it to moduleDeps, where each plugin is represented by a sub-module.
I can imagine different kind of plugin sub-module, but it roughly boils down to:
fetch the plugin from some remote source or version control system
build it against the current Mill version
This of course leaves out some details. Here are some more thoughts:
plugins could provide a package.mill or a plugin_package.mill, so Mill can reuse that.
it should be possibly to override anything from build description to code
we probably want to identify major building blocks and make the separate usable components, e.g.
checkout and update remote source trees
patch a remote source tree
Once, we have a more solid idea and implementation, we can think of a generic machanism as easy as adding a source plugin to the YAML frontmatter.
//| sourcePlugins://| - git:...
Why do we want source plugin?
No need to respect binary compatibility, only source compatibility is a concern
No need to setup a publish and distribution process, e.g. create a Sonatype account
Plugins are most likely immediately available to unstable Mill version
Testing and contributing to plugins is easier
Downsides?
Potentially less future-proof build chain, since the plugin sources might disappear (we might want to develop some snapshot feature where we can freeze and semi-vendor a plugin in the build tree)
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Since Mill got support for meta-builds, it should be rather easy to support source-plugins. What are source plugins? Mill plgins, that aren't consumed as binary artifact but instead are distributes as source code and will be build and loaded by the local Mill process.
In the meta build, instead of adding a Mill plugin as binary dependency to
mvnDeps
we want to add it tomoduleDeps
, where each plugin is represented by a sub-module.I can imagine different kind of plugin sub-module, but it roughly boils down to:
This of course leaves out some details. Here are some more thoughts:
package.mill
or aplugin_package.mill
, so Mill can reuse that.Once, we have a more solid idea and implementation, we can think of a generic machanism as easy as adding a source plugin to the YAML frontmatter.
Why do we want source plugin?
Downsides?
Beta Was this translation helpful? Give feedback.
All reactions