From a20ab8f6e7c66ca043d802baaea37ac2b01ecb7c Mon Sep 17 00:00:00 2001 From: Alexandre Archambault Date: Fri, 25 May 2018 12:08:29 +0200 Subject: [PATCH 1/6] Update launcher size in README MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I guess it could be proguarded a bit now… --- README.md | 4 ++-- doc/readme/README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 0a6289256..e7e4849b8 100644 --- a/README.md +++ b/README.md @@ -255,7 +255,7 @@ Download and run its launcher with $ curl -L -o coursier https://git.io/vgvpD && chmod +x coursier && ./coursier --help ``` -The launcher itself weighs only 8 kB and can be easily embedded as is in other projects. +The launcher itself weighs only 30 kB and can be easily embedded as is in other projects. It downloads the artifacts required to launch coursier on the first run. Alternatively on OS X, install it via homebrew, that puts the `coursier` launcher directly in your PATH, @@ -641,7 +641,7 @@ They highlight in red version bumps that may not be binary compatible, changing ### Generating bootstrap launchers -The `coursier bootstrap` command generates tiny bootstrap launchers (~12 kB). These are able to download their dependencies upon first launch, then launch the corresponding application. E.g. to generate a launcher for scalafmt, +The `coursier bootstrap` command generates tiny bootstrap launchers (~30 kB). These are able to download their dependencies upon first launch, then launch the corresponding application. E.g. to generate a launcher for scalafmt, ``` $ coursier bootstrap com.geirsson:scalafmt-cli_2.11:0.2.3 -o scalafmt ``` diff --git a/doc/readme/README.md b/doc/readme/README.md index a2fe2c873..668e5cedc 100644 --- a/doc/readme/README.md +++ b/doc/readme/README.md @@ -283,7 +283,7 @@ Download and run its launcher with $ curl -L -o coursier https://git.io/vgvpD && chmod +x coursier && ./coursier --help ``` -The launcher itself weighs only 8 kB and can be easily embedded as is in other projects. +The launcher itself weighs only 30 kB and can be easily embedded as is in other projects. It downloads the artifacts required to launch coursier on the first run. Alternatively on OS X, install it via homebrew, that puts the `coursier` launcher directly in your PATH, @@ -675,7 +675,7 @@ They highlight in red version bumps that may not be binary compatible, changing ### Generating bootstrap launchers -The `coursier bootstrap` command generates tiny bootstrap launchers (~12 kB). These are able to download their dependencies upon first launch, then launch the corresponding application. E.g. to generate a launcher for scalafmt, +The `coursier bootstrap` command generates tiny bootstrap launchers (~30 kB). These are able to download their dependencies upon first launch, then launch the corresponding application. E.g. to generate a launcher for scalafmt, ``` $ coursier bootstrap com.geirsson:scalafmt-cli_2.11:0.2.3 -o scalafmt ``` From 97a92914f316942dbad0d62a5ede0de94adf1571 Mon Sep 17 00:00:00 2001 From: Alexandre Archambault Date: Fri, 25 May 2018 12:08:29 +0200 Subject: [PATCH 2/6] Add native bootstrap section in README --- README.md | 23 +++++++++++++++++++++-- doc/readme/README.md | 23 +++++++++++++++++++++-- 2 files changed, 42 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index e7e4849b8..51d83a2ab 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,10 @@ Lastly, it can be used programmatically via its [API](#api) and has a Scala JS [ 3. [Usage](#usage) 1. [SBT plugin](#sbt-plugin-1) 2. [Command-line](#command-line-1) + 1. [launch](#launch) + 2. [fetch](#fetch) + 3. [bootstrap](#bootstrap) + 4. [native bootstrap](#native-bootstrap) 3. [API](#api-1) 4. [Scala JS demo](#scala-js-demo) 4. [Extra features](#extra-features) @@ -404,9 +408,9 @@ $ ./coursier fetch org.apache.avro:avro:1.7.4 --json-output-file report.json -### bootstrap +#### bootstrap -The `bootstrap` generates tiny bootstrap launchers, able to pull their dependencies from +The `bootstrap` command generates tiny bootstrap launchers, able to pull their dependencies from repositories on first launch. For example, the launcher of coursier is [generated](https://github.com/coursier/coursier/blob/master/scripts/generate-launcher.sh) with a command like ``` $ ./coursier bootstrap \ @@ -417,6 +421,21 @@ $ ./coursier bootstrap \ See `./coursier bootstrap --help` for a list of the available options. +#### native bootstrap + +The `bootstrap` command can also generate [scala-native](http://scala-native.org) executables. This requires the corresponding scala-native app to publish its JARs, on Maven Central for example, and your environment to be [set up for scala-native](http://www.scala-native.org/en/latest/user/setup.html). One can then generate executables with a command like +``` +$ ./coursier bootstrap \ + --native \ + io.get-coursier:echo_native0.3_2.11:1.0.1 \ + -o echo-native +[info] Linking (2354 ms) +[info] Discovered 1291 classes and 9538 methods +… +$ ./echo-native hey +hey +``` + ### API Add to your `build.sbt` diff --git a/doc/readme/README.md b/doc/readme/README.md index 668e5cedc..b5b5d3f98 100644 --- a/doc/readme/README.md +++ b/doc/readme/README.md @@ -53,6 +53,10 @@ Lastly, it can be used programmatically via its [API](#api) and has a Scala JS [ 3. [Usage](#usage) 1. [SBT plugin](#sbt-plugin-1) 2. [Command-line](#command-line-1) + 1. [launch](#launch) + 2. [fetch](#fetch) + 3. [bootstrap](#bootstrap) + 4. [native bootstrap](#native-bootstrap) 3. [API](#api-1) 4. [Scala JS demo](#scala-js-demo) 4. [Extra features](#extra-features) @@ -433,9 +437,9 @@ $ ./coursier fetch org.apache.avro:avro:1.7.4 --json-output-file report.json // TODO options: repositories, sources/javadoc, attributes ``` -### bootstrap +#### bootstrap -The `bootstrap` generates tiny bootstrap launchers, able to pull their dependencies from +The `bootstrap` command generates tiny bootstrap launchers, able to pull their dependencies from repositories on first launch. For example, the launcher of coursier is [generated](https://github.com/coursier/coursier/blob/master/scripts/generate-launcher.sh) with a command like ``` $ ./coursier bootstrap \ @@ -446,6 +450,21 @@ $ ./coursier bootstrap \ See `./coursier bootstrap --help` for a list of the available options. +#### native bootstrap + +The `bootstrap` command can also generate [scala-native](http://scala-native.org) executables. This requires the corresponding scala-native app to publish its JARs, on Maven Central for example, and your environment to be [set up for scala-native](http://www.scala-native.org/en/latest/user/setup.html). One can then generate executables with a command like +``` +$ ./coursier bootstrap \ + --native \ + io.get-coursier:echo_native0.3_2.11:1.0.1 \ + -o echo-native +[info] Linking (2354 ms) +[info] Discovered 1291 classes and 9538 methods +… +$ ./echo-native hey +hey +``` + ### API Add to your `build.sbt` From e62618f1367b265f7297e4e93fa079d2fea2c04a Mon Sep 17 00:00:00 2001 From: Alexandre Archambault Date: Fri, 25 May 2018 12:08:29 +0200 Subject: [PATCH 3/6] Update bootstrap example in README --- README.md | 3 +-- doc/readme/README.md | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 51d83a2ab..6d608d2e4 100644 --- a/README.md +++ b/README.md @@ -415,8 +415,7 @@ repositories on first launch. For example, the launcher of coursier is [generate ``` $ ./coursier bootstrap \ io.get-coursier:coursier-cli_2.11:1.0.1 \ - -b -f -o coursier \ - -M coursier.cli.Coursier + -f -o coursier ``` See `./coursier bootstrap --help` for a list of the available options. diff --git a/doc/readme/README.md b/doc/readme/README.md index b5b5d3f98..0b9f9e017 100644 --- a/doc/readme/README.md +++ b/doc/readme/README.md @@ -444,8 +444,7 @@ repositories on first launch. For example, the launcher of coursier is [generate ``` $ ./coursier bootstrap \ io.get-coursier:coursier-cli_2.11:1.0.1 \ - -b -f -o coursier \ - -M coursier.cli.Coursier + -f -o coursier ``` See `./coursier bootstrap --help` for a list of the available options. From b90b95a174c37bd6d32bb4ace12787900b7d3132 Mon Sep 17 00:00:00 2001 From: Alexandre Archambault Date: Fri, 25 May 2018 12:08:30 +0200 Subject: [PATCH 4/6] Remove deprecated roadmap section in README --- README.md | 21 +++------------------ doc/readme/README.md | 21 +++------------------ 2 files changed, 6 insertions(+), 36 deletions(-) diff --git a/README.md b/README.md index 6d608d2e4..5f31735ef 100644 --- a/README.md +++ b/README.md @@ -66,10 +66,9 @@ Lastly, it can be used programmatically via its [API](#api) and has a Scala JS [ 4. [Extra protocols](#extra-protocols) 5. [Limitations](#limitations) 6. [FAQ](#faq) -7. [Roadmap](#roadmap) -8. [Development tips](#development-tips) -9. [Contributors](#contributors) -10. [Projects using coursier](#projects-using-coursier) +7. [Development tips](#development-tips) +8. [Contributors](#contributors) +9. [Projects using coursier](#projects-using-coursier) ## Quick start @@ -797,20 +796,6 @@ It can be run from another terminal with $ cli/target/pack/bin/coursier ``` -## Roadmap - -The first releases were milestones like `0.1.0-M?`. As a launcher, basic Ivy -repositories support, and an SBT plugin, were added in the mean time, -coursier is now aiming directly at `1.0.1`. - -The last features I'd like to add until a feature freeze are mainly a -better / nicer output, for both the command-line tools and the SBT plugin. -These are tracked via GitHub [issues](https://github.com/coursier/coursier/issues?q=is%3Aopen+is%3Aissue+milestone%3A1.0.1), along with other points. -Milestones will keep being released until then. -Then coursier should undergo `RC` releases, with no new features added, and -only fixes and minor refactorings between them. -Once RCs will be considered stable enough, `1.0.1` should be released. - ## Contributors See the [up-to-date list of contributors on GitHub](https://github.com/coursier/coursier/graphs/contributors). diff --git a/doc/readme/README.md b/doc/readme/README.md index 0b9f9e017..58b72fcb7 100644 --- a/doc/readme/README.md +++ b/doc/readme/README.md @@ -66,10 +66,9 @@ Lastly, it can be used programmatically via its [API](#api) and has a Scala JS [ 4. [Extra protocols](#extra-protocols) 5. [Limitations](#limitations) 6. [FAQ](#faq) -7. [Roadmap](#roadmap) -8. [Development tips](#development-tips) -9. [Contributors](#contributors) -10. [Projects using coursier](#projects-using-coursier) +7. [Development tips](#development-tips) +8. [Contributors](#contributors) +9. [Projects using coursier](#projects-using-coursier) ## Quick start @@ -831,20 +830,6 @@ It can be run from another terminal with $ cli/target/pack/bin/coursier ``` -## Roadmap - -The first releases were milestones like `0.1.0-M?`. As a launcher, basic Ivy -repositories support, and an SBT plugin, were added in the mean time, -coursier is now aiming directly at `1.0.1`. - -The last features I'd like to add until a feature freeze are mainly a -better / nicer output, for both the command-line tools and the SBT plugin. -These are tracked via GitHub [issues](https://github.com/coursier/coursier/issues?q=is%3Aopen+is%3Aissue+milestone%3A1.0.1), along with other points. -Milestones will keep being released until then. -Then coursier should undergo `RC` releases, with no new features added, and -only fixes and minor refactorings between them. -Once RCs will be considered stable enough, `1.0.1` should be released. - ## Contributors See the [up-to-date list of contributors on GitHub](https://github.com/coursier/coursier/graphs/contributors). From 7bae4d4728a990655ed6f101ad98dd9146cfd8d7 Mon Sep 17 00:00:00 2001 From: Alexandre Archambault Date: Fri, 25 May 2018 12:08:30 +0200 Subject: [PATCH 5/6] Fix wrongfully updated versions in README --- README.md | 2 +- doc/readme/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5f31735ef..fa697da68 100644 --- a/README.md +++ b/README.md @@ -702,7 +702,7 @@ same time, I'd recommend an extreme caution at first, like manually inspecting the metadata files and compare with previous ones, to ensure everything's fine. coursier publishes its artifacts with its own plugin enabled since version -`1.0.1-M2` though, without any apparent problem. +`1.0.0-M2` though, without any apparent problem. #### No wait on locked file diff --git a/doc/readme/README.md b/doc/readme/README.md index 58b72fcb7..8aac40eb3 100644 --- a/doc/readme/README.md +++ b/doc/readme/README.md @@ -736,7 +736,7 @@ same time, I'd recommend an extreme caution at first, like manually inspecting the metadata files and compare with previous ones, to ensure everything's fine. coursier publishes its artifacts with its own plugin enabled since version -`1.0.1-M2` though, without any apparent problem. +`1.0.0-M2` though, without any apparent problem. #### No wait on locked file From 6de589ac9be95da3eede9fac81f556dc7f590932 Mon Sep 17 00:00:00 2001 From: Alexandre Archambault Date: Fri, 25 May 2018 12:08:30 +0200 Subject: [PATCH 6/6] Update version in README --- README.md | 20 ++++++++++---------- doc/readme/README.md | 20 ++++++++++---------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index fa697da68..ba8104ff6 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,7 @@ Lastly, it can be used programmatically via its [API](#api) and has a Scala JS [ Enable the SBT plugin by adding ```scala -addSbtPlugin("io.get-coursier" % "sbt-coursier" % "1.0.1") +addSbtPlugin("io.get-coursier" % "sbt-coursier" % "1.0.3") ``` to `~/.sbt/0.13/plugins/build.sbt` (enables it globally), or to the `project/plugins.sbt` file of an SBT project. Tested with SBT 0.13.8 / 0.13.9 / 0.13.11 / 0.13.12 / 0.13.13 / 0.13.15 / 0.13.16-M1 / 1.0.1-M5. @@ -129,8 +129,8 @@ echo 'autoload -Uz compinit ; compinit' >> ~/.zshrc Add to your `build.sbt` ```scala libraryDependencies ++= Seq( - "io.get-coursier" %% "coursier" % "1.0.1", - "io.get-coursier" %% "coursier-cache" % "1.0.1" + "io.get-coursier" %% "coursier" % "1.0.3", + "io.get-coursier" %% "coursier-cache" % "1.0.3" ) ``` @@ -238,7 +238,7 @@ of the cache used by a particular project, in case you have any doubt about what Enable the SBT plugin globally by adding ```scala -addSbtPlugin("io.get-coursier" % "sbt-coursier" % "1.0.1") +addSbtPlugin("io.get-coursier" % "sbt-coursier" % "1.0.3") ``` to `~/.sbt/0.13/plugins/build.sbt` @@ -413,7 +413,7 @@ The `bootstrap` command generates tiny bootstrap launchers, able to pull their d repositories on first launch. For example, the launcher of coursier is [generated](https://github.com/coursier/coursier/blob/master/scripts/generate-launcher.sh) with a command like ``` $ ./coursier bootstrap \ - io.get-coursier:coursier-cli_2.11:1.0.1 \ + io.get-coursier:coursier-cli_2.11:1.0.3 \ -f -o coursier ``` @@ -425,7 +425,7 @@ The `bootstrap` command can also generate [scala-native](http://scala-native.org ``` $ ./coursier bootstrap \ --native \ - io.get-coursier:echo_native0.3_2.11:1.0.1 \ + io.get-coursier:echo_native0.3_2.11:1.0.3 \ -o echo-native [info] Linking (2354 ms) [info] Discovered 1291 classes and 9538 methods @@ -439,14 +439,14 @@ hey Add to your `build.sbt` ```scala libraryDependencies ++= Seq( - "io.get-coursier" %% "coursier" % "1.0.1", - "io.get-coursier" %% "coursier-cache" % "1.0.1" + "io.get-coursier" %% "coursier" % "1.0.3", + "io.get-coursier" %% "coursier-cache" % "1.0.3" ) ``` Note that the examples below are validated against the current sources of coursier. You may want to read the [documentation of the latest release](https://github.com/coursier/coursier/blob/v1.1.0-M4/README.md#api-1) of coursier instead. -The first module, `"io.get-coursier" %% "coursier" % "1.0.1"`, mainly depends on +The first module, `"io.get-coursier" %% "coursier" % "1.0.3"`, mainly depends on `scalaz-core` (and only it, *not* `scalaz-concurrent` for example). It contains among others, definitions, mainly in [`Definitions.scala`](https://github.com/coursier/coursier/blob/master/core/shared/src/main/scala/coursier/core/Definitions.scala), @@ -456,7 +456,7 @@ that expects to be given metadata, wrapped in any `Monad`, then feeds these to ` you the final `Resolution`, wrapped in the same `Monad` it was given input. This final `Resolution` has all the dependencies, including the transitive ones. -The second module, `"io.get-coursier" %% "coursier-cache" % "1.0.1"`, is precisely in charge of fetching +The second module, `"io.get-coursier" %% "coursier-cache" % "1.0.3"`, is precisely in charge of fetching these input metadata. It uses `scalaz.concurrent.Task` as a `Monad` to wrap them. It also fetches artifacts (JARs, etc.). It caches all of these (metadata and artifacts) on disk, and validates checksums too. diff --git a/doc/readme/README.md b/doc/readme/README.md index 8aac40eb3..8fe3f666d 100644 --- a/doc/readme/README.md +++ b/doc/readme/README.md @@ -76,7 +76,7 @@ Lastly, it can be used programmatically via its [API](#api) and has a Scala JS [ Enable the SBT plugin by adding ```scala -addSbtPlugin("io.get-coursier" % "sbt-coursier" % "1.0.1") +addSbtPlugin("io.get-coursier" % "sbt-coursier" % "1.0.3") ``` to `~/.sbt/0.13/plugins/build.sbt` (enables it globally), or to the `project/plugins.sbt` file of an SBT project. Tested with SBT 0.13.8 / 0.13.9 / 0.13.11 / 0.13.12 / 0.13.13 / 0.13.15 / 0.13.16-M1 / 1.0.1-M5. @@ -129,8 +129,8 @@ echo 'autoload -Uz compinit ; compinit' >> ~/.zshrc Add to your `build.sbt` ```scala libraryDependencies ++= Seq( - "io.get-coursier" %% "coursier" % "1.0.1", - "io.get-coursier" %% "coursier-cache" % "1.0.1" + "io.get-coursier" %% "coursier" % "1.0.3", + "io.get-coursier" %% "coursier-cache" % "1.0.3" ) ``` @@ -265,7 +265,7 @@ of the cache used by a particular project, in case you have any doubt about what Enable the SBT plugin globally by adding ```scala -addSbtPlugin("io.get-coursier" % "sbt-coursier" % "1.0.1") +addSbtPlugin("io.get-coursier" % "sbt-coursier" % "1.0.3") ``` to `~/.sbt/0.13/plugins/build.sbt` @@ -442,7 +442,7 @@ The `bootstrap` command generates tiny bootstrap launchers, able to pull their d repositories on first launch. For example, the launcher of coursier is [generated](https://github.com/coursier/coursier/blob/master/scripts/generate-launcher.sh) with a command like ``` $ ./coursier bootstrap \ - io.get-coursier:coursier-cli_2.11:1.0.1 \ + io.get-coursier:coursier-cli_2.11:1.0.3 \ -f -o coursier ``` @@ -454,7 +454,7 @@ The `bootstrap` command can also generate [scala-native](http://scala-native.org ``` $ ./coursier bootstrap \ --native \ - io.get-coursier:echo_native0.3_2.11:1.0.1 \ + io.get-coursier:echo_native0.3_2.11:1.0.3 \ -o echo-native [info] Linking (2354 ms) [info] Discovered 1291 classes and 9538 methods @@ -468,14 +468,14 @@ hey Add to your `build.sbt` ```scala libraryDependencies ++= Seq( - "io.get-coursier" %% "coursier" % "1.0.1", - "io.get-coursier" %% "coursier-cache" % "1.0.1" + "io.get-coursier" %% "coursier" % "1.0.3", + "io.get-coursier" %% "coursier-cache" % "1.0.3" ) ``` Note that the examples below are validated against the current sources of coursier. You may want to read the [documentation of the latest release](https://github.com/coursier/coursier/blob/v1.1.0-M4/README.md#api-1) of coursier instead. -The first module, `"io.get-coursier" %% "coursier" % "1.0.1"`, mainly depends on +The first module, `"io.get-coursier" %% "coursier" % "1.0.3"`, mainly depends on `scalaz-core` (and only it, *not* `scalaz-concurrent` for example). It contains among others, definitions, mainly in [`Definitions.scala`](https://github.com/coursier/coursier/blob/master/core/shared/src/main/scala/coursier/core/Definitions.scala), @@ -485,7 +485,7 @@ that expects to be given metadata, wrapped in any `Monad`, then feeds these to ` you the final `Resolution`, wrapped in the same `Monad` it was given input. This final `Resolution` has all the dependencies, including the transitive ones. -The second module, `"io.get-coursier" %% "coursier-cache" % "1.0.1"`, is precisely in charge of fetching +The second module, `"io.get-coursier" %% "coursier-cache" % "1.0.3"`, is precisely in charge of fetching these input metadata. It uses `scalaz.concurrent.Task` as a `Monad` to wrap them. It also fetches artifacts (JARs, etc.). It caches all of these (metadata and artifacts) on disk, and validates checksums too.