Releases: typelevel/cats-effect
v3.3.11
This is the twenty-sixth 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.
User-Facing Pull Requests
- #2945 – Securely implement
UUIDGen
for Scala.js (@armanbilge)
Thank you so much!
v3.3.10
This is the twenty-fifth 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 resolves a rare issue in which IO
could continue executing for a short time following a fatal error (such as OutOfMemoryError
) taking null
as a result value. This was more relevant on Scala.js than on the JVM, but it was at least theoretically observable on both platforms.
User-Facing Pull Requests
- #2935 – Resolved issue with fatal errors being eaten (@djspiewak)
v2.5.5
This is the eighteenth release in the Cats Effect 2.x lineage. It is fully binary compatible with all 2.x.y releases.
No further maintenance is planned in this series, though we will consider exceptions for security patches or other tales of woe.
User-Facing Pull Requests
- #2395 – Update sbt-scalajs to version 1.7.1 (@vasilmkd)
- #2420 – Intoduce parReplicateAN (@RafalSumislawski)
- #2457 – Fix of 2.x series tutorial paragraph about error promotion of join call (@lrodero)
- #2593 – Swap
System.exit
withRuntime#halt
(@alexandrustana) - #2594 – Update cats-core, cats-laws to 2.7.0 (@scala-steward)
- #2775 – Cats effect testing does not support munit (@Guisanpea)
Very special thanks to all of you!
New Contributors
- @Guisanpea made their first contribution in #2775
Full Changelog: v2.5.4...v2.5.5
v3.3.9
This is the twenty-fourth 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 relieves a contention point in the default Supervisor
implementation, which is itself used in the implementation of Dispatcher
, resulting in better throughput in parallel workloads. The release also fixes a cancelation backpressure flaw in java.util.concurrent.CompletableFuture
interop, as well as some Scala JS linking issues, which we were unaware of, prior to today.
User-Facing Pull Requests
- #2876 – Use a
ConcurrentHashMap
forSupervisor
state ifF
isAsync
(@wjoel) - #2906 – Implement
Random#javaSecuritySecureRandom
on Scala.js (@armanbilge) - #2907 – Fix
Async#fromCompletableFuture
cancelation backpressure (@bplommer and @armanbilge)
Special thanks to each and every one of you!
v3.3.8
This is the twenty-third 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.
User-Facing Pull Requests
- #2868 – Implemented unhandled error reporting for orphan fibers (@djspiewak)
- #2880 – Use
Sync[F].blocking
instead ofSync[F].delay
forrandomUUID
(@BalmungSan) - #2872 – Count new blocking threads (@vasilmkd)
- #2884, #2805, #2371 – Documentation fixes and improvements (@armanbilge, @kamilkloch, @bastewart)
Special thanks to each and every one of you!
v3.3.7
This is the twenty-second 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.
User-Facing Pull Requests
- #2859 – Fix
IO#syncStep
double-execution (@armanbilge)
Thank you!
v3.3.6
This is the twenty-first 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.
User-Facing Pull Requests
- #2844 – Thread local fallback weak bag (@vasilmkd)
- #2838 – Close cancelation leak in
fromCompletableFuture
(@TimWSpence) - #2784 – Create and use
java.util.ConcurrentThreadLocalRandom
on the sameflatMap
call (@PiotrBosak) - #2845, #2826, #2796, #2790, #2504 – Documentation fixes and improvements (@armanbilge, @vasilmkd, @Koroeskohr, @djspiewak, @armanbilge)
Thank you so very much!
v3.3.5
This is the twentieth 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.
User-Facing Pull Requests
- #2776 – Faster runnables on the WSTP (@vasilmkd)
- #2769 – Simplify the transfer of
WorkerThread
data structures when blocking (@vasilmkd) - #2743 – Workaround for scala/scala3#14240 (@armanbilge)
- #2746 – Only run the thread logger if forked (@vasilmkd)
- #2733, #2752 – Documentation fixes and improvements (@TimWSpence, @jmgimeno)
Special thanks to all of you!
v3.3.4
This is the nineteenth 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.
User-Facing Pull Requests
- #2735 – Run blocking code on the compute pool more carefully (@vasilmkd)
- #2724 – Handle interruption around blocking waits (@vasilmkd)
- #2729 –
Concurrent.memoize
: be more careful with the result (@durban) - #2731 – Invoke
process.exit
within aTry
in IOApp.js (@armanbilge) - #2719 – Attempt to detect host environments (like unforked sbt) (@djspiewak)
- #2721 – Leaked fiber test for JS
IOApp
(@armanbilge) - #2714 – Set the callback unsafely without memory barriers and allocations (@vasilmkd)
Special thanks and appreciation to all of you!
v3.3.3
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!