Highlights
This release comes packed with bug fixes and under-the-hood optimizations. Big thank you to all the old and new contributors for their work in this release!
Important
Runtime behaviour change of ZIO#onDone
and ZIO#onDoneCause
In this release, the behavior of onDone
and onDoneCause
has changed to address concerns raised in #9191. Unlike other onX
methods, onDone
and onDoneCause
executed the callback effects in "fire and forget" mode.
We believe that this behaviour could lead to unexpected bugs in applications. As such we changed the implementation of these methods so that the callbacks are executed synchronously. While we believe it's highly unlikely that users using these methods were aware of this implementation detail, we still advice them to review their usages as a precaution.
What's Changed
- More efficient parsing of line numbers without string allocations (#9433) @plokhotnyuk
- More
Exit
optimizations forZIO
methods (#9427) @kyri-petrou - Check
Exit.Success
first inFiberRuntime#runloop
(#9422) @kyri-petrou - Optimizations for
ZIO#foreach*
methods (#9365) @kyri-petrou - Use an
Exit
forPromise.succeed
(#9419) @kyri-petrou - Use
Exit.succeed
in more places (#9418) @kyri-petrou - Optimisation: Replace
Trace.instance.unapply
calls withTrace.instance.parse
(#9416) @guizmaii - Optimise
Tracer.instance#unapply
(#9414) @guizmaii - Optimize pattern-matching in
ZIO
/Exit
methods (#9415) @kyri-petrou - Ensure that TestClock methods are thread-safe (#9408) @kyri-petrou
- Optimisation: Implement
ZIO.suspendSucceed
withZIO.FlatMap
(#9388) @guizmaii - Optimisation - FiberRuntime: bypass evaluation of
flatmap.first
when possible (#9393) @guizmaii - Optimise
zio.stream.ZStream.fromChunk
(#9396) @guizmaii - Optimise
zio.stream.ZStream.succeed
(#9399) @guizmaii - Optimise
FiberRef#set
(#9402) @guizmaii - Optimisation - FiberRuntime: Remove
ZIO.Continuation
allocation (#9391) @guizmaii - Optimize Scope-related methods (#9372) @kyri-petrou
- zio-test: Don't overwrite inner node labels (#9363) @joroKr21
- Fix race condition for errors in
ZChannel.mapOutZIOPar*
methods (#9354) @kyri-petrou - Refactor
FiberRefs
shortcut optimizations (#9328) @kyri-petrou - Optimise
ZStream.repeatZIOChunkOption
(#9379) @guizmaii - Fix #9358 OS signal handling for windows (#9366) @clarzte
- [Issue #8571] Fix spans in TestResults with inlined code (#9367) @arainko
- Remove internal usages of
ZIO.done
(#9369) @kyri-petrou - Ensure ZLayer macros use the trace from implicit scope (#9361) @joroKr21
- Simplify
Pull.failCause
code (#9364) @guizmaii - Add Runtime method to enable loom based blocking executor (#9355) @digy
- Replace internal
ZIO.success(Chunk.empty)
calls withExit.emptyChunk
(#9360) @guizmaii - Replace all internal
ZIO.fail(None)
withExit.failNone
(#9359) @guizmaii - Fix leak of finalizers in
ZKeyedPool
(#9329) @kyri-petrou - Transfer child finalisers to parent in ZIO.raceAll and ZIO.raceFibersWith #9203 (#9353) @digy
- Fix zio-kafka regression caused by ZStream changes (#9341) @kyri-petrou
- Bring Ref on par with AtomicInteger (#9340) @erikvanoosten
- Make
val
s non-transient in ZIO services (#9345) @kyri-petrou - Cause filter fix (#9254) @eyalfa
- Use
-Ybackend-parallelism:4
when compiling Scala 2.13 with optimization enabled (#9346) @kyri-petrou - [Issue-9272] add ZLayer#runWith (#9351) @arainko
- Add
applyOnExit
andapplyOnExitWith
methods toZIO.Grafter
(#9349) @kyri-petrou - Use a
val
for accessingRef.Atomic#unsafe
(#9344) @kyri-petrou - perf: Use whileLoop instead of recursion for several functions (#9131) @tmccombs
- Suppress ExplicitImplicitTypes Wartremover warning in macro (#9323) @joroKr21
- Fix Scope propagation in
ZStream#runScoped
(#9327) @kyri-petrou - Fix scope propagation for multiple specs #9175 (#9325) @clarzte
- Remove implicit forking in ZIO#onDone and ZIO#onDoneCause to align with onX methods (#9286) @asr2003
- Cleanup & update build.sbt (#9310) @kyri-petrou
Other changes (CI, dependencies and documentation)
- Update dependency @types/react to v19.0.2 (#9434) @renovate
- Update dependency tailwindcss to v3.4.17 (#9432) @renovate
- Migrate renovate config (#9428) @renovate
- Update izumi Version (#9429) @khajavi
- Update dependency typescript to v5.7.2 (#9425) @renovate
- Update dependency @tsconfig/docusaurus to v2.0.3 (#9420) @renovate
- Update dependency @types/react-helmet to v6.1.11 (#9421) @renovate
- Update dependency tailwindcss to v3.4.16 (#9423) @renovate
- Update dependency clsx to v2.1.1 (#9424) @renovate
- fix(deps): update dependency highlight.js to v11.11.0 (#9413) @renovate
- chore(deps): update react monorepo to v19 (major) - autoclosed (#9381) @renovate
- chore(deps): update dependency prettier to v3.4.2 - autoclosed (#9374) @renovate
- chore(deps): update dependency @types/react to v18.3.13 (#9376) @renovate
- fix(deps): update dependency @zio.dev/zio-cli to v0.7.0 (#9377) @renovate
- fix(deps): update dependency react-icons to v5.4.0 (#9371) @renovate
- feat: Migrate to Docusaurus v3 (#9165) @neo773
- Update documentation of ref to fix warning about immutable data (#9357) @varshith257
- Avoid name clash on JDK 23 from java.io.IO (#9322) @digy
- Remove Scalac From Sponsors (#9331) @khajavi
- chore(deps): update dependency prettier to v3.4.1 (#9347) @renovate
- fix(deps): update dependency @zio.dev/zio-telemetry to v3.1.0 (#9348) @renovate
- Add a Banner for Zionomicon Announcement (#9338) @khajavi
- chore(deps): update dependency prettier to v3.4.0 (#9343) @renovate
- chore(deps): update dependency cytoscape to v3.30.4 (#9342) @renovate
- fix(deps): update dependency @zio.dev/zio-telemetry to v3.0.2 (#9335) @renovate
- fix(deps): update dependency @zio.dev/zio-quill to v4.8.5 (#9334) @renovate
- Introducing ZIO Guru on Gurubase.io (#9314) @kursataktas
- chore(deps): update dependency prettier-plugin-tailwindcss to v0.6.9 (#9315) @renovate
- fix(deps): update dependency @zio.dev/zio-prelude to v1.0.0-rc35 (#9318) @renovate-bot
New Contributors
- @clarzte made their first contribution in #9325
- @kursataktas made their first contribution in #9314
- @tmccombs made their first contribution in #9131
- @arainko made their first contribution in #9351
- @digy made their first contribution in #9322
- @neo773 made their first contribution in #9165
- @plokhotnyuk made their first contribution in #9433
Full Changelog: v2.1.13...v2.1.14