Releases: suprnation/cats-actors
v2.0.0
What's Changed
- feature/typed-actors investigation of typed actors by @cloudmark in #3
- Fixed issue with FSM timeout not actually timing out by @Mitrug in #5
- feat: Adds actor configuration to FSMBuilder by @PetrosPapapa in #7
- Issue/8 fsm actor context by @Mitrug in #9
- Curried FSM StateFunction by @PetrosPapapa in #11
- Fix tests from #9 with syntax from #11 by @PetrosPapapa in #12
- fix: FSM - Termination - Added stateData and referenced correct state by @Mitrug in #14
- feat: Adds current state name and data getters to FSM StateManager by @PetrosPapapa in #16
- fix: Added error escalation to the actor pre-start. by @Mitrug in #17
- FSM Update by @PetrosPapapa in #22
- fix: Improved the isTerminated semantics to be based on the ActorCell instead of the Mailbox by @Mitrug in #31
- V2.0.0 by @PetrosPapapa in #33
New Contributors
- @Mitrug made their first contribution in #5
- @PetrosPapapa made their first contribution in #7
Full Changelog: v1.0.2...v2.0.0
v2.0.0-RC6
What's Changed
- Configurable 'waitForIdle' to ignore the scheduled tasks - by @Mitrug #24
- Fix for Deadletter Mailbox 'isTerminated' method - by @Mitrug
- Propagation of error to sender when 'asking' - by @PetrosPapapa #26
- Scheduled Timers for all actors and not just FSMs - by @capsj #27
- Broadcast actor & Typechecking - by @PetrosPapapa #28
- New methods in the TestKit - by @Mitrug #29
There should be no breaking changes in this PR.
Full Changelog: v2.0.0-RC5...v2.0.0-RC6
v2.0.0-RC5
Release Notes - Version RC5
What's Changed
- fix: FSM - Termination - Added state data and referenced correct state by @Mitrug in #14
- feat: Adds current state name and data getters to FSM StateManager by @PetrosPapapa in #16
- fix: Added error escalation to the actor pre-start. by @Mitrug in #17
- FSM Update by @PetrosPapapa in #22
Full Changelog: v2.0.0-RC4...v2.0.0-RC5
v2.0.0-RC4
Release Notes - Version RC4
This release, RC4, introduces key enhancements to FSM (Finite State Machine) management, improving flexibility and syntax.
Key Updates
1. MinimalActorContext in FSM StateManager
Contribution by: @Mitrug
-
Summary:
- Introduced
MinimalActorContext
in FSMStateManager
to allow child actor creation and self-messaging within FSMs. - Removed
ActorSystem
fromMinimalActorContext
to restrict scheduler access, ensuring controlled state transitions. - Updated
FaultHandler
to useActorContext
instead of the minimal context for full access to theActorSystem
.
- Introduced
-
Example:
FSM[IO, FsmParentState, Int, FsmRequest, Any] .when(FsmIdle) { case (Event(FsmRun, _), sM) => for { fsmChildActor <- sM.minimalContext.actorOf(FsmChild()) result <- fsmChildActor ? FsmChildEcho state <- sM.goto(FsmRunning).replying(result) } yield state } .when(FsmRunning) { case (Event(FsmRun, _), sM) => (sM.minimalContext.self ! FsmStop) *> sM.stay() case (Event(FsmStop, _), sM) => stopped.complete(true) *> sM.stay() } .withConfig(FSMConfig.withConsoleInformation) .startWith(startWith, 0) .initialize
2. Curried State Manager in FSMs
Contribution by: @PetrosPapapa
-
Summary:
- Simplified state function type signatures by currying the state manager, reducing repetition and aligning syntax closer to Akka.
-
Example:
Before:
def someStateFunction: PartialFunction[(FSM.Event[Any, Request], StateManager), IO[State]] = { case (FSM.Event(Start, _), stateManager) => stateManager.goto(Active) case (FSM.Event(Stop, _), stateManager) => stateManager.stay() }
After:
def someStateFunction: StateManager => PartialFunction[FSM.Event[Any, Request], IO[State]] = stateManager => { case FSM.Event(Start, _) => stateManager.goto(Active) case FSM.Event(Stop, _) => stateManager.stay() }
These updates enhance FSM flexibility and usability. We encourage users to integrate these changes and report any feedback.
v2.0.0-RC3
v2.0.0-RC2
v2.0.0-RC1
🔧 Implemented typed actors for improved type safety and clarity.
🚀 Version: 2.0.0-RC1
📚 Documentation: Updated here.
🙌 Thanks for your contributions! Special thanks to @jducoeur for the design review guiding this implementation.
Full Changelog: v1.0.2...v2.0.0-RC1
v1.0.2
What's Changed
- Fix: Resolve potential deadlock in suspended actor scenario. by @cloudmark in #1
New Contributors
- @cloudmark made their first contribution in #1
Full Changelog: v1.0.1...v1.0.2
v1.0.1
Update documentation and fix context become/unbecome bug
- Updated all documentation to improve clarity and detail.
- Fixed a bug in the context become/unbecome functionality.
- Enhanced examples to better demonstrate dynamic actor creation and termination.
-
Full Changelog: v1.0.0...v1.0.1
v1.0.0
We are excited to announce the first major release of Cats-Actors, a functional programming-based actor system built on Cats Effect and FS2. This release introduces a robust and highly concurrent actor model, leveraging fibers for efficient concurrency management. Major features include:
- Full integration with Cats Effect for composable, asynchronous programming.
- High concurrency with minimal overhead using fibers.
- Seamless interoperation with FS2 for streaming data processing.
Thank you to all contributors and users who helped shape this release. We look forward to your feedback and contributions to further improve Cats-Actors!