From ccd1085194ba73380cebe04cd1edf6b618eb158e Mon Sep 17 00:00:00 2001 From: Alexandre Archambault Date: Sat, 8 Apr 2017 18:19:10 +0200 Subject: [PATCH] Updates for 1.0.0-RC1 --- README.md | 26 +++++---- coursier | Bin 11832 -> 11811 bytes doc/README.md | 22 ++++---- notes/1.0.0-RC1.markdown | 102 +++++++++++++++++++++++++++++++++++ scripts/generate-launcher.sh | 2 +- 5 files changed, 131 insertions(+), 21 deletions(-) create mode 100644 notes/1.0.0-RC1.markdown diff --git a/README.md b/README.md index 9b61d6226..248bcead2 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,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.0-M15") +addSbtPlugin("io.get-coursier" % "sbt-coursier" % "1.0.0-RC1") ``` 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. @@ -111,8 +111,8 @@ $ ./coursier fetch org.apache.spark:spark-sql_2.11:1.6.1 com.twitter:algebird-sp Add to your `build.sbt` ```scala libraryDependencies ++= Seq( - "io.get-coursier" %% "coursier" % "1.0.0-M15", - "io.get-coursier" %% "coursier-cache" % "1.0.0-M15" + "io.get-coursier" %% "coursier" % "1.0.0-RC1", + "io.get-coursier" %% "coursier-cache" % "1.0.0-RC1" ) ``` @@ -215,7 +215,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.0-M15") +addSbtPlugin("io.get-coursier" % "sbt-coursier" % "1.0.0-RC1") ``` to `~/.sbt/0.13/plugins/build.sbt` @@ -368,7 +368,7 @@ The `bootstrap` generates tiny bootstrap launchers, able to pull their dependenc repositories on first launch. For example, the launcher of coursier is [generated](https://github.com/coursier/coursier/blob/master/project/generate-launcher.sh) with a command like ``` $ ./coursier bootstrap \ - io.get-coursier:coursier-cli_2.11:1.0.0-M15 \ + io.get-coursier:coursier-cli_2.11:1.0.0-RC1 \ -b -f -o coursier \ -M coursier.cli.Coursier ``` @@ -380,12 +380,12 @@ See `./coursier bootstrap --help` for a list of the available options. Add to your `build.sbt` ```scala libraryDependencies ++= Seq( - "io.get-coursier" %% "coursier" % "1.0.0-M15", - "io.get-coursier" %% "coursier-cache" % "1.0.0-M15" + "io.get-coursier" %% "coursier" % "1.0.0-RC1", + "io.get-coursier" %% "coursier-cache" % "1.0.0-RC1" ) ``` -The first module, `"io.get-coursier" %% "coursier" % "1.0.0-M15"`, mainly depends on +The first module, `"io.get-coursier" %% "coursier" % "1.0.0-RC1"`, 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), @@ -395,7 +395,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.0-M15"`, is precisely in charge of fetching +The second module, `"io.get-coursier" %% "coursier-cache" % "1.0.0-RC1"`, 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. @@ -440,7 +440,7 @@ scala> val repositories = Seq( | Cache.ivy2Local, | MavenRepository("https://repo1.maven.org/maven2") | ) -repositories: Seq[coursier.core.Repository] = List(IvyRepository(Pattern(List(Const(file://), Var(user.home), Const(/local/), Var(organisation), Const(/), Var(module), Const(/), Opt(WrappedArray(Const(scala_), Var(scalaVersion), Const(/))), Opt(WrappedArray(Const(sbt_), Var(sbtVersion), Const(/))), Var(revision), Const(/), Var(type), Const(s/), Var(artifact), Opt(WrappedArray(Const(-), Var(classifier))), Const(.), Var(ext))),None,None,true,true,true,true,None), MavenRepository(https://repo1.maven.org/maven2,None,false,None)) +repositories: Seq[coursier.core.Repository] = List(IvyRepository(Pattern(List(Const(file://), Var(user.home), Const(/local/), Var(organisation), Const(/), Var(module), Const(/), Opt(WrappedArray(Const(scala_), Var(scalaVersion), Const(/))), Opt(WrappedArray(Const(sbt_), Var(sbtVersion), Const(/))), Var(revision), Const(/), Var(type), Const(s/), Var(artifact), Opt(WrappedArray(Const(-), Var(classifier))), Const(.), Var(ext))),None,None,true,true,true,true,None), MavenRepository(https://repo1.maven.org/maven2,None,true,None)) ``` The first one, `Cache.ivy2Local`, is defined in `coursier.Cache`, itself from the `coursier-cache` module that we added above. As we can see, it is an `IvyRepository`, picking things under `~/.ivy2/local`. An `IvyRepository` @@ -467,7 +467,7 @@ scala> MavenRepository( | "https://nexus.corp.com/content/repositories/releases", | authentication = Some(Authentication("user", "pass")) | ) -res6: coursier.maven.MavenRepository = MavenRepository(https://nexus.corp.com/content/repositories/releases,None,false,Some(Authentication(user, *******))) +res6: coursier.maven.MavenRepository = MavenRepository(https://nexus.corp.com/content/repositories/releases,None,true,Some(Authentication(user, *******))) ``` Now that we have repositories, we're going to mix these with things from the `coursier-cache` module, @@ -752,11 +752,15 @@ Once RCs will be considered stable enough, `1.0.0` should be released. - Erem Boto ([@eboto](https://github.com/eboto)) - Erik LaBianca ([@easel](https://github.com/easel)) +- Guillaume Massé ([@MasseGuillaume](https://github.com/MasseGuillaume)) - Han Ju ([@darkjh](https://github.com/darkjh)) - Jameel Al-Aziz ([@jalaziz](https://github.com/jalaziz)) +- Jentsch ([@Jentsch](https://github.com/Jentsch)) - joriscode ([@joriscode](https://github.com/joriscode)) - Kazuyoshi Kato ([@kzys](https://github.com/kzys)) - Lars Hupel ([@larsrh](https://github.com/larsrh)) +- n4to4 ([@n4to4](https://github.com/n4to4)) +- Ólafur Páll Geirsson ([@olafurpg](https://github.com/olafurpg)) - Rodrigo Fernandes ([@rtfpessoa](https://github.com/rtfpessoa)) - Roman Iakovlev ([@RomanIakovlev](https://github.com/RomanIakovlev)) - Simon Ochsenreither ([@soc](https://github.com/soc)) diff --git a/coursier b/coursier index 13c8a2b55460c6b5eb639e6f89e5c32e9be629aa..6cada6f8bfeee885fead8a7cbfbeab130ad6b10f 100755 GIT binary patch delta 975 zcmdlHvp8mgBk#`%9bV}#gW2aYFfbHP^pmge?YHJ@HV|;BR=Iyrd;{;=(*cUDZ8cTN zViBA)TWH1H748xEL5X7#KhfpRB{E z%mQL;eytkG2w{1svoLWmaBzSXY)+Tk!N>K~($6uF!>YgNy z=d7i-mM-{h9i;k#`-QW-_BJg*7$?0z z4Dz%H&`S^}Fiifg>BItdjIEYNy`N5CfsRIy!G-{XEgP7Wl#5x@uRjoARc3ZBUbp1W zpGl71ULpr@p%M=!(+bo>LvgE_cfTI;b7&C`Kj`1`#1(WI)0i zo{A=a*Rqrcg*i|a9B{%}Ajaj%{@M}>AT?3u33{@?P=5o&N+@c6F-(51V*pm<%zN$I z6`%rkW(Ec+6h+}olM@+5jg9n@a}tY-1H8d*f;;K8!6AtjpuQX?bbZMzAbpcdbcDf? zJh@v(ibE4!R*vK0cn%0W@F<3j>1;isjF_frf}peyS}3F(g}CifJVuP)tSu z-H^$DfpV7xfN~;}b#?f7V37%m=E?cGVobj^Cb#P(NDg9YX5G&CIMv zyMbpzntV#RLEXM6iJnOUw`Wf-e!up@%V|o7Tb-`lJGn++wTb52gcFmJpQLlBpKVK7 z_UA{7hQnK1cRq_h6Xr{8Y+4n;y#Gu19>ttXPb?-}S{s&s%hc|KPxVE?!?*wU{tf;w zh{TM{rbdVv_^GZCO`Ax>bJ z{8-b81?(72Esc7;v%w!u>jxVcg&SW*QxXRntGaEIu}lR z=@gyR*%Z1`PuEZP(&-cDeb-*S?tM;QSL>XQ?xptCm(8yjUogJ#)zrlG((KtYWSOgg4kZ^>jpUIE3EWx2T zSzcSp@;Oj#a(-!1ab{|fet?Sk8$!JKAB0nJP?!W zbflOpm?zKD(Sq;=bfuVnu};>}Rf5OkP!2PhQ0&Gx?r2 zM=~s~kYiB@#dLm628N{k{F365qQnB-ti&SS(xRMVm}M~iAT3N#ec~wkH%{KDt0oUh W1;}v%3|J)aWAZm$b++YNARzz<-%dCH diff --git a/doc/README.md b/doc/README.md index 0d2bafa2c..250fda628 100644 --- a/doc/README.md +++ b/doc/README.md @@ -73,7 +73,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.0-M15") +addSbtPlugin("io.get-coursier" % "sbt-coursier" % "1.0.0-RC1") ``` 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. @@ -111,8 +111,8 @@ $ ./coursier fetch org.apache.spark:spark-sql_2.11:1.6.1 com.twitter:algebird-sp Add to your `build.sbt` ```scala libraryDependencies ++= Seq( - "io.get-coursier" %% "coursier" % "1.0.0-M15", - "io.get-coursier" %% "coursier-cache" % "1.0.0-M15" + "io.get-coursier" %% "coursier" % "1.0.0-RC1", + "io.get-coursier" %% "coursier-cache" % "1.0.0-RC1" ) ``` @@ -242,7 +242,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.0-M15") +addSbtPlugin("io.get-coursier" % "sbt-coursier" % "1.0.0-RC1") ``` to `~/.sbt/0.13/plugins/build.sbt` @@ -397,7 +397,7 @@ The `bootstrap` generates tiny bootstrap launchers, able to pull their dependenc repositories on first launch. For example, the launcher of coursier is [generated](https://github.com/coursier/coursier/blob/master/project/generate-launcher.sh) with a command like ``` $ ./coursier bootstrap \ - io.get-coursier:coursier-cli_2.11:1.0.0-M15 \ + io.get-coursier:coursier-cli_2.11:1.0.0-RC1 \ -b -f -o coursier \ -M coursier.cli.Coursier ``` @@ -409,12 +409,12 @@ See `./coursier bootstrap --help` for a list of the available options. Add to your `build.sbt` ```scala libraryDependencies ++= Seq( - "io.get-coursier" %% "coursier" % "1.0.0-M15", - "io.get-coursier" %% "coursier-cache" % "1.0.0-M15" + "io.get-coursier" %% "coursier" % "1.0.0-RC1", + "io.get-coursier" %% "coursier-cache" % "1.0.0-RC1" ) ``` -The first module, `"io.get-coursier" %% "coursier" % "1.0.0-M15"`, mainly depends on +The first module, `"io.get-coursier" %% "coursier" % "1.0.0-RC1"`, 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), @@ -424,7 +424,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.0-M15"`, is precisely in charge of fetching +The second module, `"io.get-coursier" %% "coursier-cache" % "1.0.0-RC1"`, 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. @@ -786,11 +786,15 @@ Once RCs will be considered stable enough, `1.0.0` should be released. - Erem Boto ([@eboto](https://github.com/eboto)) - Erik LaBianca ([@easel](https://github.com/easel)) +- Guillaume Massé ([@MasseGuillaume](https://github.com/MasseGuillaume)) - Han Ju ([@darkjh](https://github.com/darkjh)) - Jameel Al-Aziz ([@jalaziz](https://github.com/jalaziz)) +- Jentsch ([@Jentsch](https://github.com/Jentsch)) - joriscode ([@joriscode](https://github.com/joriscode)) - Kazuyoshi Kato ([@kzys](https://github.com/kzys)) - Lars Hupel ([@larsrh](https://github.com/larsrh)) +- n4to4 ([@n4to4](https://github.com/n4to4)) +- Ólafur Páll Geirsson ([@olafurpg](https://github.com/olafurpg)) - Rodrigo Fernandes ([@rtfpessoa](https://github.com/rtfpessoa)) - Roman Iakovlev ([@RomanIakovlev](https://github.com/RomanIakovlev)) - Simon Ochsenreither ([@soc](https://github.com/soc)) diff --git a/notes/1.0.0-RC1.markdown b/notes/1.0.0-RC1.markdown new file mode 100644 index 000000000..7a68297cd --- /dev/null +++ b/notes/1.0.0-RC1.markdown @@ -0,0 +1,102 @@ +## Changes + +### New features + +* Allow to launch applications from their Scaladex name via the `coursier launch` command ([#385], thanks to [@MasseGuillaume] too) + +Example +``` +$ coursier launch lihaoyi/Ammonite +$ coursier launch scalameta/scalafmt +``` + +* Add sbt-shading plugin ([#426]) + +Allows to shade dependencies like +``` +lazy val myProj = project + .enablePlugins(coursier.ShadingPlugin) + .settings( + shadingNamespace := "myproj.shaded", + libraryDependencies += "com" %% "foo" % "0.2.3" % "shaded" + ) +``` +`sbt myProj/shading:publish` then publishes `myProj` with `com.foo` shaded under the `myproj.shaded` namespace. + +* Add experimental 100% coursier-based sbt launcher ([#439], available at [csbt]) + +Try it from the coursier sources with +``` +$ ./csbt +``` + +Allows to add plugins from `project/build.properties` (optionally renamed to `sbt.properties` at the root of the project), like +``` +sbt.version=0.13.13 + +plugins = [ + "org.xerial.sbt:sbt-pack:0.8.2" + ... +] +``` + +* Helper syntax for bintray Ivy repositories ([#481], thanks to [@olafurpg]) + +Example +``` +$ coursier launch -r bintray-ivy:org/repo-name ... +``` + +### Bug fixes + +* Fix javadoc and sources of scala-library / scala-reflect not found when using the same Scala version as sbt ([#406]) +* Better handling of packaging / artifact types / optional dependencies from Maven repositories ([#430]) - fixes broken or buggy `sbt console`, missing JARs for dependencies having packaging POM in their POM file. +* Fix minor glitch in progress bar display ([#439], display not cleaned properly after progress bars) +* No more `Unrecognized repository inter-project` when running `sbt updateSbtClassifiers` ([#439]) +* Don't trap parent POM or dependency management metadata errors ([#437], thanks to [@kzys]) +* Trim Maven properties ([#421], thanks to [@kzys]) + +### Version bumps + +* Switch to scala 2.12.1 ([#426]) +* Switch to scalaz 7.2.8 ([#426]) +* Switch to scalajs 0.6.15 ([#467]) + +### Other + +* Fix typos in README ([#413], thanks to [@n4to4]) +* Shade fastparse dependency ([#443]) +* Use sbt credentials by default ([#445], thanks to [@Jentsch], no more `coursierUseSbtCredentials` key to set to `true`) +* Some code clean up ([#472], thanks to [@Jentsch], [#474], [#476]) +* Have `MavenRepository` be fine with sbt plugins by default ([#477], no more flag to manually set to true) +* Tweaks in `coursier spark-submit` command ([#478], [#484], [#486]) + + +[#385]: https://github.com/alexarchambault/coursier/pull/385 +[#406]: https://github.com/alexarchambault/coursier/pull/406 +[#413]: https://github.com/alexarchambault/coursier/pull/413 +[#421]: https://github.com/alexarchambault/coursier/pull/421 +[#426]: https://github.com/alexarchambault/coursier/pull/426 +[#430]: https://github.com/alexarchambault/coursier/pull/430 +[#437]: https://github.com/alexarchambault/coursier/pull/437 +[#439]: https://github.com/alexarchambault/coursier/pull/439 +[#443]: https://github.com/alexarchambault/coursier/pull/443 +[#445]: https://github.com/alexarchambault/coursier/pull/445 +[#467]: https://github.com/alexarchambault/coursier/pull/467 +[#472]: https://github.com/alexarchambault/coursier/pull/472 +[#474]: https://github.com/alexarchambault/coursier/pull/474 +[#476]: https://github.com/alexarchambault/coursier/pull/476 +[#477]: https://github.com/alexarchambault/coursier/pull/477 +[#478]: https://github.com/alexarchambault/coursier/pull/478 +[#481]: https://github.com/alexarchambault/coursier/pull/481 +[#484]: https://github.com/alexarchambault/coursier/pull/484 +[#486]: https://github.com/alexarchambault/coursier/pull/486 +[@Jentsch]: https://github.com/Jentsch +[@kzys]: https://github.com/kzys +[@MasseGuillaume]: https://github.com/MasseGuillaume +[@n4to4]: https://github.com/n4to4 +[@olafurpg]: https://github.com/olafurpg + +### Non-backward compatible changes + +* Some internal (but public) API changed, it is recommended to re-compile your code against `1.0.0-RC1`. \ No newline at end of file diff --git a/scripts/generate-launcher.sh b/scripts/generate-launcher.sh index 2021aee13..e709f9b68 100755 --- a/scripts/generate-launcher.sh +++ b/scripts/generate-launcher.sh @@ -1,6 +1,6 @@ #!/bin/bash -VERSION=1.0.0-M15 +VERSION=1.0.0-RC1 CACHE_VERSION=v1 SBTPACK_LAUNCHER="$(dirname "$0")/../cli/target/pack/bin/coursier"