Changelog
0.11.13 - 2024-01-14
0.11.12 - 2024-08-20
Changes since 0.11.11:
-
Bump uTest to 0.8.4 #3340
-
Manage TestModule dependencies via
build.sc#3320 -
Fix the warning not being printed when -i/--interactive/--no-server/--bsp are not the first argument #3346
-
GenIdea: Make Scala SDK specific for JS / Native #3348
-
CI: Adapt CI for 0.11.x branch #3350
-
GenIdea: unroll module dependencies #3358
-
Print pretty error message when Result.Failure is thrown #3393
-
Avoid spurious deprecation warnings in generated code #3400
For details refer to milestone 0.11.12 and the list of commits.
0.11.11 - 2024-08-05
We initially tagged 0.11.11 on 2024-11-31 but never published the released due to technical issues. On 2024-08-05 we re-tagged and published 0.11.11.
Changes since 0.11.10:
-
Workaround issue in Sonatype which started failing on double slashes in URLs (even though they previously worked) Link
-
Overhaul of the documentation site at https://mill-build.org
-
New Java- and Scala-specific sections on the documentation, with more detailed comparisons to existing build tools
-
Added graphviz diagrams throughout to help the user in visualizing the concepts involved
-
Update versions of JUnit sbt-test-interface libraries that Mill uses #3296
-
Make it simpler to resolve dependencies in custom tasks via
defaultResolver().resolveDeps#3330
For details refer to milestone 0.11.11 and the list of commits.
0.11.10 - 2024-07-23
Changes since 0.11.9:
Fixes and Improvements
For details refer to milestone 0.11.10 and the list of commits.
0.11.9 - 2024-07-18
Changes since 0.11.8:
New features
-
First class support for Java projects #3261
Fixes and Improvements
-
Add coarse grained lock around BSP request to avoid deadlocks #3243
For details refer to milestone 0.11.9 and the list of commits.
0.11.8 - 2024-06-21
Changes since 0.11.7:
New features
-
Add
jvmOptionsto docker contrib configuration #3079 -
Pass auxiliary class files to zinc, so they are deleted together #3072
-
BSP: Handle new
JvmCompileClasspathrequest #3086 -
Add support for Cobertura XML report task to help integration #3093
-
Support Scala.js minify via
scalaJSMinify: Target[String]#3094 -
Restructure
TestModule, addRunModule#3064 -
Move
run-targets intoRunModule#3090 -
TestModule: Support generation of JUnit-compatible xml report #3099 #3172 #3135 #3184 -
Use docker image hash to determine if build should rerun #3124
-
Add multi platform support to contrib.docker through docker buildx #3143
-
Add ability to re-write ESModule imports at link time #3109
-
Add
TestModule.discoveredTestClassestarget to ease test inspection #3191 -
Support "pom" packaging type in
PublishModule#3222
Fixes and Improvements
-
Restructure
VersionFinder, increase speed, added ticker messages #3014 -
Fix bsp compile classpath inconsistencies #3017
-
Bring more bsp-specific targets in line with their non-bsp versions #3018
-
Make BSP task processing more resilient #3022
-
Update example
build.scwith current library versions #3055 -
Scoverage: Do not include the scalac plugin in the reporting classpath #3060
-
Add Scala 2.13.13 and 2.12.19 to supported bridges list #3066
-
Fix BuildInfo static Java file generator #3074
-
Scoverage inner module defaults to
skipIdea = outer.skipIdea#3098 -
Deduplicate input tasks in
inspectcommand #3102 -
CI: add scalafix-check to precondition to publish #3095
-
Docs for Continuous cache invalidation #3096
-
Isolate scoverage modules from their parent modules #3118
-
Scoverage improve classpath override to the minimal #3122
-
Improve internal BSP API and docs, fix a match error condition #3111
-
Retry example integration tests that didn’t finish after 5 minutes #3125
-
Fix mill script for parameter starting with -i #3127
-
Fixed semanticdb file copying issue, added more tests #3080
-
Detect assemblies with too many entries to fail shell script prepending #3140
-
Exclude mill provided dependencies in meta builds #3189 #3221
-
Fix Scala.js toolchain logs in server-client mode #3196
-
Fix compiler bridge build setup and build essential versions in CI #3179
-
Add Scala 2.13.14 to bridgeScalaVersions #3166
-
GenIdea improvements #3153
-
GenIdea: Use synthetic scala-SDK entry for compiler setup #3154
-
Fix classpath regression in Bloop export #1918 #3211
-
Support
build.scin Bloop #3208 -
Fail if
testOnlydoes not match any test case #3224
Updates and internal changes
-
Code cleanups
-
Documentation updates and fixes
-
Test and CI improvements
-
Updates: acyclic 0.3.12, Ammonite 3.0.0-M2-11-713b6963, asm 9.7, commons-compress 1.26.2, commons-io 2.16.1, coursier 2.1.10, fastparse 3.1.0, fansi 0.5.0, guava 33.2.1, jarjar-abrams-core 1.14.0, jline 3.26.2, junixsocket 2.9.1, log4j-core 2.23.1, mainargs 0.7.0 mill-mima 0.1.1, mill-scalafix 0.4.0, os-lib 0.10.2, Play 2.8.22 / 2.9.4 / 3.0.4, pprint 0.9.0, protobuf-java 3.25.3, Scala 2.12.19 / 2.13.14, Scala Native 0.4.17 / 0.5.3, scala-xml 2.3.0, scalacheck 1.18.0, scalatest 3.2.18, scoverage 2.1.1, semanticdb-java 0.9.10, semanticdb-scalac 4.9.7 requests 0.8.3, upickle 3.3.1, utest 0.8.3, zinc 1.10.0
For details refer to milestone 0.11.8 and the list of commits.
0.11.7 - 2024-02-05
Changes since 0.11.6:
New features
-
Support type selectors as path selection syntax in resolve #2997, #2998
-
Read coursier default config files to set up repositories and support mirror configuration #2886, #2917
-
Added support for
typeattribute when parsing dependencies #2994 -
Add new
ScalaModule.scalacHelpcommand #2921 -
Add a
ScalaModule.consoleScalacOptionstarget #2948 -
Enable colored output for Scala 2 compiler output #2950
-
Add
publishLocalCachedandpublishM2LocalCachedtargets toPublishModule#2976 -
Support Scala Native build target. This allows to build static and dynamic libraries other than binaries #2898
-
Prepare the Scala.js integration for SIP-51 #2988
Fixes and Improvements
-
Better detect Windows Subsystem for Linux environments #2901
-
Avoid evaluating `T.input`s twice #2952
-
Deduplicate (anonymous) tasks in results #2959
-
Synchronize
evaluateGroupCachedto avoid concurrent access to cache #2980 -
Properly sanitize Windows reserved names and symbols in evaluator paths #2964, #2965
-
Detect colliding cross module values #2984
-
Mask forward slashes in cross values to fix their cache locations #2986
-
Re-enable test result summary (print
donemessage from test framework to stdout) #2993 -
Fix overeager caching of
cliImportsvalue ingeneratedScriptSources#2977 -
Allow resolving moduleDeps with older Scala 3 versions #2877
-
GenIdea: Put module dependencies after library dependencies #2925
-
BSP: do not filter clean-requests for meta-builds #2931
-
BSP: Add
JavaModule.bspBuildTargetDatato makeJavaModulereports workableBuildTarget#2930 -
BSP: Send
logMessageinstead of diagnostics whentextDocumentis unknown #2979 -
Scoverage inner module defaults new to
skipIdea = true#2989
Updates and internal changes
-
Dependency updates: asm-tree 9.6, bsp4j 2.2.0-M1, coursier 2.1.8, jline 3.25.0, jna 5.14.0, junixsocket-core 2.8.3, log4j-core 2.22.1, mainargs 0.6.1, os-lib 0.9.3, scalafmt 3.7.15, Scala.js 1.15.0, scala-native 8.4.16, semanticdb-java 0.9.8, semanticdb-scala 4.8.15, upickle 3.1.4, zinc 1.9.6
-
Contrib dependency updates: Play 2.8.21, Play 2.9.1, Play 3.0.1
-
Documentation updates and new sections
-
More code cleanups, explicit result types and enforcement of some code quality metrics via mill-scalafix
For details refer to milestone 0.11.7 and the list of commits.
0.11.6 - 2023-11-21
Changes since 0.11.5:
-
Make
PathRefrobust against concurrent filesyste modifications #2832 -
Use logger error stream for informational messages #2839
-
Harden assembly logic against Zip-Slip vulnerabilities #2847
-
Add an option to disable incremental compilation with zinc #2851
-
Add check for right Tests traits in ScalaJS and Native #2874
-
Attempt to recover from client/server connection errors to #2879
-
Fix discovery of targets whose names get mangled #2883
-
Make
mill showskip-jprefixes to ensure machine readability #2884
For details refer to milestone 0.11.6 and the list of commits.
0.11.5 - 2023-10-04
Changes since 0.11.4:
-
Support for Java 21 #2768
-
The
T.workspacecontext path now always points to the top-level project directory, also for meta builds #2809 -
Mill now better detects and reports logical cycles in inter-module dependencies #2790
-
Fixed semanticDB data generation for meta builds #2809
-
The
prepareOfflinecommand also fetches relevant compiler-bridges for Scala modules #2791 -
Improved
ScalaJSModuleand added support forIRFileCache#2783 -
The
JavaModule.zincReportCachedProblemsconfiguration can now also customized via a Java system property #2775 -
Fixed a file truncation issue in protobuf module and print a warning when proto file get overwritten #2800
-
Documentation improvements
-
Dependency updates: bsp4j 2.1.0-M7, castor 0.3.0, coursier-interface 1.0.19, jarjarabrams 1.9.0, jline 3.23.0, junitsocket 2.8.1, mainargs 0.5.4, scalafmt 3.7.14, Scala.js 1.14.0, semanticdb-java 0.9.6, semanticdb-scala 4.8.10
-
Various other improvements and cleanups
For details refer to milestone 0.11.5 and the list of commits.
0.11.4 - 2023-09-19
0.11.3 - 2023-09-17
Changes since 0.11.2:
-
Allow Mill CLI to select the meta-build frame it operates on via
--meta-level <n>#2719 -
Improve the
mill resolvesuggestion when a user specifies a target in the wrong module #2731 -
Fix conflicting dependencies between upstream JavaModules #2735
-
Fix the scala-library dependency for (generic) platform modules #2739
-
Fix terminal forwarding in
.consoleand.replcommands #2743
For details refer to milestone 0.11.3 and the list of commits.
0.11.2 - 2023-08-28
Changes since 0.11.1:
-
Target invalidation after making changes to
build.scis now done at a fine-grained method-level granularity, using callgraph reachability analysis to see which targets depend on the code that was changed. See #2417 for more details -
Fix redirection of stdout stream to stderr when using
show#2689 -
Fix line numbers in errors for scripts starting with leading comments or whitespace #2686
-
Fix
initcommand and support runnig Mill without existingbuild.scfile #2662 -
Fixes for BSP editor integration sometimes using the wrong output folder for meta-build metadata, causing subsequent builds from the command line to fail #2692
-
Added a new
mill.idea.GenIdea/ideacommand to generate IntelliJ IDE metadata, improving-upon and replacing the oldermill.scalalib.GenIdea/ideacommand which is now deprecated #2638 -
Update Coursier to 2.1.6 to mitigate CVE CVE-2022-46751 #2705
For details refer to milestone 0.11.2 and the list of commits.
0.11.1 - 2023-06-23
Changes since 0.11.0:
-
mill.define.Cross: Introduced default cross segments and some CLI convenience -
mill.testrunner: Fixed exception when running ScalaTest or ZIOTest frameworks -
mill.runner: Removed some obsolete / defunct cli options -
mill.runner: Properly distinct-ify commands when resolving wide matching target patterns -
mill.scalajslib: Restored correct defaults foresFeature -
mill.bsp: Fixed aMatchErrorin thebuildtarget/scalaTestClassesrequest -
mill.contrib.bloop: Corrected accidentally changed package name resulting in non-functional plugin -
mill.contrib.scoverage: Fixed defunct plugin due to a missing type annotation -
Various internal improvements
-
Dependency updates: Ammonite 3.3.0-M0-32-96e851cb, bsp4j 2.1.0-M5, zinc 1.9.1
-
Mill is now build with Mill 0.11
For details refer to milestone 0.11.1 and the list of commits.
0.11.0 - 2023-06-06
This release is binary incompatible to 0.11.0-M11.
Changes since 0.11.0-M11:
-
0.11.0 is the next breaking version after the 0.10.x series, with a large number of improvements. See the changelog below for 0.11.0-M1 to 0.11.0-M11 for a full list of user-facing changes.
For details refer to milestone 0.11.0 and the list of commits.
0.11.0-M11 - 2023-06-04
This release is binary incompatible to 0.11.0-M10.
Changes since 0.11.0-M10:
-
Make
foo.testcommand run tests with user code in the boot classloader, rather than in a sub-classloader #2561 -
Mill backend server timeout is now configurable #2550
-
Mill assembly is now distributed via Maven Central, rather than Github release assets, to remove an unnecessary single point of failure #2560
-
Testsinner trait was removed, to avoid trait shadowing which will be removed in Scala 3. Please useScalaTests,ScalaJSTests, orScalaNativeTestsinstead #2558
For details refer to milestone 0.11.0-M11 and the list of commits.
0.11.0-M10 - 2023-05-24
This release is binary incompatible to 0.11.0-M9.
Changes since 0.11.0-M9:
-
Make
mill.define.Moduleatraitto allow abstract/virtual modules to betraits rather thanclasses #2536 -
Move
mill.BuildInfotomill.main.BuildInfoto avoid name conflicts withmill.contrib.buildinfo.BuildInfo#2537 -
PlatformScalaModulenow exposesplatformScalaSuffixfor user code to use #2534 -
Add
Agg.whenoperator to simplify common workflow of adding optional flags or command line parameters #2353 -
Generalize handling of test module source folder layout, such that they always match the folder layout of the enclosing module #2531
For details refer to milestone 0.11.0-M10 and the list of commits.
0.11.0-M9 - 2023-05-18
This release is binary incompatible to 0.11.0-M8.
Changes since 0.11.0-M8:
-
Overhauled target resolution logic. It is now significantly lazier, resulting in less of the module tree being un-necessarily instantiated, and also more precise and predictable #2453 #2511
-
Allow tasks to be passed as the CLI parameters of the
runcommand, allowingrunto be easily used in the implementation of other tasks #2452 -
T.inputs are now watched properly with--watch, and trigger re-evaluations when the watched value changes #2489 -
Support for Java 20 #2501
-
Broke up
mill.modulespackage #2513, with functionality re-distributed tomill.utilandmill.scalalib -
Overhaul BSP-related code, for improved fidelity and correctness #2415 #2414 #2518 #2521
-
Enabled compilation warnings in
build.sc#2519 -
Print out the CLI flags when inspecting
T.commands #2522
For details refer to milestone 0.11.0-M9 and the list of commits.
0.11.0-M8 - 2023-04-24
This release is binary incompatible to 0.11.0-M7.
Changes since 0.11.0-M7:
-
Added an example/ folder in the Mill repo, containing common build setups demonstrating Mill features with explanations of how each feature works
-
Pre-compiled Scala incremental compiler interface #2424, to speed up clean builds
-
Add some helpers to simplify cross-version/cross-platform modules {#2406}[https://github.com/com-lihaoyi/mill/pull/2406]
-
You can now override
T{…}Targets withT.sourceorT.sources, and vice versa #2402 -
Removed the Ammonite script runner dependency used to evaluate
build.scfiles and instead compile them using Mill #2377 -
Add
TestModule.ZioTest#2432 -
Caching fixes for external modules #2419
-
Overhaul of the Mill
BuildInfoplugin, moving the key-value into resources to avoid needing to re-compile your module when the values change, addingJavaModulesupport, and allowing Javadoc/Scaladoc comments to be associated with the generatedBuildInfoconstants #2425 -
Global Configuration via
~/.mill/ammonite/predefScript.scis no longer supported in this version. If that breaks your workflow, please report and tell us your use case so we can provide sufficient replacement or support for your use case before Mill 0.11. -
Overhaul of the documentation. Created many executable example projects which are included in the documentation and run/tested on CI
-
Change cross module definitions to be traits instead of classes, for greater regularity and less builerplate at call sites. This change requires slight modification to existing build scripts that define cross modules.
For details refer to milestone 0.11.0-M8 and the list of commits.
0.11.0-M7 - 2023-03-30
This release is binary incompatible to 0.11.0-M6.
Changes since 0.11.0-M6:
-
Introduced automatic
PathRefvalidation for cached targets; default-enabled it forCoursierModule.resolveDepsand variousresolvedIvyDepstargets -
bsp: Update Protocol version to 2.1.0-M4 -
bsp: Support newmainClassesfield in run and test environments -
bsp: Fixed handling of Mill plugins and other improvements -
scalanativelib: newnativeDumpsetting inScalaNativeModule -
contrib.twirllib: Use newer scala-parser-combinators version when used with Scala 3 -
contrib.scalapblib: Added new flag to search for proto files in dependencies -
Various refactorings to improve binary compatibility
-
Updated dependencies: Ammonite 3.0.0-M0-5 coursier 2.1.0, scala native tools 0.4.12, semanticdb 4.7.6, trees 4.7.6, upickle 3.0.0
-
DX improvements
For details refer to milestone 0.11.0-M7 and the list of commits.
0.11.0-M6 - 2023-03-09
This release is binary incompatible to 0.11.0-M5.
Changes since 0.11.0-M5:
-
main: Re-added missing--colorandpredefcli arguments.
For details refer to milestone 0.11.0-M6 and the list of commits.
0.11.0-M5 - 2023-03-09
This release is binary incompatible to 0.11.0-M4.
Changes since 0.11.0-M4:
-
Crossis no longer adding the cross parameters to themillSourcePath.You should review your cross modules setups to avoid build issues like incorrect source paths or missing files.
CrossScalaModuleis not affected by this change. -
API refactorings:
PathRef, movedJarManifesttomill.main -
No longer inherit the Ammonite CLI config
-
scalalib: Fixed loosing customizedmapDependencieswhenScalaModuleget mixed in after -
scalalib: NewTestModule.Weaver -
scalajslib: NewJsEnvConfig.Selenium -
testrunner: Fixed concurrency issue with test event reporting -
Updated dependencies: ammonite 3.0.0-M0-3, coursier 2.1.0-RC6, jarajar-abrams-core 1.8.2, lambdatest 0.8.0, log4j-core 2.20.0, os-lib 0.9.1, scoverage 2.0.8, semanticdb-scalac 4.7.5, trees 4.7.5
-
Documentation updates
For details refer to milestone 0.11.0-M5 and the list of commits.
0.11.0-M4 - 2023-02-10
This release is binary incompatible to 0.11.0-M3.
Changes since 0.11.0-M3:
-
scalalib: New configuration targetzincReportCachedProblemswhich, whentrue, enables reporting of all found problems, even for files which were not re-compiled -
scalalib: Improved SemanticDB support for Java and Scala -
scalalib: Mitigate another coursier download issue -
scalajslib: Fetch more tooling dependencies inprepareOffline -
scalanativelib: Fetch more tooling dependencies inprepareOffline -
scalanativelib: Updated tools to version 0.4.10 -
bsp: Improved support for themill-buildmodule which should improve the editing experience forbuild.scand other build files -
Cleanups and internal improvements
-
Updated dependencies: Ammonite 3.0.0-M0-1, junixsocket 2.6.2, semanticdb-java 0.8.13, upickle 3.0.0-M2
For details refer to milestone 0.11.0-M4 and the list of commits.
0.11.0-M3 - 2023-01-23
This release is binary incompatible to 0.11.0-M2.
Changes since 0.11.0-M2:
-
Slightly changed the
out/folder layout for overridden and private tasks. Instead offoo.overriddenwe now use afoo.superpath to hold the metadata and scratch files. -
Fixed the caching for private targets with same name but defined in different super traits.
-
Fixed non-functional
cleancommand when used with arguments denoting modules. -
scalalib: FixedGenIdeaissues on Windows, when the build uses plugins or additional libraries. -
scalajslib:ScalaJSModule.ScalaJSTestsnow extendsScalaModule.ScalaTestswhich improves consistency, better default values and compatibility with other modules likeScoverageModule. -
scalanativelib:ScalaNativeModule.ScalaNativeTestsnow extendsScalaModule.ScalaTestswhich improves consistency, better default values and compatibility with other modules. -
contrib.gitlab: Improved error handling for token lookup and documentation. -
Updated dependencies: coursier 2.1.0-RC5, jna 5.13.0, semanticdb-scala 4.7.3, trees 4.7.3
-
Documentation improvements
For details refer to milestone 0.11.0-M3 and the list of commits.
0.11.0-M2 - 2023-01-13
This release is binary incompatible to 0.11.0-M1.
Changes since 0.11.0-M1:
-
Splitted BSP module into
mill.bspandmill.bsp.workerand removed various dependencies (guava, bsp4j, xtends, lsp4j, …) from Mill API -
scalalib: Added support to generate semanticdb data for Java source files -
scalajslib: Added support forscalaJSOutputPattern -
scalajslib: Added suport forscalaJSSourceMap -
scalajslib: Dropped support for Scala.js 0.6 -
Updated dependencies: ammonite 2.5.6, coursier 2.1.0-RC4, semanticdb 4.7.1, requests 0.8.0, scalafmt 3.6.1, trees 4.7.1, upickle 3.0.0-M1, utest 0.8.1
-
Various internal cleanups and improvements
-
Documentation improvements
For details refer to milestone 0.11.0-M2 and the list of commits.
0.11.0-M1 - 2022-12-17
This release is binary incompatible to 0.10.10.
Changes since 0.10.10:
-
Greatly improved dependency resolution between modules, making it possible to mix Java and Scala modules
-
main: RestrictCrossparameter to be of typeModule -
scalalib: Performance improvements in Zinc worker module -
scalalib: Resources are no longer added tocompileClasspath. -
scalalib: Added newcompileResourceswhich will end up incompileClasspath -
scalalib: Consolidated artifact and platform suffix handling -
scalajslib: Performance improvements in worker module -
scalanativelib: Performance improvements in worker module -
Updated dependencies: coursier 2.1.0-RC3, os-lib 0.9, scala 2.12.17, trees 4.7.0
-
Removed lots of deprecated API
-
Various internal cleanups and improvements
For details refer to milestone 0.11.0-M1 and the list of commits.
0.10.15 - 2024-01-07
Changes since 0.10.13:
-
Make
semanticDbEnablePluginScalacOptionsprotected and thus accessible for downstream use and customization
For details refer to milestone 0.10.15 and the list of commits.
0.10.13 - 2023-11-12
Changes since 0.10.12:
This version especially aids the transition from Mill 0.10 to Mill 0.11.
-
Backport of Java 20 compatibility
-
Deprecated
mill.define.SelectMode.Single -
Backport of
mill.eval.Evaluator.evalOrThrow -
Deprecated all inner
Teststraits of modules derived fromJavaModuleand provide type aliases to use their successors -
Dependency updates: Ammonite 2.5.11, Coursier 2.1.7, jarjar-abrams 1.9.0, Junixxocket 2.8.2, Play 2.8.21, Scalameta Trees 4.8.12, Scala Native 0.4.16, Scoverage 2.0.11, Zinc 1.9.5
For details refer to milestone 0.10.13 and the list of commits.
0.10.12 - 2023-03-20
Changes since 0.10.11:
-
scalalib: Mitigate another coursier download issue (backported from 0.11.0-M4) -
testrunner: Fixed a concurrency issue with test event reporting (backported from 0.11.0-M5) -
scalajslib: DeprecatedfastOptandfullOpt -
Updated dependencies: coursier 2.1.0, jarjar-abrams 1.8.2, jna 5.13.0, junixsocket 2.6.2, log4j-core 2.20.0, scalafmt-dynamic 3.6.1, trees 4.7.6
For details refer to milestone 0.10.12 and the list of commits.
0.10.11 - 2023-01-24
Changes since 0.10.10:
-
Fixed non-functional
cleancommand when used with arguments denoting modules. -
scalalib: FixedGenIdeaissues on Windows, when the build uses plugins or additional libraries. -
scalajslib: Performance improvements in worker module -
scalajslib: Pass more settings fromScalaJSModuleto itsTestsIf you have issues after the update (like
org.scalajs.jsenv.UnsupportedInputException, https://github.com/com-lihaoyi/mill/issues/2300), check your settings in the test modules for consistency. -
Some internal improvements backported from
0.11.0-M3
For details refer to milestone 0.10.11 and the list of commits.
0.10.10 - 2022-12-06
After this release, the main branch is open for development of the next major version of Mill, which is probably 0.11.
Further maintenance work will happen in the 0.10.x branch.
Changes since 0.10.9:
-
Lots of documentation improvements, additions and restructurings
-
core: Fixed some rare issues with reading the.mill-jvm-optsfile -
core: We made slight adaptions to theT.destlocation of target defined in included files, to fix potential colliding cache locations -
scalalib: JAR archives created by Mill now by default contain directory entries -
scalalib: Updated zinc to 1.8.0 -
scalajslib: Added support for moreJsEnvprovidersIf you get some issues (like
connect ECONNREFUSED, https://github.com/com-lihaoyi/mill/issues/2204) after the update, review your settings forJsEnvproviders. -
scalanativelib: Support for incremental compilation since Scala Native 0.4.9 -
contrib.testng: The TestNG library is no longer provided transitively; you need to provide it explicitly -
contrib.bloop: Fixed re-generation of bloop config dir; previously, it could happen, that there where no config files at all -
BSP: implementbuildTarget/OutputPathsrequest -
Various version bumps and internal improvements
For details refer to milestone 0.10.10 and the list of commits.
0.10.9 - 2022-11-10
Changes since 0.10.8:
-
Hardened Maven and Ivy artifact handling to prevent path-traversal attacks (see CVE-2022-37866), also updated coursier dependency to a non-vulnerable version
-
Decoupled
mill-moduledefsmodule into a {link-mill-moduledefs}[separate project], to better suite compiler plugin packaging and improve support for various Scala versions -
Applied more workarounds to coursier concurrency issues to make parallel builds more robust
-
Added support for newer Scala versions in
GenIdea(2.2 and 2.3) -
Fixed an issue where
PublishModuledropped module dependencies when mixed-in after other trait which overrodemoduleDeps -
new
JMHcontrib plugin -
Lots of internal improvements and dependency updates
For details refer to milestone 0.10.9 and the list of commits.
0.10.8 - 2022-10-10
Changes since 0.10.7:
-
Improvements for better Scala 3.2 support
-
Fixed non-working default commands in cross modules
-
CoursierModule: mitigate more download failure situations (e.g. checksum failures) -
PublishModule: properly showgpgoutput in server mode -
BSP: Better compiler message handling (logMessageinstead ofshowMessage) and support for diagnostic code -
ScoverageModule: Support for Scoverage 2.x -
New contrib module
GitlabPublishModule -
Various internal improvements and version bumps
-
Documentation improvements
For details refer to milestone 0.10.8 and the list of commits.
0.10.7 - 2022-08-24
Changes since 0.10.6:
-
Don’t print unwanted debug messages from zinc
For details refer to milestone 0.10.7 and the list of commits.
0.10.6 - 2022-08-24
Changes since 0.10.5:
-
PathRefs sigs are now more reproducible and independent of the used filesystem -
JavaModulecan now use a non-local Java Compiler to support all options -
Logger: newdebugEnabledto detect whether debug logging is enabled -
New
testkitmodule, to useTestEvaluatorin external projects -
Fixed reading of
.mill-jvm-optsin server mode -
BSP: Automatic SemanticDB enablement to improve Metals support
-
mill.twirllib.TwirlModule- new mandatory targettwirlScalaVersionto configure the Scala version used by Twirl compiler, and support for newer versions -
Lots of documentation updates and additions
-
Upgraded to Zinc 1.7.1 and various other dependency updates
For details refer to milestone 0.10.6 and the list of commits.
0.10.5 - 2022-07-01
Changes since 0.10.4:
-
New
initcommand, to create new Mill projects from Gitter8 (g8) templates -
PathRefnow gracefully ignores socket files. This also fixes an annoying issue when Mill was previously ran in a source directory. -
Fixed a bug with using
mill --replwithout any further arguments, which was introduced in Mill 0.10.2 and prevented proper no-server mode -
Fixed the
visualizecommand which wasn’t working on some newer JREs -
Improved Mill server support for Windows 11 and some Windows Server versions
-
ScalaModule/ZincWorkerModule: Fixed incremental compilation issue with JRE 17 (and probably others) -
TestModulenow better supports JUnit5 test suites -
ScalaJsModule: internal improvements to the stability of the Scala.js linker -
ScalaNativeModule: Added support fornativeEmbedResources -
BSP: improved handling of themill-buildmodule when the BSP client is IntelliJ IDEA -
Documentation updates and link fixes
-
Various dependency updates
For details refer to milestone 0.10.5 and the list of commits.
0.10.4 - 2022-05-06
Changes since 0.10.3:
-
Switched from ipcsocket to junixsocket library to enhance the robustness of Mill client server communication. This should greatly improve the user experience on Windows.
-
Internal improvements and better support of GraalVM
-
The Mill Documentation site has now built-in search functionality
-
ScalaJsModule: New targetsfastLinkJSandfullLinkJSand deprecatedfastOptandfullOpt -
ScalaJsModule: Support forModuleSplitStyle -
BSP: Updated to protocol version 2.1.0-M1, added support for test framework names and support for the JVM extension -
GenIdea: More consistent ordering of libraries and dependent modules and support for Scala 3.1 language level -
Bloop: Added support for runtime dependencies -
Enhanced test suite to cover Mill client server scenarios
-
Various dependency updates
For details refer to milestone 0.10.4 and the list of commits.
0.10.3 - 2022-04-11
Changes since 0.10.2:
-
Fixed
import $filefor files with hyphens and other symbols in its name -
Fixed an issues with truncated output just before Mill finishes
-
Mill commands now support arguments of type
Task[T], which can improve writing re-usable commands, especially, they can be called from other tasks more easily -
JavaModule: Improved correctness and performance ofcompileClasspathandbspCompileClasspathtargets. This fixes an issue with BSP for large projects. Also, compile-time dependencies no longer sneak into the classpath transitively. -
JavaModule: AddeddocJarUseArgsFiletarget and fix issue with Windows command length restrictions indocJar -
BSPandBloop: Better detect foreign modules -
Various internal API refinements and improvements
-
Reorganized integration test suite and build setup
For details refer to milestone 0.10.3 and the list of commits.
0.10.2 - 2022-03-18
Changes since 0.10.1:
-
Mill workers can now implement
AutoCloseableto properly free resources -
ScalaModule: Fixedreplstart -
CoursierModule: Fixed concurrent download issues with coursier (we detect and retry) -
MainModule: Fixed potential match error withshowandshowNamed -
Restructured contrib module documentation
-
Internal improvements
For details refer to milestone 0.10.2 and the list of commits.
0.10.1 - 2022-03-08
Changes since 0.10.0:
-
MillClienMaincan now act as universal main to start mill with or without a server process -
Improved
showcommand that always returns valid JSON -
Added
showNamedcommand that includes the task names in the output -
Implemented more granular cache invalidation which keeps more caches intact when you split your build setup over multiple
.scfiles withimport $file. -
The local
.mill-jvm-optsfile is no longer restricted to-Xoptions -
CoursierModule: AddedcoursierCacheCustomizerto support aFileCachecustomizers -
JavaModule: thedocJartarget no longer includes hidden files -
ScalaModule: Updated to latest zinc version -
ScalaModule: Reworked scalac plugins handling for the better and to support Scala 3 -
ScalaNativeModule: fixedDep.withDottyCompatbehavior -
ScalaJSModule: support for linking multiple modules -
ScalafmtModule: Support for newer Scalafmt versions -
Tool chain: Update to Mill 0.10.0
-
Tool chain: we no longer create files outside the mill project directory (e.g.
~/mill-releaseis now undertarget/mill-release) -
Various dependency updates
-
Lots of internal improvements
For details refer to milestone 0.10.1 and the list of commits.
0.10.0 - 2022-01-14
Changes since 0.10.0-M5:
-
Changed structure of
outdirectory,out/foo/destis nowout/foo.dest -
Fixed issues with loading of predef scripts
-
--watchnow supports manual re-runs by pressing enter -
Improved subprocess handling
-
Published poms can now contain properties and
versionSchemeinformation -
Improved Scala.js support, including more target configuration options and support for Node 17
-
Improved Scala Native for version > 0.4.2 and support Scala 3
-
Internal improvements, fixes and dependency version updates
For details refer to milestone 0.10.0 and the list of commits.
0.10.0-M5 - 2021-12-18
This release breaks binary compatibility for external plugins.
Changes since 0.10.0-M4:
-
Fixed Log4Shell security vulnerability in
ZincWorkerModule(CVE-2021-44228) -
Factored out the testrunner into a new module, which also fixes some potential classloader issues when executing tests (e.g. with JNA)
-
Removed the limitation of max 22 inputs for tasks
-
--watchedcommands can now re-run when pressing enter-key -
task and arguments of commands can now have hyphens in their name
-
Reworked and decluttered the out-folder structure
-
prepareOfflinenow has aallflag to control if all or only some dependency should be prefetched -
Made caching more effective for targets overridden in stackable-traits
-
Further BSP improvements, esp. for Metals and Scala 3
-
Lots of other internal improvements and fixes
-
Various dependency updates
For details refer to milestone 0.10.0-M5 and the list of commits.
0.10.0-M4 - 2021-11-08
Changes since 0.10.0-M3:
-
BSP support rework and overhaul of built-in BSP server
-
GenIdea: failures when inspecting and resolving the build are not properly reported
-
Coursier: we now implemented a workaround to tackle concurrent downloads issues
-
New
+separator to provide multiple targets (with parameters) via cmdline -
New
--importcmdline option to run ad-hoc plugins without editing ofbuild.sc -
New
T.ctx().workspaceAPI to access the project root directory -
Various internal improvements and bug fixes
-
Various refactorings and cleanups
For details refer to milestone 0.10.0-M4 and the list of commits.
0.10.0-M3 - 2021-09-29
This is a milestone release. This release breaks binary compatibility for external plugins build for mill 0.9.x. The API is suspected to change before a 0.10.0 releae.
Changes since 0.10.0-M2:
-
ScalaModule with PublishModule: thescala-libraryartifact is now always part of the dependencies in published `pom.xml`s and `ivy.xml`s -
New
JavaModule.mandatoryIvyDepstarget to provide essential dependencies like scala-library without forcing the user to callsuper.ivyDeps -
ScalaJSModule.scalaLibraryIvyDepsno longer contains the scala-js-library, but only the scala-library; if you need that, useScalaJSModule.mandatoryIvyDepsinstead. -
import $ivysupport$MILL_BIN_PLATFORMvariable and a new sort notations for external plugins -
We fixed and enabled lots of tests to run on Windows
-
Some generic targets like
planorpathnow also return their output -
GenIdea: improved support for Scala 3 projects *
For details refer to milestone 0.10.0-M3 and the list of commits.
0.10.0-M2 - 2021-09-17
This is a early milestone release. This release breaks binary compatibility for external plugins build for mill 0.9.x. The API is suspected to change before a 0.10.0 releae.
Changes since 0.9.9:
-
Removed deprecated API
-
ScalaModule: addedmandatoryScalacOptionsto avoid the common issue that users forget to include mandatory options when defining their own. -
Renamed
toolsClasspathtargets found in various modules to avoid hard to resolve clashes when mixing traits -
Fixed and improved our test suite on Windows
-
Various fixes and improvements
-
Various dependency updates
For details refer to milestone 0.10.0-M2 and the list of commits.
0.9.12 - 2022-01-07
-
fixed parsing of command parameters in
showcommand -
zinc worker: Updated log4j2 to 2.17.1
For details refer to milestone 0.9.12 and the list of commits.
0.9.11 - 2021-12-15
-
zinc worker: Updated log4j2 to 2.16.0 to fix Log4Shell (CVE-2021-44228) vulnerability
For details refer to milestone 0.9.11 and the list of commits.
0.9.10 - 2021-11-13
-
Some feature backports from mill 0.10
-
New
+separator to provide multiple targets (with parameters) via cmdline -
New
--importcmdline option to run ad-hoc plugins without editing ofbuild.sc -
import $ivysupport$MILL_BIN_PLATFORMvariable and a new sort notations for external plugins
For details refer to milestone 0.9.10 and the list of commits.
0.9.9 - 2021-07-15
Changes since 0.9.8:
-
BSP: Fixed/improved source item for root project
-
Bloop: Prevent compilation during bloop config generation
-
GenIdea: Fix content path of root project (mill-build)
-
Various version bumps
For details refer to milestone 0.9.9 and the list of commits.
0.9.8 - 2021-05-27
Changes since 0.9.7:
-
Fixed some potential binary incompatibilities with external plugins (builds against older os-lib versions)
-
Fixed location and configuration of mills home path (used for caching of build scripts)
-
Properly close jar resources - should fix issues in
assembly, esp. on Windows where open resources are locked -
BSP: Repaired mills BSP server
-
playlib: Fixed issues with the play-contrib module and added support for Play 2.8
-
GenIdea: changed dir for generated mill modules to
.idea/mill_modules -
Various version bumps, including Scala 2.13.5
For details refer to milestone 0.9.8 and the list of commits.
0.9.7 - 2021-05-14
Changes since 0.9.6:
-
ScalaModule: Support for Scala 3 -
CoursierModule: Support customized dependency resolution (needed to work with ScalaFX) -
TestModule: Added newtestFrameworktarget and only support one test framework. DeprecatedtestFrameworkstargets. -
TestModule: Added new convenience traits to configure popular test frameworks, e.g.TestModule.Junit4,TestModule.ScalaTest,TestModule.Utestand many more -
Bloop: Added support for foreign modules -
Better support for Windows environments
-
Various internal improvements, cleanups, and deprecations
-
Various dependencies updates
-
Removed tut contrib module because of unmaintained/archived upstream dependency
For details refer to milestone 0.9.7 and the list of commits.
0.9.6 - 2021-04-03
The mill project home and repository has been moved to https://github.com/com-lihaoyi/mill.
-
replandconsoletargets now supportforkArgsandforkEnv -
Support for Scala 3 release candidates and new Scaladoc 3 tool
-
Support for Scala.js on Scala 3
-
Scala Native improvements
-
Test runner now uses an args file to support running tests on Windows
-
GenIdea: better supports source jars, full config contributions and provided/runtime dependencies
-
Various dependency updates
-
Documentation site reworked to support multiple release versions
-
Improved CI setup to better test mill on Windows
For details refer to milestone 0.9.6 and the list of commits.
0.9.5 - 2021-01-26
-
Updated zinc to 1.4.4
-
Support for Scala Native 0.4.0
-
Support for Scala.js ESModule (including Bloop support)
-
Inner
Teststraits in modules likeJavaModule,ScalaModuleand others now have unique names (JavaModuleTests,ScalaTests, etc), to allow for easier customization -
Various version bumps of dependencies
-
CI now runs all tests, it did miss some before
For details refer to milestone 0.9.5 and the list of commits.
0.9.4 - 2020-12-21
-
Implemented more BSP protocol commands and fixed some glitches with IntelliJ
-
Stabilized CI builds
-
Various fixes and improvements
-
Various version bumps
For details refer to milestone 0.9.4 and the list of commits.
0.9.3 - 2020-11-26
(We also tagged 0.9.0, 0.9.1, and 0.9.2, but due to release difficulties, we ask you not to use them.)
-
Replace the built in
@mainmethod functionality with the MainArgs library -
Note that the MainArgs replacement has some backwards incompatibilities: Short flags like
-ican no longer be passed via--i, the@doc("")is now@arg(doc = ""),Seq[T]parameters are now passed via repeated--fooflags rather than comma-separated. -
Add the ability to relocate/shade files in
.assembly#947 -
Twirl enhancements #952
-
Add
scalacPluginClasspathto Tests #956 -
Add
toMapmethods toBuildInfo#958 -
Bump coursier to version 2.0.0 #973
-
Make BSP support a first-class citizen #969
-
Omit the suffix in
artifactNamein cross modules #953 -
Allow test classes with constructor parameters #982
-
Proguard contrib module #972
-
Support Scala.js useECMAScript2015 option and ModuleKind.ESModule #1004
-
Support Scala.js incremental linking #1007
For details refer to milestone 0.9.3 and the list of commits.
0.8.0 - 2020-07-20
-
Bump external dependencies: uPickle 1.2.0, Ammonite 2.2.0, etc.
-
Use default coursier repos (#931)
-
Work around relative paths issue on windows (#936)
-
Support Scala.js versions >1.0.0 (#934)
For details refer to milestone 0.8.0 and the list of commits.
0.7.4 - 2020-07-03
-
new command line options
--repland--no-server, deprecated--interactiveoption -
Support for Scala.js 1.1
-
Fixed missing source maps for Scala.js 1.0 and 1.1
-
Improved BSP contrib module
For details refer to milestone 0.7.4 and the list of commits.
0.7.3
For details refer to milestone 0.7.3 and the list of commits.
0.7.2 - 2020-05-19
For details refer to milestone 0.7.2 and the list of commits.
0.7.1 - 2020-05-17
For details refer to milestone 0.7.1 and the list of commits.
0.7.0 - 2020-05-15
-
Greatly improved parallel builds via
-j <n>/--jobs <n>, with better scheduling and utilization of multiple cores -
build.scfiles now uses Scala 2.13.2 -
Avoid duplicate target resolution with
mill resolve __ -
Add ability to pass GPG arguments to publish via
--gpgArgs -
-w/--watchnow works forT.sourcetargets
For details refer to milestone 0.7.0 and the list of commits.
0.6.3 - 2020-05-10
-
Finished incomplete support to publish extra artifacts to IVY repositories (
publishLocal) -
Improved Sonatype uploads
-
GenIdea: improvements for shared source dirs and skipped modules -
ScoverageModule: Some refactorings to allow better customization -
More robust classpath handling under Windows
For details refer to milestone 0.6.3 and the list of commits.
0.6.2 - 2020-04-22
-
Mill can now execute targets in parallel. This is experimental and need to be enabled with
--jobs <n>option. -
PublishModule: newpublishM2Localto publish into local Maven repositories -
PublishModule: enhancedpublishLocalto specify to ivy repository location -
Windows: Fixed windows launcher and more robust classpath handling
-
ScalaNativeModule: improved compiling and linking support -
new contrib module
VersionFile -
Dependency: improved dependency update checker and expose results for programmatic use -
ǹew contrib module
Bintray -
ǹew contrib module
Artifactory -
fixed testCached support in various modules
-
GenIdea: improvements, esp. related to source jars
For details refer to milestone 0.6.2 and the list of commits.
0.6.1 - 2020-02-24
-
Bugfix: Mill now no longer leaks open files (version bump to uPickle 1.0.0)
-
New
--versionoption -
Added Support for Scala.js 1.0.0+
-
Added Support for Scala Native 0.4.0-M2
-
JavaModule: EnhancedivyDepsTreeto optionally include compile-time and runtime-time dependencies -
JavaModule:allSourceFilesno longer include Scala sources -
JavaModule: assembly supports configurable separator when merging resources -
ScoverageModule: respectunmanagedClasspath, added console reporter -
ScalaPBModule: added more configuration options -
Bloop: Fixed inconsistent working directory when executing tests via bloop (forces
-Duser.dirwhen generating bloop config)
For details refer to milestone 0.6.1 and the list of commits.
0.6.0 - 2020-01-20
-
Support for METALS 0.8.0 in VSCode
For details refer to milestone 0.6.0 and the list of commits.
0.5.9 - 2020-01-14
-
Bump library versions again
-
Alias
T.ctx.functions toT.:T.dest,T.log, etc. -
Bump Mill’s client-connect-to-server timeout, to reduce flakiness when the server is taking a moment to start up
For details refer to the list of commits.
Version 0.5.8 has some binary compatibility issues in requests-scala/geny and should not be used.
0.5.7 - 2019-12-28
-
Bump library versions: Ammonite 2.0.1, uPickle 0.9.6, Scalatags 0.8.3, OS-Lib 0.6.2, Requests 0.4.7, Geny 0.4.2
For details refer to milestone 0.5.7 and the list of commits.
0.5.5 / 0.5.6 - 2019-12-20
(we skipped version 0.5.4 as we had some publishing issues)
-
Bump library versions: Ammonite 1.9.2, uPickle 0.9.0, Scalatags 0.8.2, OS-Lib 0.5.0, Requests 0.3.0, Geny 0.2.0, uTest 0.7.1
-
Fixed a long standing issue that output of sub-processes are only shown when
-ioption was used. Now, you will always seen output of sub-process. -
Mill now properly restarts it’s server after it’s version has changed
-
PublishModule: added ability to publish into non-staging repositories -
ScalaPBModule: added extra include path option
For details refer to milestone 0.5.5 and the list of commits.
0.5.3 - 2019-12-07
-
GenIdea/idea: improved support for generated sources and use/download sources in more cases -
ScalaJS: improvements and support for ScalaJS 0.6.29+ and 1.0.1.RC1
-
Introduced new
CoursierModuleto use dependency management independent from a compiler -
ScoverageModule: better handling of report directories -
ScalaPBModule: more configuration options -
various other fixes and improvements
For details refer to milestone 0.5.3 and the list of commits.
0.5.2 - 2019-10-17
-
TestModule: new `testCached`target, which only re-runs tests after relevant changes -
TestModule.test: fixed issue when stacktraces have no filename info -
Dependency/updates: fixed issue with reading stale dependencies -
GenIdea/idea: no longer shared output directories between mill and IntelliJ IDEA -
support for Dotty >= 0.18.1
-
Fixed backwards compatibility of mill wrapper script
-
Mill now support the Build Server Protocol 2.0 (BSP) and can act as a build server
-
bloop: removed semanticDB dependency
-
Documentation updates
For details refer to milestone 0.5.2 and the list of commits.
0.5.1 - 2019-09-05
-
GenIdea: Bug fixes
-
GenIdea: Support for module specific extensions (Facets) and additional config files
-
Add ability to define JAR manifests
-
Dotty support: Updates and support for binary compiler bridges
-
Ivy: improved API to create optional dependendies
-
Interpolate
$MILL_VERSIONin ivy imports -
Zinc: Fixed logger output
-
Scoverage: Upgrade to Scoverage 1.4.0
-
Flyway: Upgrade to Flyway 6.0.1
-
Bloop: Updated semanticDB version to 4.2.2
-
Documentation updates
-
Improved robustness in release/deployment process
For details refer to milestone 0.5.1 and the list of commits.
0.5.0 - 2019-08-08
-
Mill now supports a
./mill{link-current-doc-site}/#bootstrap-scripts-linuxos-x-only[bootstrap script], allowing a project to pin the version of Mill it requires, as well as letting contributors use./mill …to begin development without needing to install Mill beforehand. -
Support for a
.mill-versionfile orMILL_VERSIONenvironment variable for {link-current-doc-site}/#overriding-mill-versions[Overriding Mill Versions] -
Fix scoverage: inherit repositories from outer project #645
0.4.0 - 2019-05-20
-
Publish
compileIvyDepsas provided scope (535) -
Added contrib modules to integrate {link-current-doc-site}/page/contrib-modules.html#bloop[Bloop], {link-current-doc-site}/page/contrib-modules.html#flyway[Flyway], {link-current-doc-site}/page/contrib-modules.html#play-framework[Play Framework], {link-current-doc-site}/page/contrib-modules.html#scoverage[Scoverage]
-
Allow configuration of GPG key names when publishing (530)
-
Bump Ammonite version to 1.6.7, making Requests-Scala available to use in your
build.sc -
Support for Scala 2.13.0-RC2
-
ScalaFmt support now uses the version specified in
.scalafmt.conf
0.3.6 - 2019-01-17
-
Started to splitting out mill.api from mill.core
-
Avoid unnecessary dependency downloading by providing fetches per cache policy
-
Added detailed dependency download progress to the progress ticker
-
Fixed internal code generator to support large projects
-
Zinc worker: compiler bridge can be either pre-compiled or on-demand-compiled
-
Zinc worker: configurable scala library/compiler jar discovery
-
Zinc worker: configurable compiler cache supporting parallelism
-
Version bumps: ammonite 1.6.0, scala 2.12.8, zinc 1.2.5
-
Mill now by default fails fast, so in case a build tasks fails, it exits immediately
-
Added new
-k/--keep-goingcommandline option to disable fail fast behaviour and continue build as long as possible in case of a failure
0.3.4 - 2018-11-06
-
Mill is now bundled with OS-Lib, providing a simpler way of dealing with filesystem APIs and subprocesses
0.3.3 - 2018-11-02
-
Added new
debugmethod to context logger, to log additional debug info into the task specific output dir (out/<task>/log) -
Added
--debugoption to enable debug output to STDERR -
Fix
ScalaModule#docJartask when Scala minor versions differ 475
0.2.7 - 2018-08-27
-
Add
visualizePlancommand -
Basic build-info plugin in
mill-contrib-buildinfo -
ScalaPB integration in
mill-contrib-scalapblib -
Fixes for Twirl support, now in
mill-contrib-twirllib -
Support for building Dotty projects #397
-
Allow customization of
run/runBackgroundworking directory viaforkWorkingDir -
Reduced executable size, improved incremental compilation in #414
0.2.6 - 2018-07-30
-
Improve incremental compilation to work with transitive module dependencies
-
Speed up hot compilation performance by properly re-using classloaders
-
Speed up compilation time of
build.scfiles by removing duplicate macro generated routing code
0.2.5 - 2018-07-22
-
Add
.runBackgroundand.runMainBackgroundcommands, to run something in the background without waiting for it to return. The process will keep running until it exits normally, or until the same.runBackgroundcommand is run a second time to spawn a new version of the process. Can be used with-wfor auto-reloading of long-running servers. -
{link-current-doc-site}/page/common-project-layouts.html#scala-native-modules[Scala-Native support]. Try it out!
-
Add
--disable-tickerto reduce spam in CI -
Fix propagation of
--colorflag
0.2.4 - 2018-07-07
-
Fix resolution of
scala-{library,compiler,reflect}in case of conflict -
Allow configuration of
JavaModuleandScalafmtModulescala workers -
Allow hyphens in module and task names
-
Fix publishing of ScalaJS modules to properly handle upstream ScalaJS dependencies
0.2.3 - 2018-06-03
-
Added the {link-current-doc-site}/#visualize[mill show visualize] command, making it easy to visualize the relationships between various tasks and modules in your Mill build.
-
Improve Intellij support (351): better jump-to-definition for third-party libraries, no longer stomping over manual configuration, and better handling of
import $ivyin your build file. -
Support for un-signed publishing and cases where your GPG key has no passphrase (346)
-
Basic support for Twirl, Play Framework’s templating language (271)
-
Better performance for streaming large amounts of stdout from Mill’s daemon process.
-
Allow configuration of append/exclude rules in
ScalaModule#assembly(309)
0.2.2 - 2018-05-20
-
Preserve caches when transitioning between
-i/--interactiveand the fast client/server mode (329) -
Keep Mill daemon running if you Ctrl-C during
-w/--watchmode (327) -
Allow
mill versionto run without a build file (328) -
Make
docJar(and thus publishing) robust against scratch files in the source directories (334) and work with Scala compiler options (336) -
Allow passing Ammonite command-line options to the
foo.replcommand (333) -
Add
mill clean(315) to easily delete the Mill build caches for specific targets -
Improve IntelliJ integration of `MavenModule`s/`SbtModule`s' test folders (298)
-
Avoid showing useless stack traces when
foo.testresult-reporting fails orfoo.runfails -
ScalaFmt support (308)
-
Allow
ScalaModule#generatedSourcesto allow single files (previous you could only pass in directories)
0.2.0 - 2018-04-10
-
Universal (combined batch/sh) script generation for launcher, assembly, and release (#264)
-
Windows client/server improvements (#262)
-
Windows repl support (note: MSYS2 subsystem/shell will be supported when jline3 v3.6.3 is released)
-
Fixed Java 9 support
-
Remove need for running
publishAllusing--interactivewhen on OSX and your GPG key has a passphrase -
First-class support for `JavaModule`s
-
Properly pass compiler plugins to Scaladoc (#282)
-
Support for ivy version-pinning via
ivy"…".forceVersion() -
Support for ivy excludes via
ivy"…".exclude()(#254) -
Make
ivyDepsTreeproperly handle transitive dependencies (#226) -
Fix handling of
runtime-scoped ivy dependencies (#173) -
Make environment variables available to Mill builds (#257)
-
Support ScalaCheck test runner (#286)
-
Support for using Typelevel Scala (#275)
-
If a module depends on multiple submodules with different versions of an ivy dependency, only one version is resolved (#273)
0.1.7 - 2018-03-26
-
Support for non-interactive (client/server) mode on Windows.
-
More fixes for Java 9
-
Bumped the Mill daemon timeout from 1 minute to 5 minutes of inactivity before it shuts down.
-
Avoid leaking Node.js subprocesses when running
ScalaJSModuletests -
Passing command-line arguments with spaces in them to tests no longer parses wrongly
-
ScalaModule#repositories,scalacPluginIvyDeps,scalacOptions,javacOptionsare now automatically propagated toTestsmodules -
ScalaJSModulelinking errors no longer show a useless stack trace -
ScalaModule#docJarnow properly uses the compileClasspath rather than runClasspath -
Bumped underlying Ammonite version to 1.1.0, which provides the improved Windows and Java 9 support
0.1.6 - 2018-03-13
-
Fixes for non-interactive (client/server) mode on Java 9
-
Windows batch (.bat) generation for launcher, assembly, and release
0.1.5 - 2018-03-13
-
Introduced the
mill plan foo.barcommand, which shows you what the execution plan of running thefoo.bartask looks like without actually evaluating it. -
Mill now generates an
out/mill-profile.jsonfile containing task-timings, to make it easier to see where your mill evaluation time is going -
Introduced
ScalaModule#ivyDepsTreecommand to show dependencies tree -
Rename
describetoinspectfor consistency with SBT -
mill resolvenow prints results sorted alphabetically -
Node.js configuration can be customised with
ScalaJSModule#nodeJSConfig -
Scala.js
fullOptnow uses Google Closure Compiler after generating the optimized Javascript output -
Scala.js now supports
NoModuleandCommonJSModulemodule kinds -
Include
compileIvyDepswhen generating IntelliJ projects -
Fixed invalid POM generation
-
Support for Java 9 (and 10)
-
Fixes for Windows support
-
Fixed test classes discovery by skipping interfaces
-
Include "optional" artifacts in dependency resolution if they exist
-
out/{module_name}now added as a content root in generated IntelliJ project
0.1.4 - 2018-03-04
-
Speed up Mill client initialization by another 50-100ms
-
Speed up incremental `assembly`s in the common case where upstream dependencies do not change.
-
Make
ScalaJSModule#runwork with main-method discovery -
Make
ScalaWorkerModuleuser-defineable, so you can use your own custom coursier resolvers when resolving Mill’s own jars -
Simplify definitions of
SCMstrings -
Make the build REPL explicitly require
-i/--interactiveto run -
Log a message when Mill is initializing the Zinc compiler interface
0.1.3 - 2018-02-26
-
Greatly reduced the overhead of evaluating Mill tasks, with a warm already-cached
mill dev.launchernow taking ~450ms instead of ~1000ms -
Mill now saves compiled build files in
~/.mill/ammonite, which is configurable via the--homeCLI arg. -
Fixed linking of multi-module Scala.js projects
0.1.2 - 2018-02-25
-
Mill now keeps a long-lived work-daemon around in between commands; this should improve performance of things like
compilewhich benefit from the warm JVM. You can use-i/--interactivefor interactive consoles/REPLs and for running commands without the daemon -
Implemented the
ScalaModule#launchertarget for easily creating command-line launchers you can run outside of Mill -
ScalaModule#docJarno longer fails if you don’t havescala-compileron classpath -
Support for multiple
testFrameworksin a test module.