search term:

sbt 1.11.0-RC2

Hi everyone. On behalf of the sbt project, I am happy to announce sbt 1.11.0-RC2. This is the eleventh feature release of sbt 1.x, a binary compatible release focusing on new features. sbt 1.x is released under Semantic Versioning, and the plugins are expected to work throughout the 1.x series. Please try it out, and report any issues you might come across.

The headline features of sbt 1.11.0 are:

  • Support for the Central Repository publishing

Full release note is here - https://github.com/sbt/sbt/releases/tag/v1.11.0-RC2

ifdef 0.4.1

@ifdef is a Scala compiler plugin that implements conditional compilation in Scala. ifdef 0.4.1 supports Scala JVM, JS and Native.

Scala Version JVM JS (1.x) Native (0.5.x) sbt plugin
3.x
2.13.x n/a
2.12.x

Gigahorse 0.9.0

Gigahorse 0.9.0 is released. Gigahorse is an HTTP client for Scala that I started in 2016, with multiple backend support: Apache HttpClient 5.x, AsyncHttpClient 2.12.x, OkHttp 3.x, and Pekko HTTP 1.x.

Gigahorse 0.8.0

Gigahorse 0.8.0 is released. Gigahorse is an HTTP client for Scala that I started in 2016, with multiple backend support. See documentation for more details on Gigahorse itself.

sbt 2.0.0-M4

Hi everyone. On behalf of the sbt project, I am happy to announce sbt 2.0.0-M4, a beta version of sbt 2.x. Please try it out, and report any issues you might come across. Note that sbt 2.x is released under Semantic Versioning, and the plugins will need to be published for the specific milestone version.

I work on sbt in my own time with collaboration with Adrien Piquerez and other volunteers, like Kenji Yoshida, Jerry Tan, Matthias Kurz (Play maintainer), and recently Billy at EngFlow to name a few.

sbt 1.10.9

Hi everyone. On behalf of the sbt project, I’m happy to announce that sbt 1.10.9 patch release is available. Full release note is here - https://github.com/sbt/sbt/releases/tag/v1.10.9.

  • There’s now sbt 1.10.10
  • sbt 1.10.8 is skipped since we found a bug post-release

See 1.10.0 release note for the details on 1.10.x features.

Highlights

  • Adds allowUnsafeScalaLibUpgrade setting
  • Zinc bug fix to improve local source dependency invalidation
  • sbtn client-side run capability (not enabled in sbt 1.x)

sudori part 7: client-side run with sbt

This is a blog post on sbt 2.x development, continuing from sbt 2.x remote cache, sudori part 4, part 5 etc. I work on sbt 2.x in my own time with collaboration with the Scala Center and other volunteers, like Billy at EngFlow. Lately I’ve been working on a feature called client-side run, a feature I’ve thought sbt should have for a long time.

what is client-side run?

A client-side run is an execution of the user-land program initiated at the client-side, without blocking the sbt server. I should probably unpack the details for this to make sense.

december adventure 2024

I’m going to try to work on something small everyday during december. see the original December Adventure.

my goal: work on sbt 2.x, other open source like sbt 1.x and plugins, or some post on this site, like music or recipe.

2024-12-31

checking out Boston suburbs. had coffee at Tatte Bakery & Cafe, and skated a bit at Newton Centre Playground nearby.

in the evening, we picked up some veggies at Whole Foods, dinner from 八福川菜 (Sichuan Gourmet House), and prepped for the midnight soba noodle, and ozouni for the new year.

addressed a review comment on io#397, which retries non-IOExceptions.

ifdef 0.4.0

@ifdef is a Scala compiler plugin that implements conditional compilation in Scala. ifdef 0.4.0 supports Scala JVM, JS and Native.

Scala Version JVM JS (1.x) Native (0.5.x) sbt plugin
3.x
2.13.x n/a
2.12.x

back publishing actually

This is part 2 of tag-based back publishing using sbt-ci-release.

sbt-ci-release 1.9.2

Now that sbt 2.0.0-M3 is out, I tried sbt-ci-release 1.9.0 for back publishing, but immediate ran into a bug related to version setting, so I had to fix that in sbt-ci-release 1.9.2.

// plugins.sbt
addSbtPlugin("com.github.sbt" % "sbt-ci-release" % "1.9.2")

Note sbt-ci-release 1.9.x implements a mini DSL for the Git tag:

version[@command|@a.b.c|@a.b."x"][#comment]

sbt 2.0.0-M3

Hi everyone. On behalf of the sbt project, I am happy to announce sbt 2.0.0-M3, a beta version of sbt 2.x. Please try it out, and report any issues you might come across. Note that sbt 2.x is released under Semantic Versioning, and the plugins will need to be published for the specific milestone version.

I work on sbt in my own time with collaboration with Adrien Piquerez at Scala Center and other volunteers, like Kenji Yoshida, Jerry Tan, Matthias Kurz (Play maintainer), and recently Billy at EngFlow to name a few.

intro to Hedgehog for Scala

In this post, I want to talk about Hedgehog for Scala, a property-based testing framework created by Charles O’Farrell around 2018, and has been maintained by Kevin Lee more recently. Hedgehog for Scala is based on Haskell Hedgehog, which in turn was cofounded by Jacob Stanley and Nikos Baxevanis.

sbt 1.10.3

Hi everyone. On behalf of the sbt project, I’m happy to announce that sbt 1.10.3 patch release is available. Full release note is here - https://github.com/sbt/sbt/releases/tag/v1.10.3

See 1.10.0 release note for the details on 1.10.x features.

Highlights

  • CVE-2024-7254. sbt 1.10.3 updates protobuf-java library to 3.25.5 to address reported potential Denial of Service
  • Updates metabuild Scala version to 2.12.20
  • Fixes for the spurious “illegal reflective access operation” error on JDK 11
  • Reverting the invalidation of circular-dependent sources

Scala 3 Manifesto 0.1.0

Over the weekend, I created Scala 3 Manifesto 0.1.0, a small library to re-implement scala.reflect.Manifest in Scala 3.

Programming languages operate at two levels. First, the material level where bits and bytes are moved to take actions. Second, there is a higher, spiritual level that describes the material level. The first level is the runtime. The second level is the compile-time. Scala programs are written using val terms that are typed, but at the JVM bytecode, JS, or Native, the variables turn into something different, often more general. For example, a variable typed to List[Int] becomes List[AnyRef] at runtime.

sbt 2.0.0-M2

Hi everyone. On behalf of the sbt project, I am happy to announce sbt 2.0.0-M2, a beta version of sbt 2.x. Please try it out, and report any issues you might come across. Note that sbt 2.x is released under Semantic Versioning, and the plugins will need to be published for the specific milestone version.

I work on sbt in my own time with collaboration with Adrien Piquerez at Scala Center and other volunteers, like Kenji Yoshida, Jerry Tan, Matthias Kurz (Play maintainer), and recently Billy at EngFlow to name a few.