summaryrefslogtreecommitdiff
path: root/readme.md
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2018-02-25 22:33:23 -0800
committerLi Haoyi <haoyi.sg@gmail.com>2018-02-26 00:00:29 -0800
commit2a59977d9c4aa23513d2c38a9fa151f9c11e8dc0 (patch)
tree6a16d7db4538e73c1fe53f2fda812f2d12e71cf8 /readme.md
parent08e27d9b94e38f64f6680828c64ab3c0a8f5537f (diff)
downloadmill-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.md79
1 files changed, 13 insertions, 66 deletions
diff --git a/readme.md b/readme.md
index 4b18e8cb..8a416035 100644
--- a/readme.md
+++ b/readme.md
@@ -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