Skip to content

Releases: suprnation/cats-actors

v2.0.0

19 Nov 13:49
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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

v1.0.0

05 Jun 13:50
Compare
Choose a tag to compare

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!