Releases: zio/zio
2.0.0-RC2
This release contains bug fixes and additional features to make it easier than ever to upgrade to ZIO 2, including new ZPipeline
constructors that let you convert any transducer into a pipeline. This is also the first release in which ZIO Mock has been moved into its own project. Check out the new repository here if you are using it in your tests.
We expect that all major ZIO ecosystem libraries will be able to publish versions supporting RC2
shortly after it is released, allowing users to begin testing their applications on ZIO 2 if they are not already doing so. Thank you as always for your support and please continue to share your feedback as we drive towards the final release of ZIO 2!
2.0.0-RC1
We are excited to bring you the first release candidate of ZIO 2.0!
When we announced the first milestone release of ZIO 2.0 we said we wanted to focus on four key areas: (1) performance, (2) ergonomics, (3) operations, and (4) streaming.
We are proud to have delivered on all of these and more.
- Performance - ZIO is faster than ever with a new fiber aware scheduler and optimized runtime.
- Ergonomics - ZIO is easier to use than ever with more straightforward names, automatic layer construction, and the deletion of
Has
. - Operations - It is easier than ever to understand what is going on in your ZIO application with built in logging and metrics, execution traces that look like JVM stack traces, and integrated fiber dumps.
- Streaming - Streams are more powerful than ever with a new channel based encoding that unifies streams and sinks, supporting higher performance implementations along with concurrent data structures such as
ZHub
.
From here we will be working with all ZIO ecosystem libraries to publish versions for RC1
. This will allow users to test their own applications on ZIO 2.0 and resolve any issues before a final release. If you are upgrading to ZIO 2.0 we would encourage you to check out our migration guide here. In particular, it has details on our automated migration tool, which will do most of the work of upgrading your ZIO application for you.
As always, please let us know your feedback, and we hope you enjoy using ZIO 2.0 as much as we have developing it.
1.0.13
What's Changed
- chore(deps): update zio.version to v1.0.12 by @renovate in #5652
- chore(deps): update dependency prismjs to 1.25.0 [security] by @renovate in #5654
- Update zio-aws-core, zio-aws-ec2, ... to 3.17.42.1 by @scala-steward in #5656
- Update http4s-blaze-client, ... to 0.23.4 by @scala-steward in #5657
- Update zio-aws-core, zio-aws-ec2, ... to 3.17.42.3 by @scala-steward in #5660
- Remove site deployment from the series 1.x branch by @atooni in #5658
- Added DPG recruitment to the list of adopters in the README by @kolov in #5672
- Preserve Original Error In ZStream#timeoutError by @adamgfraser in #5671
- Update scalafmt-core to 3.0.5 by @scala-steward in #5674
- Update sbt-ci-release to 1.5.9 by @scala-steward in #5663
- Update scala-compiler, scala-library, ... to 2.12.15 by @scala-steward in #5613
- Update quill-jdbc-zio to 3.10.0 by @scala-steward in #5526
- Update zio-test-akka-http to 1.0.3 by @scala-steward in #5673
- Update zio-aws-core, zio-aws-ec2, ... to 3.17.42.4 by @scala-steward in #5682
- Fix getRef in Fiber.orElse by @zeal18 in #5690
- chore(deps): update node.js to v14.18.0 by @renovate in #5689
- Update zio-aws-core, zio-aws-ec2, ... to 3.17.42.5 by @scala-steward in #5691
- Update jsoup to 1.14.3 by @scala-steward in #5695
- Preserve Partial Ordering Of Stream Elements In ZStream#zipWithLatest by @adamgfraser in #5693
- Update zio-kafka to 0.17.0 by @scala-steward in #5698
- Add accessor method for Clock.localDateTime by @nartamonov in #5661
- Update util-core to 21.9.0 by @scala-steward in #5700
- Update zio-zmx to 0.0.9 by @scala-steward in #5701
- Update rezilience to 0.7.0 by @scala-steward in #5702
- Update scalafmt-core to 3.0.6 by @scala-steward in #5708
- Update maven-compat, maven-embedder to 3.8.3 by @scala-steward in #5710
- Update zio-aws-core, zio-aws-ec2, ... to 3.17.42.6 by @scala-steward in #5712
- Preserve Scope of Forked Fibers in ZStream#interruptWhen by @adamgfraser in #5720
- Generalize Signature Of EffectBlockingCancelable by @adamgfraser in #5715
- Update http4s-blaze-client, ... to 0.23.5 by @scala-steward in #5735
- Update zio-aws-core, zio-aws-ec2, ... to 3.17.42.7 by @scala-steward in #5740
- Update sbt-scalajs, scalajs-compiler, ... to 1.7.1 by @scala-steward in #5738
- Back Port ZIO#toManagedAuto by @adamgfraser in #5727
- Update zio-aws-core, zio-aws-ec2, ... to 3.17.42.9 by @scala-steward in #5746
- Update caliban, caliban-zio-http to 1.2.0 by @scala-steward in #5748
- Update zio-aws-core, zio-aws-ec2, ... to 3.17.56.1 by @scala-steward in #5747
- feat: catchNonFatal by @runtologist in #5741
- Add collectAll and foreach to ZLayer by @jypma in #5756
- Update fs2-core to 2.5.10 by @scala-steward in #5757
- Update reactor-core to 3.4.11 by @scala-steward in #5758
- Update mockable macro implementation to handle inheritance by @sloanesturz in #5737
- Implement Random.scalaRandom by @adamgfraser in #5731
- Update http4s-blaze-client, ... to 0.23.6 by @scala-steward in #5764
- Add ZTransducer.groupAdjacentBy by @davidlar in #5767
- Remove Scalafix by @adamgfraser in #5766
- Remove Scala Steward by @adamgfraser in #5765
- chore(deps): update node.js to v14.18.1 by @renovate in #5760
- Update zio-aws-core, zio-aws-ec2, ... to 3.17.58.1 by @scala-steward in #5769
- chore(deps): update actions/checkout action to v2.3.5 by @renovate in #5781
- add tamer to community by @gurghet in #5709
- Update to Scala 3.1.0 by @sideeffffect in #5793
- Run tests on 8 as the main Java version by @sideeffffect in #5813
- Scala Native 0.4.1 by @sideeffffect in #5812
- Fix zio-test-scalacheck publishing by @mijicd in #5814
- Stop publishing examples by @mijicd in #5816
- Remove type parameters from STM types list by @mijicd in #5817
- Clean Up Some Documentation by @adamgfraser in #5822
- chore(deps): update node.js to v16 by @renovate in #5828
- ZIO Test Mock: Fix
atLeast
and add exactly bounded expectations by @aartigao in #5834 - chore(deps): update node.js to v16.13.0 by @renovate in #5833
- Chunk.fromIterable should work with Iterables traversing only once by @narma in #5836
- Change/update Gitpod configs by @ThijsBroersen in #5839
- ZIO Test Mock: Remove redundant
once
combinator forExpectation[R]
by @aartigao in #5840 - Fix null rendering w/ PrettyPrint by @kitlangton in #5842
- Update README.md by @yelenabun in #5843
- Remove Scalafix artifacts by @mijicd in #5893
- Implement ConcurrentMap by @mijicd in #5898
- Add CyclicBarrier by @regiskuckaertz in #5901
- Add Scala 3 to crossScalaVersions and remove bintray.com by @sideeffffect in #5897
- #5823 - Add ConcurrentSet by @aleksandarskrbic in #5876
- Update stale contributing docs by @mijicd in #5920
- Add CountdownLatch by @regiskuckaertz in #5915
- Add concurrent set methods by @kitlangton in #5921
- Update contributing.md by @BruceEckel in #5929
- Add possibility to feed UUIDs to TestRandom by @Edvin-san in #5950
- Add adpulse.io to list of adopters by @dpovey in #5957
- Replace UIO[Unit] with UIO[Any] by @mijicd in #5963
- Prefer Unit to Any by @mijicd in #5967
- issue #5877: Backport some improvements to supervisor by @dkarlinsky in #5942
- issue #5804: @mockable fails to mock service that returns a stream by @KineticCookie in #5962
- Upgrade Scala Version by @adamgfraser in #5976
- Added ConcurrentMap methods by @oliveiosello in #5933
- .is SmartAssertions by @kitlangton in #5988
- Fix race condition in fromOutputStreamWriter by @joroKr21 in #5872
- Improve
.is
with custom assertions, subtype, and anything by @kitlangton in #5996 - Added benchmarks for Chunk methods inherited from IndexedSeq by @Ethan-Edmond in #5971
- chore(deps): update actions/checkout action to v2.4.0 by @renovate in #5982
- Fix Compilation Error by @adamgfraser in #6019
- corrected the official installation to use zio-logging by @ksarath in #6022
- Auto-docstring wrapping at 80 char line width by @kitlangton in #6013
- Backport ZIO 2 ClockJava by @ThijsBroersen in #6035
- Add failsWithA and diesWithA to test assertions by @droptheplot in #5838
- Fixed #6049 - Misleading Example by @eaborm in #6052
- Fix foldWeighted emitting too big outputs by @rtimush in #6054
- fix nonEmptyStringGen by @kazchimo in #6085
- #4388 Adds execute method + test by @jeroenr in #6091
- Extract ZIO Concurrent Into Separate Module by @adamgfraser in #6093
- Implement MockRandom#nextUUID by @adamgfraser in #6100
- Fix CODE_OF_CONDUCT.md link target [master] by @ya-goodfella in #6106
- Add company to readme by @WesselVS in #6114
- Don't run tests if they are filtered out by tags or labels by @danilbykov in #6113
- chore(deps): update node.js to v16.13.1 by @renovate in #6119
- Fix zlayer example by @erdnaxeli in #6124
- A...
2.0.0-M6-2
This release fixes a publishing issue with 2.0.0-M6.
2.0.0-M6-1
This release fixes a publishing issue with 2.0.0-M6
.
2.0.0-M6
We did it again! We expected 2.0.0-M5
to be the final milestone before publishing a release candidate of ZIO 2.0, but based on breakthrough work to dramatically simplify the environment type we are publishing one more milestone release.
This release deletes the Has
data type and builds the ZIO Environment directly into ZIO. This allows us to offer the same power of compositionally building your application's dependencies but without Has
, simplifying type signatures and improving teachability. Based on this change we have also reverted the renaming of ZLayer
to ZServiceBuilder
since this addresses the underlying goal of simplifying dependency injection in a more fundamental way.
Our plan to publish a release candidate in early December remains unchanged. As always thank you for your support and please continue to share your feedback!
2.0.0-M5
We got so many contributions in the ZIO Hackathon we needed one more milestone to get them all in!
We expect that this will be the last milestone before we publish the first release candidate of ZIO 2.0 and it comes packed with several major new features.
First, rendering of tracing information has been dramatically improved. Traces now look like Java stack traces, so if you know how to read a Java stack trace you know how to read a ZIO trace. This way any tooling you are using to work with Java stack traces today will work with ZIO traces. You shouldn't have to change your infrastructure just because you use an effect system.
Second, this release contains the new channel based stream encoding. While we have striven to maintain a consistent API, under the hood streams and sinks are both implemented as channels, supporting higher performance and reflecting a deep unification that reveals more about the fundamental nature of these data types. Transducers are also gone and have been replaced with pipelines, which represent a stream transformation as a data type.
Third, this release continues our work to improve the ergonomics of providing applications with their required dependencies. We have already taken dramatic steps in this direction with automatic construction of the dependency graph and standardized ways to define services. Now we are improving how we describe building services by renaming ZLayer
to ZServiceBuilder
. This tells you exactly what it does, it builds one or more of the services that your application needs.
With these changes we have achieved all the features we targeted for ZIO 2.0. From here we expect to publish the first release candidate at the beginning of December, assuming no major issues, and then work to rapidly upgrade the ecosystem in preparation for a final release.
Thank you all for your support as we build the next generation of cloud native programming in Scala and as always please let us know your feedback!
2.0.0-M4
This fourth milestone release of ZIO 2.0 brings us rapidly closer to realizing our vision of next generation concurrent programming in Scala.
Specifically, this milestone contains a new implementation of execution tracing that dramatically reduces the overhead of collecting traces. Since most production applications use execution tracing this should have a material impact on the performance of some ZIO applications.
In addition, this release contains a new ZPool
concurrent data structure that represents a pool of managed resources, for example a connection pool. Users can get
a value from the pool, semantically blocking until a resource is available, and all resources will be automatically released when the scope of the pool is closed.
Please let us know your feedback. Assuming there are no major issues with this release we expect to publish the first release candidate of ZIO 2.0 in the next two to three weeks. At that point we will work with all ZIO ecosystem libraries to publish versions for ZIO 2.0 so that users can test their applications on ZIO 2.0. At that time we will also have a Scalafix migration rule which will automate the process of upgrading from ZIO 1.0 to ZIO 2.0.
As always thank you for your support!
2.0.0-M3
This third milestone release of ZIO 2.0 focuses on realizing our vision of next level support for operational concerns, with built in logging and metrics.
See this blog post by @jdegoes for a discussion of the new logging functionality.
For metrics, you can now use ZIOMetric
to define metrics such as counters, gauges, and histograms and either call them yourself or apply them to effects as aspects:
import zio._
val countErrors = ZIOMetric.countErrors("my service errors")
handle(request) @@ countErrors
In the future ZIO Metrics will support plugging in one or more metrics backends to automatically send metrics to the service or services you want with a single line of code.
This release candidate also contains a new ZIOApp
that lets you combine multiple applications and share layers between them, as well as a ZIOAppDefault
to make it even easier to demonstrate and prototype ZIO applications.
object MyApp extends ZIOAppDefault {
def run = Console.printLine("Hello ZIO!")
}
This release also contains THub
, a version of ZHub
that can be composed transactionally. So now if you are working with any ZIO data structure and run into a concurrency problem you have trouble solving you can always "upgrade" to the STM version and unblock yourself.
Finally, this release contains a variety of improvements to polish to continue to get us ready for the final release of ZIO 2.0.
As always, thank you for your support and let us know what you think!
1.0.12
This minor release contains miscellaneous improvements as well as a couple of new stream operators.
ZIO Core
- Fix method name in Hub's documentation (#5618) @mijicd
- Back Port Schedule Improvements to ZIO 1.0 (#5489) @adamgfraser
- Back Port Zippable and Unzippable To ZIO 1.0 (#5480) @adamgfraser
- add missing comma (#5461) @joprice
- docs(blocking.md): fix typo (#5454) @civilizeddev
- Add missing word in Scaladoc (#5455) @kluen
ZIO Stream
- Handle Empty Pull (#5651) @adamgfraser
- Implement ZStream#zipAllSortedByKeyWith (#5571) @adamgfraser
- Add ZStream.effectAsyncManaged (#4478) @frekw
- Add "tapError" operator to ZStream (#5591) @jypma
- Implement ZStream#serviceWithStream (#5298) @adamgfraser
ZIO Test
- Add tests and better null handling for isThrowableCause (#5573) @stephendavidmarsh
- Eagerly Build Shared Layers (#5532) @adamgfraser
- Replacing ☛ with
at
so tooling can auto-hyperlink stacktrace paths (#5435) @hmemcpy - Fix pretty printing for SmartAssertions (#5443) @kitlangton