coursier

Pure Scala Artifact Fetching

APACHE-2.0 License

Stars
2K

Bot releases are hidden (Show)

coursier - v2.0.3

Published by alexarchambault about 4 years ago

Fixes

  • Fix javax.net.ssl.SSLHandshakeException thrown when downloading things from github.com from the native Windows launcher
coursier - v2.0.2

Published by alexarchambault about 4 years ago

Changes

  • Add sbtn to the default application list, installed during cs setup

Fixes

  • Interpret some SSL handshake errors as not found errors, when looking for prebuilt binaries during cs install and cs setup (this has been a problem when installing cs on Windows since 2.0.1 was tagged, when using the native launcher)

Miscellaneous

  • Adapt some tests to make them pass on Windows (with or without CRLF to LF conversion in particular, #1890, thanks to @martijnhoekstra)
  • Mention in the documentation how to pass custom Java options to apps installed by cs install (#1892, thanks to @Poorva17)
coursier - v2.0.1

Published by alexarchambault about 4 years ago

Changes

  • Add support for compressed prebuilt binaries when installing apps (see the sbtn app descriptor for an example)
coursier - v2.0.0

Published by alexarchambault about 4 years ago

No changes since 2.0.0-RC6-27.

coursier - v2.0.0-RC6-27

Published by alexarchambault about 4 years ago

Changes

  • Add support for the arm and aarch64 JVM architectures in the java and java-home commands (#1849, thanks to @matsluni)
  • Build native launchers with GraalVM 20.1.0 Java 11 (former coursier versions used GraalVM 19.3.1 Java 8)
  • Add --jvm-index option to the java / java-home / setup commands, allowing to pass a custom JVM index URL, also accepting aliases such as jabba (current default) and cs (supporting less JVM flavors, but more up-to-date)

Other

  • coursier now uses GitHub actions for its CI, rather than Travis CI and Appveyor
  • The switch to GraalVM 20.1.0 and GitHub actions fixes the generation of native launchers on the CI, which should be shipped as GitHub release assets again (which was broken in 2.0.0-RC6-25 and 2.0.0-RC6-26)
coursier - v2.0.0-RC6-26

Published by alexarchambault about 4 years ago

Changes

  • Allow to set Java properties for coursier itself via -J-D in the native launcher (this can be useful for http proxies in particular)
  • Read the {http,https}.proxyUser and {http,https}.proxyPassword Java properties, set up proxy authentication accordingly

Updates

  • Bump directories-jvm (better powershell.exe detection, use pwsh.exe from Powershell >= 6.0 if needed)
coursier - v2.0.0-RC6-25

Published by alexarchambault about 4 years ago

Changes

  • Keep info.* attributes as properties when parsing ivy.xml files (these attributes can include scaladoc links in particular, fixed in #1820, thanks to @eed3si9n)
  • Keep licenses distribution and comments when parsing POM files (#1827, thanks to @ckipp01)
  • API: use simulacrum to generate helpers for our stub type classes

Fixes

  • Update to the latest main branch of directories-jvm, which fixes possible issues around UTF-8 BOM handling and powershell profiles, on Windows, when computing the location of the coursier cache and config directories.
coursier - v2.0.0-RC6-24

Published by alexarchambault about 4 years ago

Fixes

  • Fix handling of version intervals in JSON report (dependencies with a version interval as version had empty dependencies).
  • Ensure latest.stable doesn't match milestones or alpha / beta versions.
  • Accept space characters as separator in COURSIER_REPOSITORIES, so that Ivy repositories with different metadata and artifact patterns can be used.
  • Fix update and list command on Windows.

Enhancements

  • Don't print empty line when the result of the fetch command is empty.
  • In the java and java-home commands, don't re-download JVM index when not necessary. (If the cached index has a matching JVM, it's used straightaway, and the index is not updated. Pass --update to force updating the index.)
  • Add aliases for GCS repositories (gcs, gcs-eu, gcs-asia)
coursier - v2.0.0-RC6-23

Published by alexarchambault over 4 years ago

  • Fix possible IllegalArgumentException: toMillis not allowed error, that can sometimes happen with infinite TTLs (which became the default from the CLI in 2.0.0-RC6-22 when an application rather than Maven coordinates is passed)
coursier - v2.0.0-RC6-22

Published by alexarchambault over 4 years ago

Changes

Drop support for legacy cache location ~/.coursier/cache

From version 2.0.0-RC6-14 up to 2.0.0-RC6-21, the coursier CLI prints a warning if the legacy cache location (pre Nov 2017),

~/.coursier/cache

is being used, pointing to cache-migration to help migrate to the new cache location.. Support for ~/.coursier/cache is now dropped altogether.

New configuration directory on macOS

The configuration directory changed from

~/Library/Preferences/Coursier

to

~/Library/Application Support/Coursier

The latter is more correct per the Apple documentation, see the discussion here for more details.

The former location might be deprecated in a late future. Files there are still accepted for the time being.

Fixes

Concurrency issues

  • Work around rare "Resource deadlock avoided" errors
  • Wait for concurrent downloads when downloading things from bootstraps, instead of loudly failing

Other issues

  • Don't crash if the cache directory is a symbolic link
  • Don't crash when printing zsh completions from the native launcher
  • Accept JDK archives not putting files under Contents/Home on macOS, so that cs java --jvm adopt:1.10.0-2 -version now works.
  • Fix handling of 1. prefix in JVM versions, which was faulty in some cases, so that cs java --jvm openjdk:10 -version now works, in particular.

New features

New get command

Prints the path of a file in the coursier cache, downloading it if necessary. Use like

$ cs get https://repo1.maven.org/maven2/io/get-coursier/coursier-cli_2.12/2.0.0-RC6-21/coursier-cli_2.12-2.0.0-RC6-21.jar
/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/get-coursier/coursier-cli_2.12/2.0.0-RC6-21/coursier-cli_2.12-2.0.0-RC6-21.jar

Prefer local JVMs over latest ones from the JVM index

In the java and java-home commands, when passing short versions like adopt:11 or graalvm:20, if a valid JVM matching that version is already unpacked locally, it is used straightaway. In particular, if a newer matching version is available per the JVM index, the local one is still preferred. Pass --update to force using the latest matching version from the index (former behavior).

Less superfluous network requests with applications, and managed JVMs

In the java and java-home commands, if a valid JVM is available locally, it is used straightaway (see previous section), and no attempt is made to update the index. Previously, the index was updated if the last check was older than the TTL (24 hours by default). The index is now only checked when --update is passed.

When passing applications to the resolve, fetch, launch, or bootstrap commands, like cs launch scala, the TTL now defaults to Inf (infinite). That means that if all the necessary files to start an application are in the cache, it is launched straightaway, even if a newer version could have been downloaded. Pass an explicit TTL value to recover the former behavior, like cs launch scala --ttl 24h.

coursier - v2.0.0-RC6-21

Published by alexarchambault over 4 years ago

  • Slightly less secure defaults for credentials (those passed via --credentials and --credentials-file now don't require https by default, and are automatically tried when getting an authentication error on their host)
  • Allow to read JVM option files upon startup in bootstraps (pass --jvm-option-file .jvmopts to the bootstrap command to have the bootstrap read .jvmopts if it exists)
coursier - v2.0.0-RC6-20

Published by alexarchambault over 4 years ago

  • Add jcenter repository alias (use like cs resolve -r jcenter …)
  • Install vanilla sbt-launcher by default in cs setup, rather than the non-standard coursier-based sbt-launcher
coursier - v2.0.0-RC6-19

Published by alexarchambault over 4 years ago

  • Keep colors when printing trees in more cases by default (keep them on CIs, and when the output of coursier is piped)
  • Ensure cs list doesn't crash if the app directory doesn't exist
  • Fix an issue in the way execve works (should make launch with explicit JVMs, like cs launch ammonite --jvm 11, work)
  • Fix some wrong conflicts being sometimes reported
coursier - v2.0.0-RC6-18

Published by alexarchambault over 4 years ago

  • Fix global exclusions (-E option) not excluding root dependencies themselves in the CLI
  • Add support for global exclude node in Ivy XML files
coursier - v2.0.0-RC6-17

Published by alexarchambault over 4 years ago

  • In some cases, several versions of root dependency artifacts could be returned. This is fixed in this version.
  • Allow to pass an initial Resolution object to Resolve (can be used to pass a Resolution with pre-filled caches to speed things up, for example)
coursier - v2.0.0-RC6-16

Published by alexarchambault over 4 years ago

  • Update Scala.JS to 1.0.1 (from 0.6.32)
  • Return more detailed results in coursier.{Artifacts, Fetch}
coursier - v2.0.0-RC6-15

Published by alexarchambault over 4 years ago

  • Fix some spurious and unexpected "concurrent download errors" exceptions (coursier is fine with concurrent downloads otherwise). Seems to be a regression since 2.0.0-RC6-2. Fixed in #1704, thanks to @jodersky.
coursier - v2.0.0-RC6-14

Published by alexarchambault over 4 years ago

Deprecate cache directory ~/.coursier/cache

This impacts users who used a coursier version released before Nov. 2017. These users should have a ~/.coursier/cache directory on their disk. For these users, this directory should be picked as default cache directory most of the time, per the rules introduced along with the newer cache location.

As of this version, and until 2.0.0 final, running the coursier CLI will print a warning if ~/.coursier/cache is found and used as default location per the rules picking the default cache location. That warning message points to the cache-migration tool, that helps migrate ~/.coursier/cache to the newer cache location.

You might have a ~/.coursier/cache directory, and not get that warning. This happens when you first ran a post Nov. 2017 coursier version on your system, that created the OS-specific cache directory, then ran a pre Nov. 2017 one, that created a ~/.coursier/cache nonetheless. You can run cache-migration too, if you'd like to migrate what's under ~/.coursier/cache to the newer cache.

Optimizations

Optimize some data structures used during resolution, thanks to @jtjeferreira.

coursier - v2.0.0-RC6-13

Published by alexarchambault over 4 years ago

  • Take into account the COURSIER_INSTALL_DIR environment variable in the install command (thanks to @zheh12)
  • Fix reflection issue preventing the Windows native launcher to access the cache
  • On Windows, if cs is installed with cs install cs or via cs setup, running just cs now prints the help like on Linux and macOS, instead of running the setup command
coursier - v2.0.0-RC6-12

Published by alexarchambault over 4 years ago

  • Add list command to list installed applications (thanks to @ckipp01)
  • Print the help rather than nothing when no arguments are passed to the CLI (thanks to @regadas)
  • Fix GraalVM version mismatch when installing GraalVM-based applications
  • Accept clojars as a repository, pointing to Clojure's clojars
  • Rework CLI documentation