Releases: cloudmark/cats-actors
v2.0.1
What's Changed
- chore: various improvements in README by @arnoldlacko in #35
- fix: expand uncancelable scope to prevent ask pattern deadlock during system termination by @arnoldlacko in #36
- Bugfix escalateDefault, README, and ifM by @PetrosPapapa in #39
- test: More convenience methods in the TestKit by @PetrosPapapa in #37
New Contributors
- @arnoldlacko made their first contribution in #35
Full Changelog: v2.0.0...2.0.1
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
MinimalActorContextin FSMStateManagerto allow child actor creation and self-messaging within FSMs. - Removed
ActorSystemfromMinimalActorContextto restrict scheduler access, ensuring controlled state transitions. - Updated
FaultHandlerto useActorContextinstead 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