Check that your Mill build is well configured by ensuring
- all modules have at least one source file
- there are no "orphan" sources in your workspace (sources that are not inputs of a module)
- all test modules have at least one test class
Useful when letting agents refactor Mill builds. This ensures that they don't accidentally make your tests pass by ignoring their sources for example.
./mill \
--import io.github.alexarchambault.mill::mill-checks:0.1.2 \
io.github.alexarchambault.millchecks.MillChecks/allChecks
Check that listing build sources doesn't trigger compilation (which can happen with generated sources for example, and slows down BSP features):
./mill \
--import io.github.alexarchambault.mill::mill-checks:0.1.2 \
io.github.alexarchambault.millchecks.MillChecks/bspChecks
./mill \
--import io.github.alexarchambault.mill::mill-checks:0.1.2 \
io.github.alexarchambault.millchecks.MillChecks/noEmptySources
./mill \
--import io.github.alexarchambault.mill::mill-checks:0.1.2 \
io.github.alexarchambault.millchecks.MillChecks/noOrphanSources
./mill \
--import io.github.alexarchambault.mill::mill-checks:0.1.2 \
io.github.alexarchambault.millchecks.MillChecks/noEmptyDiscoveredTestClasses
./mill \
--import io.github.alexarchambault.mill::mill-checks:0.1.2 \
io.github.alexarchambault.millchecks.MillChecks/noEmptySources \
--tasks __.allSourceFiles
./mill \
--import io.github.alexarchambault.mill::mill-checks:0.1.2 \
io.github.alexarchambault.millchecks.MillChecks/noOrphanSources \
--sourceTasks '__.{allSourceFiles,compileResources}'
./mill \
--import io.github.alexarchambault.mill::mill-checks:0.1.2 \
io.github.alexarchambault.millchecks.MillChecks/noEmptyDiscoveredTestClasses \
--tasks __.discoveredTestClasses
MILL_CHECKS_ALLOW_EMPTY_SOURCES="first,other,thing" ./mill \
--import io.github.alexarchambault.mill::mill-checks:0.1.2 \
io.github.alexarchambault.millchecks.MillChecks/allChecks
MILL_CHECKS_ORPHAN_SOURCES_IGNORE="some-dir/,a/Thing.scala" ./mill \
--import io.github.alexarchambault.mill::mill-checks:0.1.2 \
io.github.alexarchambault.millchecks.MillChecks/allChecks
MILL_CHECKS_SOURCES_EXTENSIONS="java,scala,foo" ./mill \
--import io.github.alexarchambault.mill::mill-checks:0.1.2 \
io.github.alexarchambault.millchecks.MillChecks/allChecks