Skip to content

Releases: sbt/sbt

1.5.5

12 Jul 07:32
v1.5.5
Compare
Choose a tag to compare

1.5.4

14 Jun 03:46
v1.5.4
Compare
Choose a tag to compare
  • 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

01 Jun 03:17
v1.5.3
Compare
Choose a tag to compare
  • 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 in sbt runner script #6514 by @eed3si9n
  • Updates to Scala 2.12.14 #6522 by @mkurz

1.5.2

10 May 00:28
v1.5.2
Compare
Choose a tag to compare

1.5.1

26 Apr 03:11
v1.5.1
Compare
Choose a tag to compare
  • 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 in Compile configuration #6436 by @steinybot
  • Fixes "Could not find required component 'xsbti'" error when launching sbt 0.13 launcher#95 by @eed3si9n

1.5.0

04 Apr 18:16
v1.5.0
7c266e8
Compare
Choose a tag to compare

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)

lm#361 by @adpi2

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

#6237 by @eed3si9n

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 duplicate scalacOptions 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
Read more

1.5.0-RC2

22 Mar 09:54
v1.5.0-RC2
0e9ddf4
Compare
Choose a tag to compare

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 during run 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)

lm#361 by @adpi2

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

#6237 by @eed3si9n

Other updates

  • Fixes SemanticdbPlugin creating duplicate scalacOptions 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

15 Mar 07:26
v1.5.0-RC1
699ffe5
Compare
Choose a tag to compare

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)

lm#361 by @adpi2

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

#6237 by @eed3si9n

Other updates

  • Fixes SemanticdbPlugin creating duplicate scalacOptions 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

10 Mar 04:49
v1.4.9
718a42a
Compare
Choose a tag to compare

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 under sbt-launch.jar and Maven-compatible sbt-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

08 Mar 00:32
v1.4.8
a417fe3
Compare
Choose a tag to compare

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 under sbt-launch.jar and Maven-compatible sbt-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