Releases: sbt/sbt
1.5.5
- Fixes remote caching not managing resource files #6554 by @Nirvikalpa108
- Fixes launcher causing
NoClassDefFoundErrorwhen launching sbt 1.4.0 - 1.4.2 launcher#98 by @eed3si9n - Fixes cross-Scala suffix conflict warning involving
_3lm#383 by @eed3si9n - Fixes
binaryScalaVersionof3.0.1-SNAPSHOTlm#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/resourcessupport for BSP #6552 by @samuelClarencTeads - Adds
build.sbtsupport for BSP import #6553 by @retronym - Tracks source dependencies using
OriginalTreeAttachmentsin 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
-releaseflag zinc#982 by @retronym - Fixes BSP on ARM Macs by keeping JNI server socket to keep using JNI ipcsocket#14 by @quelgar
- Fixes
build/exitnotification 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
scalacOptionsnot 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
inputFileresolving to incorrect files when file specific globs are used io#319 by @eatkins - Fixes multiple main class warning when
runis scoped #6523 by @eatkins - Fixes duplicate
unmanagedSourceDirectorieswhen Scala version is 3.0.0 #6511 by @bjaglin - Fixes URL for
Resolvers.sonatypeRepo("releases")lm#379/#5405 by @mkurz - Makes
makeScalaInstancepublic #6504 by @adpi2 - Adjusts to Scala 2.13.6 restriction on narrowing access when overriding a field io#317 by @SethTisue
- Implements
sbtndownloading insbtrunner 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
ConcurrentModificationExceptionwhile compiling Scala 2.13.4 and Java sources zinc#974 by @lefou - Fixes
-clientby 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.homeinstead of$HOMEto download launcher JAR #6483 by @rdesgroppes - Fixes
sbt newleaving behindtargetdirectory #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.jardownload - Make Linux distribution contain only the
sbtrunner script to minimize bandwidth - Fixes
NullPointerExceptioncaused 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-
Testconfigurations #6425 by @ashleymercer - Fixes publishing to Ivy repo when there are classifiers #6456 by @guilgaly
- Fixes
itSettingsoverriding settings inCompileconfiguration #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 evictionErrorLevelThis 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.Alwaysor globally as:
ThisBuild / evictionErrorLevel := Level.InfoOn 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.gitCommitDateTimestampCoursier-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
SemanticdbPlugincreating duplicatescalacOptionsor 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
reloadmemory fix by @jtjeferreira and behind-the-proxy IntelliJ import fix added by @eed3si9n - Warns when
ThisBuild / versionSchemeis 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-jaroption 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
LinkageErrorduringrunby 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/cacheby 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 evictionErrorLevelThis 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.Alwaysor globally as:
ThisBuild / evictionErrorLevel := Level.InfoOn 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.gitCommitDateTimestampOther updates
- Fixes
SemanticdbPlugincreating duplicatescalacOptionsor 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
reloadmemory fix by @jtjeferreira and behind-the-proxy IntelliJ import fix added by @eed3si9n - Warns when
ThisBuild / versionSchemeis 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.JCenterRepositoryThis 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 evictionErrorLevelThis 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.Alwaysor globally as:
ThisBuild / evictionErrorLevel := Level.InfoOn 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.gitCommitDateTimestampOther updates
- Fixes
SemanticdbPlugincreating duplicatescalacOptionsor 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
reloadmemory fix by @jtjeferreira and behind-the-proxy IntelliJ import fix added by @eed3si9n - Warns when
ThisBuild / versionSchemeis 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-launcherwas published twice undersbt-launch.jarand 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*.tgzfrom 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
*.tgzfrom 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
sourcePositionMappersadded 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
testQuickleading to an infinite loop #6326 by @RafalSumislawski - Fixes
ZipEntrytimestamp 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-launcherwas published twice undersbt-launch.jarand 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*.tgzfrom 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
*.tgzfrom 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
sourcePositionMappersadded 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
testQuickleading to an infinite loop #6326 by @RafalSumislawski - Fixes
ZipEntrytimestamp 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