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 ZIOforeachPar (3970) (by adamgfraser)
* Harden stack corruption fix during interruption (3992) (by iravid)
* Fix Potential Nontermination When Layer Fails With Error (3994) (by adamgfraser)
* Add ChunkreduceMapLeft/Right (3998) (by adamgfraser)
* Add Either.cond Like Constructor to ZIO (3854) (by gerdreiss)
* Add ScheduleresetAfter (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 ChunkindexWhere and ChunkmapAccumM (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 ZTransducer8859_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 ZTransducerutfXXX (3981) (by mschuwalow)
* Add ZTransducer.splitOnChunk (3914) (by TobiasPfeifer)
* refineToOrDie for ZStream (3983) (quelgar)
* Implement ZStreamtakeUntilM (4011) (by adamgfraser)
* Add ZTransducer.utfDecode to auto-detect byte order marks (3980) (by er1c)
* Add ZTranducerUS-ASCII (3947) (by vinhhv)
* Add ZTransducer.deflate (4021) (by LGLO)
* Implement ZTransducerfilterInput/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)