Skip to content

Releases: cloudmark/cats-actors

v2.0.1

21 Feb 16:24

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v2.0.0...2.0.1

v2.0.0

19 Nov 13:49

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.0.2...v2.0.0

v2.0.0-RC6

01 Nov 08:07

Choose a tag to compare

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

08 Oct 07:18

Choose a tag to compare

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

23 Aug 12:52

Choose a tag to compare

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 FSM StateManager to allow child actor creation and self-messaging within FSMs.
    • Removed ActorSystem from MinimalActorContext to restrict scheduler access, ensuring controlled state transitions.
    • Updated FaultHandler to use ActorContext instead of the minimal context for full access to the ActorSystem.
  • 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

07 Aug 11:01

Choose a tag to compare

What's Changed

  • Fixed issue with FSM timeout not timing out by @Mitrug in #5
  • Fixed issue with isIdle on Scheduler

New Contributors

  • @Mitrug made their first contribution in #5

Full Changelog: v2.0.0-RC2...v2.0.0-RC3

v2.0.0-RC2

16 Jul 16:58

Choose a tag to compare

🔧 Support for Scala 3

🚀 Version: 2.0.0-RC2

Full Changelog: v2.0.0-RC1...v2.0.0-RC2

v2.0.0-RC1

28 Jun 13:07

Choose a tag to compare

🔧 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

15 Jun 10:05

Choose a tag to compare

What's Changed

  • Fix: Resolve potential deadlock in suspended actor scenario. by @cloudmark in #1

New Contributors

Full Changelog: v1.0.1...v1.0.2

v1.0.1

06 Jun 16:26

Choose a tag to compare

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