@Duhemm Duhemm released this Jun 16, 2018 · 418 commits to master since this release

Assets 7

Install the latest release 🍬

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-M11/install.py | python

Read the complete instructions in our Installation page.

Highlights 📚

Redesign the configuration format (by Jorge Vicente Cantero)

With Bloop 1.0 being around the corner, we need to fix all the issues with the current configuration
file format, and come up with a solution that will be stable for a long time.

Jorge has been working towards a definitive design for what the configuration file should look like,
and his intensive head scratching resulted in this pull request.

Mill integration (by Olivier Mélois) 🏭

Bloop now includes a Mill integration, which means that your build definition can be exported from
Mill's format to Bloop's.

To try the Mill integration, add the following to the build.sc of a project:

import $ivy.`ch.epfl.scala::mill-bloop:1.0.0-M11`

And then run mill bloop.integrations.mill.Bloop/install from the directory of the mill project.

Support for Scala.js and Scala Native 🤖

This release of Bloop includes support for both Scala.js and Scala Native,
contributed by Tim Nieradzik, Jorge Vicente Cantero and Martin
Duhem
.

Using Scala Native or Scala.js with Bloop is completely transparent. If your project uses any of
these platforms, Bloop will automatically configure itself to link and run using the appropriate
tools and runtime.

At the moment, running the test is not supported and waiting for [a new release of Scala
Native][native-pr-1234].

Export sbt build information (by Jorge Vicente Cantero)

When sbt is launched with the sbt-bloop plugin, it will now immediately export Bloop configuration
files for the build and meta build. This allows a BSP server to directly pick up the changes and
notify its client that a build has changed.

This enhancement is crucial for BSP and integration with clients, and improves that overall user
experience.

Export sources and docs (by Jorge Vicente Cantero)

The Bloop configuration file now contains paths to the documentation and sources of the dependencies
of a build. This allows a BSP client to query them from Bloop, and lets IDEs offer a better user
experience.

Features 🏗

Print test reports (by Tim Nieradzik)

Bloop now prints a full report of test execution after the command test finishes. This gives you
information about the tests that ran, the failures, errors and successes.

Also, Bloop now correctly reports the outcome of your tests in its exit code.

Bugfixes 🐛

Kebabize flag names in autocompletion (by Martin Duhem)

All the flags that Bloop accepts on its command line interface should be written using kebab-case.
Unfortunately, a bug in our autocompletions made Bloop provide suggestions that were using camelCase
instead.

Support relative config directories in --config-dir (by Marko Svaljek)

Bloop supports an option called --config-dir, which defines where Bloop should look for your
configuration files (the default value is .bloop in your current working directory).

When this option was passed, Bloop was creating an absolute path from the base directory where the
Bloop server had been started, instead of doing so from your current working directory. This patch
fixes this incorrect behavior!

Usability improvements

Improved error reporter (by Gabriele Petronella)

Bloop features a nice error reporter that tries to unclutter your screen and make the most useful
bits pop out of your screen. Unfortunately, our reporter was unfriendly to some terminals, and broke
links from error messages to source. Thankfully, @gabro fixed that!

Integration improvements:

sbt

Add option to configure where to store analysis file (by Marko Svaljek)

The location where the state of the incremental compiler should be stored can now be configured.

Export custom configurations (by Paweł Bartkiewicz)

Our plugin for sbt used to export only the Compile and Test configurations. @tues
improved it so that builds can configure which configuration should be exported, and have Bloop
configuration files generated.

Maven

Support Java-only projects #51 and #524 (by Tobias Roeser and Jorge Vicente Cantero)

Our Maven integration used to have issues with Java-only projects. Thanks to this fix by
@lefou, those are now correctly supported by Bloop!

Documentation improvements 📚

Document how to debug Bloop (by Paweł Bartkiewicz)

Our developer documentation was still missing information on how to debug Bloop. @tues has
been contributing the missing bits!

Advanced sbt configuration (by Paweł Bartkiewicz)

With the recent improvements to our sbt integrations, our documentation still needed to catch up.
The documentation has been updated to reflect the latest additions and capabilities of the sbt
integration, and how to configure it properly.

Fix typos in the documentation

Errors easily get into documentation... Thankfully, our community is here to help. Thank you
all for fixing our mistakes:

Add documentation for Maven integration (by Paweł Bartkiewicz)

Even though our Maven integration has been around for a long time, we still hadn't updated our
documentation to tell our users how to use it. The documentation is now up-to-date!

Mention --coursier in developer documentation (by Paweł Bartkiewicz)

The installation script allows to specify the version of coursier that should be used during
installation. However, the documentation wasn't mentioning it.

Meta-improvements 🌶

Upgrade nuProcess (by Jorge Vicente Cantero)

nuProcess is the library that we use to spawn processes. Jorge worked on migrating to
the latest version of nuProcess, which includes fixes for bugs that affected Bloop.

Speed up compilation time by 8x (by Jorge Vicente Cantero)

Using [scalac-profiling][scalac-profiling], Jorge has been able to determine how to dramatically
improve compilation time of Bloop itself. Thanks to his modifications, Bloop can now be compiled
much faster!

Fix compilation warnings (by Jorge Vicente Cantero)

There were some warnings in our codebase. No more! Enjoy a quiet compilation.

Contributors 👥

According to git shortlog -sn --no-merges v1.0.0-M10..1.0.0-M11, 11 people
contributed to this release: Jorge Vicente Cantero, Martin Duhem, Paweł Bartkiewicz, Tim Nieradzik,
Marko Svaljek, Gabriele Petronella, Olivier Mélois, travisltq, Stephen Nancekivell, Tobias Roeser,
Alexander Samsig

Thank you all !