Releases: pointfreeco/swift-composable-architecture
Releases · pointfreeco/swift-composable-architecture
0.58.2
What's Changed
- Fixed: Back-ported a deprecation warning fix for
TestStore.init
(thanks @AndreaRomani, #2378).
New Contributors
- @AndreaRomani made their first contribution in #2378
Full Changelog: 0.58.1...0.58.2
0.58.1
What's Changed
- Fixed: Hard deprecated a few more soft-deprecated APIs for ease of migration (#2376).
Full Changelog: 0.58.0...0.58.1
1.1.0
What's Changed
- Added: An overload of
Reducer.onChange(of:)
that takes a configurableremoveDuplicates
closure for the equality check (thanks @ohitsdaniel, #2338). - Added:
Effect.debounce
andEffect.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.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 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.publisher
as an alternate toViewStore.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 returnStoreTask
(thanks @hj56775, #2323). - Infrastructure: Remove unneeded
await
s 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.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
AnyHashable
s, 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
- @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 supportlet
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 takeBindingViewStore
are now available onViewStore
, 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
- @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.send
andStore.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 toEffectTask<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
- @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
@inlineable
attributes 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