Releases: coursier/coursier
v2.0.1
Changes
- Add support for compressed prebuilt binaries when installing apps (see the sbtn app descriptor for an example)
v2.0.0
No changes since 2.0.0-RC6-27
.
v2.0.0-RC6-27
Changes
- Add support for the
arm
andaarch64
JVM architectures in thejava
andjava-home
commands (#1849, thanks to @matsluni) - Build native launchers with GraalVM
20.1.0
Java 11 (former coursier versions used GraalVM19.3.1
Java 8) - Add
--jvm-index
option to thejava
/java-home
/setup
commands, allowing to pass a custom JVM index URL, also accepting aliases such asjabba
(current default) andcs
(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 in2.0.0-RC6-25
and2.0.0-RC6-26
)
v2.0.0-RC6-26
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, usepwsh.exe
from Powershell >= 6.0 if needed)
v2.0.0-RC6-25
Changes
- Keep
info.*
attributes as properties when parsingivy.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.
v2.0.0-RC6-24
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
andlist
command on Windows.
Enhancements
- Don't print empty line when the result of the
fetch
command is empty. - In the
java
andjava-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
)
v2.0.0-RC6-23
- Fix possible
IllegalArgumentException: toMillis not allowed
error, that can sometimes happen with infinite TTLs (which became the default from the CLI in2.0.0-RC6-22
when an application rather than Maven coordinates is passed)
v2.0.0-RC6-22
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 thatcs 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 thatcs 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
.
v2.0.0-RC6-21
- 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 thebootstrap
command to have the bootstrap read.jvmopts
if it exists)
v2.0.0-RC6-20
- Add
jcenter
repository alias (use likecs resolve -r jcenter …
) - Install vanilla sbt-launcher by default in
cs setup
, rather than the non-standard coursier-based sbt-launcher