By Eugene Yokota (@eed3si9n) October 27, 2017
Hi everyone. It’s time for a sbt 1.0.x hotfix.
I would also like to announce sbt 1.0.3, which is a hotfix to sbt 1.0.x series. This is a binary compatible release for sbt 1 focusing on bug fixes. sbt 1 is released under Semantic Versioning, and the plugins are expected to work for sbt 1.x series.
~recompiling in loop (when a source generator or sbt-buildinfo is present). #3501/#3634 by @dwijnand
- Fixes undercompilation on inheritance on same source. zinc#424 by @eed3si9n
- Fixes the compilation of package-protected objects. zinc#431 by @jvican
- Workaround for Java returning
getGenericParameterTypes. zinc#446 by @jvican
- Fixes test detection regression. sbt 1.0.3 filters out nested objects/classes from the list, restoring compatibility with 0.13. #3669 by @cunei
- Uses Scala 2.12.4 for the build definition. This includes fix for runtime reflection of empty package members under Java 9. #3587 by @eed3si9n
- Fixes extra
/in Ivy style patterns. lm#170 by @laughedelic
- Fixes “destination file exist” error message by including the file name. lm171 by @leonardehrenfried
- Fixes JDK 9 warning “Illegal reflective access” in library management module and Ivy. lm173 by @dwijnand
allJars, which affects IntelliJ. #3561 by @jastice
sbt.watch.modesystem property to allow switching back to old polling behaviour for watch. See below for more details.
sbt 1.0.0 introduced a new mechanism for watching for source changes based on the NIO
WatchService in Java 1.7. On some platforms (namely macOS) this has led to long delays before changes are picked up. An alternative
WatchService for these platforms is planned for sbt 1.1.0 (#3527), in the meantime an option to select which watch service has been added.
sbt.watch.mode JVM flag has been added with the following supported values:
polling: (default for macOS) poll the filesystem for changes (mechanism used in sbt 0.13).
nio(default for other platforms): use the NIO based
If you are experiencing long delays on a non-macOS machine then try adding
-Dsbt.watch.mode=polling to your sbt options.
A shoutout to Munich Scala User Group for organizing Build Workshop - keep our ecosystem in shape.
Organized by Lars Hupel (@larsr_h), Justin Kaeser (@ebenwert) IntelliJ Scala plugin dev, and Muki Seiler (@muuki88) sbt-native-packager dev, a bunch of people got together at codecentric AG (@codecentric) in München and hacked on builds to upgrade to sbt 1. This is awesome:
completed with at least 6 PRs for sbt 1.0 upgrades! https://t.co/7eGDyRsyFp— Justin Kaeser (@ebenwert) October 25, 2017
A 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.0.3 was brought to you by 15 contributors, according to
git shortlog -sn --no-merges v1.0.2..v1.0.3 on sbt, zinc, librarymanagement, util, io, and website: Eugene Yokota, Dale Wijnand, Michael Stringer, Jorge Vicente Cantero (jvican), Alexey Alekhin, Antonio Cunei, Andrey Artemov, Jeffrey Olchovy, Kenji Yoshida (xuwei-k), Dominik Winter, Long Jinwei, Arnout Engelen, Justin Kaeser, Leonard Ehrenfried, Sakib Hadžiavdić. Thank you!
For anyone interested in helping sbt, there are many avenues you could help, depending on your interest.
- Migrate library builds to sbt 1, or update plugins.
- 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.