A free, once-weekly Scala news flash. Easy to unsubscribe. Goes out every Thursday.
March 15th, 2026, ISSUE 611

READING

Migrating sbt plugins to sbt 2 with sbt2-compat plugin

There’s an ongoing, community-driven effort to repopulate the sbt plugin ecosystem in preparation for the sbt 2 release. From sbt 1.x, plugin authors can cross publish against sbt 2.0 release candidates. To facilitate the plugin migration, we’ve created the sbt2-compat plugin.
Anatolii Kmetiuk (@AKmetyuk)
scala-cli E2E Repo Setup

This post is the reference I wish I had: a complete copy-paste workflow for a small library, using only scala-cli. Maybe it’ll save you the same googling.
Bartłomiej Kozak
Tracking Capabilities for Safer Agents

AI agents that interact with the real world through tool calls pose fundamental safety challenges: agents might leak private information, cause unintended side effects, or be manipulated through prompt injection. To address these challenges, we propose to put the agent in a programming-language-based "safety harness": instead of calling tools directly, agents express their intentions as code in a capability-safe language: Scala 3 with capture checking
Martin Odersky, Yaoyu Zhao, Yichen Xu, Oliver Bračevac, Cao Nguyen Pham
Hardening Scoverage Support in Scala 3

Code coverage is a key part of maintaining high-quality Scala projects. We’ve recently made progress on making Scoverage more robust for Scala 3, expanding the way we test it and discovering and fixing new issues.
Anatolii Kmetiuk (@AKmetyuk)
Introducing PureLogic: direct-style, pure domain logic for Scala

PureLogic’s design based on context functions and capabilities is a natural fit for Scala’s upcoming capture checking feature. Capture checking will allow the compiler to verify that capabilities don’t escape their scope. PureLogic is ready for this and it will be integrated when capture checking becomes more stable in future versions of Scala.
Pierre Ricadat (@ghostdogpr)
Rage Against the (Plurality of) Effect Systems

Effect systems are great. Having five of them is not. Each alternative brings real improvements, but none clears the bar that would justify the ecosystem fragmentation it causes. I believe we should pick one and rally around it — with shims to other systems — rather than keep splitting libraries, effort, and newcomer attention across parallel worlds. This isn’t anyone’s fault. It’s a coordination problem. But it’s still a problem.
Voytek Pituła (@Krever01)

RELEASES

M&DE

Mirror Annotations & Default Extraction. A Scala 3 macro library that extends scala.deriving.Mirror with annotation metadata, default values, generated members, and transparent wrapper support.
Bartłomiej Kozak
zio-spark

A zio-centric interface for Spark.
Jules Ivanic (@guizmaii)
Metals 1.6.6

Allow users to get the output of -explain, standalone MCP server, an option to shutdown Bloop build server, support for Play's Twirl templates, new File Improvements, and many more updates!
Metals contributors
skills

A collection of Scala-related skills for AI agents.
Alexandru Nedelcu (@alexelcu)
Cats Effect 3.7.0

This is a relatively smaller minor release jump relative to 3.6.x since it contains a major and long-anticipated enhancement: support for Scala Native 0.5, including full multithreading on LLVM!
Cats Effect contributors
qdrant4s

Http client for Qdrant (https://qdrant.tech) vector database
Łukasz Biały (@lukasz_bialy)
scalex

Grep is fast but dumb. The goal: build the fastest possible Scala code navigation tool, designed from the ground up for AI agents.
Tu Nguyen (@younguyen95)

EVENTS

ScalaWAW #39 - Scalar warmup!, Mar 25th, Warsaw, Poland

“Everything You Need to Know to Get Started with Caching in sbt 2.x” by Aleksandra Zdrojowa + "Lightweight Declarative Scala Builds with Mill 1.1.0" by Li Haoyi
ScalaWAW (@scalawaw)
Scalar Agenda is now online! Mar 26th - 27th, Warsaw, Poland

We've finally announced the full agenda and it's now available on our website.
SoftwareMill (@softwaremill)
Lightweight Declarative Scala Builds with Mill 1.1.0 & ALPACA, Tue, Mar 31st, Kraków, Poland

The Krakow Scala User Group hosts an evening meetup focused on Mill 1.1.0, the declarative Scala build tool, and ALPACA. A great opportunity to explore modern, lightweight alternativs to sbt in a collaborative setting.
Kraków Scala User Group
The Scala Workshop CFP, Jun 29th, Brussels, Belgium

CFP ends on Mar 23th!
Scala Workshop
J On the Beach, Oct 29th - 30th, Malaga, Spain

A Pure Tech and Fun Conference for All Things Data. Join the CFP, open until March 31st.
J On The Beach (@JOTBConf)
Lambda World, Oct 29th. - 30th, Malaga, Spain

Experience the sunshine, the code, and the unforgettable vibe that made Lambda World 2025 shine in Málaga. CFP open until March 31st.
Lambda World (@lambda_world)





  1. Scala Times Issue #611

    Migrating sbt plugins to sbt 2 with sbt2-compat plugin. Tracking Capabilities for Safer Agents. Hardening Scoverage Support in Scala 3. Introducing PureLogic: direct-style, pure domain logic for Scala. Rage Against the (Plurality of) Effect Systems.


  2. Scala Times Issue #610

    How I used AI to modify hundreds of logs messages. Hybrid IO-Driven Promise. The Effect Pattern and Effect Systems in Scala. Fairstream: Fair Backtracking. Scala Standard Library Process.


  3. Scala Times Issue #609

    Practical observability: distributed tracing with otel4s. Forms4s: Rapid (Internal) UI Development. Postmortem of scala/scala3#24994. The Sovereign Tech Fund invests in Scala. Two Months of Vibe-Coding: Scala, Constraints, Trust and Shipping.


  4. Scala Times Issue #608

    ZIO Golem: Bringing Golem to Scala. Practical FP in Scala is now FREE!. Direct-style property based testing. RFC: sbt 2.0 on JDK 17. Business4s H2 2025 Highlights.


  5. Scala Times Issue #607

    Scala 3 slowed us down?. Coroutines, Event Loops - Build Your Own in Scala. Advent of Code 2025 in Scala (Solutions). Make delightful web apps with Scala and Krop!. Apache Pekko 2.0.0-M1.


  6. Scala Times Issue #606

    First class support for compilation profiling. Understanding Capture Checking in Scala. Laminar components inside React. Save your Scala apps from the LazyValpocalypse. To Effect or Not to Effect - a Scala Perspective.


  7. Scala Times Issue #605

    Join us for the Advent of Code 2025. Scala Days 2025: Conference Highlights and Talk Recordings. Metals v1.6.4 - Osmium. Scalar, Mar 26th - 27th, 2026, Warsaw, Poland.


  8. Scala Times Issue #604

    Pekko Core 1.3.0. Scalar 2026: Call for Speakers.


  9. Scala Times Issue #603

    Master ZIO: Functional Effect System. Better explanation of what Business4s is. ClickHouse with PlayFramework, Slick, and Evolutions.


  10. Scala Times Issue #602

    Scala 3 / No Indent. Scala 3 / Match Types. Scala 3 / HOCON Parsing. Scala vs F#. Demystifying Scala 3 Types.


  11. Scala Times Issue #601

    An Omakase-style PlayFramework Template: PlayFast. How to run sbt tasks with custom settings. Alexandru Nedelcu | Effects and concurrency in functional programming. Metals v1.6.3 - Osmium. LLM4s Dev Hour – Sundays @ 9am London Time.


  12. Scala Times Issue #600

    One Script, Many Styles - Exploring Scala’s Ecosystem with scala-cli. A simple tool to make illegal states unrepresentable. Exploring Neotype’s capabilities, pitfalls, and limitations in Scala 3. IntelliJ IDEA x Scala: The Debugger (Part 1). Announcing ZIO Test support in scalamock classic (released in 7.5.0).


  13. Scala Times Issue #599

    An old coding challenge I resolved with Scala. Controlling program flow with capabilities. A new repository for Scala nightlies. Effects and concurrency in functional programming. Meet new release of jsoniter-scala with much faster codec derivation.


  14. Scala Times Issue #598

    Effects as Capabilities. Claude Code, Metals, and NVIM. Integrate JobRunr into Play Framework [Update Sep 2025]. Random Scala Tip #534: Adopt an Error Handling Convention for `Future`. Announcing Scala.js 1.20.1.


  15. Scala Times Issue #597

    Understanding Match Types in Scala 3. Scala's Gamble with Direct Style. Custom Error Types Using Cats Effect and MTL. Dealing with Java builder's pattern. Implementing a JWT-based authorization for zio-http.


  16. Scala Times Issue #596

    The Rebirth of Tagless Final: An Ergonomic Approach in Kyo. Hands on Capture Checking. PRE-SIP: Dedented Multiline String Literals. Match Type simulator. LLM4s Dev Hour – Sundays @ 9am London Time.


  17. Scala Times Issue #595

    State of Scala 2025 Survey. Claude Code, Metals, and NVIM. Minimal Scala Container Images using Nix. IntelliJ Scala Plugin 2025.2. Release ducktape 0.2.10 · arainko/ducktape · GitHub.


  18. Scala Times Issue #594

    Golden Literal Testing in uTest 0.9.0. Nussknacker integration with Functional Programming. Type-safe vibe-coding a CRUD application. LLM4s Dev Hour – Sundays @ 9am London Time. Scala Days, Aug 19th - 21st, Lausanne, Switzerland.


  19. Scala Times Issue #593

    Understanding Scala Variance. LLM4s Dev Hour – Sundays @ 9am London Time. Scala Days, Aug 19th - 21st, Lausanne, Switzerland. The Scala Workshop, Oct 13th, Singapore. DEVJVM, Oct 25th, Barranquilla, Colombia.


  20. Scala Times Issue #592

    LLM4s Dev Hour – Sundays @ 9am London Time. Scala Days, Aug 19th - 21st, Lausanne, Switzerland. The Scala Workshop, Oct 13th, Singapore. DEVJVM, Oct 25th, Barranquilla, Colombia.


  21. Scala Times Issue #591

    Scala Days, Aug 19th - 21st, Lausanne, Switzerland. The Scala Workshop, Oct 13th, Singapore. DEVJVM, Oct 25th, Barranquilla, Colombia. Mill Build Tool v1.0.0 Release Highlights. Business4s H1 2025 Highlights.


  22. Scala Times Issue #590

    Scalator: Stream Composition with Kyo & Community Revival!, Jul 9th, Toronto. Scala Days, Aug 19th - 21st, Lausanne, Switzerland. The Scala Workshop, Oct 13th, Singapore. CFP for DEVJVM, Oct 25th, Barranquilla, Colombia. Anatomy of a Scala Game Server.


  23. Scala Times Issue #589

    Scala Highlights, June 2025 edition. ScalaWAW #35 - Summer hackathon, Jun 30th, Warsaw, Poland. Scala Days, Aug 19th - 21st, Lausanne, Switzerland. The Scala Workshop, Oct 13th, Singapore. Making Capabilities Safe and Convenient.


  24. Scala Times Issue #588

    Fundamental Concurrency Problems and Solutions. Scala Days, Aug 19th - 21st, Lausanne, Switzerland. The Scala Workshop, Oct 13th, Singapore. S2D migrated to Scala Native.


  25. Scala Times Issue #587

    First Make It Correct. Suspension: the magic behind composability (or: "The Kyo Monad"). My experience migrating a PlayFramework app to Scala 3. Yet Another Scala 3 Migration Story. The Elements of Kyo.


Organizing an event?
Promote it with
Scala Times.
The Scala Times reader?
Get a banner!
Got a tip?Send it in!
Follow us onTwitter.
Curated by SoftwareMill.
We are hiring.
And taking on projects.