Skip to content

Releases: sbt/sbt

2.0.0-RC10

26 Mar 04:52
v2.0.0-RC10
872985d

Choose a tag to compare

2.0.0-RC10 Pre-release
Pre-release

changes with compatibility implications

🚀 updates

🐛 bug fixes

behind the scenes

new contributors

Full Changelog: v2.0.0-RC9...v2.0.0-RC10

1.12.8

25 Mar 02:29
v1.12.8

Choose a tag to compare

updates

  • fix: Fixes the source dependency checkout directory by @eed3si9n in #8974

behind the scenes

Full Changelog: v1.12.7...v1.12.8

1.12.7

23 Mar 22:30
v1.12.7

Choose a tag to compare

CVE-2026-32948 Source dependency feature (via crafted VCS URL) leading to arbitrary code execution on Windows

sbt 1.12.7 fixes CVE-2026-32948 (GHSA-x4ff-q6h8-v7gw). Recently @anatoliykmetyuk at Scala Center discovered a vulnerability in sbt's source dependency feature ProjectRef(...) and RootProject(...). The URL for the version control system allows branch specification via the URL fragment, which is passed to Windows cmd shell. A malicious user can craft an URL that allows arbitrary code execution.

Anatolii also provided a fix from a private fork 1ce945 and 3a474a. We recommend upgrading to sbt 1.12.7, especially if you're on Windows.

updates

Full Changelog: v1.12.6...v1.12.7

1.12.6

16 Mar 02:59
v1.12.6

Choose a tag to compare

updates

Full Changelog: v1.12.5...v1.12.6

1.12.5

01 Mar 23:26
v1.12.5

Choose a tag to compare

updates

  • bport: sbt runner should fail on JDK < 17 for sbt 2.x by @eureka928 in #8825
  • bport: sbtn prints out the error if server fails to start by @eureka928 in #8816

🐛 bug fixes

  • bport: Fixes double quotes handling in JVM argfile by @BrianHotopp in #8765
  • bport: Fixes sbt runner comment handling in .sbtopts and .javaopts files by @eed3si9n in #8841
  • bport: Fixes sbt runner's sbtn detection by @fireXtract in #8810

Full Changelog: v1.12.4...v1.12.5

1.12.4

23 Feb 09:01
v1.12.4

Choose a tag to compare

  • backport: Respect scalaOrganization in compiler bridge resolution by @tanishiking in #8799
  • backport: Fixes .jvmopts parse error on Windows Git Bash by reverting "Handle JVM parameters with spaces in dot files" by @eed3si9n in #8798

Full Changelog: v1.12.3...v1.12.4

2.0.0-RC9

16 Feb 06:05
v2.0.0-RC9
3420609

Choose a tag to compare

2.0.0-RC9 Pre-release
Pre-release

changes with compatibility implications

  • Disables delegation of scoped settings and tasks on shell by @eed3si9n in #8539

🚀 updates

JDK 17 + Scala 3.8.1 in metabuild

sbt 2.0.0-RC9 upgrades the Scala version used on the metabuild to Scala 3.8.1 after notifying the community in the users forum. This means that you would need JDK 17 or later to run sbt 2.x.

This was contributed by @eed3si9n in #8530.

Maven BOM (Bill of Materials) usage support

sbt 2.0.0-RC9 adds Maven BOM (Bill of Materials) usage support. Subprojects can depend on published BOM artifacts using .pomOnly():

libraryDependencies += ("com.fasterxml.jackson" % "jackson-bom" % "2.21.0").pomOnly()

These bill of materials are forwarded to Coursier via via Resolve.addBom(), which should introduce version constraints for specific libraries (such as Jackson). You can use "*" to declare versionless dependency:

libraryDependencies += "com.fasterxml.jackson.core" % "jackson-core" % "*"

This will let Coursier automatically fill in the version based on the bill of material constraints (in this case "2.21.0").

This feature was contributed by @bitloi in #8675.

client-side console

Similar to the client-side run, sbt 2.0.0 implements the ability to send console (Scala REPL) back to the sbtn, which forks a fresh JVM to run the REPL. All you have to do is:

sbt console

One of the aims of running this on the client-side is to avoid blocking the sbt server.

This was contributed by @eed3si9n and @calm329 in #8604, #8677, #8705, #8722.

rootProject macro

sbt 2.0.0-RC9 support rootProject macro:

lazy val root = rootProject
  .autoAggregate

This is a shortcut for (project in file(".")), which tends to a boilerplate in build.sbt. This was contributed by @bitloi in #8671.

experimental: Dependency lock

sbt 2.0.0-RC9 adds an experimental support for dependency locking.

sbt dependencyLock

This will generate deps.lock files in the base directory of each subproject. When a lock file is present, Coursier resolution is no longer called. This ensures reproducible builds across different machines and CI environments.

sbt dependencyLockCheck

dependencyLockCheck validates that the lock file is up-to-date.

This feature was contributed by @MkDev11 in #8581 / #8744.

experimental: Ivyless publishing

sbt 1.x internally uses Apache Ivy for publishing; sbt 2.0.0-RC9 introduces experimental Ivyless publishing.

useIvy := false

This will use Ivyless implementation for publishLocal and publish. ixy.xml file generation uses Coursier.

This was contributed by @calm329 and @bitloi in #8634, #8686, #8692

test-related changes

  • feat: testOnly supports ... as a wildcard pattern @ByteForge in #8577
  • feat: Adds testForkedParallelism setting for forked test parallelism by @MkDev11 in #8453
  • feat: The root-level testOnly is changed to a command so it fails when no test classes match by @calm329 in #8607
  • feat: Scripted should fail when no tests match the pattern by @gayanMatch in #8457
  • fix: Fixes explicitlySpecified and selectors for testOnly by @Eruis2579 in #8727

other updates

  • Adds "3-latest.candidate" support for Scala 3 release candidates by @calm329 in #8596
  • Report eviction errors for Test dependencies by @calm329 in #8451
  • Notify sbtn client when command is queued by @bitloi in #8568
  • Drops other idle servers on client exit by @calm329 in #8701
  • Allow system JNA on OpenBSD by making jna.nosys conditional by @calm329 in #8452
  • Set terminal window title during run by @MkDev11 in #8492
  • Cache failed compilation to avoid repeated failures by @MkDev11 in #8490
  • Adds csrLocalArtifactsShouldBeCached setting for caching local artifacts by @MkDev11 in #8504
  • Adds dependencyLicenseInfo by @saber04414 in #8506
  • Adds GitHub setup-java action support in CrossJava by @MkDev11 in #8574
  • Adds scriptedKeepTempDirectory setting by @bitloi in #8621
  • Adds per-channel project cursor for sbtn by @bitloi in #8649

🐛 bug fixes

runner script-related fixes

other fixes

Read more

1.12.3

15 Feb 00:43
v1.12.3

Choose a tag to compare

updates

Full Changelog: v1.12.2...v1.12.3

1.12.2

04 Feb 05:36
v1.12.2

Choose a tag to compare

updates

Full Changelog: v1.12.1...v1.12.2

1.12.1

26 Jan 11:38
v1.12.1

Choose a tag to compare

bug fixes

  • fix: Fixes sbt --client new combination by @MkDev11 in #8512
  • fix: Fixes sbt new argument parsing on Windows by @MkDev11 in #8509
  • fix: Fixes sbtopts files priority in sbt runner script by @mohansinghi in #8520
  • fix: Fixes -X support on Windows batch runner by @GlobalStar117 in #8566
  • fix: Fixes missing project directory on --addPluginSbtFile command by @azdrojowa123 in #8583
  • fix: Invalidates update cache across commands when dependencies change by @calm329 in #8593
  • fix: Fixes scala-reflect not found problem when Scala 3.8.1 is used transitively by @eed3si9n in #8633

behind the scenes

  • ci: Upgrade launcher-package from sbt 0.13 to 1.x by @MkDev11 in #8493

Full Changelog: v1.12.0...v1.12.1