sbt 2.1.0-RC2 Released With Scala 3.9.0 Metabuild and Ivy Removal
The sbt 2.1.0-RC2 beta introduces a Scala 3.9.0 metabuild, removes Apache Ivy, and improves cache management and test output summaries.
sbt 2.1.0-RC2 is available as the first beta feature release in the 2.x line, maintaining binary compatibility with earlier 2.x versions. You can try it by setting sbt.version=2.1.0-RC2 in project/build.properties. The runner is available via SDKMAN and GitHub releases.
The metabuild now runs on Scala 3.9.0. Because sbt 2.x and Scala 3.x are backward compatible only across minor versions, plugins built against sbt 2.1.x using Scala 3.9.x will not load on sbt 2.0.x which uses Scala 3.8.x. Authors can manage this with pluginCrossBuild / sbtVersion. Additionally, Apache Ivy has been removed from the dependency tree through pull requests by contributors Bitloi, Fury0928, Brian Hotopp, and Eugene Yokota. The runner script also now honors JAVA_HOME.
The clean task functions as a cache invalidator, and you can scope it to subprojects or configurations. Caching updates include task-level opt-out via cacheStores set to Nil, a CacheLevelTag.InputOnly level, and support for HTTP Bazel caches configured with Global / remoteCache.
Test output now ends with a summary showing failed, errored, passed, and cached totals, with failing suites listed on failure. Passing runs print a single line unless you use --test_summary=success. You can skip test caching with --cache_test_result=false. Scheduling is managed by workerMaxInstances and testTopology, which defaults to two worker instances and two test groups, alongside a persistent test worker.
