All Versions
Latest Version
Avg Release Cycle
168 days
Latest Release

Changelog History
Page 1

  • v6.1.0 Changes

    ๐Ÿš€ Released: 2021-05-09

    API Changes:

    • ๐Ÿ—„ Deprecate StateType protocol requirement (#462) - @mjarvis


    • ๐Ÿ›  Fix bug where automaticallySkipsRepeats is ignored when subscribing on generic S: StoreType (#463) - @mjarvis
    • ๐Ÿ›  Fix typo in error messaging (#470) - @hkellaway
  • v6.0.0 Changes

    October 02, 2020

    Breaking API Changes:

    API Changes:

    • โž• Add capability to mutate Middleware after store creation. (#427) - @mjarvis


  • v5.0.0 Changes

    July 02, 2019

    Breaking API Changes:

    โœ‚ Remove StandardAction and StandardActionConvertible (#270) - @mjarvis

    • The existence of StandardAction and StandardActionConvertible is somewhat confusing to new users, and does not have a direct use case within the core ReSwift library. Therefore, it has been moved to ReSwift-Recorder where it belongs.

    - If you're using StandardAction in your project without ReSwift-Recorder, you can copy the old implementation into your project as a middle ground while you migrate away from its usage.

    ๐Ÿ‘‰ Make Store's state setter private (#354) - @mokagio

    • Removes the ability to directly set state by making it private(set). This prevents users from bypassing reducers and middleware. All mutation of the state must occur through the normal Action & Reducer methods.
    • This deprecates the usage of ReSwift-Recorder. Changes may be made to that library in the future in order to support this change.


  • v4.1.1 Changes

    March 21, 2019
    • ๐Ÿ›  Fix 4.1.0 regression with automaticallySkipsRepeats when selecting Equatable state in Non-Equatable root state (#399) - @djtech42
  • v4.1.0 Changes

    March 21, 2019

    API Changes:

    ๐Ÿ—„ Deprecate StandardAction and StandardActionConvertible - @mjarvis

    - These have been moved to since they are unnecessary for the base use of ReSwift

    ๐Ÿ—„ Deprecate ActionCreator and AsyncActionCreator (#391) - @mjarvis


  • v4.0.1 Changes

    December 19, 2017


    • ๐Ÿ›  Fix retain cycle in SubscriptionBox (#278) - @mjarvis, @DivineDominion
    • ๐Ÿ›  Fix bug where using skipRepeats with optional substate would not notify when the substate became nil #55655 - @Ben-G
    • โž• Add automatic skipRepeats for Equatable substate selection (#300) - @JoeCherry
  • v4.0.0 Changes

    April 20, 2017

    Breaking API Changes:

    Introduced a new Subscription API (#203) - @Ben-G, @mjarvis, @DivineDominion

    The subscription API provides basic operators, such as skipRepeats (skip calls to newState unless state value changed) and select (sub-select a state).

    This is a breaking API change that requires migrating existing subscriptions that sub-select a portion of a store's state:


    Subselecting state in 3.0.0:

    store.subscribe(subscriber) { ($0.testValue, $0.otherState?.name) }

    Subselecting state in 4.0.0:

    store.subscribe(subscriber) { $ { ($0.testValue, $0.otherState?.name) } }

    0๏ธโƒฃ For any store state that is Equatable or any sub-selected state that is Equatable, skipRepeats will be used by default.

    For states/substates that are not Equatable, skipRepeats can be implemented via a closure:

    store.subscribe(subscriber) { $ { $0.testValue }.skipRepeats { return $0 == $1 } }

    โฌ‡๏ธ Reducer type has been removed in favor of reducer function (#177) - Ben-G

    ๐Ÿ‘€ Here's an example of a new app reducer, for details see the README:

    func counterReducer(action: Action, state: AppState?) -\> AppState { var state = state ?? AppState() switch action { case \_ as CounterActionIncrease: state.counter += 1case \_ as CounterActionDecrease: state.counter -= 1default:break } return state }

    dispatch functions now return Void instead of Any (#187) - @Qata

    - The return type has been removed without any replacement, since the core team did not find any use cases of it. A common usage of the return type in redux is returning a promise that is fullfilled when a dispatched action is processed. While it's generally discouraged to disrupt the unidirectional data flow using this mechanism we do provide a dispatch overload that takes a callback argument and serves this purpose.

    ๐Ÿ‘‰ Make dispatch argument in middleware non-optional (#225) - @dimazen, @mjarvis, @Ben-G

    Middleware now has a generic type parameter that is used for the getState method and matches the Store's State type. This allows accessing the state in middleware code without type casting (#226) - @mjarvis


    • Extend StoreType with substate selector subscription (#192) - @mjarvis
    • โž• Add DispatchingStoreType protocol for testing (#197) - @mjarvis
    • ๐Ÿ“ฆ Installation guide for Swift Package Manager - @thomaspaulmann
    • ๐Ÿ“š Update documentation to reflect breaking API changes - @mjarvis
    • Clarify error message on concurrent usage of ReSwift - @langford
  • v3.0.0 Changes

    November 13, 2016

    ๐Ÿš€ Released: 11/12/2016

    This release supports Swift 3.0.1

    ๐Ÿ’ฅ Breaking API Changes:

    • โฌ‡๏ธ Dropped support for Swift 2.2 and lower (#157) - @Ben-G

    API Changes:

    • โช Mark Store as open, this reverts a previously accidental breaking API Change (#157) - @Ben-G

    Other :

  • v2.1.0 Changes

    September 16, 2016

    ๐Ÿš€ Released: 09/15/2016

    This version supports Swift 3 for Swift 2.2 support use an earlier release.

    Other :

  • v2.0.0 Changes

    June 30, 2016

    ๐Ÿš€ Released: 06/30/2016

    ๐Ÿ’ฅ Breaking API Changes :

    • Significant Improvements to Serialization Code for StandardAction (relevant for recording tools) - @okla

    Other :