Skip to content

bloop-frontend v1.0.0-M8

Pre-release
Pre-release
Compare
Choose a tag to compare
@bloopoid bloopoid released this 28 Mar 13:22
· 4584 commits to main since this release
24a4b06

Bloop v1.0.0-M8

This is the eighth milestone of Bloop! 🎉

While we're working on ergonomics and making bloop easier to use by both users and build tools, this release is a hotfix of M7.

This milestone of Bloop includes changes to the configuration files; you'll need to re-generate
your configuration files if you used a previous version of Bloop. See the installation
instructions
.

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

Highlights

File watching improvement

In some cases, bloop could get hanging compilation processes caused by CTRL-C while file watching a given project. These hanging processes could interfere with new spawned processes that used file watching too, and in some scenarios they would steal job from the main file watching process and compilation or testing wouldn't yield any output.

Such a bug is now fixed. We have experimented with file watching in several projects and confirmed it now works reliably.

Start the server with bloop server

You can now start the server from the bloop client with bloop server. This improvement was suggested by both Olafur and Jon and has the benefits of not polluting the space for autocompletions and yet having an easy way to start it, without need to remember the weird blp-server binary name.

Test filters are now accessible via --only

The old bloop test foo -f com.my.TestSuite has been replaced by bloop test foo -o com.my.TestSuite (-o is named after --only). This change brings more ergonomics and makes it intuitive for those users that are used to the testOnly style in sbt.

If you want to specify more than one test filter, type several -o arguments. Example: bloop test foo -o com.myTestSuite -o ch.epfl.scala.CoolSuite.

Improvements to the sbt plugin

The sbt bloop plugin has several improvements over the plugin in M7:

Nailgun server exception is gone

You may have experienced that the nailgun server would throw non-fatal exceptions like:

Dec 12, 2017 12:40:41 PM com.martiansoftware.nailgun.NGInputStream$1 run
WARNING: Nailgun client read future was interrupted
java.lang.InterruptedException
	at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:404)
	at java.util.concurrent.FutureTask.get(FutureTask.java:204)
	at com.martiansoftware.nailgun.NGInputStream$1.run(NGInputStream.java:91)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

As reported in this ticket.

This new release fixes this issue, and now the server doesn't throw any exception. While this is not something important because the logs of the nailgun server should not be relevant, it cleans up logs and limits users' confusion whehn using Bloop.

Support for classpath options

Bloop now observes the classpathOptions setting defined in sbt builds. This setting configures how the compilation classpath is constructed (whether to include the Scala compiler, automatically append the Scala standard library, etc.)

This change requires that configuration files are re-generated. The instructions for generating the configuration files can be found in the installation instructions.