Skip to content

Mill 2.0 API changes

Tobias Roeser edited this page Dec 7, 2025 · 20 revisions

Loose and completely non-committal list of changes for Mill 2.x, that can’t be applied before 2.x, because they would break either current behavior or binary compatibility.

Build Changes

Cleanups

  • Remove deprecated API

    • Use sites of @deprecated annotation

    • Use sites of @unroll annotation

    • Search for "deprecated", "bin-compat", "shim", "TODO", "FIXME"

  • Explicit code locations:

    • VisualizeModule.classpath

    • CoursierModule.repositoryTask0

    • JavaModule.coursierDependency and JavaModule.coursierDependency0

    • JavaModule.coursierProject0

  • Remove binary-compatibility shims and compatibility workarounds (often their names end with 0)

API Changes

Internal changes

  • In Module traits, generate super-stubs for all inherited tasks, so overriding tasks at a later point is not a binary breaking change due to the missing super-stub.

Clone this wiki locally