Releases: zio/zio
v1.0.4-1
This minor release contains a fix to a regression introduced in v1.0.4 regarding error handling in ZIO.collectAllParN_. Upgrading is recommended for all users. This release is binary compatible with v1.0.0.
Notable Changes
ZIO Core
- Implement ZManaged.makeEffectTotal (#4616) (@adamgfraser)
- Preserve Failures in ZIO#collectAllParN_ (#4613) (@adamgfraser)
- Add ReplicateM Variants (#4614) (@adamgfraser)
- Implement ZIO#replicateM (#4607) (@adamgfraser)
- Simplify Platform Specific RingBuffer Implementations (#4610) (@adamgfraser)
- Support Bulk Queue Operations Directly in the RingBuffer (#4585) (@adamgfraser)
- Added comment about cats timer when using a custom environment. (#4599) (@jetjager)
- Fixed Clock.currentTime implementation(#4603) (@darl)
- Scala 2.12.13 and 2.13.4 and Scalafix 0.9.25 (#4589) (@sideeffffect)
- Optimize ZQueue#takeBetween (#4584) (@adamgfraser)
- Improve Implementation of ZIO.foreachParN (#4586) (@adamgfraser)
- Support Collection Transformations For Effects Returning Nothing (#4582) (@adamgfraser)
- Add ZManaged.make_ Variants (#4578) (@adamgfraser)
ZIO Stream
ZIO Test
- ZIO Test: Implement SuiteM (#4605) (@adamgfraser)
- Import-less test methods (#4566) (@hmemcpy)
- Add zio-test-refined module (#4583) (@afsalthaj)
- zio-test: assert - further refinement to macro based expression capture (Scala 2.x) (#4560) (@dkarlinsky)
v1.0.4
This minor release contains support for Scala 3.0.0-M3 as well as bug fixes and various other improvements. This release is binary compatible with v1.0.0.
Notable Changes
ZIO Core
- microsecond precision for Clock on JVM (#4554) (by @runtologist)
- update to scala 3.0.0-M3 (#4516) (by @scalavision)
- Implement Chunk.fromIterator (#4536) (by @adamgfraser)
- Implement Chunk#split (#4504) (by @adamgfraser)
- Fix Race Condition in ZIO#effectAsyncInterrupt (#4490) (by @adamgfraser)
- Add support for scala 3.0.0-M2 (#4483) (by @scalavision)
- Generalize ZIO.getOrFail/Unit to getOrFailWith (#4491) (by @iravid)
- Add note for ifM to ZIO.cond (#4485) (by @blast-hardcheese)
- Implement Unfold Constructors For Chunk (#4470) (by @adamgfraser)
- Fix refineOrDie implementation (#4458) (by @mijicd)
- Fix Bug in ZQueue#takeBetween (#4455) (by @adamgfraser)
- Prevent Fibers From Being Terminated Prematurely In ZIO#foreachPar (#4403) (by @adamgfraser)
- Improve documentation about ZLayer (#4431) (by @timrourke)
- improve descriptions of ZIO repeat and retry methods (#4446) by @arnoldlacko)
- add TRandom (#4443) (by @mschuwalow)
- Don't Use Mutable Data Structures Inside Ref (#4445) (by @adamgfraser)
- Implement
Chunk#headto Avoid Version Specific Issues With Scala Collections Library (#4441) (by @adamgfraser) - Improve TSemaphore (#4437) (by @mijicd)
- Update Dotty (Scala 3) to 3.0.0-M1 (#4425) (by @atrianac)
- Add Variants of STM Collection Operators for Set (#4381) (by @adamgfraser)
- Implement ZIO.executor (#4372) (by @adamgfraser)
- Add accessibleM and accessibleMM macro annotations to support HKT (#4332) (by @myazinn)
- Generalize Implementation of ZIO.validate and ZIO.validatePar (#4344) (by @adamgfraser)
- foreachParN_ should not use more than 'n' fibers (#4346) (by @ghostdogpr)
- Promise.makeManaged (#4343) (by @fsvehla)
- Add Schedule.unwrap combinator (#4329) (by @leszekgruchala)
- Remove unnecessary buffering in Console.getStrLn (#4335) (by @mijicd)
- add STM warnings (#4289) (by @robmwalsh)
- Implement NonEmptyChunk.unapplySeq (#4310) (by @adamgfraser)
- Scala Native: publish stacktracer (#4307) (by @sideeffffect)
- Fix MatchError in
zio.Has.equals(#4304) (by @myazinn)
ZIO Stream
- when* methods for ZStream (#4542) (by @arnoldlacko)
- Update reactivestreams.md (#4442) (by @mingyang91)
- ZStream#retry (with tests this time) (#4409) (by @svroonland)
- fix for issue #4356 'ZStream fromFile with drop/take data loss' (#4365) (by @TobiasPfeifer)
- Sink.take should also emit at end of chunk. (#4342) (by @quelgar)
- Add Redis Streams with ZIO to the resources (#4361) (by @leszekgruchala)
- Adding post for ZIO streams with JMS (#4355) (by @atooni)
ZIO Test
- Include source location (filename, line number) of the executing specs (#4242) (by @hmemcpy)
- MutableRunnableSpec (#4523) (by @fokot)
- ZIO-Test: Solve the
testconflict withzio.test. (#4532) (by @dkarlinsky) - zio-test: improvements for assert capturing expression and location (#4533) (by @dkarlinsky)
- Fix #4472 - make findMatching pure (#4539) (by @senia-psm)
- fix zio test Assertion.isSubtype example (#4531) (by @kazchimo)
- Add includeCase parameter to DefaultTestReporter.render (#4486) (by @blast-hardcheese)
- ZIO Test: Support Stateful Property Based Testing (#4497) (by @adamgfraser)
- Temporary magnolia-free implementation of zio-test-magnolia on Scala 3 (#4487) (by @vigoo)
- zio-test: make
assertcapture expression and source location using macro (#4427) (by @dkarlinsky) - Issue/4347 ignored tests not visible in report (#4429) (by @lmserrano)
- Fix the mockable macro to work with systems using CRLF too. (#4423) (by @vigoo)
- Adding test_assertions docs and other misc cleanup (#4406) (by @blast-hardcheese)
- Fix 4358 . Assertion::equals should never throw exceptions (#4362) (by @senia-psm)
- Delete redundant eqlReflexive instance (#4350) (by @joroKr21)
- Update Examples in TestClock Documentation (#4345) (by @adamgfraser)
- ZIO Test: Implement Test Aspects To Run Effects Before Or After All Tests (#4341) (by @adamgfraser)
- ZIO Test Magnolia: Add derived generator for Instant (#4333) (by @aartigao)
- Increase the number of generators to 10 in zipN* methods (#4317) (by @aartigao)
1.0.3
This minor release contains a fix to a regression introduced in v1.0.2 regarding tags. Upgrading is recommended for all users. This release is binary compatible with v1.0.0.
Notable Changes
ZIO Core
- Implement a ZIO#foreach Variant for Array (#4297) (by @adamgfraser)
- Implement ZIO#schedule (#4296) (by @adamgfraser)
- Handle Heterogeneous Collections in ChunkBuilder (#4295) (by @adamgfraser)
- Generalize returnValue access in accessible macro (#4266) (by @timaliberdov)
ZIO Stream
- accessible accessors for ZStream/ZSink (#4223) (#4224) (by @dpovey)
- Fix GZip compression for input >= 2^16 (#4299) (by @fsvehla )
ZIO Test
- Fixing JUnit test runner failure reporting (#4286) (by @dkarlinsky)
- ZIO Test: Implement TestAspect.sized (#4301) (by @adamgfraser )
1.0.2
This is a minor release containing bug fixes as well as some new features. It is binary compatible with v1.0.0.
There's one breaking change on the ZStream data type - see the section below for details.
Notable changes
ZIO Core
Implement ZLayer#project (#4123) (by @adamgfraser)
Immediately Shift to ZIO Thread Pool In UnsafeRunAsync (#4120) (by @adamgfraser)
Improve Support For Single Threaded Environments (#4115) (by @adamgfraser)
Support unsafeRunAsyncCancelable on Scala Native (#4131) (by @sideeffffect)
Implement TSet#toSet (#4132) (by @mijic)
Fix Documentation of ZIO#firstSuccessOf (#4134) (by @ghostdogpr)
Implement ZLayer#tap (#4138) (by @adamgfraser)
Fix Delay Computation In Schedule#fixed (#4147) (by @iravid)
Implement ZIO#getOrFailUnit (#4163) (by @politrons)
Implement ZIO.fromPromise (#4165) (by @politrons)
Don't transform to Chunk when using foreach in ZManaged (#4169) (by @ghostdogpr)
Improve ZLayer how-to documentation (#4156) (by @leszekgruchala)
Implement ZIO#forkInternal (#4142) (@adamgfraser)
Fix Memory Leak in FiberContext#await (#4171) (by @adamgfraser)
Prevent Interruption While Closing Scopes (#4121) (by @adamgfraser)
Add some Schedule constructors for cron-like functionality (#4174) (by @heaven-born)
Fix signature of effectBlockingIO (#4182) (by @adamgfraser)
Enable effectual filtering of Sets (#4188) (by @kelvin-chappell)
Add some Schedule constructors for cron-like functionality: dayOfWeek (#4195) (by @heaven-born)
Fix Bug in Chunk#foldRight (#4199) (by @adamgfraser)
Implement ZIO.not (#4201) (by @evis)
Introduce ZManaged.runtime (#4215) (by @fsvehla)
Use SetRemoveOnCanceledPolicy In Scheduler To Prevent Memory Leaks (#4237) (by @adamgfraser)
Don't Leak Fibers From Within ZIO#foreachParN (#4253) (by @adamgfraser)
Remove thread factory hash from thread name (#4256) (by @mijicd)
Avoid Recomputing Hash Code In ZLayer (#4258) @adamgfraser)
Add some Schedule constructors for cron-like functionality: dayOfMonth (#4212) (by @heaven-born)
Switch to java.lang.Class comparisons in Chunk.Tags (#4274) (by @iravid)
Implement Schedule#contramapM (#4271) (by @adamgfraser)
ZIO Streams
BREAKING CHANGE: This release changes the behavior of ZStream#collectWhileSuccess to end the stream on Exit.Failure values instead of emitting those failures. Please use ZStream#flattenExitOption for the previous behavior.
Fix Gunzipper when consuming multiple gzipped parts as a single chunk (#4124) (by @ghostbuster91)
Fix Bug In ZStream#fixed (#4140) (by @luis3m)
Make ZStream#aggregateAsyncWithin fail fast (#4141) (by @luis3m)
Add Back ZStream#effectAsync to JS (#4143) (by @luis3m)
Add ZStream#takeRight (#4154) (by @luis3m)
Fix BufferedPull#pullChunk (#4164) (by @mikearnaldi)
Add ZStream#scan and its variants (#4153) (by @luis3m)
Optimize ZStream.range to emit chunks (#4006) (by @TobiasPfeifer)
Add a promise poll to ZStream#interruptWhen (#4166) (by @luis3m)
Add ZStream.fromResource (#4228) (by @fsvehla)
Add maxChunkSize to ZStream.fromQueue (#4205) (by @svroonland)
Remove Some Extraneous Type Parameters (#4244) (by @adamgfraser)
Compile ZIO Streams for Scala Native (#4252) (by @sideeffffect)
Add UStream alias for streams that can't fail (#4267) (by @erdeszt)
Fix ZStream#takeWhile stopping on empty chunks (#4273) (by @iravid)
Add a bunch of collect combinators (#4279) (by @iravid)
ZIO Test
Implement parallel checkM (#4221) (by @lightning95)
Add LawfulF and LawsF for Divariant (#4220) (by @lemastero)
Delete Gen.usASCII (#4236) (by @adamgfraser)
Evaluate Effects Sequentially In Gen#zipWith (#4238) (by @adamgfraser)
Add example of testing layered effects with Clock (#4219) (by @leszekgruchala)
Harden TestClock (#4248) (by @adamgfraser)
Build ZIO Test for Scala Native (#4260) (by @sideeffffect)
Preserve Original Failure When Shrinks Is Set To Zero (#4265) (by @adamgfraser)
1.0.1
Maintenance release with some important bugfixes and nice feature additions. This release is binary compatible with v1.0.0.
Notable changes
ZIO Core
Improve Stack Safety Of Chunk (#4114) (by @adamgfraser)
Fix Division By Zero In Schedule#fixed (#4111) (by @adamgfraser)
Implement Schedule#unionWith (#4113) (by @adamgfraser)
Don't Memoize Fresh Layers (#4095) (by @adamgfraser)
Implement ZManaged#reserve (#4056) (by @adamgfraser)
make Chunk#append and Chunk#prepend stack safe (#4088) (by @adamgfraser)
add a ZIO#foreach variant for Map (#4089) (by @adamgfraser)
suspend evaluation of by name parameter (#4086) (by @adamgfraser)
Small fixes to Java interop (#4077) (by @sideeffffect)
Use putStrLnErr instead of putStrLn in ZIO.exitCode (#4080) (by @taeguk)
Fix Schedule.unfold causing stack overflow (#4064) (by @tuleism)
report root fibers to the supervisor (#4048) (by @jczuchnowski )
Fix Schedule#forever (#4057) (by @mikearnaldi)
Fix Schedule.windowed repeating too fast (#4053) (by @tuleism)
ZIO Streams
Add ZStream#onError (#4097) (by @joroKr21)
Add a GZIP transducer (#4075) (by @LGLO)
Fix ZStream.grouped to produce correct group size (#4060) (by @tuleism)
ZIO Test
Implement TestConfig (#4094) (by @adamgfraser)
ZIO Test: Make ExecutedSpec Its Own Data Type (#3699) (by @adamgfraser)
v1.0.0
We are excited to announce the release of version 1.0 of ZIO! This is the culmination of work by more than 300 contributors and countless users. From here we will be preserving binary compatibility for ZIO Core across the 1.0 cycle. This should facilitate further development of the ecosystem and adoption of ZIO, though this has been happening rapidly even without a 1.0 release!
The vast majority of the changes in this version are bug fixes and implementation of new stream constructors and combinators.
The one material change to the API is to Schedule. Schedule has been refactored with a new design by @jdegoes to make it easier to build and compose schedules that occur at specific points in time. This will allow implementing cron job like functionality directly with Schedule. To facilitate this, combinators that use schedules such as repeat or retry now depend on Clock. For simple use cases of repeating or retrying that do not involve time, such as retryWhile, implementations have bene provided that do not depend on Clock. For more details see #3976.
Once again, thank you to everyone who has contributed to ZIO and to all the users who have tried it and given their feedback. We can't wait to see what you go out and build with it!
Notable changes:
ZIO Core
- Handle Partial Ordering in TPriorityQueue (#3923) (by @adamgfraser)
- Unseal CanFilter(#3929) (by @neko-kai)
- Update AccessibleMacro to properly handle ZManaged (#3807) (by @kentfrazier)
- Add Console support for printing to standard error (#3925) (by @BardurArantsson)
- Chunk.foldWhileM should not advance iterator twice (#3967) (@YuvalItzchakov)
- Add ZTransducer.utf16decode, ZTransducer.branchAfter (#3934) (by @mschuwalow)
- Add ZInputZStream, ZOutputStream, ZManaged integrations with Java IO facilities (#3901) (by @adrianfilip)
- Prevent potential deadlock in ZIO#foreachPar (#3970) (by @adamgfraser)
- Harden stack corruption fix during interruption (#3992) (by @iravid)
- Fix Potential Nontermination When Layer Fails With Error (#3994) (by @adamgfraser)
- Add Chunk#reduceMapLeft/Right (#3998) (by @adamgfraser)
- Add Either.cond Like Constructor to ZIO (#3854) (by @gerdreiss)
- Add Schedule#resetAfter (#4000) (by @ghostdogpr)
- Convert ZManaged to an abstract class to allow binary-compatible evolution (#4009) (by @iravid)
- Make Relevant Errors By Name (#3839) (by @yoohaemin)
- Prevent Corruption In Tags.fromValue on Scala.js (#4014) (by @adamgfraser)
- Add isEmpty method to TMap (#4015) (by @tusharmath)
- Generalize Has.AreHas to Has.Union (#4013) (by @adamgfraser)
- Add TSet.isEmpty (#4016) (by @tusharmath)
- Update Dotty Version (#4030) (by @adamgfraser)
- Generalize Combinators for Effectually Transforming Collections (#4037) (by @adamgfraser)
- Fix Bugs In Chunk#indexWhere and Chunk#mapAccumM (#4033) (by @adamgfraser)
- Fix ZManaged parallel combinators: nested finalizer ordering (#4040) (by @iravid)
- Convert Traits To Abstract Classes (#4045) (by @adamgfraser)
- Implement Package Private Unsafe Combinators on ZRef (#4024) (by @adamgfraser)
- Use Java Time Duration In ZIO (#4034) (by @adrianfilip)
- Add Java Time Dependency On Scala.js (#3958) (by @mgenereu)
- Preview New Schedule (#3976) (by @jdegoes)
ZIO Streams
- Integrate ZStream with java.io.Reader (#3928) (by @mijicd)
- Add ZTransducer#8859_1 (#3920) (by @mschuwalow)
- Add chunked pagination to ZStream (#3931) (by @mijicd)
- Implement ZStream.flattenChunks via BufferedPull (#3935) (by @mijicd)
- Implement ZStream.flattenIterable (#3936) (by @mijicd)
- Add ZStream.unfoldChunk (#3945) (by @mijicd)
- inflate and gunzip transducers (#3825) (by @LGLO)
- ZStream.repeatEffectWith delays its outputs (#3959) (by @svroonland)
- Replace List with Chunk in ZTransducer.collectAllN (#3886) (by @svranesevic)
- Add ZStream constructor from an OutputStream writer (#3664) (by @joroKr21)
- Add ZSink.timed (#3982) (by @mijicd)
- BOM fixes for ZTransducer#utfXXX (#3981) (by @mschuwalow)
- Add ZTransducer.splitOnChunk (#3914) (by @TobiasPfeifer)
- refineToOrDie for ZStream (#3983) (@quelgar)
- Implement ZStream@takeUntilM (#4011) (by @adamgfraser)
- Add ZTransducer.utfDecode to auto-detect byte order marks (#3980) (by @er1c)
- Add ZTranducer#US-ASCII (#3947) (by @vinhhv)
- Add ZTransducer.deflate (#4021) (by @LGLO)
- Implement ZTransducer@filterInput/filterInputM (#4036) (by @unclebob418)
- Implement ZSink.take (#4031) (by @adamgfraser)
ZIO Test
- Added LocalDateTime, LocalDate and BigGen to DeriveGen instances (#3951) (by @Adriani-Furtado)
- Add Variance Annotations (#4027) (by @adamgfraser)
ZIO Macros
- Add polymorphic service support in accessible macro (#3960) (by @timaliberdov)
- New BoolAlgebra.all operator (#3857) (by @fokot)
- Add TestAspect.untraced (#3984) (by @joroKr21)
- Add default service method implementation support in accessible and mockable macros (#4022) (by @timaliberdov)
v1.0.0-RC21-2
This release contains bug fixes related to the fiber supervision model that are binary compatible with RC21 and RC21-1. Upgrading is recommended for all users.
Notable changes:
- Implement ZTransducer.foldUntil using ZTransducer.fold (#3885) (by @iravid)
- Add someOrElseM method to ZIO, ZManaged and ZSTM (#3830) (by @vladimirkl)
- Return most specific collection type (#3855) (by @adamgfraser)
- Explore only previously matched branch when visiting partially satisfied OR expectation (#3904) (by @ioleo)
- Add NonEmptyChunk.unit (#3917) (by @mijicd)
- Add ZIO.filterPar (#3915) (by @cipriansofronia)
- Handle Possibility that Parent Scope is Closed (#3912) (by @adamgfraser)
- Add initial Gitpod support. (#3916) (by @mgenereu)
- Set status to interrupting before closing scope (#3883) (by @mikearnaldi)
- Fix OOM at bufferSliding (#3892) (by @narma)
v1.0.0-RC21-1
ZIO 1.0.0-RC21-1 contains a few bug fixes, performance improvements and additions that are binary/source compatible with 1.0.0-RC21.
Notable changes:
- Remove Finalizer when Fibers Terminate (#3884) (by @adamgfraser)
- Fix Chunk#toArray (#3853) (by @adamgfraser)
- Fix the behavior of
*method in the Duration in some corner cases (#3845) (by @myazinn) - Add
toReaderfor ZStream (#3867) (by @er1c) - Interrupt tasks on failure in
ZStream#mapMPar(#3881) (by @iravid)
1.0.0-RC21
We are excited to announce the release of ZIO 1.0.0-RC21, what we hope will be the final release candidate before version 1.0.
From here we do not expect significant API changes and will be focused on fixing any bugs that are identified and polishing the API in anticipation of the 1.0 release. Please report any issues you experience with this release candidate so we can address them immediately. Thank you for your support!
Notable changes
ZIO Core
The most significant change in this release candidate is refinements to the fiber supervision model. There is now a concept of explicit scopes, modeled by ZScope. Each fiber has a scope and when fibers are forked they are forked within a scope. Fibers forked with fork are forked in the scope of the parent fiber and fibers forked with forkDaemon are forked in the global scope. Fibers can now also be forked in another scope using the forkIn operator. A variety of combinators are provided for composing scopes, offering powerful tools for library authors to achieve fine grained control of fiber lifetimes.
In general we do not expect significant user facing impact as a result of these improvements. The main changes that users should see are that fibers can now be safely forked in zipPar (for example left.fork zipPar right) and parallel construction of layers in ZLayer has been reenabled.
In addition, this release candidate features significant improvements to Chunk, including implementing fast single element prepend, addressing a stack safety issue, and improving the efficiency of operations on chunks created through concatenation.
Finally, a new TPriorityQueue data structure has been included in the stm package.
- ZIO.fromFuture: remove lazy val (#3707) (by @simpadjo)
- Fix Type Inference Issue with ZIO.whenM and ZIO.unlessM (#3720) (by @adamgfraser)
- Fix: unsafeRunToFuture should not block (#3718) (by @runtologist)
- Align Methods on Blocking Service with Accessors (#3725) (by @adamgfraser)
- Update type aliases in ZLayer from succeed (#3736) (by @ahoy-jon)
- Add resurrect (#3739) (by @ahoy-jon)
- Implement Fast Single Element Prepend for Chunk (#3747) (by @adamgfraser)
- Better compile errors for pattern guards in for-comp (#3530) (by @simpadjo)
- Make fromCompletionStage Referentially Transparent (#3755) (by @adamgfraser)
- Replace ZIO[R, E, A] by aliases if possible + update documentation (#3741) (by @ahoy-jon and @bernit77)
- Implement Balanced Concatenation for Chunk (#3754) (by @adamgfraser)
- Add conversion from Executor to Java (#3774) (by @tabdulradi)
- Implement TMap#size (#3790) (by @adamgfraser)
- Implement TMap#putIfAbsent (#3792) (by @adamgfraser)
- Implement TPriorityQueue (#3756) (by @adamgfraser)
- Optimize TPriorityQueue (#3798) (by @adamgfraser)
- Add rightOrFailWith and leftOrFailWith and error transform docs (#3408) (by @Fristi)
- Implement Chunk#zip and Chunk#zipAll (#3810) (by @adamgfraser)
- Implement TArray#size (#3815) (by @adamgfraser)
- Implement updateService (#3812) (by @adamgfraser)
- Improve Efficiency Of Chunk (#3831) (by @adamgfraser)
- Synchronize access to the FiberRefLocals in inheritRefs (#3836) (by @iravid)
- Make ChunkBuilder Public (#3837) (by @adamgfraser)
- Introduce Concept of Explicit Scopes (#3829) (by @jdegoes)
- Reenable Parallel Construction of Layers (#3833) (by @adamgfraser)
- Add a new
fromOptionErroroperator (#3813) (by @paulpdaniels)
ZIO Streams
This release candidate features a variety of improvements and bug fixes thanks to feedback from users. In particular, sinks now maintain leftovers. This aspect of sink was dropped in the RC19 release, and has now been brought back due to popular demand. In addition, ZStream#runHead will now only consume the first element of the stream before exiting.
- Fix Stream#mapMPar (#3705) (by @luis3m)
- Make ZInputStream construction lazy (#3701) (by @simpadjo)
- ZSink.collectAll and Zstream.runAll use chunk (#3587) (by @borissmidt)
- Prevent ZStream.repeatEffectChunkOption from evaluating after end (#3731) (by @iravid)
- Fix ZStream#intersperse (#3730) (by @iravid)
- Correct a wrong type parameter name in method doc for ZStream.aggregateAsyncWithin (#3734) (by @svroonland)
- Delete Transducer#zip (#3742) (by @simpadjo)
- Add ZStream.repeat,repeatWith,tick (#3749) (by @iravid)
- Fix ZStream#zipWithLatest (#3752) (by @luis3m)
- Add ZSink.fromFile functionality (#3712) (by @lvitaly)
- Fix interruption issue in aggregateAsyncWithinEither (#3751) (by @svroonland)
- Make ZStream.runHead only pull one element (#3768) (by @iravid)
- Add back support for leftovers in ZSink (#3722) (by @simpadjo)
- Add ZStream.fromTcpSocketServer (#3677) (by @regis-leray)
- Restore ZSink#collectAllWhileWith (#3779) (by @simpadjo)
- ZSink#untilOutputM should respect leftovers (#3778) (by @simpadjo)
- Add ZStream#runManaged (#3764) (by @simpadjo)
- Fix ZStream#debounce interruption issue (#3765) (by @luis3m)
- Fix ZStream.grouped (#3819) (by @simpadjo)
- Add ZSink.managed (#3788) (by @simpadjo)
- Transducer.collect*N shouldn't emit empty chunks (#3827) (by @simpadjo)
ZIO Test
- Add Additional Type Aliases for Laws (#3743) (by @adamgfraser)
- Fix Type Signature of Contravariant Compose Law (#3746) (by @adamgfraser)
1.0.0-RC20
This release features a number of important bugfixes for ZStream. Upgrading is advised!
Notable changes
ZIO Core
The return type for the run method in zio.App has changed to ZIO[ZEnv, Nothing, ExitCode]. ExitCode is a simple wrapper around an integer, with handy constructors for error and success (ExitCode.success, ExitCode.failure). In addition, a convenience combinator ZIO#exitCode was added that converts a ZIO value to an ExitCode.
- [Breaking] Add App ExitCode (#3583) (by @luis3m)
- Add Chunk#nonEmptyOrElse (#3687) (by @simpadjo)
- Implement Fast Single Element Append for Chunk (#3416) (by @adamgfraser)
- Fix Chunk.splitWhere (#3644) (by @KadekM)
- Add combinators collectSome and collectSomePar (#3568) (by @ghidei)
- Add ZIO#validateWith (#3617) (by @luis3m)
- ensure ZIO#fromFutureJava runs the parameter only once (#3702) (#3704) (by @fsarradin)
ZIO Streams
We've seen in the last release that removing Take[E, A] and relying on Exit[Option[E], Chunk[A]] instead degrades ergonomics significantly when working with ZStream. So we went ahead and re-added it, this time as a wrapper over Exit[Option[E], Chunk[A]]. Apologies for the inconvenience!
- Modify ZStream#mergeWith implementation to use a queue (#3691) (by @luis3m)
- [Breaking] Add back ZStream.Take (#3669) (by @luis3m)
- Modify ZStream#debounce to take chunk last element (#3689) (by @luis3m)
- Fix ZTransducer.splitLines (#3690) (by @iravid)
- Fix debounce to properly handle empty chunks (#3611) (by @luis3m)
- Fix memory leak in ZStream#forever (#3681) (by @iravid)
- Add ZStream#zipWithNext & ZStream#zipWithPrevious (#3596) (by @luis3m)
- Allow schedule on ZStream.repeatEffectWith rely on effect value (#3618) (by @luis3m)
- Fix ZStream.fromInputStream (#3678) (by @iravid)
- Maintain ZStream's laziness on chunks at the expense of performance (#3666) (by @iravid)
- Add ZStream#flattenTake (#3661) (by @luis3m)
- Fix ZSink#collectAllWhileWith (#3665) (by @simpadjo)
- [Breaking] ZSink.fromOutputStream should return Long (#3652) (by @simpadjo)
- Fix ZStream#toInputStream error handling (#3700) (by @simpadjo)
- Add ZStream.fromFile (#3697) (by @iravid)
ZIO Test
- ZIO Test: Close Resources Earlier In ProvideLayerShared (#3696) (by @adamgfraser)