diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2018-02-25 22:33:23 -0800 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2018-02-26 00:00:29 -0800 |
commit | 2a59977d9c4aa23513d2c38a9fa151f9c11e8dc0 (patch) | |
tree | 6a16d7db4538e73c1fe53f2fda812f2d12e71cf8 /readme.md | |
parent | 08e27d9b94e38f64f6680828c64ab3c0a8f5537f (diff) | |
download | mill-2a59977d9c4aa23513d2c38a9fa151f9c11e8dc0.tar.gz mill-2a59977d9c4aa23513d2c38a9fa151f9c11e8dc0.tar.bz2 mill-2a59977d9c4aa23513d2c38a9fa151f9c11e8dc0.zip |
Delete SBT build, use Mill for CI & development
Also re-organize the test matrix to split out the unit & integration tests into 3 separate builds, and removing the integration tests from the `-dev` and `-mill` jobs. That should speed up the test run while running all tests and ensuring the dev/release assemblies work
Diffstat (limited to 'readme.md')
-rw-r--r-- | readme.md | 79 |
1 files changed, 13 insertions, 66 deletions
@@ -20,17 +20,18 @@ own codebase. ## How to build and test -Run unit test suite: +Mill is built using Mill. To begin, first download & install Mill as described +in the documentation above. + +To run unit test suite: ```bash -sbt main/test mill main.test ``` Build a standalone executable jar: ```bash -sbt bin/test:assembly mill dev.assembly ``` @@ -41,27 +42,26 @@ e.g.: ```bash ./target/bin/mill core.compile -./out/dev/assembly/dest/out.jar core.compile -./out/dev/assembly/dest/out.jar main.test.compile -./out/dev/assembly/dest/out.jar main.test -./out/dev/assembly/dest/out.jar scalalib.assembly +./out/dev/assembly/dest/mill core.compile +./out/dev/assembly/dest/mill main.test.compile +./out/dev/assembly/dest/mill main.test +./out/dev/assembly/dest/mill scalalib.assembly ``` There is already a `watch` option that looks for changes on files, e.g.: ```bash -./target/bin/mill --watch core.compile -./out/dev/assembly/dest/out.jar --watch core.compile +./out/dev/assembly/dest/mill --watch core.compile ``` You can get Mill to show the JSON-structured output for a particular `Target` or `Command` using the `show` flag: ```bash -./out/dev/assembly/dest/out.jar show core.scalaVersion -./out/dev/assembly/dest/out.jar show core.compile -./out/dev/assembly/dest/out.jar show core.assemblyClasspath -./out/dev/assembly/dest/out.jar show main.test +./out/dev/assembly/dest/mill show core.scalaVersion +./out/dev/assembly/dest/mill show core.compile +./out/dev/assembly/dest/mill show core.assemblyClasspath +./out/dev/assembly/dest/mill show main.test ``` Output will be generated into a the `./out` folder. @@ -71,8 +71,6 @@ file in the repository root, you can skip the assembly process and directly run it via: ```bash -sbt "~bin/test:run main.test" -sbt "~bin/test:run" mill --watch dev.run . main.test mill --watch dev.run . ``` @@ -320,27 +318,6 @@ Each folder currently contains the following files: instead stored as separate binary files in `dest/` which are then referenced by `meta.json` via `PathRef`s -### Self Hosting - -You can use SBT to build a Mill executable, which itself is able to build more -Mill executables that can you can use to run Mill commands: - -```bash -git clean -xdf - -# Build Mill executable using SBT -sbt bin/test:assembly - -# Build Mill executable using the Mill executable generated by SBT -target/bin/mill dev.Assembly - -# Build Mill executable using the Mill executable generated by Mill itself -out/dev/assembly/dest/out.jar dev.assembly -``` - -Eventually, as Mill stabilizes, we will get rid of the SBT build entirely and -rely on previous versions of Mill to build itself. - ### Troubleshooting In case of troubles with caching and/or incremental compilation, you can always @@ -350,36 +327,6 @@ restart from scratch removing the `out` directory: rm -rf out/ ``` - -## Mill Goals and Roadmap - -The end goal of the Mill project is to develop a new Scala build tool to replace -SBT. Mill should satisfy most of the current use cases for SBT's functionality, -but hopefully needing much fewer features and much less complexity to do so. We -take inspiration from SBT, Make, Bazel, and many other existing build tools and -libraries. - -The immediate goal of Mill is to be feature-complete enough to: - -- Sustain its own development, without needing SBT -- Start porting over existing open-source Scala library builds from SBT to Mill - -https://github.com/lihaoyi/mill/issues/2 would kick off the process porting -`com.lihaoyi:acyclic`'s build to Mill, and from there we can flesh out the -missing features needed to port other builds: Scala.js support, Scala-Native -support, etc.. - -As the maintainer of many open-source libraries, all of the `com.lihaoyi` -libraries are fair game to be ported. - -Once a fair number of libraries have been ported, Mill should be in good enough -shape to release to the public, and we can try getting more people in the -community-at-large on board trying out Mill. This should hopefully happen by the -end of 2017. - -Until then, let's keep Mill private. If someone wants to poke their nose in and -see what's going on, we should expect them to contribute code! - ## Changelog ### 0.1.3 |