Releases: rcardin/yaes
v0.19.0
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
uriinterpolator 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
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.nextUuidfunction by @rcardin in #232 - Accumulated decoding errors by @rcardin in #233
- Split
BodyCodecintoBodyEncoderandBodyDecoderby @rcardin in #236 - Added Jsoniter Scala integration for
yaes-httpby @rcardin in #239 - Added
yaes-core-test-scalatestmodule withRaiseeffect test utilities by @rcardin in #240 - Added
extraHeadersparam toResponsefactory methods and newwithStatusfactory by @rcardin in #241 - Replaced
Reader.Unsafetrait withopaque typeby @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
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
Writerpure effect by @rcardin in #222 - Added the
Readerpure effect by @rcardin in #225 - Removed
Yaeswrapper class and useUnsafetraits directly as context parameters by @rcardin in #224
Full Changelog: v0.16.0...v0.17.0
v0.16.0
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
Synceffect toYaesApp.runcontext parameters by @rcardin in #208 - Added the
Synceffect to theYaesServer.runmethod by @rcardin in #209
Maintanance 🔧
Full Changelog: v0.15.0...v0.16.0
v0.15.0
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.parTraversefor parallel execution over collections by @rcardin in #192 - Added
Flow.mergefor non-deterministic interleaving of multiple flows by @rcardin in #193 - Added
Retryhandler and schedule retry policy for typed error recovery by @rcardin in #194
Maintenance 🧰
Full Changelog: v0.14.0...v0.15.0
v0.14.0
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-slf4jmodule by @rcardin in #175 - Migrated to JDK 25 structured concurrency API (JEP 505) by @rcardin in #178
Maintenance 🧰
- Updated dependency scala to v3.8.1 by @renovate[bot] in #156
- Updated dependency scalafmt to v3.10.7 by @renovate[bot] in #170
- Updated dependency sbt/sbt to v1.12.3 by @renovate[bot] in #179
Full Changelog: v0.13.0...v0.14.0
v0.13.0
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 🥇
- Made the
yaes-datadependent onyaes-coreby @rcardin in #168 - Added an effectful HTTP server by @rcardin in #169
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
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.withGracefulShutdowndoes not respect the structured concurrency contract by @rcardin in #163
Full Changelog: v0.12.0...v0.12.1
v0.12.0
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
Shutdowneffect for effectful applications that need to gracefully shut down when SIGTERM and SIGINT events arrive by @rcardin in #153 - Implemented
Async.withGracefulShutdownfor graceful shutdown by @rcardin in #154 - Added the
Raise.onErrorhandler to theRaiseeffect by @rcardin in #158 - Renamed the
IOeffect intoSyncby @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
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
Flowby @rcardin in #139 - Remove unnecessary
Asynccontext fromChanneloperations by @rcardin in #141 - Added the support to
NonEmptyListandNonEmptyChainto the Accumulation DSL by @rcardin in #142
Maintenance ⚙️
Full Changelog: v0.10.0...v0.11.0