Skip to content

Releases: pointfreeco/swift-composable-architecture

1.1.0

14 Aug 20:04

Choose a tag to compare

What's Changed

  • Added: An overload of Reducer.onChange(of:) that takes a configurable removeDuplicates closure for the equality check (thanks @ohitsdaniel, #2338).
  • Added: Effect.debounce and Effect.throttle, for debouncing and throttling effects on a scheduler (#2372, #2368). This functionality existed in past releases but was removed from 1.0 alongside other deprecated Combine code. Because there is no modern replacement for Effect.throttle we have brought this functionality back to 1.1.
  • Fixed: XCTest failures emitted when test stores initialize state (e.g. if Reducer.State.init accesses a dependency that hasn't been overridden) are now shown in the test that creates the store rather than hidden in application code (#2352).
  • Fixed: Suppressed a warning that previously emitted when instantiating a test store state with .init() instead of Feature.State() (#2347).
  • Fixed: Child features presented by grandparent features are now properly dismissed when the child calls @Dependency(\.dismiss) (#2373).
  • Infrastructure: Documentation updates and fixes (#2336; thanks @jayrhynas, #2342; thanks @atimca, #2350; #2353; thanks @hmhv, #2355; thanks @Ryu0118, #2358, #2367; thanks @yimajo, #2357; thanks @ValseLee, #2369, #2370).

New Contributors

Full Changelog: 1.0.0...1.1.0

1.0.0

30 Jul 22:01
195284b

Choose a tag to compare

What's Changed

  • The Composable Architecture 1.0 (#2318). Fully removes all deprecated APIs from the 0.x series.

Full Changelog: 0.58.0...1.0.0

0.58.0

30 Jul 21:27

Choose a tag to compare

What's Changed

  • Added: Allow chaining into BindingViewState (#2334).
  • Deprecated: The old alert/dialog APIs have been hard-deprecated in favor of the newer presentation APIs (#2335).
  • Infrastructure: Fix compiler error in tutorial (#2331); make some small improvements to Standups demo (#2333).

Full Changelog: 0.57.0...0.58.0

0.57.0

28 Jul 17:07
db2a55f

Choose a tag to compare

What's Changed

  • Changed: Prerelease 1.0 has been merged into this release (#1929). It includes numerous deprecations to help folks prepare for 1.0.
  • Changed: BindingAction's custom dump format now abbreviates its value (#2315).
  • Added: Store.publisher as an alternate to ViewStore.publisher (#2330).
  • Fixed: Use Concurrency Extras' Task.cancellableValue instead of redefining it (thanks @Ryu0118, #2310).
  • Fixed: TestStore.init(initialState:reducer:prepareDependencies:file:line:) deprecation suggestion has been corrected (thanks @Ryu0118, #2313).
  • Fixed: Update Store.send(_ action:) to return StoreTask (thanks @hj56775, #2323).
  • Infrastructure: Remove unneeded awaits from tests (thanks @Ryu0118, #2312).
  • Infrastructure: Fixed typo in withTaskCancellation's debounce documentation (thanks @brzzdev, #2319).

Full Changelog: 0.56.0...0.57.0

0.56.0

18 Jul 00:23
17add0f

Choose a tag to compare

What's Changed

  • Added: TestStore.useMainSerialExecutor, a configurable option to make testing code using Swift concurrency more reliable (#2301 ). This feature uses a newly-extracted library, Concurrency Extras.
  • Added: Store.send can now be configured with an animation or transaction (thanks @HarshilShah, #2241).
  • Added: TestStoreOf type alias for specifying a test store of a reducer (thanks @brzzdev, #2277).
  • Changed: ViewStoreTask.cancel is now synchronous (#2282).
  • Changed: Closure arguments for various APIs have been given names, improving documentation and Xcode completion (#2295).
  • Fixed: Effect cancellation IDs should no longer nest into deep AnyHashables, fixing potential bugs (#2283).
  • Fixed: navigationDestination(store:) dismissal should now work more reliably (thanks @tplaymeow, #2210; #2284).
  • Fixed: Added a workaround for a SwiftUI bug involving nested stack and tree navigation (thanks @benlings, #2289).
  • Deprecated: TestStore scoping has been deprecated (#2292).
  • Infrastructure: Added case study for tree-based navigation to multiple destinations using enum state (thanks @tiagopigatto, #2231)

New Contributors

Full Changelog: 0.55.1...0.56.0

0.55.1

13 Jul 00:16

Choose a tag to compare

What's Changed

  • Fixed: BindingViewStore's dynamic member lookup has been weakened to support let properties (#2243).
  • Fixed: A regression introduced in 0.55.0 caused tests equating BindingAction to fail has been fixed (thanks @bharath2020, #2248).
  • Fixed: WithViewStore initializers that take BindingViewStore are now available on ViewStore, as well (thanks @jessetipton, #2274).
  • Fixed: WithViewStore initializers introduced in 0.55.0 were ambiguous when working with bindable state but no bindable view state. This has been fixed (#2278).
  • Fixed: Some changes to view state containing BindingViewState that SwiftUI failed to observe will now correctly be observed (#2255).
  • Infrastructure: Documentation fixes (thanks @yimajo, #2242; @jessetipton, #2256, #2261, #2267; #2280) and updates (thanks @mrtnlst, #2252).
  • Infrastructure: Fixed programmable 2FA navigation in Tic-Tac-Toe #2264).

New Contributors

Full Changelog: 0.55.0...0.55.1

0.55.0

28 Jun 19:39
89f80fe

Choose a tag to compare

What's Changed

  • Added: The Composable Architecture's SwiftUI bindings integration has been greatly improved, with better support for view state bindings (#2215).
  • Added: Store.send and Store.withState have been added, for sending actions to stores and accessing store state without needing a view store (#2222).
  • Added: ReducerProtocol.onChange (#2226).
  • Added: EffectOf<Reducer> convenience type alias to EffectTask<Reducer.Action> (#2237).
  • Updated: swiftui-navigation has been bumped to 0.8.0 (#2239).
  • Improved: TestStore failure messages have been improved (#2227, #2236).
  • Fixed: ForEachStore no longer force-unwraps its cached value, avoiding crashes in race condition-heavy code (thanks @ohitsdaniel, #1036).
  • Fixed: Addressed a few Xcode 15 warnings (Swift 6 errors) (#2213).
  • Deprecated: Effect.cancel(ids:) has been deprecated (#2221).
  • Infrastructure: Documentation improvements (thanks @ccxla, #2185, #2184, #2183; @tomu28, #2209; @alexhunsley, #2204; @oronbz, #2173; #2225; #2238).

New Contributors

Full Changelog: 0.54.1...0.55.0

0.54.1

14 Jun 20:00
3fa456c

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 0.54.0...0.54.1

0.54.0

30 May 16:38

Choose a tag to compare

What's Changed

  • Added: All-new navigation tools for presenting child features (#1945, #1944, #2048).

    See the associated documentation and tutorial for how to incorporate these tools into your applications today!

  • Added: TestStore.assert, for asserting state changes on non-exhaustive stores at any time (#2123).

  • Fixed: Ensure that a test store helper runs on the main actor (#2117).

  • Added: Ukrainian translation of TCA's README (thanks @barabashd, #2121).

  • Infrastructure: DocC organization (#2118).

  • Infrastructure: Ensure CI runs library tests in release (#2120).

  • Fix assertion values by @tomassliz in #2128

  • Infrastructure: Documentation fixes (thanks @tomassliz, #2124, #2128; @jaesung-0o0, #2144).

New Contributors

  • @tomassliz made their first contribution in #2124
  • @jaesung-0o0 made their first contribution in #2144

Full Changelog: 0.53.2...0.54.0

0.53.2

17 May 13:17
b655910

Choose a tag to compare

What's Changed

  • Make Send sendable (#2112)
  • When test exhaustivity is off, receive now waits for the expected action rather than taking the first action (thanks @alex-reilly-pronto, #2100)
  • Fix typo in the "Meet the Composable Architecture" (thanks @redryerye, #2114)
  • Fix compile error in Xcode <14.3 (thanks @hj56775, #2115)

New Contributors

Full Changelog: 0.53.1...0.53.2