Hi everyone. sbt 1.2.1 patch release is available with a few important fixes.
If you are writing a plugin, please use 1.2.1+, and avoid 1.2.0.
We unintentionally broke forward binary compatibility in 1.2.0. If someone publishes an sbt plugin using sbt 1.2.0, it cannot be used from sbt 1.0.x or 1.1.x. sbt 1.2.1 reverts the change, so the forward compatibility is restored. Unfortunately, this means we won’t be able to use varargs in inThisBuild(...)
etc again.
Note that we might eventually break forward compatibility, like we did in 0.13.5 for AutoPlugin
, but only when the tradeoff is worth it.
Second regression fix is for the wall of warnings you might have seen in 1.2.0 that looks as follows:
[warn] The project ProjectRef(uri("file:/Users/xxx/work/akka/"), "akka-actor-typed") references an unknown configuration "multi-jvm" and was guessed to be "Multi-jvm".
[warn] This configuration should be explicitly added to the project.
[warn] The project ProjectRef(uri("file:/Users/xxx/work/akka/"), "akka-actor-typed-tests") references an unknown configuration "multi-jvm" and was guessed to be "Multi-jvm".
[warn] This configuration should be explicitly added to the project.
The original issue was that unified slash syntax doesn’t pick the configuration names when the configuration is not part of the subproject. Since this warning is immaterial, we are removing them in this patch release.
One thing the plugin authors can start doing is declaring the custom configuration as hidden, and adding them into the subprojects as follows:
import sbt._
import sbt.Keys._
object ParadoxPlugin extends AutoPlugin {
val ParadoxTheme = config("paradox-theme").hide
override def projectConfigurations: Seq[Configuration] = Seq(ParadoxTheme)
....
}
We are also looking into improving unified slash syntax parser to make it more robust.
IO.relativize
for JDK 9. io#175 by @eatkinsA huge thank you 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.
sbt 1.2.1 was brought to you by 4 contributors, according to git shortlog -sn --no-merges v1.2.1...v1.2.0
on sbt, zinc, librarymanagement, util, io, launcher-package, and website: Eugene Yokota, Aaron S. Hawley, Ethan Atkins, and Allan Renucci. Thanks! Also special thanks to Ches Martin and Yoshida-san for reporting these issues.
For anyone interested in helping sbt, there are many avenues you could help, depending on your interest.
If you’re interested, Contributing, “help wanted”, “good first issue” are good starting points. If you have ideas, come talk to us on sbt-contrib or on Lightbend Discuss.