Releases: pointfreeco/swift-composable-architecture
1.1.0
What's Changed
- Added: An overload of
Reducer.onChange(of:)that takes a configurableremoveDuplicatesclosure for the equality check (thanks @ohitsdaniel, #2338). - Added:
Effect.debounceandEffect.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 forEffect.throttlewe have brought this functionality back to 1.1. - Fixed: XCTest failures emitted when test stores initialize state (e.g. if
Reducer.State.initaccesses 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 ofFeature.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
- @jayrhynas made their first contribution in #2342
- @atimca made their first contribution in #2350
- @ValseLee made their first contribution in #2369
Full Changelog: 1.0.0...1.1.0
1.0.0
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
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
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.publisheras an alternate toViewStore.publisher(#2330). - Fixed: Use Concurrency Extras'
Task.cancellableValueinstead 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 returnStoreTask(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
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.sendcan now be configured with an animation or transaction (thanks @HarshilShah, #2241). - Added:
TestStoreOftype alias for specifying a test store of a reducer (thanks @brzzdev, #2277). - Changed:
ViewStoreTask.cancelis 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:
TestStorescoping has been deprecated (#2292). - Infrastructure: Added case study for tree-based navigation to multiple destinations using enum state (thanks @tiagopigatto, #2231)
New Contributors
- @HarshilShah made their first contribution in #2241
- @benlings made their first contribution in #2289
- @tplaymeow made their first contribution in #2210
- @brzzdev made their first contribution in #2277
- @tiagopigatto made their first contribution in #2231
Full Changelog: 0.55.1...0.56.0
0.55.1
What's Changed
- Fixed:
BindingViewStore's dynamic member lookup has been weakened to supportletproperties (#2243). - Fixed: A regression introduced in 0.55.0 caused tests equating
BindingActionto fail has been fixed (thanks @bharath2020, #2248). - Fixed:
WithViewStoreinitializers that takeBindingViewStoreare now available onViewStore, as well (thanks @jessetipton, #2274). - Fixed:
WithViewStoreinitializers 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
BindingViewStatethat 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
- @bharath2020 made their first contribution in #2248
- @mrtnlst made their first contribution in #2252
- @jessetipton made their first contribution in #2256
Full Changelog: 0.55.0...0.55.1
0.55.0
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.sendandStore.withStatehave 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 toEffectTask<Reducer.Action>(#2237). - Updated:
swiftui-navigationhas been bumped to 0.8.0 (#2239). - Improved:
TestStorefailure messages have been improved (#2227, #2236). - Fixed:
ForEachStoreno 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
- @tomu28 made their first contribution in #2209
- @alexhunsley made their first contribution in #2204
- @ohitsdaniel made their first contribution in #1036
Full Changelog: 0.54.1...0.55.0
0.54.1
What's Changed
- Fixed: A regression introduced in 0.54.0 prevented some Composable Architecture projects from building in release due to a Swift compiler bug. We have removed some
@inlineableattributes to work around this bug (#2201). While we don't anticipate noticeable runtime performance regressions in release builds of applications, please report any issues you may see. - Infrastructure: Added Hindi (Indian) translation of README.md (thanks @akashsoni01, #2171)
- Infrastructure: Documentation updates and fixes (thanks @Sajjon, #2150; @tatsuz0u, #2155; @hmhv, #2152; @MarshalGeazipp, #2154; @Ryu0118, #2153; @Czajnikowski, #2157; @kristofferjohansson, #2159; @jaesung-0o0, #2160; #2161; @takehilo, #2165; @nickkohrn, #2168 #2169; @d-date, #2174; @oronbz, #2175, #2176, #2177; @devMinseok, #2180; @ccxla, #2181; @filblue, #2188; @thomastosoni, #2190).
New Contributors
- @Sajjon made their first contribution in #2150
- @MarshalGeazipp made their first contribution in #2154
- @takehilo made their first contribution in #2165
- @nickkohrn made their first contribution in #2168
- @akashsoni01 made their first contribution in #2171
- @d-date made their first contribution in #2174
- @oronbz made their first contribution in #2175
- @devMinseok made their first contribution in #2180
- @ccxla made their first contribution in #2181
- @thomastosoni made their first contribution in #2190
Full Changelog: 0.54.0...0.54.1
0.54.0
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
What's Changed
- Make
Sendsendable (#2112) - When test exhaustivity is off,
receivenow 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
- @alex-reilly-pronto made their first contribution in #2100
- @redryerye made their first contribution in #2114
- @hj56775 made their first contribution in #2115
Full Changelog: 0.53.1...0.53.2