coursier

Pure Scala Artifact Fetching

APACHE-2.0 License

Stars
2K

Bot releases are hidden (Show)

coursier - v2.0.0-RC6-11

Published by alexarchambault over 4 years ago

Manifest JAR -based launchers

The bootstrap command can now generate launchers that rely on the Class-Path field of manifests to set the launcher classpath. This requires all the required JARs to be already in the coursier cache, and these launchers can typically only be run on the current machine, as they hardcode the path to the cache.

Example

$ cs bootstrap coursier -o coursier --manifest-jar
$ ls -lh coursier
-rwxr-xr-x  1 user  group   2,1K 20 mar 16:14 coursier
$ unzip -l coursier
  Length      Date    Time    Name
---------  ---------- -----   ----
     7939  03-20-2020 16:14   META-INF/MANIFEST.MF
---------                     -------
     7939                     1 file

In the generated JAR, META-INF/MANIFEST.MF contains things like

Manifest-Version: 1.0
Class-Path: /Users/alexandre/.coursier/cache/v1/https/repo1.maven.org/
 maven2/io/get-coursier/coursier-cli_2.12/2.0.0-RC6-10/coursier-cli_2.
 12-2.0.0-RC6-10.jar /Users/alexandre/.coursier/cache/v1/https/repo1.m
 aven.org/maven2/org/scala-lang/scala-library/2.12.10/scala-library-2.
 12.10.jar …
Main-Class: coursier.cli.Coursier

Publish the coursier-launcher module in 2.11

This module allows to generate bootstrap, assemblies, etc. The bootstrap command relies on it. It has no dependencies, so it's straightforward to compile it and publish it in 2.11 too. (The 2.11 version should be used by ammonite-runner in particular.)

coursier - v2.0.0-RC6-10

Published by alexarchambault over 4 years ago

  • Accept exclusions for individual dependencies on the CLI, like
$ cs resolve org:name:version,exclude=something%foo
  • Ensure resolve command-specific options aren't accepted from the fetch, launch, and bootstrap commands. This includes the --tree, --reverse-tree, and --what-depends-on options in particular.

  • Add retry helpers in the resolve command, allowing to retry resolving a number of times until resolution succeeds, like

$ cs resolve org:name:ver --retry 1min --attempts 30

That allows to wait for a sync to Maven Central with a single command for example.

coursier - v2.0.0-RC6-9

Published by alexarchambault over 4 years ago

  • Fix issue appending directories to PATH on Windows, in the install / java / setup commands
coursier - v2.0.0-RC6-8

Published by alexarchambault over 4 years ago

  • Various changes and fixes in the java, install, and setup commands (see discussion in 2.0.0-RC6-2)
coursier - v2.0.0-RC6-7

Published by alexarchambault over 4 years ago

  • Various changes and fixes in the java, install, and setup commands (see discussion in 2.0.0-RC6-2)
coursier - v2.0.0-RC6-6

Published by alexarchambault over 4 years ago

  • Various changes and fixes in the java, install, and setup commands (see discussion in 2.0.0-RC6-2)
coursier - v2.0.0-RC6-5

Published by alexarchambault over 4 years ago

  • Order artifacts by default in fetch, launch, and bootstrap commands (classpath order, #1546, thanks to @dwijnand)
  • Various changes and fixes in the new java and setup commands (see discussion in 2.0.0-RC6-2)
coursier - v2.0.0-RC6-4

Published by alexarchambault over 4 years ago

Like 2.0.0-RC6-3, this is mostly a convenience release, to more easily test the latest experimental developments. (See the release notes for 2.0.0-RC6-2 for more discussion.)

coursier - v2.0.0-RC6-3

Published by alexarchambault over 4 years ago

Mostly a convenience release, to more easily test the latest experimental developments. (See the release notes for 2.0.0-RC6-2 for more discussion.)

coursier - v2.0.0-RC6-2

Published by alexarchambault over 4 years ago

Native launcher changes

  • Don't let native-image interpret the -D options passed to the native launcher, so that we can interpret those ourselves as normal options, like the JAR-based launcher does.
  • Have the launch command accept Java options via --java-opt / -J, that are passed to java when launching a JVM application from the native launcher, like cs launch -J -Xmx3g ammonite.

In progress changes

The changes below are meant to be described more extensively and documented in later releases, while being more tested in the mean time. These are mentioned here for the sake of comprehensiveness.

  • Major in-progress overhaul of the internals of the bootstrap and install commands.
  • Early support for pre-built native launchers for the install command.
  • Experimental java and java-home commands. java fetches and starts a custom JVM (like cs java --jvm [email protected]+ -version), and java-home fetches and prints the home directory of a custom JVM (like cs java-home --jvm 11).
  • Add support for generating GraalVM native images to the bootstrap command. Use like cs bootstrap --native-image coursier -o custom-cs.
  • Add experimental setup command, installing a JVM if none is found locally, updating JAVA_HOME and PATH if needed, and installing a few applications via the install command (cs, ammonite, sbt, in particular).

Other changes

  • Add a --scala alias for --scala-version, in most CLI commands. Use like cs launch ammonite --scala 2.13.
coursier - v2.0.0-RC6-1

Published by alexarchambault over 4 years ago

  • Fix ugly List(…) in the command listing of the help message
coursier - v2.0.0-RC6

Published by alexarchambault over 4 years ago

  • Drop scala 2.11 support
  • Handle JDK version intervals in Maven profile activation (#1504)
  • Fix regression in the handling of properties when both parent POMs and Maven import scope are involved (regression since 2.0.0-RC5-4, #1505)
  • Add support for mirrors when using the coursier.Versions API (#1515, thanks to @fthomas)
  • Switch to Scala.JS 0.6.32
  • Don't issue HEAD requests in local mode (--mode local from the CLI, #1522, thanks to @fthomas)
  • Fix progress bars in the Windows command terminal (regression since around 2.0.0-RC3-3)
  • Build native CLI launchers with GraalVM 19.3.1, build Windows launchers too (#1525, see instructions on the website)
coursier - v2.0.0-RC5-6

Published by alexarchambault almost 5 years ago

  • Fix rare occurrence of attempts to download the same URL twice in parallel, which is rejected by the default logger (regression in 2.0.0-RC5-4)
coursier - v2.0.0-RC5-5

Published by alexarchambault almost 5 years ago

  • Fix default cache path being null/Coursier/cache/v1 on Windows, with JDK 1.8.0b231 / 11.0.5 and later versions, when a SecurityManager was set up (which sbt does in its JVM). (See https://github.com/coursier/coursier/issues/1438 and the issues linked from there for more details.)
coursier - v2.0.0-RC5-4

Published by alexarchambault almost 5 years ago

  • Fix disprecancy with Maven in the handling of Maven properties, affecting dependencies substituting properties in their parent POM (#1457)
  • Add --candidate-urls option to resolve command, printing the URLs of possible artifacts. Note that optional artifacts are printed too, so some of those URLs may return 404 Not Found. Authentication isn't printed / reported either.
  • Mark the artifact of dependencies with an explicit classifier or artifact type as non optional. This means things like cs fetch org.scala-lang:scala-library:2.13.1,classifier=foo now fail loudly.
coursier - v2.0.0-RC5-3

Published by alexarchambault almost 5 years ago

  • Add coursier.Versions API to list the versions of a module
  • Switch to Scala.JS 0.6.31
coursier - v2.0.0-RC5-2

Published by alexarchambault almost 5 years ago

.

coursier - v2.0.0-RC5-1

Published by alexarchambault almost 5 years ago

.

coursier - v2.0.0-RC5

Published by alexarchambault almost 5 years ago

.

coursier - v2.0.0-RC4-1

Published by alexarchambault about 5 years ago

.