Skip to content

Releases: sbt/sbt

1.10.9

03 Mar 21:13
v1.10.9

Choose a tag to compare

πŸš€ features and other updates

  • Adds allowUnsafeScalaLibUpgrade setting to opt-out of the Scala 2.13 compatibility check (SIP-51) by @lrytz in #8012
  • BSP: Implement jvmBuildTarget for workspace/buildTargets by @Friendseeker in #7913
  • Detects user-specific JDK installations on macOS by @unkarjedy in #8032
  • Makes timing outputs consistently show hours and hint at time format by @jsoref in #8019
  • Backports SHA-256, SHA-384, and SHA-512 checksum support to forked Apache Ivy by @mkurz in sbt/ivy#49
  • Client-side run capability in sbtn by @eed3si9n in #8040

πŸ› bug fixes

🎬 behind the scene

new contributors

Full Changelog: v1.10.7...v1.10.9

1.10.8

03 Mar 16:34
v1.10.8
f43030a

Choose a tag to compare

1.10.8 Pre-release
Pre-release

sbt 1.10.8 is dead on arrival, please use 1.10.9 when it comes out.

1.10.7

23 Dec 03:36
v1.10.7

Choose a tag to compare

πŸš€ features and other updates

Build directory detection

Starting 1.10.7, the sbt runner script enables build directory detection by default. This means that the sbt will exit with error when launched in a directory without build.sbt or project/, with exceptions of sbt new, sbt --script-version etc.

To override this behavior temporarily, you can use --allow-empty flag. To permanently opt out of the build directory detection, create $XDG_CONFIG_HOME/sbt/sbtopts with --allow-empty in it.

csrMavenDependencyOverride setting

sbt 1.10.7 updates Coursier from 2.1.19 β†’ 2.1.22. sbt 1.10.7 also adds a new setting csrMavenDependencyOverride (default: false), which controls the resolution, which respects Maven dependency override mechanism, also known as bill-of-materials (BOM) POM. Since there is a performance regression in the new resolver, we are setting the default to false.

πŸ› bug fixes

  • fix: Add csrMavenDependencyOverride to opt into bill-of-material (BOM) respecting Coursier resolution by @eed3si9n in #7970
  • fix: Update the template resolver to use Giter8 0.17.0, which fixes the SLF4J warning by @eed3si9n in #7947
  • fix: Update JLine 2 fork to 9a88bc4 and Jansi to 2.4.1, which fixes crash on Windows on ARM by @Friendseeker in #7952

🎬 behind the scene

Full Changelog: v1.10.6...v1.10.7

2.0.0-M3

18 Dec 07:45
v2.0.0-M3
8a57e6c

Choose a tag to compare

2.0.0-M3 Pre-release
Pre-release

⚠️ changes with compatibility implications

  • Change homepage, organizationHomepage, apiURL, apiMappings, releaseNotesURL to URI type by @eed3si9n in #7927
  • Replace tuple with proper record type for licenses by @mdedetrich in #7927
  • Update sbtResolvers default value by @xuwei-k in #7799
  • Remove useJCenter settingKey by @xuwei-k in #7801

πŸš€ features and other updates

  • Support glob expressions in scripted by @eed3si9n in #7932
  • Update to metabuild Scala to 3.6.2 by @eed3si9n in #7941
  • Add Mapper that returns VirtualFile based mappings by @jtjeferreira + @eed3si9n in #7949
  • Replace the use of compilation timestamp in detectAPIChanges with content hashes by @Friendseeker in sbt/zinc#1430
  • perf: Reduce number of long-living instances to speed up startup by 20% relative to 2.0.0-M2 (41% speedup compared to sbt 1.10.2) by @adpi2 in #7866
  • perf: Reduce creation of Setting and Initialize by @adpi2 in #7880
  • perf: Refactor Settings and optimize indexing of aggregate keys by @adpi2 in #7879
  • perf: Remove instances of Info and BasicAttributeMap by @adpi2 in #7882

πŸ› bug fixes

🎬 behind the scene

Full Changelog: v2.0.0-M2...v2.0.0-M3

1.10.6

30 Nov 07:09
v1.10.6

Choose a tag to compare

change with compatibility implication

  • deps: lm-coursier 2.1.6, which updates Coursier 2.1.14 β†’ 2.1.19 by @eed3si9n in #7920

    This release changes the way "BOMs" or "dependency management" are handled during resolution, and allows users to add BOMs to a resolution. This changes the way versions are picked when BOMs or dependency management are involved, which has an impact on the resolution of libraries from many JVM ecosystems, such as Apache Spark, Springboot, Quarkus, etc.

bug fixes and updates

behind the scene

new contributors

Full Changelog: v1.10.5...v1.10.6

1.10.5

04 Nov 01:46
v1.10.5

Choose a tag to compare

updates

behind the scene

Full Changelog: v1.10.4...v1.10.5

1.10.4

28 Oct 10:28
v1.10.4

Choose a tag to compare

updates and bug fixes

  • fix: Fixes Jansi deprecation notice by switching to jline-terminal-jni by @Friendseeker in #7811
  • fix: Fixes GLIBC_2.32 issue on sbtn by statically linking musl by @Friendseeker in #7823
  • fix: Throw exception when sbt new fails to find template by @Friendseeker in #7835
  • fix: Fixes ~ with Global / onChangedBuildSource := ReloadOnSourceChanges by @Friendseeker in #7838
  • fix: Fixes "Unrecognized option: --server" error on BSP server by @eed3si9n in #7824
  • fix: Fixes pipelined build while changing version frequently by @Friendseeker in #7830
  • fix: Change the default analysis format to older binary, and make Consistent Analysis opt-in by @Friendseeker in #7807

behind the scene

Full Changelog: v1.10.3...v1.10.4

1.10.3

20 Oct 03:26
v1.10.3

Choose a tag to compare

Protobuf with potential Denial of Service (CVE-2024-7254)

sbt 1.10.3 updates protobuf-java library to 3.25.5 to address CVE-2024-7254 / GHSA-735f-pc8j-v9w8, which states that while parsing unknown fields in the Protobuf Java library, a maliciously crafted message can cause a StackOverflow error. Given the nature of how Protobuf is used in Zinc as internal serialization, we think the impact of this issue is minimum. However, security software might still flag this to be an issue while using sbt or Zinc, so upgrade is advised. This issue was originally reported by @gabrieljones and was fixed by Jerry Tan (@Friendseeker) in zinc#1443.

@adpi2 at Scala Center has also configured dependency graph submission to get security alerts in zinc#1448. sbt/sbt was configured by @Friendseeker in #7746.

Reverting the invalidation of circular-dependent sources

sbt 1.10.3 reverts the initial invalidation of circular-dependent Scala source pairs.

There had been a series of incremental compiler bugs such as "Invalid superClass" and "value b is not a member of A" that would go away after clean. The root cause of these bugs were identified by @smarter (sbt/zinc#598 (comment)) and @Friendseeker to be partial compilation of circular-dependent sources where two sources A.scala and B.scala use some constructs from each other.

sbt 1.10.0 fixed this issue via sbt/zinc#1284 by invalidating the circular-dependent pairs together. In other words, if A.scala was changed, it would immediately invalidate B.scala. It turns out, that people have been writing circular-dependent code, and this has resulted in multiple reports of Zinc's over-compilation (zinc#1420, zinc#1461). Given that the invalidation seems to affect the users more frequently than the original bug, we're going to revert the fix for now. We might bring this back with an opt-out flag later on. The revert was contributed by by Li Haoyi (@lihaoyi) in sbt/zinc#1462.

Improvement: ParallelGzipOutputStream

sbt 1.10.0 via sbt/zinc#1326 added a new consistent (repeatable) formats for Analysis storage. As a minor optimization, the pull request also included an implementation of ParallelGzipOutputStream, which would reduce the generate file size by 20%, but with little time penalty. Unfortunately, however, we have observed in CI that that the scala.concurrent.Future-based implementation gets stuck in a deadlock. @Ichoran and @Friendseeker have contributed an alternative implementation that uses Java threads directly, which fixes the issue in sbt/zinc#1466.

bug fixes and updates

  • deps: Updates metabuild Scala version to 2.12.20 by @SethTisue in #7636
  • fix: Fixes "illegal reflective access operation" error on JDK 11 by updating JLine to 3.27.0 by @Friendseeker in #7695
  • fix: Fixes transitive invalidation interfering with cycle stopping condition by @Friendseeker in zinc#1397
  • fix: Fixes dependency resolution of sbt plugins by excluding custom extra attributes from POM dependencies by @adpi2 in lm#451
  • fix: Fixes directory permission issue under a multi-user environment by @eed3si9n in ipcsocket#43
  • deps: Updates sbt init template deps by @xuwei-k in #7730
  • Updates sbt runner to default to sbtn for sbt 2.x by @eed3si9n in #7775

behind the scene

Full Changelog: v1.10.2...v1.10.3

1.10.2

16 Sep 02:24
v1.10.2

Choose a tag to compare

Changes with compatibility implications

Updates and bug fixes

  • Fixes the attribute key name from serverIdleTimeOut to serverIdleTimeout to match the variable name by @lervag in #7651
  • Fixes incremental Scala-Java mixed compilation that produces JAR directly by @adpi2 in sbt/zinc#1377
  • Fixes over-compilation when using a class directory as a library by @adpi2 in sbt/zinc#1382
  • Perf: Copy bytes directly instead of using scala.reflect.io.Streamable by @rochala in sbt/zinc#1395
  • Includes all sources and resources in source jar by @jroper in #7630
  • Fixes the handling of Optional inter-project dependency in BSP by @adpi2 in #7568
  • Trims spaces around k and v to tolerate extra whitespace in build.properties by @invadergir in #7585
  • Fixes legacy repositories like scala-tools-releases in repositories file blocking sbt from launching by @eed3si9n in sbt/launcher#104
  • Fixes stale BSP diagnostics by @SlowBrainDude in #7610
  • Fixes scripted support for sbt 2.x by @eed3si9n in #7672
  • Avoids using ThreadDeath for future JDK compatibility by @xuwei-k in #7652
  • Avoids using ZipError for future JDK compatibility by @eed3si9n in sbt/zinc#1393

Behind the scenes

New contributors

Full Changelog: v1.10.0...v1.10.2

1.10.1

07 Jul 22:35
v1.10.1

Choose a tag to compare

bug fixes and updates

behind the scenes

  • Updates sbt plugins to avoid deprecated repo.scala-sbt.org by @mkurz in #7555
  • Updates scalacenter/sbt-dependency-submission from 2 to 3 by @dependabot in #7565

Full Changelog: v1.10.0...v1.10.1