This is the eighteenth major release in the Cats Effect 3.x lineage. It is fully binary compatible with every 3.x release, and fully source-compatible with every 3.3.x release. Note that source compatibility has been broken with 3.2.x in some minor areas. Scalafixes are available and should be automatically applied by Scala Steward if relevant.
This release contains a fix for a regression introduced in 3.3.0 related to IOApp
s which exit with non-fatal errors when run from within Sbt with fork
set to false
. In that scenario, the runtime worker threads would end up hung in a busy-wait loop and eat up all available CPU despite returning control to the Sbt shell. Despite this fix, it is still recommended that you set run / fork := true
in Sbt to work around other bugs in Sbt itself (specifically related to both Ctrl-C and System.exit
suppression).
User-Facing Pull Requests
- #2705 – Detect sbt thread cleaner and terminate workers (@djspiewak)
- #2707 – Hard exit in Node.js
IOApp
(@armanbilge)
Thank you so much!