Releases: zio/zio
v1.0.0-RC13
Notable changes
ZIO
- Documentation improvements by @sidnt and @asakaev
- Deprecate
syncextension method in favor ofeffect(#1606) by @markosski - Change semantic of Fiber.joinAll – fail when joined fibers fail (#1620) by @neko-kai
- Add
filterOrDieandfilterOrDieMessagecombinators (#1610) by @ioleo - Correctly inherit fiber refs in
ZIO.raceWith(#1594) by @mlangc - Restore
bracketon ZIO (#1694) by @regiskuckaertz - Replicate ZIO.* methods to other companion objects (#1746) by @jakubjanecek
- Move
PlatformLive.ExecutorUtiltoExecutorcompanion object (#1770) by @neko-kai
ZStream
- Add
zipAllWithtoChunk(#1612) by @Vilkina - Add
ZStreamChunk#buffer,ZStream.mergeAllUnbounded,ZStream.flattenParUnbounded(#1657) by @iravid - Adding
ZStream#zipLeftandzipRightoperators and operator alias for allZStream#zip*functions (#1510) by @jadireddi - Remove
ZSink.Stepin favor of abstract methods on Sink and update ZSink encoding (#1560) by @vasilmkd - Update
ZStream#aggregateandaggregateWithinto only extract once (#1672) by @iravid - Add
ZSink.foldWeightedDecompose/Mand fix leftover handling in transduce (#1675) by @iravid - Add
StreamEffectspecialized for chunks (#1669, #1740) by @vasilmkd and @sideeffffect - Fixes and inference improvements to
ZSinkcombinators (#1686) by @iravid - Align
ZStream#repeatwith the other schedule combinators (#1533) by @mschuwalow - Add
ZStream.paginate(#1717) by @regiskuckaertz - Add
ZStream#unNone(#1713) by @asakaev - Add
ZStream#mapConcatoverloads for iterables (#1735) by @kamilkloch - Add
ZStream.bimapandeither(#1725) by @regiskuckaertz - Add
ZStream.fromIterator(#1731) by @sideeffffect - Remove specialized annotations (#1738) by @regiskuckaertz
- Add additional fold variants to ZStream (#1756) by @kamilkloch
- Rename
aggregateWithintoaggregateWithinEitherand add a simpleraggregateWithin(#1700) by @saeltz - Enhance
ZStream#scheduleWithto not short-circuit the stream (#1767) by @regiskuckaertz
ZIO Test
- Make Timeout Strategies Test Aspects (#1555) by @adamgfraser
- Fix
Gen#filter(#1580 #1591) by @adamgfraser - Make
testMandcheckMPolymorphic In Error Type (#1596) by @adamgfraser - Add
Gen#suspendto support recursive generators (#1598) by @adamgfraser - Improve Reporting of Property Based Testing Result (shows shrinked input) (#1617) by @ghostdogpr
- Support Generators for Functions (#1616) by @adamgfraser
- Report timeouts in a prettier way (#1602) by @ghostdogpr
- Add Size Combinators
small,mediumandlarge(#1625) by @adamgfraser - Add
Assertion.diesandGen.anyString(#1638) by @regiskuckaertz - Upgrade
AssertResulttoBoolAlgebra(#1582) by @adamgfraser - Support Implications (#1662) by @adamgfraser
- Augment MockRandom with a Buffer to be able to control random output (#1679) by @adamgfraser
- Add Common Predicates (#1314) by @jaliss
- Implement Generators for Effects (#1670) by @adamgfraser
ZSchedule
- Add
doUntilEqualsanddoWhileEqualsmethods (#1634) by @marekklis
ZManaged
- Add a synchronous effect construction (#1667) by @LukaszByczynski
- Add
ZManaged#withEarlyRelease(#1722) by @adamgfraser
v1.0.0-RC12-1
Same as v1.0.0-RC12, fixing the missing ZIO Test for Scala 2.12.
v1.0.0-RC12
Notable changes
ZIO
- Deprecate
constin favor ofasand addasErrorin ZIO and all data types (#1315) by @ioleo - Deprecate
succeedLazyin favor ofeffectTotal(#1377) by @ioleo - Add
ZIO#cached(#1361) by @adamgfraser - Ignore extra callback calls in
ZIO#effectAsync(#1402) by @ghostdogpr - Add
ZIO#catchSomeCause(#1387) by @mschuwalow - Add
ZIO#collectAllSuccessesand variants (#1237) by @mtsokol - Improve extension method support for
ZIO(#1481 and #1444) by @NeQuissimus and @jeremyrsmith - Add
ZIO#provideM(#1522) by @adamgfraser
Stream
In this release, the internal representation of ZStream has been vastly simplified to an effectful, scoped iterator. This representation, besides being simpler to write combinators and constructors for, should result in improved performance and less GC pressure. Please report any issues you notice!
- Add
ZSink#zipPar(#1344) by @simpadjo - Add
ZSink#collectAllNand variants for grouping elements into n-sized lists, sets, maps (#1362) by @PawelGizka - Add
ZStream#interleave,ZStream#interleaveWithandZStream#combinefor merging of streams (#1355) by @adamgfraser - Add
ZStreamChunk#collect(#1379) by @shankarshastri - Add
ZStream#broadcast,ZStream#groupBy,ZStream#partition,ZStream#timeoutand other variants (#1387) by @mschuwalow - Add
ZStream#catchAll,ZStream#mapError,ZStream#provideand variants (#1427) by @iravid - Refactor of ZStream internals by @iravid and @vasilmkd
- Add
ZSink#splitLines(#1384) by @iravid - Add
ZStream#zipWithLatest,ZStream#fixed,ZStream#scheduleand variants (#1482) by @regiskuckaertz
ZIO Test
- Support for sbt (#1335) by @dkarlinsky
- Add Gen combinators for property-based testing (#1356) by @adamgfraser
- Rename
AssertiontoAssertResultandPredicatetoAssertion(#1500) by @adamgfraser - Add combinators for composing assertions (#1438) by @adamgfraser
STM
Cause
- Add
Cause#untracedthat removes all tracing information from a Cause (#1354) by @shankarshastri
v1.0.0-RC11-1
Same as v1.0.0-RC11 + publishes missing ZIO Test for ScalaJS
v1.0.0-RC11
ZIO Test
Early beta version of dependency-free test library for (pure FP) effectful programs. Critical constructs include:
Spec- A value-level representation for a specificationZSpec- An alias for aSpecwhose tests are ZIO effectsPredicate- Composable predicates with detailed error messageszio.test.{ assert, assertM, check, checkAll, checkSome, suite, test, testM }- The building blocks for constructing specsRunnableSpec- Specs will extend this (orDefaultRunnableSpec)TestRunner- Every runnable spec points to a spec runnerTestAspect- Features that can be added to specs, such as timeouts, retries, etc.Gen- Generators for property-testing based on ZIO Stream
ZIO Test has excellent support for environmental effects; specs that use the ZIO environmental effects (Console, Clock, etc.) will automatically (in DefaultRunnableSpec) be provided with a newly-created mock environment, meaning they will execute fast and deterministically. Users can supply their own mock environments when extending RunnableSpec.
ZIO Test Example:
class MySpec extends DefaultRunnableSpec {
import Predicate._
import zio.random._
import zio.test.TestAspect.{ flaky, timeout }
suite("An example suite") {
test("addition") {
assert(2 + 2, equals(4))
},
testM("random.nextDouble") {
assertM(nextDouble, isGreaterThanEqual(0.0) && isLessThanEqual(1.0))
},
(flaky >>> timeout(10.seconds)) {
testM("flaky random.nextDouble") {
assertM(nextDouble, isGreaterThan(0.5))
}
}
}
}Other notable changes
ZIO
- Enhance support for Option and Either (#1175) by @dorsev
- Add Random.shuffle method (#1185) by @ioleo
- Add real companion objects to Task, TaskR, UIO and IO (#805) by @TheMayoras
- Rename TaskR to RIO and add an alias
UIOR[R, A] = ZIO[R, Nothing, A](#1154) by @ioleo - Fix #1165 - ZIO.foreachParN should not use more than
nfibers (#1187) by @adamgfraser - Implement ZIO#foldCause (#1243) by @vasilmkd
- Add whenCase and whenCaseM to ZIO and ZManaged (#1246) by @ghostdogpr
- Add "Setter" / "Update" Methods to Mock Services (#1252) by @adamgfraser
- Add ZIO.replicate method (#1262) by @dorsev
- Add ZIO#eventually (#1302) by @vasilmkd
- Add ZIO#left, ZIO#right and ZIO#head (#1223) by @adamgfraser
- Add ZIO#flattenErrorOption, ZIO#none, ZIO#optional, ZIO#some (#1221) by @jczuchnowski
- Add ZIO.effectSuspend, ZIO.effectSuspendTotal, ZIO.effectSuspendTotalWith and ZIO.effectSuspendWith (#926) by @kamilkloch
ZManaged
- Introduce real companion object for Managed (#1111) (#1169) by @andreamarcolin
- Add ZStream#ensuringFirst (#1209) by @adamgfraser
- Make ZManaged#mergeAllParN and ZManaged#reduceAllParN tolerant to finalizer defects (#1256) by @adamgfraser
- Add ZManaged.makeExit that allows to handle
Exitby the finalizer. (#1232) by @vvlevykin
ZSchedule
- add doWhileM, doUntilM for ZSchedule (#1199) by @contrun
- add collectWhile and collectUntil (#1287) by @contrun
ZStream and ZSink
- Enhanced ZStream spaced to also emit schedule's output (#1120) (#1162) by @dag2ww
- Add ZStream#throttleEnforce and ZStream#throttleEnforceM (#1027) (#1155) by @vasilmkd
- Add ZStream#throttleShape, ZStream#throttleShapeM (#1195) by @vasilmkd
- Add ZStream#effectAsync and variants (#1118) by @dariusrobson
- Add ZStream#aggregate, ZStream#aggregateWithin (#1137) by @iravid
- Add burst control to the existing Stream throttling combinators (#1205) by @vasilmkd
- Add ZStream#flatMapParSwitch (#1222) by @vasilmkd
- Add sinks for decoding UTF-8 bytes and byte chunks (#1342) by @iravid
Promise
Semaphore
v1.0.0-RC10-1
Re-release RC10 due to scaladoc failure
v1.0.0-RC10
A new release of ZIO! Now available for Scala 2.13.0
PRs merged in this release:
- Release zio for scala 2.13 (#1104)
- Limit the maximum amount of ancestors in a ZIO Trace (#1158)
- Ensure that two chunks can be compared for equality and hash code #1159 (#1163)
- Bracket example to doc (#962)
- Introduce real companion object for Schedule - Fix #1111 (#1140)
- Move Queue specific methods to its own companion object (#1111) (#1142)
- clarify that callback must be called at most once for async effects (#1153)
- Introduce Stream companion object (#1111) (#1147)
- Introduce real companion object for Sink (#1144)
- Added zio-slick to the ecosystem page (#1152)
- Fix CI release failure "SCM URL missing" (#1145)
1.0.0-RC10
A new release of ZIO! Now available for Scala 2.13.0
PRs merged in this release:
- Release zio for scala 2.13 (#1104)
- Limit the maximum amount of ancestors in a ZIO Trace (#1158)
- Ensure that two chunks can be compared for equality and hash code #1159 (#1163)
- Bracket example to doc (#962)
- Introduce real companion object for Schedule - Fix #1111 (#1140)
- Move Queue specific methods to its own companion object (#1111) (#1142)
- clarify that callback must be called at most once for async effects (#1153)
- Introduce Stream companion object (#1111) (#1147)
- Introduce real companion object for Sink (#1144)
- Added zio-slick to the ecosystem page (#1152)
- Fix CI release failure "SCM URL missing" (#1145)
v1.0.0-RC9-4
retry release with build.sbt fix
v1.0.0-RC9-3
- Alias
foreachtotraverseandcollectAlltosequence(#1121) - Attach unsafeRun location to the stack trace (#1003)
Releasing due to bincompat changes in #1133 that need interops to be updated.