[ANNOUNCE] sbt 1.0.0

77 views
Skip to first unread message

eugene yokota

unread,
Aug 14, 2017, 11:21:54 PM8/14/17
to sbt-dev


sbt 1.0.0 is now available

By Eugene Yokota (@eed3si9n) August 11, 2017


The Lightbend Tooling Team is happy to announce the release of sbt 1.0.0!

sbt 1 is a major milestone years in the making, if we count from 2008 when Mark Harrah released sbt. Even the previous major series, sbt 0.13.x lasted for four years since its initial release of August of 2013.

Lightbend Tooling team has been maintaining and evolving 0.13 towards sbt 1. During this time, features such as sbt newAutoPlugin, and cached resolution were added. Hundreds of plugins were written by the community, extending the capability of sbt beyond a simple build tool.


Headline features

  • sbt 1 is based on Scala 2.12, so we can all use modern Scala in our builds! This will also help plugin and library authors, since they no longer have to support 2.10.
  • sbt 1 reintroduces Zinc 1, a faster incremental compiler that uses class-based name hashing. Since we thought the Scala incremental compiler is too important to keep it just for us, we moved Zinc 1 into a separate repository sbt/zinc, which is maintained by Lightbend and the Scala Center together.
  • sbt 1 by default uses Gigahorse HTTP client (backed by Square OkHttp) to download artifacts in parallel. We’ve also added a Library Management API, so we can potentially migrate off of Ivy in some future 1.x release.

See sbt 1.0.0 release notes for the complete list of breaking changes, features, and fixes.


Compatibility

sbt 1 adopts Semantic Versioning. We will keep binary compatibility during the 1.x series.

Since we have been evolving 0.13, conceptually sbt 1 is not too far from sbt 0.13. However, sbt 1 is neither source- nor binary-compatible with 0.13, and it might require some migration effort. Please see the migration guide for more details.

This release is identical to sbt 1.0.0-RC3.


Contributors

We would like to first thank the original author of sbt, Mark Harrah. Mark wrote sbt in 2008, and most of the fundamental aspects of sbt, such as the Scala incremental compiler, integration with Maven and Ivy dependencies, and parallel task processing, were conceived and initially implemented by Mark.

Hat tip also to our previous partners in crime Josh Suereth and Grzegorz Kossakowski as they shaped the direction of 0.13 and 1.x in fundamental ways.

In the recent months leading up to sbt 1.0.0, the Scala Center at EPFL has contributed many important fixes and features to sbt, Zinc 1, and the underlying modules. Some of the notable contributions include parallel artifact download by Jorge Vicente Cantero, improved Zinc 1 internal storage by Jorge, and new Watch Service by Martin Duhem.

A huge thank you to everyone who’s helped improve sbt and Zinc 1 by using them, reporting bugs, improving our documentation, kindly helping others on Stack OverflowGitter, or in person, and 318 contributors who submitted pull requests! See Credits for the whole story.


What’s next?

The work of rebooting the ecosystem on top of sbt 1 is already well underway, with many plugins available for sbt 1.x, such as Scala.js and sbt-assembly. However, the list is still incomplete, and this is an area where community participation will be crucial.

Please try sbt 1, and report any bugs on GitHub. Mention us @scala_sbt and tell us what you think about sbt 1.

Yaroslav Klymko

unread,
Aug 21, 2017, 3:52:01 PM8/21/17
to sbt-dev
Good job!

Just curious what's the reason behind not using akka-http as http backend ?

eugene yokota

unread,
Aug 21, 2017, 4:07:11 PM8/21/17
to sbt...@googlegroups.com
Hi,

As an HTTP client library, Akka HTTP is not as matured compared to AsyncHttpClient and OkHttp.
For instance it does not automatically follow redirects.

Also, I didn't want to constrain the plugin ecosystem into a version of Akka (or Netty for that matter) that is evolving.
OkHttp 3.x, on the other hand, is designed to be perpetually bincompat.
Check out the blog post I just wrote on this topic - http://eed3si9n.com/persistent-versioning

-eugene

--
You received this message because you are subscribed to the Google Groups "sbt-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sbt-dev+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sbt-dev/fc369ab0-7067-463e-9b7a-cdf909b7d691%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages