Jar Jar Abrams 1.14.0 and sbt-assembly 2.2.0
Jar Jar Abrams 1.14.0 and sbt-assembly 2.2.0 are released.
Jar Jar Abrams is an experimental extension to Jar Jar Links, intended to shade Scala libraries.
Jar Jar Abrams 1.14.0 and sbt-assembly 2.2.0 are released.
Jar Jar Abrams is an experimental extension to Jar Jar Links, intended to shade Scala libraries.
Hi everyone. On behalf of the tree-sitter-scala project, I am happy to announce tree-sitter-scala 0.20.3 and 0.21.0. The first two segments of the version number comes from the tree-sitter-cli that was used to generate the parser, and the last segment is our actual version number.
tree-sitter-scala 0.21.0 uses tree-sitter 0.21.x; and tree-sitter-scala 0.20.3 uses tree-sitter 0.20.x.
tree-sitter-scala is a Scala parser in C language, generated using Tree-sitter CLI, and conforming to the Tree-sitter API. Tree-sitter parsers are generally fast, incremental, and robust (ok with partial errors). We publish Rust binding to crates.io.
I’ve released sbt-projectmatrix 0.10.0.
Last week on sbt/sbt#7427 @keynmol (Anton Sviridov) told me:
@eed3si9n I think this can be reopened, given that Github finally released free Apple Silicon workers - I think it’s best to modify the Github workflow to build all binaries automatically: sbt/sbtn-dist#11
I guess somehow I missed the memo for a whole month, but I’m happy that ARM macOS runners are here! In this post, let’s dig into how we automated GraalVM native image creation using GitHub Actions. If you’re in a hurry, see the working example native.yaml.
Hi everyone. On behalf of the sbt project, I’m happy to announce sbt 1.9.9, a Scala 2.13.13 commemorative patch release. Full release note is here - https://github.com/sbt/sbt/releases/tag/v1.9.9
See 1.9.0 release note for the details on 1.9.x features.
console
task on Scala 2.13.13, sbt 1.9.9 backports updates to JLine 3.24.1 and JAnsi 2.4.0 by @hvesalai in #7503 / #7502UnsatisfiedLinkError
with stat
, sbt 1.9.9 removes native code that was used to get the millisecond-precision timestamp that was broken (JDK-8177809) on JDK 8 prior to OpenJDK 8u302 by @eed3si9n in io#367Inspired by d6 and the original, I’m going to try to work on something small everyday. I’ll post on Mastodon as well.
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.
A remote cache, or a cloud build system, can speed up builds dramatically by sharing build results (Mokhov 2018). This is a feature that I’ve been interested ever since heard about Blaze (now open sourced as Bazel). In 2020, I implemented cached compilation in sbt 1.x. reibitto has reported that “what was once 7 minutes to compile everything now takes 15 seconds.” Others have also reported 2x ~ 5x speedup. While this is promising, it’s a bit clunky and it works only for the compile
task. In March 2023, I jotted down RFC-1: sbt cache ideas to outline the current issues and a solution design. Here are some of the problems:
compile
, and disk caching for some other tasks, but we would like a solution that custom tasks can participateAs my december adventure 2023 project I decided to tackle the sbt 2.x remote cache feature in my free time. The proposal is on GitHub #7464. This post explores the details of the change. Note: It shouldn’t require too much of sbt internal knowledge, but the target audience is advanced since this is more of an extended PR description.
Hi everyone. On behalf of the sbt project, I’m happy to announce sbt 1.9.8 patch release is available. Full release note is here - https://github.com/sbt/sbt/releases/tag/v1.9.8
See 1.9.0 release note for the details on 1.9.x features.
IO.getModifiedOrZero
on Alpine etc, by using clib stat()
instead of non-standard __xstat64
abi by @bratkartoffel in io#362Hi everyone. On behalf of the sbt project, I am happy to announce sbt 1.10.0-M1. This is the tenth 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.10.0 are:
5h7m
I released Eval 0.3.0 for Scala 3.3.1. Eval evaluates Scala 3 code. See https://eed3si9n.com/eval/ for details.
I recorded a 11 minute video of me pecking around Scala 3 code using my recent favorite editor Helix.
Jar Jar Abrams 1.13.0 and sbt-assembly 2.1.4 are released.
Jar Jar Abrams is an experimental extension to Jar Jar Links, intended to shade Scala libraries.
Hi everyone. On behalf of the sbt project, I’m happy to announce sbt 1.9.7 patch release is available. Full release note is here - https://github.com/sbt/sbt/releases/tag/v1.9.7
See 1.9.0 release note for the details on 1.9.x features.
IO.unzip
. This was discovered and reported by Kenji Yoshida (@xuwei-k), and fixed by @eed3si9n in io#360.This is part 2 of implementing Rust’s cfg
attribute in Scala. In part 1, I tried the annotation macro with a mixed result. I’ve implemented a version of @ifdef
that works better.
cfg
attribute do?Rust Programming Language says:
Rust has a special attribute,
#[cfg]
, which allows you to compile code based on a flag passed to the compiler.
This lets us write unit test in the same source as the library code like this:
...
#[cfg(test)]
mod tests {
#[test]
fn some_test() {
...
}
}
When I first heard about this, it sounded a bit absurd since I’ve never used languages that embeds tests into the main
source code. But now that I’ve been working with Rust occasionally, I like the idea of being able to write the tests in the same source, especially for kind of code that can be exercised as functions. When it gets too messy, you can always split them out in src/test/scala/
or tests/
in Rust.
Update 2023-10-15: There’s now a better 0.2.0 that I implemented via pre-typer processing.
Rust has an interesting feature called cfg
attribute, which is aware of the build configuration at the language level. This lets us write unit test in the same source as the library code like this:
...
#[cfg(test)]
mod tests {
#[test]
fn some_test() {
...
}
}
I implemented an experimental @ifdef
macro that does something similar.
Jar jar Abrams 1.9.0 and sbt-assembly 2.1.3 are released with security vulnerability fixes.
Jar Jar Abrams is an experimental extension to Jar Jar Links, intended to shade Scala libraries.
Hi everyone. On behalf of the sbt project, I’m happy to announce sbt 1.9.6 patch release is available. Full release note is here - https://github.com/sbt/sbt/releases/tag/v1.9.6
See 1.9.0 release note for the details on 1.9.x features.
Update: ⚠️ sbt 1.9.5 is broken, because it causes Scala compiler to generate wrong class names for anonymous class on lambda. Please refrain from publishing libraries with it while we investigate. See cala/bug#12868 for details.
Hi everyone. On behalf of the sbt project, I’m happy to announce sbt 1.9.5 patch release is available. Full release note is here - https://github.com/sbt/sbt/releases/tag/v1.9.5
See 1.9.0 release note for the details on 1.9.x features.
-X
is passed to scalacOptions
zinc#1246 by @unkarjedyHi everyone. On behalf of the sbt project, I’m happy to announce sbt 1.9.4 patch release is available. Full release note is here - https://github.com/sbt/sbt/releases/tag/v1.9.4
See 1.9.0 release note for the details on 1.9.x features.
Hi everyone. On behalf of the tree-sitter-scala project, I am happy to announce tree-sitter-scala 0.20.2. The first two segments of the version number comes from the tree-sitter-cli that was used to generate the parser, and the last segment is our actual version number.
tree-sitter-scala is a Scala parser in C language, generated using Tree-sitter CLI, and conforming to the Tree-sitter API. Tree-sitter parsers are generally fast, incremental, and robust (ok with partial errors).
Hi everyone. On behalf of the sbt project, I’m happy to announce sbt 1.9.3 patch release is available. Full release note is here - https://github.com/sbt/sbt/releases/tag/v1.9.3
See 1.9.0 release note for the details on 1.9.x features.
Hi everyone. On behalf of the sbt project, I’m happy to announce sbt 1.9.2 patch release is available. Full release note is here - https://github.com/sbt/sbt/releases/tag/v1.9.2
See 1.9.0 release note for the details on 1.9.x features.
Hi everyone. On behalf of the sbt project, I’m happy to announce sbt 1.9.1 patch release is available. Full release note is here - https://github.com/sbt/sbt/releases/tag/v1.9.1
See 1.9.0 release note for the details on 1.9.x features.
Hi everyone. On behalf of the tree-sitter-scala project, I am happy to announce tree-sitter-scala 0.20.1. The first two segment of the version number comes from the tree-sitter-cli that was used to generate the parser, and the last segment is our actual version number.
tree-sitter-scala is a Scala parser in C language, generated using Tree-sitter CLI, and conforming to the Tree-sitter API. Tree-sitter parsers are generally fast, incremental, and robust (ok with partial errors).
Hi everyone. On behalf of the sbt project, I am happy to announce sbt 1.9.0. This is the nineth 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.9.0 are:
sbt new
, a text-based adventurereleaseNotesURL
settingIntegrationTest
configurationHi everyone. On behalf of the tree-sitter-scala project, I am happy to announce tree-sitter-scala 0.20.0. The first two segment of the version number comes from the tree-sitter-cli that was used to generate the parser, and the last segment is our actual version number.
tree-sitter-scala is a Scala parser in C language, generated using Tree-sitter CLI, and conforming to the Tree-sitter API. Tree-sitter parsers are generally fast, incremental, and robust (ok with partial errors).
Hi everyone. On behalf of the sbt project, I am happy to announce sbt 1.9.0-RC2. This is the nineth 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.9.0 are:
sbt new
, a text-based adventurereleaseNotesURL
settingIntegrationTest
configurationHi everyone. On behalf of the sbt project, I’m happy to announce sbt 1.8.3 patch release fixing a security vulnerability. Full release note is here - https://github.com/sbt/sbt/releases/tag/v1.8.3
See 1.8.0 release note for the details on 1.8.x features.
A two-day virtual/Tokyo hybrid ScalaMatsuri took place this weekend. Thanks to all the presenters, sponsors, and participants.
Lots of bumps and mishaps for sure, but hopefully it was a successful conference. I join as one of 16 ScalaMatsuri organizers, and also gave a talk and an open-mic session as well.
It’s spring time, and spring makes us hopeful. I’ll be attending Tooling Summit next week, so I think this would be a good time to gather my toughts around sbt 2.
Jar jar Abrams 1.8.2 and sbt-assembly 2.1.1 are released.
Jar Jar Abrams is an experimental extension to Jar Jar Links, intended to shade Scala libraries.
Released scalaxb 1.9.1 with Scala 3 support contributed by @fthomas.
Hi everyone. On behalf of the sbt project, I’m happy to announce sbt 1.8.2 patch release fixing a few regressions found in sbt 1.8.1. Full release note is here - https://github.com/sbt/sbt/releases/tag/v1.8.2
See 1.8.0 release note for the details on 1.8.x features.
Happy new year! On behalf of the sbt project, I’m happy to announce sbt 1.8.1 patch release is available. Full release note is here - https://github.com/sbt/sbt/releases/tag/v1.8.1
See 1.8.0 release note for the details on 1.8.x features.
4h9m