Mill is a fast JVM build tool that supports Java and Scala. 2-4x faster than Gradle and 4-10x faster than Maven for common workflows, Mill aims to make your project’s build process performant, maintainable, and flexible
library deps are transitive, and will in the future be included as requirements in distributions
dev requirements are not transitive and won't be included in distributions. They're used for things like test runners, type checkers and bundlers (which can all be extracted into separated traits later on if we want to).
[x] ~support referencing wheel files directly~ this can already be done by declaring a direct reference in pythonDeps (pants also supports this)
[x] allow user-defined PYTHONPATH
[x] custom package repos
[ ] ~lockfile support~ Removing this from this pull request, since it's likely a bit more complex than I initially thought. Pants delegates this behavior to PEX, but we should see if this can be done with more basic tools, or we decide to rely on pex for everything.
Make the dependency management more flexible:
requirements.txt
files (inspired by the same pants feature)Part of #3928