Skip to content

0.13.15

Compare
Choose a tag to compare
@eed3si9n eed3si9n released this 12 Apr 09:27
· 7664 commits to 1.10.x since this release
v0.13.15

Fixes with compatibility implications

  • sbt 0.13.15 removes the Maven version range when possible. See below.

Improvements

  • Adds preliminary compatibility with JDK 9. Using this requires 0.13.15+ launcher. #2951/143 by @retronym
  • Adds "local-preloaded" repository for offline installation. See below.
  • Notifies and enables users to stay in sbt's shell on the warm JVM by hitting [ENTER] while sbt is running. #2987/#2996 by @dwijnand
  • Adds an Append instance to support sourceGenerators += Def.task { ... }, instead of needing .taskValue. #2943 by @eed3si9n
  • Writes out the sbt.version in project/build.properties if it is missing. #754/#3025 by @dwijnand
  • XML generated by JUnitXmlTestsListener now correctly flags ignored, skipped and pending tests. #2198/#2854 by @ashleymercer
  • When sbt detects that the project is compiled with dotty, it now automatically
    sets scalaCompilerBridgeSource correctly, this reduces the boilerplate needed
    to make a dotty project. Note that dotty support in sbt is still considered
    experimental and not officially supported, see dotty.epfl.ch for
    more information. #2902 by @smarter
  • Updates sbt new's reference implementation to Giter8 0.7.2.
  • ScriptedPlugin: Add the ability to paginate scripted tests.
    It is now possible to run a subset of scripted tests in a directory at once,
    for example:
    scripted source-dependencies/*1of3
    
    Will create three pages and run page 1. This is especially useful when running
    scripted tests on a CI, to benefit from the available parallelism. 3013 by @smarter

Bug fixes

  • Fixes .triggeredBy/.storeAs/etc not working when using := and .value macros. #1444/#2908 by @dwijnand
  • Fixes Ctrl-C not working on Windows by bumping up JLine. #1855 by @eed3si9n
  • Fixes regressions in sbt 0.13.11 - 0.13.13 that processed build-level keys incorrectly. #2851/#2460 by @eed3si9n
  • Fixes a regression in sbt 0.13.12 that was misfiring Scala version enforcement when configuration does not extend Compile. #2827/#2786 by @eed3si9n
  • Fixes Scala binary version checking misfiring on configurations that do not extend Compile. #2828/#1466 by @eed3si9n
  • Fixes script mode ignoring quotation. #2551 by @ekrich
  • Fixes IllegalStateException that Ivy gets into sometimes. #2827/#2015 by @eed3si9n
  • Fixes null sourceFile causing NPE. #2766 by @avdv
  • Fixes version parsing in validation. #3011 by @eed3si9n
  • Fixes Package.makeJar deleting directory recursively. #3014 by @larsrh

Maven version range improvement

Previously, when the dependency resolver (Ivy) encountered a Maven version range such as [1.3.0,)
it would go out to the Internet to find the latest version.
This would result to a surprising behavior where the eventual version keeps changing over time
even when there's a version of the library that satisfies the range condition.

Starting sbt 0.13.15, some Maven version ranges would be replaced with its lower bound
so that when a satisfactory version is found in the dependency graph it will be used.
You can disable this behavior using the JVM flag -Dsbt.modversionrange=false.

#2954 by @eed3si9n

Offline installation

sbt 0.13.15 adds two new repositories called "local-preloaded-ivy"
and "local-preloaded" that point to ~/.sbt/preloaded/.
The purpose for the repositories is to preload them with
sbt artifacts so the installation of sbt will not require access to the Internet.

This also improves the startup time of sbt when you first run it
since the resolution happens off of a local-preloaded repository.

#2993/#145 by @eed3si9n

Notes

No changes should be necessary to your project definition and all plugins published for sbt 0.13.{x|x<14} should still work.

See Migrating from sbt 0.12.x for details on the old operator deprecation.

Special thanks to the contributors for making this release a success. According to git shortlog -sn --no-merges v0.13.13..0.13.15, compared to 0.13.13, there were 64 (non-merge) commits, by eleven contributors: Eugene Yokota, Dale Wijnand, Guillaume Martres, Jason Zaugg, Lars Hupel, Petro Verkhogliad, Eric Richardson, Claudio Bley, Haochi Chen, Paul Draper, Ashley Mercer. Thank you!