Releases: sbt/sbt
1.5.5
- Fixes remote caching not managing resource files #6554 by @Nirvikalpa108
- Fixes launcher causing
NoClassDefFoundError
when launching sbt 1.4.0 - 1.4.2 launcher#98 by @eed3si9n - Fixes cross-Scala suffix conflict warning involving
_3
lm#383 by @eed3si9n - Fixes
binaryScalaVersion
of3.0.1-SNAPSHOT
lm#384 by @adpi2 - Fixes carriage return in supershell progress state #6556 by @sebastian-alfers
- Fixes IntegrationTest configuration not tagged as test in BSP #6551 by @samuelClarencTeads
- Fixes BSP task error handling #6565 by @adpi2
- Fixes handling of invalid range positions returned by Javac zinc#990 by @retronym
- Fixes local class analysis zinc#985 by @ephemerist
- Adds
buildTarget/resources
support for BSP #6552 by @samuelClarencTeads - Adds
build.sbt
support for BSP import #6553 by @retronym - Tracks source dependencies using
OriginalTreeAttachments
in Scala 2.13 zinc#985 by @ephemerist - Reduces overhead in Analysis protobuf deserialization zinc#989 by @retronym
- Minimizes unnecessary information in signature analysis zinc#987 by @ephemerist
- Enables compile-to-jar for local Javac zinc#986 by @ephemerist
- Enables Zinc cycle reporting when Scalac is not invoked zinc#988 by @ephemerist
1.5.4
- Fixes compiler ClassLoader list to use
compilerJars.toList
(For Scala 3, this drops support for 3.0.0-M2) #6538 by @adpi2 - Fixes undercompilation of package object causing "Symbol 'type X' is missing from the classpath" zinc#983 by @retronym
- Fixes overcompilation with scalac
-release
flag zinc#982 by @retronym - Fixes BSP on ARM Macs by keeping JNI server socket to keep using JNI ipcsocket#14 by @quelgar
- Fixes
build/exit
notification not closing BSP channel #6539 by @adpi2 - Fixes POM file's Maven repository ID character restriction to match that of Maven lm#380 by @peter-janssen
1.5.3
- Fixes
scalacOptions
not getting forwarded to ScalaDoc in Scala 3 #6499 by @pikinier20 - Fixes undercompilation of sealed traits that extends other seal traits zinc#979 by @dwijnand
- Fixes version parsing not recognizing dots in a prerelease tag lm#377 by @Nirvikalpa108
- Fixes spurious "@nowarn annotation does not suppress any warnings" in old style sbt plugins with
sbtPlugin := true
#6517 by @Nirvikalpa108 - Fixes
inputFile
resolving to incorrect files when file specific globs are used io#319 by @eatkins - Fixes multiple main class warning when
run
is scoped #6523 by @eatkins - Fixes duplicate
unmanagedSourceDirectories
when Scala version is 3.0.0 #6511 by @bjaglin - Fixes URL for
Resolvers.sonatypeRepo("releases")
lm#379/#5405 by @mkurz - Makes
makeScalaInstance
public #6504 by @adpi2 - Adjusts to Scala 2.13.6 restriction on narrowing access when overriding a field io#317 by @SethTisue
- Implements
sbtn
downloading insbt
runner script #6514 by @eed3si9n - Updates to Scala 2.12.14 #6522 by @mkurz
1.5.2
- Improves developer guide for new contributors #6469 by @Nirvikalpa108
- Fixes
ConcurrentModificationException
while compiling Scala 2.13.4 and Java sources zinc#974 by @lefou - Fixes
-client
by making it the same as--client
#6500 by @Nirvikalpa108 - Fixes scripted tests for dependency-graph #6484 by @Nirvikalpa108
- Fixes metabuild ClassLoader missing
util-interface
#6493 by @adpi2 - Uses
-Duser.home
instead of$HOME
to download launcher JAR #6483 by @rdesgroppes - Fixes
sbt new
leaving behindtarget
directory #6488 by @eed3si9n - Fixes "zip END header not found" error during
pushRemoteCache
#6497 by @eed3si9n
1.5.1
- sbt 1.5.1 in-sources sbt runner script to sbt/sbt repo, and implements
sbt-launch.jar
download - Make Linux distribution contain only the
sbt
runner script to minimize bandwidth - Fixes
NullPointerException
caused by the launcher implementation #6434/launcher#96 by @eed3si9n and @adpi2 - Fixes spurious "@nowarn annotation does not suppress any warnings" in sbt plugins #6431 by @adpi2
- Fixes JUnit reports directory for non-
Test
configurations #6425 by @ashleymercer - Fixes publishing to Ivy repo when there are classifiers #6456 by @guilgaly
- Fixes
itSettings
overriding settings inCompile
configuration #6436 by @steinybot - Fixes "Could not find required component 'xsbti'" error when launching sbt 0.13 launcher#95 by @eed3si9n
1.5.0
The headline features of sbt 1.5.0 are:
- Scala 3 support
- Eviction error
- Deprecation of sbt 0.13 syntax
- Coursier-based launcher
Scala 3 support
sbt 1.5.0 adds built-in Scala 3 support, contributed by Scala Center. Main implementation was done by Adrien Piquerez (@adpi2) based on EPFL/LAMP's sbt-dotty. You can now use Scala 3.0.0-RC2 like any other Scala version.
ThisBuild / scalaVersion := "3.0.0-RC2"
This will compile the following Hello.scala
:
package example
@main def hello(arg: String*): Unit =
if arg.isEmpty then println("hello")
else println(s"hi ${arg.head}")
Note: To support cross testing of various Scala 3.x releases, crossTarget
directory will contain the full Scala version. #6415
Scala 2.13-3.x sandwich
Scala 3.0.x shares the standard library with Scala 2.13, and since Scala 2.13.4, they can mutually consume the output of each other as external library. This allows you to create Scala 2.13-3.x sandwich, a layering of dependencies coming from different Scala versions.
Warning: Library authors should generally treat Scala 3.0 as any other major version, and prefer to cross publish _3
variant to avoid the conflict. Some libraries may encode a particular notion in different ways for Scala 2.13 and 3.0. For example, arity abstraction may use Shapeless HList in Scala 2.13, but built-in Tuple types in Scala 3.0. Thus it's generally not safe to have _2.13
and _3
versions of the same library in the classpath, even transitively. Application developers should be free to use .cross(CrossVersion.for3Use2_13)
as long as the transitive dependency graph will not introduce _2.13
variant of a library you already have in _3
variant.
sbt 1.5.0 introduces new cross building operand to use _3
variant when scalaVersion
is 2.13.x, and vice versa:
("a" % "b" % "1.0").cross(CrossVersion.for3Use2_13)
("a" % "b" % "1.0").cross(CrossVersion.for2_13Use3)
Deprecation of sbt 0.13 syntax
sbt 1.5.0 deprecates both the sbt 0.13 style shell syntax proj/config:intask::key
and sbt 0.13 style build.sbt DSL key in (Compile, intask)
in favor of the unified slash syntax.
There's a syntactic Scalafix rule for unified slash syntax
to semi-automatically rewrite existing sbt 0.13 syntax to the slash syntax. Currently it requires the use of scalafix CLI
and it's not very precise (because it's a syntactic rule that only looks at the shape of the code) but it gets most of the job done.
$ scalafix --rules=https://gist.githubusercontent.com/eed3si9n/57e83f5330592d968ce49f0d5030d4d5/raw/7f576f16a90e432baa49911c9a66204c354947bb/Sbt0_13BuildSyntax.scala *.sbt project/*.scala
See https://www.scala-sbt.org/1.x/docs/Migrating-from-sbt-013x.html#slash for details.
Eviction error
sbt 1.5.0 removes eviction warning, and replaces it with stricter eviction error. Unlike the eviction warning that was based on speculation, eviction error only uses the ThisBuild / versionScheme
information supplied by the library authors.
For example:
lazy val use = project
.settings(
name := "use",
libraryDependencies ++= Seq(
"org.http4s" %% "http4s-blaze-server" % "0.21.11",
// https://repo1.maven.org/maven2/org/typelevel/cats-effect_2.13/3.0.0-M4/cats-effect_2.13-3.0.0-M4.pom
// is published with early-semver
"org.typelevel" %% "cats-effect" % "3.0.0-M4",
),
)
The above build will fail to build use/compile
with the following error:
[error] stack trace is suppressed; run last use / update for the full output
[error] (use / update) found version conflict(s) in library dependencies; some are suspected to be binary incompatible:
[error]
[error] * org.typelevel:cats-effect_2.12:3.0.0-M4 (early-semver) is selected over {2.2.0, 2.0.0, 2.0.0, 2.2.0}
[error] +- use:use_2.12:0.1.0-SNAPSHOT (depends on 3.0.0-M4)
[error] +- org.http4s:http4s-core_2.12:0.21.11 (depends on 2.2.0)
[error] +- io.chrisdavenport:vault_2.12:2.0.0 (depends on 2.0.0)
[error] +- io.chrisdavenport:unique_2.12:2.0.0 (depends on 2.0.0)
[error] +- co.fs2:fs2-core_2.12:2.4.5 (depends on 2.2.0)
[error]
[error]
[error] this can be overridden using libraryDependencySchemes or evictionErrorLevel
This is because Cats Effect 2.x and 3.x are found in the classpath, and Cats Effect has declared that it uses early-semver. If the user wants to opt-out of this, the user can do so per module:
ThisBuild / libraryDependencySchemes += "org.typelevel" %% "cats-effect" % VersionScheme.Always
or globally as:
ThisBuild / evictionErrorLevel := Level.Info
On the other hand, if you want to bring back the guessing feature in eviction warning, you can do using the following settings:
ThisBuild / assumedVersionScheme := VersionScheme.PVP
ThisBuild / assumedVersionSchemeJava := VersionScheme.EarlySemVer
ThisBuild / assumedEvictionErrorLevel := Level.Warn
@eed3si9n implemented this in #6221, inspired in part by Scala Center's sbt-eviction-rules, which was implemented by Alexandre Archambault (@alxarchambault) and Julien Richard-Foy (@julienrf).
ThisBuild / packageTimestamp setting
In sbt 1.4.0 we started wiping out the timestamps in JAR to make the builds more repeatable. This had an unintended consequence of breaking Play's last-modified response header.
To opt out of this default, the user can use:
ThisBuild / packageTimestamp := Package.keepTimestamps
// or
ThisBuild / packageTimestamp := Package.gitCommitDateTimestamp
Coursier-based launcher
sbt launcher shipped in the official installer of sbt is a generic launcher that is able to launch all versions of sbt. For the sbt launcher shipped with sbt 1.5.0 installer, its internal dependency resolver used to resolve sbt itself was updated from Apache Ivy to Coursier (Dependency resolver for the built has been updated to Coursier in sbt 1.3.0).
You can use -Dsbt.launcher.coursier=false
to opt out of using Coursier and used Apache Ivy instead. launcher#86 by @eed3si9n
Other updates
- Fixes
SemanticdbPlugin
creating duplicatescalacOptions
or dropping-Yrangepos
#6296/#6316 by @bjaglin and @eed3si9n - Fixes tab completion of dependency configurations
Compile
,Test
, etc #6283 by @eed3si9n - Fixes exit code calculation in
StashOnFailure
#6266 by @melezov - Fixes concurrency issues with
testQuick
#6326 by @RafalSumislawski - Updates to Scala 2.12.13.
- Updates to Coursier 2.0.15, includes
reload
memory fix by @jtjeferreira and behind-the-proxy IntelliJ import fix added by @eed3si9n - Warns when
ThisBuild / versionScheme
is missing while publishing #6310 by @eed3si9n - Use 2010-01-01 for the repeatable build timestamp wipe-out to avoid negative date #6254 by @takezoe (There's an active discussion to use commit date instead)
- Adds FileInput/FileOutput that avoids intermediate String parsing #5515 by @jtjeferreira
- Support credential file without realm lm#367 by @MasseGuillaume
- Support MUnit out of box #6335 by @julienrf
- Automatically publishLocal plugin dependency subprojects before
scripted
#6351 by @steinybot
1.5.0-RC2
1.5.0-RC2 is a release candidate for sbt 1.5.0. The headline features of sbt 1.5.0 are:
- Scala 3 support
- Eviction error
- Deprecation of sbt 0.13 syntax
Changes since RC-1
- Updates to Coursier 2.0.15
- Fixes full recompilation after reboot by fixing Modifier access zinc#968 by @adpi2
- Fixes spurious "@nowarn annotation does not suppress any warnings" #6403 by @adpi2
- Fixes
--sbt-launch-jar
option in BSP connection details #6401 by @adpi2 - Environment variable support in BSP debug session #6397 by @arixmkii
- Fixes "Scala binary version" warning when using Ivy lm#372 by @adpi2
- Fixes
LinkageError
duringrun
by shading Coursier in launcher launcher#89 by @adpi2 - Fixes launcher launching older sbt launcher#92 / launcher#93 by @eed3si9n
- Fixes Coursier cache location on Windows becoming
null/Coursier/cache
by using%LOCALAPPDATA%
instead of shelling out to PowerShell #6408 by @eed3si9n
Scala 3 support
sbt 1.5.0 adds built-in Scala 3 support, contributed by Scala Center. Main implementation was done by Adrien Piquerez (@adpi2) based on EPFL/LAMP's sbt-dotty.
After this resolver is added, you can now use Scala 3.0.0-RC1 like any other Scala version.
ThisBuild / scalaVersion := "3.0.0-RC1"
This will compile the following Hello.scala
:
package example
@main def hello(arg: String*): Unit =
if arg.isEmpty then println("hello")
else println(s"hi ${arg.head}")
Scala 2.13-3.x sandwich
Scala 3.0.x shares the standard library with Scala 2.13, and since Scala 2.13.4, they can mutually consume the output of each other as external library. This allows you to create Scala 2.13-3.x sandwich, a layering of dependencies coming from different Scala versions.
Warning: Library authors should generally treat Scala 3.0 as any other major version, and prefer to cross publish _3
variant to avoid the conflict. Some libraries may encode a particular notion in different ways for Scala 2.13 and 3.0. For example, arity abstraction may use Shapeless HList in Scala 2.13, but built-in Tuple types in Scala 3.0. Thus it's generally not safe to have _2.13
and _3
versions of the same library in the classpath, even transitively. Application developers should be free to use .cross(CrossVersion.for3Use2_13)
as long as the transitive dependency graph will not introduce _2.13
variant of a library you already have in _3
variant.
sbt 1.5.0 introduces new cross building operand to use _3
variant when scalaVersion
is 2.13.x, and vice versa:
("a" % "b" % "1.0").cross(CrossVersion.for3Use2_13)
("a" % "b" % "1.0").cross(CrossVersion.for2_13Use3)
Deprecation of sbt 0.13 syntax
sbt 1.5.0 deprecates both the sbt 0.13 style shell syntax proj/config:intask::key
and sbt 0.13 style build.sbt DSL key in (Compile, intask)
in favor of the unified slash syntax.
See https://www.scala-sbt.org/1.x/docs/Migrating-from-sbt-013x.html#slash for details.
Eviction error
sbt 1.5.0 removes eviction warning, and replaces it with stricter eviction error. Unlike the eviction warning that was based on speculation, eviction error only uses the ThisBuild / versionScheme
information supplied by the library authors.
For example:
lazy val use = project
.settings(
name := "use",
libraryDependencies ++= Seq(
"org.http4s" %% "http4s-blaze-server" % "0.21.11",
// https://repo1.maven.org/maven2/org/typelevel/cats-effect_2.13/3.0.0-M4/cats-effect_2.13-3.0.0-M4.pom
// is published with early-semver
"org.typelevel" %% "cats-effect" % "3.0.0-M4",
),
)
The above build will fail to build use/compile
with the following error:
[error] stack trace is suppressed; run last use / update for the full output
[error] (use / update) found version conflict(s) in library dependencies; some are suspected to be binary incompatible:
[error]
[error] * org.typelevel:cats-effect_2.12:3.0.0-M4 (early-semver) is selected over {2.2.0, 2.0.0, 2.0.0, 2.2.0}
[error] +- use:use_2.12:0.1.0-SNAPSHOT (depends on 3.0.0-M4)
[error] +- org.http4s:http4s-core_2.12:0.21.11 (depends on 2.2.0)
[error] +- io.chrisdavenport:vault_2.12:2.0.0 (depends on 2.0.0)
[error] +- io.chrisdavenport:unique_2.12:2.0.0 (depends on 2.0.0)
[error] +- co.fs2:fs2-core_2.12:2.4.5 (depends on 2.2.0)
[error]
[error]
[error] this can be overridden using libraryDependencySchemes or evictionErrorLevel
This is because Cats Effect 2.x and 3.x are found in the classpath, and Cats Effect has declared that it uses early-semver. If the user wants to opt-out of this, the user can do so per module:
ThisBuild / libraryDependencySchemes += "org.typelevel" %% "cats-effect" % VersionScheme.Always
or globally as:
ThisBuild / evictionErrorLevel := Level.Info
On the other hand, if you want to bring back the guessing feature in eviction warning, you can do using the following settings:
ThisBuild / assumedVersionScheme := VersionScheme.PVP
ThisBuild / assumedVersionSchemeJava := VersionScheme.EarlySemVer
ThisBuild / assumedEvictionErrorLevel := Level.Warn
@eed3si9n implemented this in #6221, inspired in part by Scala Center's sbt-eviction-rules, which was implemented by Alexandre Archambault (@alxarchambault) and Julien Richard-Foy (@julienrf).
ThisBuild / packageTimestamp setting
In sbt 1.4.0 we started wiping out the timestamps in JAR to make the builds more repeatable. This had an unintended consequence of breaking Play's last-modified response header.
To opt out of this default, the user can use:
ThisBuild / packageTimestamp := Package.keepTimestamps
// or
ThisBuild / packageTimestamp := Package.gitCommitDateTimestamp
Other updates
- Fixes
SemanticdbPlugin
creating duplicatescalacOptions
or dropping-Yrangepos
#6296/#6316 by @bjaglin and @eed3si9n - Fixes tab completion of dependency configurations
Compile
,Test
, etc #6283 by @eed3si9n - Fixes exit code calculation in
StashOnFailure
#6266 by @melezov - Fixes concurrency issues with
testQuick
#6326 by @RafalSumislawski - Updates to Scala 2.12.13.
- Updates to Coursier 2.0.15, includes
reload
memory fix by @jtjeferreira and behind-the-proxy IntelliJ import fix added by @eed3si9n - Warns when
ThisBuild / versionScheme
is missing while publishing #6310 by @eed3si9n - Use 2010-01-01 for the repeatable build timestamp wipe-out to avoid negative date #6254 by @takezoe (There's an active discussion to use commit date instead)
- Adds FileInput/FileOutput that avoids intermediate String parsing #5515 by @jtjeferreira
- Support credential file without realm lm#367 by @MasseGuillaume
- Support MUnit out of box #6335 by @julienrf
- Automatically publishLocal plugin dependency subprojects before
scripted
#6351 by @steinybot - Update Launcher to use Coursier to download the artifact launcher#86 by @eed3si9n
1.5.0-RC1
1.5.0-RC1 is a release candidate for sbt 1.5.0. The headline features of sbt 1.5.0 are:
- Scala 3 support
- Eviction error
- Deprecation of sbt 0.13 syntax
Scala 3 support
sbt 1.5.0 adds built-in Scala 3 support, contributed by Scala Center. Main implementation was done by Adrien Piquerez (@adpi2) based on EPFL/LAMP's sbt-dotty.
After this resolver is added, you can now use Scala 3.0.0-RC1 like any other Scala version.
ThisBuild / scalaVersion := "3.0.0-RC1"
ThisBuild / resolvers += Resolver.JCenterRepository
This will compile the following Hello.scala
:
package example
@main def hello(arg: String*): Unit =
if arg.isEmpty then println("hello")
else println(s"hi ${arg.head}")
Scala 2.13-3.x sandwich
Scala 3.0.x shares the standard library with Scala 2.13, and since Scala 2.13.4, they can mutually consume the output of each other as external library. This allows you to create Scala 2.13-3.x sandwich, a layering of dependencies coming from different Scala versions.
Warning: Libraries such as Cats may encode a particular notion in different ways for Scala 2.13 and 3.0. For example, arity abstraction may use Shapeless HList in Scala 2.13, but built-in Tuple types in Scala 3.0. Thus it's generally not safe to have _2.13
and _3
versions of the same library in the classpath, even transitively. Library authors should generally treat Scala 3.0 as any other major version, and generally prefer to cross publish _3
variant to avoid the conflict.
sbt 1.5.0 introduces new cross building operand to use _3
variant when scalaVersion
is 2.13.x, and vice versa:
("a" % "b" % "1.0").cross(CrossVersion.for3Use2_13)
("a" % "b" % "1.0").cross(CrossVersion.for2_13Use3)
Deprecation of sbt 0.13 syntax
sbt 1.5.0 deprecates both the sbt 0.13 style shell syntax proj/config:intask::key
and sbt 0.13 style build.sbt DSL key in (Compile, intask)
in favor of the unified slash syntax.
See https://www.scala-sbt.org/1.x/docs/Migrating-from-sbt-013x.html#slash for details.
Eviction error
sbt 1.5.0 removes eviction warning, and replaces it with stricter eviction error. Unlike the eviction warning that was based on speculation, eviction error only uses the ThisBuild / versionScheme
information supplied by the library authors.
For example:
lazy val use = project
.settings(
name := "use",
libraryDependencies ++= Seq(
"org.http4s" %% "http4s-blaze-server" % "0.21.11",
// https://repo1.maven.org/maven2/org/typelevel/cats-effect_2.13/3.0.0-M4/cats-effect_2.13-3.0.0-M4.pom
// is published with early-semver
"org.typelevel" %% "cats-effect" % "3.0.0-M4",
),
)
The above build will fail to build use/compile
with the following error:
[error] stack trace is suppressed; run last use / update for the full output
[error] (use / update) found version conflict(s) in library dependencies; some are suspected to be binary incompatible:
[error]
[error] * org.typelevel:cats-effect_2.12:3.0.0-M4 (early-semver) is selected over {2.2.0, 2.0.0, 2.0.0, 2.2.0}
[error] +- use:use_2.12:0.1.0-SNAPSHOT (depends on 3.0.0-M4)
[error] +- org.http4s:http4s-core_2.12:0.21.11 (depends on 2.2.0)
[error] +- io.chrisdavenport:vault_2.12:2.0.0 (depends on 2.0.0)
[error] +- io.chrisdavenport:unique_2.12:2.0.0 (depends on 2.0.0)
[error] +- co.fs2:fs2-core_2.12:2.4.5 (depends on 2.2.0)
[error]
[error]
[error] this can be overridden using libraryDependencySchemes or evictionErrorLevel
This is because Cats Effect 2.x and 3.x are found in the classpath, and Cats Effect has declared that it uses early-semver. If the user wants to opt-out of this, the user can do so per module:
ThisBuild / libraryDependencySchemes += "org.typelevel" %% "cats-effect" % VersionScheme.Always
or globally as:
ThisBuild / evictionErrorLevel := Level.Info
On the other hand, if you want to bring back the guessing feature in eviction warning, you can do using the following settings:
ThisBuild / assumedVersionScheme := VersionScheme.PVP
ThisBuild / assumedVersionSchemeJava := VersionScheme.EarlySemVer
ThisBuild / assumedEvictionErrorLevel := Level.Warn
@eed3si9n implemented this in #6221, inspired in part by Scala Center's sbt-eviction-rules, which was implemented by Alexandre Archambault (@alxarchambault) and Julien Richard-Foy (@julienrf).
ThisBuild / packageTimestamp setting
In sbt 1.4.0 we started wiping out the timestamps in JAR to make the builds more repeatable. This had an unintended consequence of breaking Play's last-modified response header.
To opt out of this default, the user can use:
ThisBuild / packageTimestamp := Package.keepTimestamps
// or
ThisBuild / packageTimestamp := Package.gitCommitDateTimestamp
Other updates
- Fixes
SemanticdbPlugin
creating duplicatescalacOptions
or dropping-Yrangepos
#6296/#6316 by @bjaglin and @eed3si9n - Fixes tab completion of dependency configurations
Compile
,Test
, etc #6283 by @eed3si9n - Fixes exit code calculation in
StashOnFailure
#6266 by @melezov - Fixes concurrency issues with
testQuick
#6326 by @RafalSumislawski - Updates to Scala 2.12.13.
- Updates to Coursier 2.0.12, includes
reload
memory fix by @jtjeferreira and behind-the-proxy IntelliJ import fix added by @eed3si9n - Warns when
ThisBuild / versionScheme
is missing while publishing #6310 by @eed3si9n - Use 2010-01-01 for the repeatable build timestamp wipe-out to avoid negative date #6254 by @takezoe (There's an active discussion to use commit date instead)
- Adds FileInput/FileOutput that avoids intermediate String parsing #5515 by @jtjeferreira
- Support credential file without realm lm#367 by @MasseGuillaume
- Support MUnit out of box #6335 by @julienrf
- Automatically publishLocal plugin dependency subprojects before
scripted
#6351 by @steinybot - Update Launcher to use Coursier to download the artifact launcher#86 by @eed3si9n
1.4.9
Changes since 1.4.9
sbt 1.4.9 fixes JLine 2 fork + JAnsi version to match that of JLine 3.19.0 to fix line reading, which among other things affected IntelliJ import.
Changes with compatibility implications
sbt 1.4.9 is published to Sonatype OSS without going through Bintray.
- Prior to 1.4.9,
sbt-launcher
was published twice undersbt-launch.jar
and Maven-compatiblesbt-launch-<version>.jar
. We're no longer going to publish the Maven incompatible form of the launcher JAR. The latest sbt-extras has already migrated to the correct URL, but CI environments using and older version of it may experience disruptions. As the fix, curl*.tgz
from GitHub release. - DEB and RPM packages are not provided for this release. I hope we will have a replacement repo up to eventually be able to support this, but we do not have one yet. For now, download
*.tgz
from GitHub release.
Migration note for Travis CI
If you're using Travis CI, you might run into the above issue because it's using an older version of sbt-extras. Here's how you can use the official sbt launcher script instead:
install:
- |
# update this only when sbt-the-bash-script needs to be updated
export SBT_LAUNCHER=1.4.9
export SBT_OPTS="-Dfile.encoding=UTF-8"
curl -L --silent "https://github.com/sbt/sbt/releases/download/v$SBT_LAUNCHER/sbt-$SBT_LAUNCHER.tgz" > $HOME/sbt.tgz
tar zxf $HOME/sbt.tgz -C $HOME
sudo rm /usr/local/bin/sbt
sudo ln -s $HOME/sbt/bin/sbt /usr/local/bin/sbt
script:
- sbt -v "+test"
Fixes
- Fixes
sourcePositionMappers
added by Play not getting called #6352 by @mkurz - Upgrade to JLine 3.19.0 to work around Scala 2.13.5 REPL breakage #6366 by @eed3si9n
- Fixes concurrent
testQuick
leading to an infinite loop #6326 by @RafalSumislawski - Fixes
ZipEntry
timestamp to 2010-01-01 to prevent negative value #6290 by @takezoe - Display a better error message for "sbt server is already booting" problem #6353 by @sideeffffect
1.4.8
Changes with compatibility implications
sbt 1.4.8 is published to Sonatype OSS without going through Bintray.
- Prior to 1.4.8,
sbt-launcher
was published twice undersbt-launch.jar
and Maven-compatiblesbt-launch-<version>.jar
. We're no longer going to publish the Maven incompatible form of the launcher JAR. The latest sbt-extras has already migrated to the correct URL, but CI environments using and older version of it may experience disruptions. As the fix, curl*.tgz
from GitHub release. - DEB and RPM packages are not provided for this release. I hope we will have a replacement repo up to eventually be able to support this, but we do not have one yet. For now, download
*.tgz
from GitHub release.
Migration note for Travis CI
If you're using Travis CI, you might run into the above issue because it's using an older version of sbt-extras. Here's how you can use the official sbt launcher script instead:
install:
- |
# update this only when sbt-the-bash-script needs to be updated
export SBT_LAUNCHER=1.4.8
export SBT_OPTS="-Dfile.encoding=UTF-8"
curl -L --silent "https://github.com/sbt/sbt/releases/download/v$SBT_LAUNCHER/sbt-$SBT_LAUNCHER.tgz" > $HOME/sbt.tgz
tar zxf $HOME/sbt.tgz -C $HOME
sudo rm /usr/local/bin/sbt
sudo ln -s $HOME/sbt/bin/sbt /usr/local/bin/sbt
script:
- sbt -v "+test"
Fixes
- Fixes
sourcePositionMappers
added by Play not getting called #6352 by @mkurz - Upgrade to JLine 3.19.0 to work around Scala 2.13.5 REPL breakage #6366 by @eed3si9n
- Fixes concurrent
testQuick
leading to an infinite loop #6326 by @RafalSumislawski - Fixes
ZipEntry
timestamp to 2010-01-01 to prevent negative value #6290 by @takezoe - Display a better error message for "sbt server is already booting" problem #6353 by @sideeffffect