v1.2.0
bloop v1.2.0
🏄
Upgrade guide 🔌
This section describes the upgrade steps. If you don't have bloop installed, please read
the installation instructions instead.
If you're on Mac OS X, upgrade to the latest version with:
$ brew upgrade scalacenter/bloop/bloop
$ brew services restart bloop
If you're on Windows using scoop
, upgrade to the latest version with:
$ scoop upgrade bloop
$ bloop ng-stop
$ // Start the server as you usually do (via systemd, manually, desktop services)
Otherwise, run:
$ curl -L https://github.com/scalacenter/bloop/releases/download/v1.2.0/install.py | python
$ bloop ng-stop
$ // Start the server as you usually do (via systemd, manually, desktop services)
Read the complete installation instructions in our Installation page.
Highlights 📚
New bloop launcher
Bloop v1.2.0
features a launcher (:rocket:), which is a core component responsible for:
- Managing the bloop installation and server execution.
- Establishing a bsp connection when a server is running.
The bloop launcher is a response to the reticency of depending on bloop because it needs to be
installed globally. Developer tools that want to use bloop either via BSP or CLI can depend on and
run the launcher (a ~112KB jvm artifact) to install and get a working build server in the background
out-of-the-box, getting an automatic setup in their users' machines.
The Launcher Reference page documents
the inner workings of the launcher and explains how to interact with it.
Compile, test and run several projects in one command (#772)
The compile
, test
and run
actions now take several projects as arguments to run an action for
several projects in one go. For example, compile foo
, bar
and baz
with:
→ bloop compile foo bar baz
Compiling foo (1 Scala source)
Compiled foo (290ms)
Compiling bar (1 Scala source)
Compiled bar (455ms)
Compiling baz (1 Scala source)
Compiled baz (229ms)
This feature comes in handy when you have several independent subgraphs inside the same build. The
Quickstart page documents the above behaviour.
Support --cascade
in compile
and test
(#773)
The --cascade
flag in a compile invocation allows you to change the public signature of a project
(say, foo
) and have bloop compile all the transitive projects depending on foo
to detect
compilation errors. When added to any test
invocation, bloop will:
- trigger the compilation of
foo
and all projects depending onfoo
(with their dependencies) - run tests of
foo
and all projects depending onfoo
(without their dependencies)
Using --cascade
is a powerful trick to compile or run the tests of all projects that could be
possibly affected by a change in a project. As this is a common use case, --cascade
aims to
simplify its use. This feature is fully documented by the
Quickstart page.
Cancel compilation
Compile cancellation was not yet supported by bloop and v1.2.0
fixes it. Just as the cancellation
of test
or run
, every time the user presses Ctrl+C in the middle of a
compilation command or a bsp client sends a cancel request, bloop will cancel the compilation
gracefully.
It's highly recommended to be on the last Scala 2.12.8 release to get more predictable and quick
cancellations.
Pass jvm options to test
and run
(#769)
Bloop v1.2.0
takes extra arguments prefixed with -J
and positioned after --
and passes them to
the underlying virtual machine running an application or executing tests. Fixed by
Pass jvm options to the bloop server
Passing jvm options to the bloop server was possible but complicated in previous versions. v1.2.0
simplifies the handling of jvm options and supports configuring the virtual machine running bloop
via two mechanisms:
- Arguments to
bloop server
prefixed with-J
. - A
.jvmopts
file in the bloop installation directory which is read bybloop server
. This is
the recommended way to pass jvm options to the server as it's reproducible and easy to know
what options the server was run with.
The following section documents the handling of jvm options by bloop server
.
New documentation for the Build Server 📘
The Build Server reference page is a
new addition to our docs that gives an overview of what the build server is, how it can be started,
how it's installed and how it can be managed. It also contains information about how to pass JVM
options to the server.
It's recommended to read the Build Server
Reference even if you are a seasoned
bloop user.
Fixes 🐛 🔨
- Clear diagnostics via BSP if files with problems don't exist anymore
- Bump up supported mill versoin to v0.3.5
- Run bloop from different disks in Windows
- Provide autocompletions for
-o
and--only
test invocations - Fix compilation of java-only projects when no scala instance is provided
Contributors 👥
According to git shortlog -sn --no-merges v1.1.2..v1.2.0
, 5 people contributed to this v1.2.0
release: Jorge Vicente Cantero, tanishiking, Daniel Karch, Dario Abdulrehman and Josep Prat.