Releases: ReactiveCocoa/reactiveswift-composable-architecture
Releases · ReactiveCocoa/reactiveswift-composable-architecture
0.18.1
Fixed: Added back @discardableResult to Store.ifLet which was removed by mistake during conflict resolution for 0.18.0 🙈
0.18.0
- Updated:
Disposables inStoreandViewStoreare now managed explicitly (thanks @maximkrouk). - Improved:
ViewStore.producednow allows chaining of key paths instead of only supporting a single level (thanks @maximkrouk).
From the upstream 0.18.0 release:
- Updated:
IfLetStoreandForEachStoreclosures are now view builders. - Changed:
IfLetStore's optional else branch now takes a view builder closure. The overload that takes an else view directly has been deprecated. - Fixed: A crash related to behavior in SwiftUI's
ForEachhas been fixed, where theIdentifiedArrayversion ofForEachStorewould unsafely unwrap elements after removal. - Improved: documentation for
Store.ifLet. - Infrastructure: improve UIKit demo support of dark mode (thanks @hungtruong).
0.17.0
From the upstream 0.17.0 release:
- Added:
Effect.failing, an effect that will cause anXCTestassertion failure if it is subscribed to. - Added: A new
ViewStoreconvenience initializer forVoidstate (thanks @siejkowski). - Changed: Updated
TestStoreto support an imperative DSL. - Changed: The
fireAndForget()method is now more permissive. It will now ignore all output and failure for you before upcasting the output and failure types to any type. - Changed:
TextStatenow has a custom debug output format for easier debugging. - Infrastructure: various documentation improvements and fixes for TicTacToe.
In addition:
- Added:
DateSchedulerconformance forImmediateSchedulerto allow it to be used in tests where aDateScheduleris expected.
0.16.0
- Added: extensions to the ReactiveSwift
SchedulerandDateSchedulerprotocols to support the.animation()and.transaction()APIs that were added in CombineSchedulers, in order to have the same SwiftUI animation support with ReactiveSwift schedulers.
From the upstream 0.16.0 release:
- Changed:
Reducer.optionalreducers no longer triggerassertionFailures. Instead, by default they set a breakpoint that can be resumed inDEBUGmode. This breakpoint can be disabled with an argument.RELEASEbuilds remain unaffected. (#296) - Changed: Test Stores now collocate unfinished effect failures with the originating action that kicked each effect off. These failures were previously aggregated to the unrelated line in which
store.assertwas called. (#413) - Infrastructure: Improved documentation (thanks @Steven0351).
From the upstream 0.15.0 release:
- Added: A new
ViewStore.send(_:animation:)helper for SwiftUI, which wraps an action in awithAnimationblock.
0.14.0
Releases 0.12.0 and 0.13.0 were skipped to stay in sync with the main TCA repo.
- Added: First-class forms support via
BindingActionandReducer.binding. - Added:
.sequence(Step)toStepTypefor more composable testing (thanks @heyltsjay) - Changed: replacing an identified array's element with one that has a mismatched id will now fatal error in debug builds.
- Changed: Improved performance of
ForEachStore. - Fixed: worked around a Xcode 12.5 beta compilation error.
- Infrastructure: fleshed out
Store.scopedocumentation.
Contributions are by @mbrandonw or @stephencelis unless mentioned otherwise.
0.11.0
In order for the releases to stay in sync with TCA we skipped 0.10.0. This release includes the changes from 0.10.0 from TCA.
- Added: WithViewStore now conforms to Scene and can be used in App.body content.
- Added: TextState, a testable, equatable description of SwiftUI Text. Useful for when you want to store dynamic, stylized text in your app's state.
- Changed: AlertState and ActionSheetState now use TextState under the hood.
- Fixed: a few Test Store failure messages were reporting the wrong debug information. They have been fixed.
- Fixed: view store-derived bindings that do not have animation modifiers applied will not properly animated when mutated explicitly in withAnimation.
- Fixed: documentation improvements (thanks @nspavlo, @SteinerHannes, @mluisbrown).x
- Fixed: AlertState and ActionSheetState can once again be used with verbatim strings (thanks @ohitsdaniel).
- Fixed: Re-publicized AlertState.Button.type.
- Deprecated: AlertState and ActionSheetState initializers that take LocalizedStringKey. Migration path: use the initializers that take explicit TextState instead (which can be initialized with both LocalizedStringKey and verbatim Strings).
0.9.0
- Removed ComposableCoreLocation and ComposableCoreMotion. The ReactiveSwift compatible versions of these are, for now, unavailable.
Changes from the upstream repo:
- Rename producer-transforming scope.
- Voice Memos Fixes.
- Use serial queue for Tic Tac Toe authorization
- Small fix to TestStore.
0.8.1
Linux Support 🎉
- Adds support for Linux and Android.
- Only import Combine and SwiftUI when the can be imported.
0.8.0
Changes from the upstream 0.8.0 release:
- Improved: better error messaging around testing uncompleted effects: it will now print the action the effect was kicked off from (thanks @mackoj).
- Bug fix: fixed identified array implementations of shuffle, reverse (thanks @jeffersonsetiawan).
- Bug fix: test stores should now perform effects in the same order as a live store.
- Infrastructure: better document TCA acronym.
- Infrastructure: document Apple bug with WithViewStore and ScrollViewReader.
- Infrastructure: fix recursive higher-order reducer demo to map its effects recursively.
- Infrastructure: Xcode 12 CI.
Plus PRs since 0.8.0:
- Improved: Test Store ergonomics: pointfreeco/swift-composable-architecture#285
- Improved: Buffer actions when sent recursively: pointfreeco/swift-composable-architecture#287
- Bug fix: fix TicTacToe Optional bug: pointfreeco/swift-composable-architecture#291
Thanks to @stephencelis and @mbrandonw