sbt 1.2.0 roadmap

By Dale Wijnand (@dwijnand) 1 February 2018

sbt 1.1.0 was released in January, which brings the unified slash syntax and server / LSP functionality to sbt. On behalf of Tooling Team at Lightbend, I would like to share the plans for the upcoming 1.2.0 release that we are planning for this spring. Please join the discussion on the Scala Contributors forum.

Highlights

The next release of sbt will focus on the following themes:

  • the sbt 1.x build migration
  • making sbt easier to contribute to
  • more sbt server (LSP) enhancements

The sbt 1.x build migration

As we did for the sbt 1.x plugin migration, we have created a wiki page to track the sbt 1.x build migration.

If you’re looking to help, consider picking a build and migrating it to sbt 1.x. The community effort is already under way, and we have around 50 libraries already migrated. In particular, Kenji Yoshida has done many of them himself - Thank you, Yoshida-san!

Related to this effort is the task of adding support to Scalafix/Scalameta for sbt 1 build sources, which would allow much of this migration work (and future migration work) to be automated.

Making sbt easier to contribute to

To improve the health of sbt as an open-source project, we would like to increase the community contribution. But before we get there, we need to address various aspects of developing sbt that cause overhead or blockers, and we’ve roughtly broken them down to these two sections:

  • documentation (review/rewrite CONTRIBUTING.md, parts of the website docs, Scaladocs, etc); and
  • improving and shortening the CI time of sbt

With regards to the testing/CI part in particular we would like to:

  • continue working on (and document) how to run sbt from source
  • migrating tests out of sbt/sbt into the appropriate sbt/* repo
  • rewrite scripted so it doesn’t depend on sbt/launcher

If you have other suggestions that would make sbt easier to contribute, let us know.

More sbt server (LSP) enhancements

Since the release of sbt 1.1, we have been hearing many positive comments about its server feature.

LSP is just at the sweet spot for supplying the demand for richer development environment, such as jumping to error, code navigation, and tab completion.

We are collaborating with the Scala Center to make sbt server extensible via plugins to iterate and experiment with introducing more functionality (such as Scala Center’s BSP idea).

We are also open to community ideas and contributions to making our LSP better. Even if it’s marginal improvements, there is benefit in shipping features that can be useful for many existing builds.

Feedback process

During the development of sbt 1.0, there’s been a wide range of feedback we got from the community. There were various requests for clarity, such as documentation, Scaladoc, as well as formatting and organisation of source code, some of which we’ve done already but lots that we still need to address.

Now that sbt 1.1.0 is out, I think we all have a clearer picture of what sbt 1.x is about. This is also a good timing to solicit feedback from you, the sbt community. If you have ideas for any of the topic discussed in this post or otherwise, please let us know by commenting on the sbt 1.2 roadmap thread we’ve opened on the Scala Contributors forum.

If you’re interested in contributing please look at:

In addition to that if you’re interested in contributing to sbt, please come talk to us on the sbt/sbt-contrib Gitter room or pop into our weekly sbt meeting.