From 9eeabd1f1de3417e71585b11c4742e33b4a25806 Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Tue, 9 Jul 2019 03:27:45 +0800 Subject: . update readme for 0.5.0 more jdk versions . . . . tweak readme --- .travis.yml | 52 ++++++++++++++++++++--------------------- ci/test-mill-bootstrap-0.sh | 30 ++++++++++++++++++++++++ ci/test-mill-bootstrap-1.sh | 30 ++++++++++++++++++++++++ ci/test-mill-bootstrap.sh | 30 ------------------------ ci/test-mill-dev.sh | 2 +- docs/pages/1 - Intro to Mill.md | 50 ++++++++++++++++++++++++++------------- readme.md | 14 +++++++++++ 7 files changed, 134 insertions(+), 74 deletions(-) create mode 100755 ci/test-mill-bootstrap-0.sh create mode 100755 ci/test-mill-bootstrap-1.sh delete mode 100755 ci/test-mill-bootstrap.sh diff --git a/.travis.yml b/.travis.yml index aa56d492..3c114849 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,49 +8,47 @@ git: matrix: include: - stage: build - name: Test Mill Release with some integration tests on Java 8 - script: ci/test-mill-release.sh + env: CI_SCRIPT=ci/test-mill-release.sh jdk: oraclejdk8 - stage: build - name: Test Mill Release with some integration tests on Java 9 - script: ci/test-mill-release.sh - jdk: oraclejdk9 + env: CI_SCRIPT=ci/test-mill-release.sh + jdk: opendk9 - stage: build - name: Run dev.assembly and the use it to build main tests on Java 8 - script: ci/test-mill-dev.sh - jdk: oraclejdk8 + env: CI_SCRIPT=ci/test-mill-dev.sh + jdk: openjdk10 - stage: build - name: Run dev.assembly and the use it to build main tests on Java 9 - script: ci/test-mill-dev.sh - jdk: oraclejdk9 + env: CI_SCRIPT=ci/test-mill-dev.sh + jdk: oraclejdk11 - stage: build - script: ci/test-mill-bootstrap.sh + env: CI_SCRIPT=ci/test-mill-bootstrap-0.sh + jdk: openjdk8 + + - stage: build + env: CI_SCRIPT=ci/test-mill-bootstrap-1.sh jdk: oraclejdk9 - stage: build - name: Run mill tests - script: ci/test-mill-0.sh - jdk: oraclejdk8 + env: CI_SCRIPT=ci/test-mill-0.sh + jdk: openjdk10 - stage: build - name: Run mill integration tests (part 1) - script: ci/test-mill-1.sh - jdk: oraclejdk8 + env: CI_SCRIPT=ci/test-mill-1.sh + jdk: openjdk11 - stage: build - name: Run mill integration tests (part 2) - script: ci/test-mill-2.sh - jdk: oraclejdk9 + env: CI_SCRIPT=ci/test-mill-2.sh + jdk: oraclejdk8 - stage: release - name: Publish mill to Maven Central and Github Releases - script: "ci/on-master.py ci/release.sh" - jdk: oraclejdk8 + env: CI_SCRIPT="ci/on-master.py ci/release.sh" + jdk: oraclejdk9 - stage: release - name: Publish mill documentation site - script: "ci/on-master.py ci/publish-docs.sh" - jdk: oraclejdk8 + env: CI_SCRIPT="ci/on-master.py ci/publish-docs.sh" + jdk: openjdk10 + +script: + - "$CI_SCRIPT" cache: directories: diff --git a/ci/test-mill-bootstrap-0.sh b/ci/test-mill-bootstrap-0.sh new file mode 100755 index 00000000..93f299db --- /dev/null +++ b/ci/test-mill-bootstrap-0.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash + +set -eux + +# Starting from scratch... +git clean -xdf + +# First build +./mill -i all __.publishLocal launcher +cp out/launcher/dest/mill ~/mill-1 + +# Clean up +git clean -xdf + +rm -rf ~/.mill + +# Differentiate first and second builds +echo "Build 2" > info.txt && git add info.txt && git commit -m "Add info.txt" + +# Second build +~/mill-1 -i all __.publishLocal launcher +cp out/launcher/dest/mill ~/mill-2 + +# Clean up +git clean -xdf + +rm -rf ~/.mill + +# Use second build to run tests using Mill +~/mill-2 -i all {main,scalalib,scalajslib}.test diff --git a/ci/test-mill-bootstrap-1.sh b/ci/test-mill-bootstrap-1.sh new file mode 100755 index 00000000..00b4b857 --- /dev/null +++ b/ci/test-mill-bootstrap-1.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash + +set -eux + +# Starting from scratch... +git clean -xdf + +# First build +./mill -i all __.publishLocal launcher +cp out/launcher/dest/mill ~/mill-1 + +# Clean up +git clean -xdf + +rm -rf ~/.mill + +# Differentiate first and second builds +echo "Build 2" > info.txt && git add info.txt && git commit -m "Add info.txt" + +# Second build +~/mill-1 -i all __.publishLocal launcher +cp out/launcher/dest/mill ~/mill-2 + +# Clean up +git clean -xdf + +rm -rf ~/.mill + +# Use second build to run tests using Mill +~/mill-2 -i all contrib.{twirllib,playlib,scalapblib,scoverage}.test diff --git a/ci/test-mill-bootstrap.sh b/ci/test-mill-bootstrap.sh deleted file mode 100755 index cb366732..00000000 --- a/ci/test-mill-bootstrap.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env bash - -set -eux - -# Starting from scratch... -git clean -xdf - -# First build -./mill -i all __.publishLocal launcher -cp out/launcher/dest/mill ~/mill-1 - -# Clean up -git clean -xdf - -rm -rf ~/.mill - -# Differentiate first and second builds -echo "Build 2" > info.txt && git add info.txt && git commit -m "Add info.txt" - -# Second build -~/mill-1 -i all __.publishLocal launcher -cp out/launcher/dest/mill ~/mill-2 - -# Clean up -git clean -xdf - -rm -rf ~/.mill - -# Use second build to run tests using Mill -~/mill-2 -i all {main,scalalib,scalajslib,contrib.twirllib,contrib.playlib,contrib.scalapblib,contrib.scoverage}.test diff --git a/ci/test-mill-dev.sh b/ci/test-mill-dev.sh index d81fe0df..4cd7b724 100755 --- a/ci/test-mill-dev.sh +++ b/ci/test-mill-dev.sh @@ -13,5 +13,5 @@ rm -rf ~/.mill # Second build & run tests out/dev/assembly/dest/mill -i main.test.compile -#out/dev/assembly/dest/mill -i all {main,scalalib,scalajslib,contrib.twirllib,contrib.scalapblib}.test +out/dev/assembly/dest/mill -i all {main,scalalib,scalajslib,contrib.twirllib,contrib.scalapblib}.test diff --git a/docs/pages/1 - Intro to Mill.md b/docs/pages/1 - Intro to Mill.md index e71b9cf5..1b97393a 100644 --- a/docs/pages/1 - Intro to Mill.md +++ b/docs/pages/1 - Intro to Mill.md @@ -81,7 +81,7 @@ To get started, download Mill and install it into your system via the following `curl`/`chmod` command: ```bash -sudo sh -c '(echo "#!/usr/bin/env sh" && curl -L https://github.com/lihaoyi/mill/releases/download/0.4.2/0.4.2) > /usr/local/bin/mill && chmod +x /usr/local/bin/mill' +sudo curl -L https://github.com/lihaoyi/mill/releases/download/0.5.0/0.5.0 > /usr/local/bin/mill && sudo chmod +x /usr/local/bin/mill ``` ### Bootstrap Scripts (Linux/OS-X Only) @@ -102,21 +102,9 @@ script directly: ``` The `mill` command will automatically use the version specified by the bootstrap -script, even if you installed it via other means. - -The `./mill` script has a version number embedded within it, which you can -update simply by editing the script. - -Lastly, you can also create a `.mill-version` file to specify the version of -Mill you wish to use: - -```bash -echo "0.5.0" > .mill-version -``` - -`.mill-version` takes precedence over the version of Mill specified in the -`./mill` script. - +script, even if you installed it via other means. The `./mill` file has a +version number embedded within it, which you can update simply by editing the +script. Note this only works for versions 0.5.0 and above. ### Development Releases @@ -842,3 +830,33 @@ build is not behaving as you would expect, feel free to poke around the various see what is being returned by a particular task. You can also simply delete folders within `out/` if you want to force portions of your project to be re-built, e.g. deleting the `out/main/` or `out/main/test/compile/` folders. + +## Overriding Mill Versions + +Apart from downloading and installing new versions of Mill globally, there are a +few ways of selecting/updating your Mill version: + +- Create a `.mill-version` file to specify the version of Mill you wish to use: + +```bash +echo "0.5.0" > .mill-version +``` + +`.mill-version` takes precedence over the version of Mill specified in the +`./mill` script. + +- ass in a `MILL_VERSION` environment variable, e.g. + +```bash +MILL_VERSION=0.5.0-3-4faefb mill __.compile + ``` + +or +```bash +MILL_VERSION=0.5.0-3-4faefb ./mill __.compile +``` + +to override the Mill version manually. This takes precedence over the version +specified in `./mill` or `.mill-version` + +Note that both of these overrides only work for versions 0.5.0 and above. \ No newline at end of file diff --git a/readme.md b/readme.md index f4f4019f..6fb333bf 100644 --- a/readme.md +++ b/readme.md @@ -167,6 +167,20 @@ corresponding version of Mill. ## Changelog +### 0.5.0 + +- Mill now supports a `./mill` + [bootstrap script](http://www.lihaoyi.com/mill/#bootstrap-scripts-linuxos-x-only), + 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-version` file or `MILL_VERSION` environment variable for + [Overriding Mill Versions](http://www.lihaoyi.com/mill/#overriding-mill-versions) + +- Fix scoverage: inherit repositories from outer project + [#645](https://github.com/lihaoyi/mill/pull/645) + ### 0.4.2 - Improvements to IntelliJ project generation [#616](https://github.com/lihaoyi/mill/pull/616) -- cgit v1.2.3