Scala Love in the City Scala Love in the City
Get your ticket to attend. Join event to build your agenda.

Reproducible environments for Scala using coursier

Join Stream

Alexandre works as an independent software engineer. He's active in the Scala community since 2014, and has created and maintains [coursier](, the library and CLI to fetch and install artifacts, and [Almond](, aka jupyter-scala.

The CLI of coursier, cs, offers a convenient way to install both JVMs and Scala applications. cs itself is a native binary with no dependencies, is available on all major platforms, and can get you started with installing and running Scala tools in minutes. It can be useful to setup your local development environment, but also from scripts, or on your CI.

Until now, the first concern of cs has been ease-of-use. But what about reproducibility? cs rests on the core of coursier, and reproducibility / “purity” has always been a central concern in the core modules of coursier. Could this help recovering reproducibility in the higher level features of the coursier CLI?

In this talk, we are going to first showcase what cs, the coursier CLI, can do, and how it can be useful on your local machine, from scripts, and on your CI. Then we’ll discuss how we can make invocations of cs reproducible and what newer options are available to help for that.