Releases: yaes-io/yaes
v0.22.0
🥁 YAES has a new home! From now on, the yaes-io is the organization behind the YAES libraries. We changed all the packages from in.rcard.yaes to io.yaes. Maybe we'll publish an OpenRewrite recipe to make the migration easier.
Oh, another important thing: We have a new contributor 🎉. Thanks to @andrzejressel !
What's Changed 🚀
Bugs 🐞
- Updated Complete Server Example by @andrzejressel in #284
- Removed type parameter from
Raise.runin README by @andrzejressel in #285 - Set required Java to 25 in README by @andrzejressel in #286
Maintenance ⚙️
New Contributors
- @andrzejressel made their first contribution in #284
Full Changelog: v0.21.0...v0.22.0
v0.21.0
We're approaching summertime again ⛱️, and before going on holiday 🍹 , there is time for a new version of YAES! The main addition is the CircuitBreaker handler, which, together with the Retry handler, lets us develop resilient distributed applications using YAES 🚀
What's Changed 👍
- Widen to
AutoClosabletheResource.acquirefunction by @rcardin in #278 - Added the
CircuitBreakerhandler by @rcardin in #279 - Added the
Raise.tapErrorfunction by @rcardin in #281
Bugs 🐞
Full Changelog: v0.20.0...v0.21.0
v0.20.0
We're approaching the Republic Day here in Italy 🇮🇹, and that means it's time for a new release of the YAES library! We focused on testing utilities this time, drawing on the accumulated experience we gained in developing the functional-event-sourcing-with-yaes application! 🚀
What's Changed 🎉
- Added
/path-segment operator toUriby @rcardin in #269 - Added
LogSpec,RandomSpec, andSyncSpectoyaes-core-test-scalatestby @rcardin in #270 - Added
yaes-http-test-scalatestmodule withStubHttpServerby @rcardin in #271
Bugs Fixed 🐞
Full Changelog: v0.19.0...v0.20.0
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