Skip to content

Releases: rcardin/yaes

v0.19.0

11 May 15:46
4f7842e

Choose a tag to compare

Spring is here 🌸, and so is a new version of YAES! This release is all about making the HTTP client more ergonomic and type-safe. We sharpened the edges around URI construction, error body decoding, and the DecodingError model. Enjoy ❤️

What's Changed 🚀

  • Added the decoding of the HTTP responses with status other than 200 by @rcardin in #250
  • Http client ergonomic path parameter support via uri interpolator by @rcardin in #252
  • Decoding error redesign by @rcardin in #257

Maintenance ⚙️

  • Updated dependency scalafmt to v3.11.1 by @renovate[bot] in #244
  • Updated dependency org.scalameta:sbt-scalafmt to v2.6.1 by @renovate[bot] in #258

Full Changelog: v0.18.0...v0.19.0

v0.18.0

03 May 15:50
6258a6b

Choose a tag to compare

First version after the Scalar Conference 2026 🎊 . It's a very big version! As you might know, I started using YAES to build an application in direct-style Scala (see functional-event-sourcing-with-yaes). Many changes come from there. Enjoy ❤️

What's Changed 🚀

  • Added the Random.nextUuid function by @rcardin in #232
  • Accumulated decoding errors by @rcardin in #233
  • Split BodyCodec into BodyEncoder and BodyDecoder by @rcardin in #236
  • Added Jsoniter Scala integration for yaes-http by @rcardin in #239
  • Added yaes-core-test-scalatest module with Raise effect test utilities by @rcardin in #240
  • Added extraHeaders param to Response factory methods and new withStatus factory by @rcardin in #241
  • Replaced Reader.Unsafe trait with opaque type by @rcardin in #242

Maintenance ⚙️

  • Updated dependency org.scalameta:sbt-scalafmt to v2.6.0 by @renovate[bot] in #229
  • Updated dependency sbt/sbt to v1.12.11 by @renovate[bot] in #228
  • Updated dependency scala to v3.8.3 by @renovate[bot] in #190

Full Changelog: v0.17.0...v0.18.0

v0.17.0

01 Apr 11:57
87cd84c

Choose a tag to compare

Easter 🐰 is coming up fast, and what would you like to find in the chocolate eggs 🥚? A new version of YAES! Inspired by Pierre's PureLogic, we added the Reader and the Writer pure effects ❤️! Thanks, Pierre 🙏!

We also made a bold move: We removed the Yaes trait. We lost the ability to use for-comprehension, but after more than a year of YAES, we understood that it's not its main focus ⛔ . Moreover, this is a breaking change 😱!

What did we gain? The possibility to enable capture checking in future YAES versions! 🎉

What's Changed 🌷

  • Added the Writer pure effect by @rcardin in #222
  • Added the Reader pure effect by @rcardin in #225
  • Removed Yaes wrapper class and use Unsafe traits directly as context parameters by @rcardin in #224

Full Changelog: v0.16.0...v0.17.0

v0.16.0

19 Mar 10:27

Choose a tag to compare

Spring is approaching quite fast 🌹 , and today in Italy 🇮🇹 is Father's Day 👨. Let's celebrate with version 0.16.0 of YAES. Since we already have an HTTP server module, we added its client counterpart. Please, welcome the new yaes-http-client module! 💯

Ah, we also reviewed both the content and the site's look and feel. Check it out! YAES site

What's Changed 🌸

Bugs 🐞

  • Handled the Sync effect to YaesApp.run context parameters by @rcardin in #208
  • Added the Sync effect to the YaesServer.run method by @rcardin in #209

Maintanance 🔧

  • Updated dependency sbt/sbt to v1.12.6 by @renovate[bot] in #206

Full Changelog: v0.15.0...v0.16.0

v0.15.0

02 Mar 17:01
3274e80

Choose a tag to compare

Spring 🌷 is approaching fast here in Italy 🇮🇹, and a new version of YAES is here! This time, we have plenty of new features: A new integration with Circe 🐍 to encode/decode JSON in the yaes-http-server; A new Retry effect handler ↩️, which allows to retry code execution using different policies; Async.parTraverse 🧵...I don't need to add anything else; A Flow.merge operation to merge different Flows.

What's Changed 🎉

  • Added Circe integration by @rcardin in #187
  • Added Async.parTraverse for parallel execution over collections by @rcardin in #192
  • Added Flow.merge for non-deterministic interleaving of multiple flows by @rcardin in #193
  • Added Retry handler and schedule retry policy for typed error recovery by @rcardin in #194

Maintenance 🧰

  • Updated dependency sbt/sbt to v1.12.5 by @renovate[bot] in #183

Full Changelog: v0.14.0...v0.15.0

v0.14.0

17 Feb 20:19
bf0be2c

Choose a tag to compare

A new big/small version of YAES is here! We love breaking changes (❤️), so we moved to Scala 3.8.1 and JDK 25. Migrating the structured concurrency machinery inside the Async effect was a pain in the 🌔. We also added a more robust logging effect, based on SLF4J (the effect is called Slf4jLog).

Happy coding 🎉

What's Changed 🚀

  • Added the yaes-slf4j module by @rcardin in #175
  • Migrated to JDK 25 structured concurrency API (JEP 505) by @rcardin in #178

Maintenance 🧰

Full Changelog: v0.13.0...v0.14.0

v0.13.0

05 Feb 10:44
872f7b7

Choose a tag to compare

Here we go again, Scala lovers. ❤️ Big changes for version 0.13.0: First, we changed the dependency between the yaes-core and the yaes-data module. Now, the yaes-core doesn't depend on any other module.

BUT the significant change is that we HAVE an HTTP server based on YAES effects. 🎉🎉🎉 We built it from scratch, so it has a lot of limitations (please, have a look at them in the dedicated documentation). Any feedback is welcome, of course! 🤝

What's Changed 🥇

Maintenance ⚙️

  • Updated dependency scalafmt to v3.10.6 by @renovate[bot] in #165
  • Updated dependency sbt/sbt to v1.12.2 by @renovate[bot] in #167

Full Changelog: v0.12.1...v0.13.0

v0.12.1

16 Jan 14:15

Choose a tag to compare

Ok, there was a bug 🐞 in version 0.12.0...a big one! The Async.withGracefulShutdown doesn't wait for the completion of the forked fibers! 😱 Don't worry, we fixed it, and now it works like a charme.

Bugs Fixed 💩

  • The Async.withGracefulShutdown does not respect the structured concurrency contract by @rcardin in #163

Full Changelog: v0.12.0...v0.12.1

v0.12.0

14 Jan 20:49
690cf44

Choose a tag to compare

Happy New Year!!! 🍾 A new year started, and the latest version of YAES is out, version 0.12.0! Things are getting bigger and bigger. 🚀 We added an effect that interacts with the system during shutdown. It's called Shutdown. We use it immediately to add a sophisticated, graceful shutdown algorithm to the Async effect 🤩 . Everything is ready for the next big thing...

Uh, we also renamed the IO effect to Sync (breaking change). 🤷‍♂️

What's Changed ⭐

  • Added a new Shutdown effect for effectful applications that need to gracefully shut down when SIGTERM and SIGINT events arrive by @rcardin in #153
  • Implemented Async.withGracefulShutdown for graceful shutdown by @rcardin in #154
  • Added the Raise.onError handler to the Raise effect by @rcardin in #158
  • Renamed the IO effect into Sync by @rcardin in #159

Maintenance ⚙️

  • Updated dependency scalafmt to v3.10.3 by @renovate[bot] in #146
  • Updated dependency sbt/sbt to v1.12.0 by @renovate[bot] in #151

Full Changelog: v0.11.0...v0.12.0

v0.11.0

23 Dec 07:20
580d350

Choose a tag to compare

Hey, Scala lovers ❤️! Santa 🎅 is coming, bringing you version 0.11.0 of the YAES library 🎁. The road is clear at this point, and we've added Reactive Streams support for the Flow[A] type 🚀. Plus, we make the Channel[A] type easier, removing useless Async effect from many of its methods. Finally, we further strengthened the integration between the Accumulation DSL and the Cats 🐈 library.

Stay tuned for the next amazing version! And, Merry Christmas 🎄

What's Changed ⭐

  • Added reactive streams publisher support for Flow by @rcardin in #139
  • Remove unnecessary Async context from Channel operations by @rcardin in #141
  • Added the support to NonEmptyList and NonEmptyChain to the Accumulation DSL by @rcardin in #142

Maintenance ⚙️

Full Changelog: v0.10.0...v0.11.0