sbt 1 migration status and 1.0.2 hotfix

By Eugene Yokota (@eed3si9n) September 19, 2017

Hi everyone. Here’s a report on what’s been going on after sbt 1.0.0 came out.

Our plan of sbt 1 migration status looks like this:

  • Release sbt 1.0.0.
  • Port all the plugins together with the community.
  • Fix bugs.
  • Migrate the library builds.

Plugin migration

To track the progress of the plugin migration, I’ve put together a list of known plugins, sorted in the order of GitHub stars. This was created first by screen scraping our documentation, and then manually adding more.The 258 plugins listed there are mix of new and old plugins, and shows the breadth of sbt plugin ecosystem.

As of date, we have 70 plugins that are marked “released” on the list, some others are in some stage of being migrated by the plugin authors and active users. Kenji Yoshida (xuwei-k) who was omnipresent and helped migrate many of the plugins. Here are some that I was able to find:

Thank you!

sbt hotfix 1.0.2

I would also like to announce sbt 1.0.2, which is a hotfix to sbt 1.0.x series. This is binary compatible release for sbt 1.0.0 focusing on bug fixes.

  • Fixes terminal echo issue. #3507 by @kczulko
  • Fixes deliver task, and adds makeIvyXml as a more sensibly named task. #3487 by @cunei
  • Replaces the deprecated use of OkUrlFactory, and fixes connection leaks. lm#164 by @dpratt
  • Refixes false positive in DSL checker for setting keys. #3513 by @dwijnand
  • Fixes run and bgRun not picking up changes to directories in the classpath. #3517 by @dwijnand
  • Fixes ++ so it won’t change the value of crossScalaVersion. #3495/#3526 by @dwijnand
  • Fixes sbt server missing some messages. #3523 by @guillaumebort
  • Refixes consoleProject. zinc#386 by @dwijnand
  • Adds JVM flag sbt.gigahorse to enable/disable the internal use of Gigahorse to workaround NPE in JavaNetAuthenticator when used in conjunction with repositories override. lm#167 by @cunei
  • Adds JVM flag sbt.server.autostart to enable/disable the automatic starting of sbt server with the sbt shell. This also adds new startServer command to manually start the server. by @eed3si9n
  • Fixes unused import warnings. #3533 by @razvan-panda

Huge thanks to everyone who’s helped improve sbt and Zinc 1 by using them, reporting bugs, improving our documentation, porting plugins, and submitting and reviewing pull requests.

This release was brought to you by 19 contributors, according to git shortlog -sn --no-merges v1.0.1..v1.0.2 on sbt, zinc, librarymanagement, and website: Dale Wijnand, Eugene Yokota, Kenji Yoshida (xuwei-k), Toni Cunei, David Pratt, Karol Cz (kczulko), Amanj Sherwany, Emanuele Blanco, Eric Peters, Guillaume Bort, James Roper, Joost de Vries, Marko Elezovic, Martynas Mickevičius, Michael Stringer, Răzvan Flavius Panda, Peter Vlugter, Philippus Baalman, and Wiesław Popielarski. Thank you!

Library migration still awaits

Now that major plugins are migrated, and early bugs are fixed, it’s time for migrating the library ecosystem.

Toni Cunei has updated Dbuild so we can start to build the Community Build based on sbt 1. I am hopeful that it would allow us to validate freshly built sbt against it as well once we have some of the libraries on it.

sbtfix

One exciting development for the sbt 1 migration was Ólafur Geirsson at Scala Center’s announcement of Scalafix 0.5.0, which includes a feature to migrate old style operators to the new DSL.

Participation

For anyone interested in helping sbt, there are many avenues you could help, depending on your interest.

  • Migrate plugins and libraries to sbt 1.
  • Report bugs when you see them.
  • Send in fixes to bugs.
  • Update documentation.

If you’re interested in other ideas, come talk to us on sbt-contrib.