sbt 1.6.0-M1

in

Hi everyone. On behalf of the sbt project, I am happy to announce sbt 1.6.0-M1. This is the first milestone (M1) of the 1.6.x feature release, a binary compatible release focusing on new features. sbt 1.x is released under Semantic Versioning, and the plugins are expected to work throughout the 1.x series. Please try it out, and report any issues you might come across.

The headline features of sbt 1.6.0 are:

  • Improved JDK 17 support
  • BSP improvements
  • Remote caching improvements
  • Zinc improvements

How to upgrade

You can upgrade to sbt 1.6.0-M1 by putting the following in project/build.properties:

sbt.version=1.6.0-M1

Changes with compatibility implications

  • The Scala version used to compile build.sbt is updated to Scala 2.12.15, which improves the compatibility with JDK 17+. The metabuild is compiled with -Xsource:3 flag #6664 by @Nirvikalpa108 + @eed3si9n
  • sbt.TrapExit is dropped due to Security Manager being deprecated in JDK 17. Calling sys.exit in run or test would shutdown the sbt session. Use forking to prevent it #6665 by @eed3si9n

BSP improvements

  • Fixes .sbtopts not getting picked up when sbt server is started by Metals #6593 by @adpi2
  • Fixes BSP IntelliJ import when java is not on PATH #6576 by @github-samuel-clarenc
  • Implements BSP buildTarget/cleanCache, which fixes IntelliJ rebuild #6638 by @hmemcpy
  • Implements BSP build/taskProgress notifications #6642 by @hmemcpy
  • Improves BSP IntelliJ import by sending information about sbt server process failure #6573 by @github-samuel-clarenc
  • Makes BSP requests robust to some target failures [#6609][6609] by @adpi2
  • Sends BSP diagnostics and meaningful error message when reloading fails #6566 by @adpi2

Remote caching improvements

sbt 1.6.0 improves remote caching of resources directory by virtualizing the internal sync state (copy-resources.txt). This allows incremental resource directory synching to be resumed from the remote cache, similar to how Zinc has been able to resume incremental compilation from the remote cache. This was contributed by Amina Adewusi (@Nirvikalpa108) as #6611.

Zinc improvements

Other updates

Participation

sbt 1.6.0-M1 was brought to you by 16 contributors. Eugene Yokota (eed3si9n), Adrien Piquerez, Jason Zaugg, Igal Tabachnik, Amina Adewusi, Dale Wijnand, Eathan Atkins, Samuel CLARENC, Daniel Darabos, Eric Peters, Lukas Rytz, Roberto Tyley, Ubaldo Pescatore, Victor Babenko, William Narmontas, dependabot[bot]. Thanks!

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

For anyone interested in helping sbt, there are many avenues for you to help, depending on your interest. If you're interested, Contributing, "help wanted", "good first issue", and Discussions are good starting points.