Advertisement · 728 × 90

Posts by sbt

'Last mile towards sbt 2'

A quick status report on where we are at
www.scala-lang.org/blog/2026/04... #Scala

5 days ago 5 2 0 0

released sbt 2.0.0-RC12!

6 days ago 0 0 0 0

released sbt 2.0.0-RC11 and 1.12.9!

1 week ago 0 0 0 0

cross published sbt-nocomma 0.1.3 to sbt 1.x and 2.x, using sbt 2.0.0-R10

sbt-nocomma is a stupid plugin that I made in 2018 that implements comma inference in build.sbt
github.com/sbt/sbt-noco...
eed3si9n.com/removing-com... #Scala

2 weeks ago 0 1 0 0

cross published sbt-java-formatter 0.11.0 to sbt 1.x and 2.x

sbt-java-formatter, originally written by Björn Antonsson, lets you format your Java code
github.com/sbt/sbt-java... #Scala

2 weeks ago 1 1 0 0

'Fixing a Command Injection Vulnerability in sbt'

We discovered a command injection vulnerability in how sbt resolves source dependencies on Windows. The issue has been assigned CVE-2026-32948, rated Moderate (CVSS 6.7), and is now fixed.
www.scala-lang.org/blog/2026/03... #Scala

2 weeks ago 0 0 0 0
Preview
Release v0.4.0 · scalameta/sbt-native-image sbt-native-image 0.4.0 is cross published to: sbt Version Published 1.x ✅ 2.x ✅ sbt 2.x migration Cross build to sbt 2.x by @eed3si9n in #93 ci: Use JDK 17 to build to prep for sbt 2.x...

cross published sbt-native-image 0.4.0 to sbt 1.x and 2.x

sbt-native-image, originally written by @geirsson.com, lets you build GraalVM native images from your Scala code
github.com/scalameta/sb... #Scala

2 weeks ago 1 2 0 0
Advertisement

sbt 2.0.0-RC10 is released

3 weeks ago 1 0 0 0

sbt 1.12.7 is released with a CVE fix!

3 weeks ago 1 1 0 0

sbt 1.12.6 is released

1 month ago 0 1 0 0

'Migrating sbt plugins to sbt 2 with sbt2-compat plugin'

introducing sbt2-compat plugin by Anatolii Kmetiuk at Scala Center
github.com/sbt/sbt2-com...
scala-lang.org/blog/2026/03... #Scala

1 month ago 0 0 0 0

released sbt 1.12.5!

1 month ago 0 0 0 0

sbt 1.12.4 is out!

1 month ago 0 0 0 0
sbt 2.0.0-RC9 · eed3si9n

- client-side console (forking Scala REPL from native sbtn client)
- `rootProject` macro
- experimental dependency lock
- experimental Ivyless publishing
- and a long list of contributed bug fixes
eed3si9n.com/sbt-2.0.0-RC9 (2/n)

2 months ago 2 1 0 0

sbt 2.0.0-RC9 is out!

2 months ago 1 0 0 0
Advertisement

sbt 1.12.3 is out

2 months ago 1 0 0 0

wrote 'sbt 1.12.1 and unmoored scala-reflect / scala-compiler issue'
contributors.scala-lang.org/t/sbt-1-12-1... #scala

2 months ago 0 1 0 0

sbt 1.12.2 is released!

2 months ago 0 0 0 0

'sbt 2 production-ready roadmap'
contributors.scala-lang.org/t/sbt-2-prod...

2 months ago 2 1 0 0

happy to announce that along with Scala library, compiler, sbt 2.0 project has been awarded Sovereign Tech Fund (German gov grant), recognized as a critical digital infrastructure, or an xkcd open source picture
scala-lang.org/blog/2026/01... #Scala

2 months ago 11 2 1 0

sbt 1.12.1 is released!

2 months ago 4 0 0 0
sbt and the miners of the wild west · eed3si9n

wrote a blog post - 'sbt and the miners of the wild west'
eed3si9n.com/sbt-and-the-... #Scala

2 months ago 3 1 0 0

'RFC: sbt 2.0 on JDK 17'
On behalf of the sbt project, I would like to solicit your feedback on the minimum JDK version required for sbt 2.0
users.scala-lang.org/t/rfc-sbt-2-... #Scala

3 months ago 1 1 0 0
Advertisement

Scala Days talk on sbt 2.0

3 months ago 7 2 0 0
screenshot of VS Code running Metals extension, demonstrating code completion of Address case class.

screenshot of VS Code running Metals extension, demonstrating code completion of Address case class.

screenshot of IntelliJ with Scala plugin, demonstrating code completion of Address case class.

screenshot of IntelliJ with Scala plugin, demonstrating code completion of Address case class.

FYI - using either the latest IntelliJ 2025.3 or the latest Metals 1.6.4, sbt 2.x build can be imported to the respective IDE
www.scala-sbt.org/2.x/docs/en/...
www.scala-sbt.org/2.x/docs/en/...
www.scala-sbt.org/2.x/docs/en/... #Scala

3 months ago 0 1 0 0

sbt 2.0.0-RC8 is released!

3 months ago 0 0 0 0

sbt 1.12.0 is released!

3 months ago 1 0 0 0

sbt 1.12.0-RC1 is out

3 months ago 0 0 0 0
a flamegraph of no-op compilation run using sbt 2.0.0-RC-6. it shows a big column in the middle, indicating that most of the time is spent doing one thing, which in this case is running sha256Hash function.

a flamegraph of no-op compilation run using sbt 2.0.0-RC-6. it shows a big column in the middle, indicating that most of the time is spent doing one thing, which in this case is running sha256Hash function.

🦃 during sbt 2.0.0-RC7 development, I attempted some perf improvement to fix the no-op compilation perf regression that was reported. since RC7 is out, I can finally post 'sudori part 8: no-op compilation performance' (didn't write this on Thanksgiving)
eed3si9n.com/sudori-part8... #Scala

4 months ago 4 2 0 0
a screen capture from the 'sbt 2.0: go big' talk.

Vision sbt 2.0
An idea of the ultimate build tool

1. Simplify build.sbt DSL
2. Use Scala 3 constructs
3. Caching
4. sbtn by default
5. Continuity

a screen capture from the 'sbt 2.0: go big' talk. Vision sbt 2.0 An idea of the ultimate build tool 1. Simplify build.sbt DSL 2. Use Scala 3 constructs 3. Caching 4. sbtn by default 5. Continuity

a screen capture from the 'sbt 2.0: go big' talk.

sbt 2.x: test results will be cached on CI

a screen capture from the 'sbt 2.0: go big' talk. sbt 2.x: test results will be cached on CI

caching is IO-effect-hard
At least as hard as the IO problem

someTask := {
  val conv = fileConverter.value
  val out: java.nio.file.Path = createFile(...)
  conv.toVirtualFile(out): xsbti.HashedVirtualFileRef
}

This will just memorize the file path and hash but won't materialize the file on disk

someTask := {
  val conv = fileConverter.value
  val out: java.nio.file.Path = createFile(...)
  val vf: xsbti.VirtualFile = conv.toVirtualFile(out)
  Def.declareOutput(vf)
  vf
}

Def.declareOutput(vf) will materialize the file on cache hit

caching is IO-effect-hard At least as hard as the IO problem someTask := { val conv = fileConverter.value val out: java.nio.file.Path = createFile(...) conv.toVirtualFile(out): xsbti.HashedVirtualFileRef } This will just memorize the file path and hash but won't materialize the file on disk someTask := { val conv = fileConverter.value val out: java.nio.file.Path = createFile(...) val vf: xsbti.VirtualFile = conv.toVirtualFile(out) Def.declareOutput(vf) vf } Def.declareOutput(vf) will materialize the file on cache hit

a screen capture from 'sbt 2.0: go big' talk

the section slide for sbtn + sbt server

It shows a seemingly large, but abstract concrete structure with forest area in the background. it's the base part of The Open Hand Monument in Chandigarh by Le Corbusier.

a screen capture from 'sbt 2.0: go big' talk the section slide for sbtn + sbt server It shows a seemingly large, but abstract concrete structure with forest area in the background. it's the base part of The Open Hand Monument in Chandigarh by Le Corbusier.

from #Scala Days 2025 edition, 'sbt 2.0: go big'
www.youtube.com/watch?v=GM2y... (video)
www.slideshare.net/slideshow/sb...

4 months ago 5 3 0 0