Skip to content

bloop v1.0.0

Compare
Choose a tag to compare
@bloopoid bloopoid released this 18 Jul 17:11
b4eeba0

Install v1.0.0 🍬

If you're on Mac OS X, upgrade to the latest version with:

$ brew install scalacenter/bloop/bloop

Otherwise, run:

$ curl -L https://github.com/scalacenter/bloop/releases/download/v1.0.0/install.py | python

Read the complete installation instructions in our Installation page.

What is bloop

Bloop is a Scala build server and command-line tool to make the compile and test developer
workflows fast and productive in a build-tool-agnostic way. Learn more about Bloop and its
origins in this ScalaDays Berlin talk.

Initially as an idea by Martin Duhem, Bloop has iterated into its design several times and
materialized into a stable compile/test server that people from different build tools can leverage to
have a faster developer workflow.

We're in debt with the people that have believed in the project, adopted Bloop and joined our
developer team in the early days, most notably @tues,
@fizzy33, @rberenguel,
@propensive,
@lefou and @tindzk.

Bloop v1.0.0 is just the beginning. The next v1.1.0 release will keep focusing on developer
productivity and feature more speedups in compilation. Stay tuned.

Highlights 📚

A new configuration file format

The configuration file format is a JSON file that describes the configuration of your project.
It contains a subset of all the configuration keys required to compile, test and run your project
like the project name, source directories, classpath and the like.

Bloop configuration files are easy to generate, easy to read and easy to modify. Bloop keeps a
strict forward and backward compatibility on the source files in every major version so that
whatever tooling that you build on top of them keeps running in your computers.

Compile, test and run your projects quicker!

After you have exported your build to Bloop configuration files, Bloop can compile, test and
run your projects quicker than any other build tool. Bloop can compile your projects around 20-30%
faster than sbt.

Generate bloop configuration files from sbt, Maven and mill

There are plugin integrations for sbt, Maven and mill that generate configuration files
when the task bloopInstall is executed. These integrations allow you to use Bloop for these build
tools.

A gradle plugin integration is coming and will be
merged into 1.1.0.

Compile and run Scala Native and Scala.js projects

Run your Scala Native and Scala.js projects with Bloop. If your build tool supports Scala Native
and Scala.js (like sbt), Bloop's integration will automatically create projects for your Scala
Native and Scala.js projects. Support for tests and incremental linking is left as future work
for 1.1.0.

Improvements since 1.0.0-RC1

Log output of server in OSX services (plists)

The Homebrew formulas now installs plist services that will log stdout and stderr to Bloop's log
directories /var/log/bloop.

Upgrade to NuProcess 1.2.4

Running Bloop projects in JDK 10 didn't work because NuProcess failed to link with the new
process API in JDK 10. Upgrading to the last NuProcess version fixes this issue.

Remove --isolated flag and add --propagate / --include-dependencies

The flag --isolated has been removed because it was not a good default. In most of the cases,
users want to clean and test a project in isolation, and propagate that to all their dependencies
only in concrete cases.

As a result, a new flag --include-dependencies (aliased to --propagate) has been added to
the CLI test and clean commands.

Remove --parallelism flag in bloop configure

Remove the --parallelism alias of --threads to avoid confusion with the future parallel
compilation configuration settings that will be merged in 1.1.0. Use --threads instead.

Complete changelog

v1.0.0 is a release that contains changes that span almost half a year. To fully catch up
with all the changes that have gone into the creation of v1.0.0, we redirect users to the
release notes of all our previous versions.

  1. v1.0.0-RC1
  2. v1.0.0-M11
  3. v1.0.0-M10
  4. v1.0.0-M9
  5. v1.0.0-M8
  6. v1.0.0-M7
  7. v1.0.0-M6
  8. v1.0.0-M5
  9. v1.0.0-M4
  10. v1.0.0-M3
  11. v1.0.0-M2
  12. v1.0.0-M1

Contributors 👥

According to git shortlog -sn --no-merges v1.0.0-M11..1.0.0-RC1, 27 people contributed to this
v1.0.0 release: Jorge Vicente Cantero, Martin Duhem, Paweł Bartkiewicz, Ruben Berenguel Montoro, Tim Nieradzik,
msvaljek, Jon Pretty, Jorge, Andrew Valencik, Gabriele Petronella, Olivier Mélois, Sam Halliday,
David Barri, Alexander Samsig, travisltq, Alexey Alekhin, Emilien Taque, Eugene Platonov,
Guillaume Massé, Justin Kaeser, Olivier Melois, Pawel Bartkiewicz, Samantha Li, Sean Sullivan,
Stephen Nancekivell, Tobias Roeser and shamsak58.

The core team is grateful to all the contributors that have submitted PRs and helped
improved the documentation of Bloop. To a faster developer workflow! 🥂