pointfreeco/swift-composable-architecture
### [`v0.54.1`](https://togithub.com/pointfreeco/swift-composable-architecture/releases/tag/0.54.1)
[Compare Source](https://togithub.com/pointfreeco/swift-composable-architecture/compare/0.54.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 ([https://github.com/pointfreeco/swift-composable-architecture/pull/2201](https://togithub.com/pointfreeco/swift-composable-architecture/pull/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](https://togithub.com/akashsoni01), [https://github.com/pointfreeco/swift-composable-architecture/pull/2171](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2171))
- Infrastructure: Documentation updates and fixes (thanks [@Sajjon](https://togithub.com/Sajjon), [https://github.com/pointfreeco/swift-composable-architecture/pull/2150](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2150); [@tatsuz0u](https://togithub.com/tatsuz0u), [https://github.com/pointfreeco/swift-composable-architecture/pull/2155](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2155); [@hmhv](https://togithub.com/hmhv), [https://github.com/pointfreeco/swift-composable-architecture/pull/2152](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2152); [@MarshalGeazipp](https://togithub.com/MarshalGeazipp), [https://github.com/pointfreeco/swift-composable-architecture/pull/2154](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2154); [@Ryu0118](https://togithub.com/Ryu0118), [https://github.com/pointfreeco/swift-composable-architecture/pull/2153](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2153); [@Czajnikowski](https://togithub.com/Czajnikowski), [https://github.com/pointfreeco/swift-composable-architecture/pull/2157](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2157); [@kristofferjohansson](https://togithub.com/kristofferjohansson), [https://github.com/pointfreeco/swift-composable-architecture/pull/2159](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2159); [@jaesung-0o0](https://togithub.com/jaesung-0o0), [https://github.com/pointfreeco/swift-composable-architecture/pull/2160](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2160); [https://github.com/pointfreeco/swift-composable-architecture/pull/2161](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2161); [@takehilo](https://togithub.com/takehilo), [https://github.com/pointfreeco/swift-composable-architecture/pull/2165](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2165); [@nickkohrn](https://togithub.com/nickkohrn), [https://github.com/pointfreeco/swift-composable-architecture/pull/2168](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2168) [https://github.com/pointfreeco/swift-composable-architecture/pull/2169](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2169); [@d-date](https://togithub.com/d-date), [https://github.com/pointfreeco/swift-composable-architecture/pull/2174](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2174); [@oronbz](https://togithub.com/oronbz), [https://github.com/pointfreeco/swift-composable-architecture/pull/2175](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2175), [https://github.com/pointfreeco/swift-composable-architecture/pull/2176](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2176), [https://github.com/pointfreeco/swift-composable-architecture/pull/2177](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2177); [@devMinseok](https://togithub.com/devMinseok), [https://github.com/pointfreeco/swift-composable-architecture/pull/2180](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2180); [@ccxla](https://togithub.com/ccxla), [https://github.com/pointfreeco/swift-composable-architecture/pull/2181](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2181); [@filblue](https://togithub.com/filblue), [https://github.com/pointfreeco/swift-composable-architecture/pull/2188](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2188); [@thomastosoni](https://togithub.com/thomastosoni), [https://github.com/pointfreeco/swift-composable-architecture/pull/2190](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2190)).
#### New Contributors
- [@Sajjon](https://togithub.com/Sajjon) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2150](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2150)
- [@MarshalGeazipp](https://togithub.com/MarshalGeazipp) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2154](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2154)
- [@takehilo](https://togithub.com/takehilo) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2165](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2165)
- [@nickkohrn](https://togithub.com/nickkohrn) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2168](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2168)
- [@akashsoni01](https://togithub.com/akashsoni01) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2171](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2171)
- [@d-date](https://togithub.com/d-date) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2174](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2174)
- [@oronbz](https://togithub.com/oronbz) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2175](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2175)
- [@devMinseok](https://togithub.com/devMinseok) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2180](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2180)
- [@ccxla](https://togithub.com/ccxla) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2181](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2181)
- [@thomastosoni](https://togithub.com/thomastosoni) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2190](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2190)
**Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.54.0...0.54.1
### [`v0.54.0`](https://togithub.com/pointfreeco/swift-composable-architecture/releases/tag/0.54.0)
[Compare Source](https://togithub.com/pointfreeco/swift-composable-architecture/compare/0.53.2...0.54.0)
#### What's Changed
- Added: All-new navigation tools for presenting child features ([https://github.com/pointfreeco/swift-composable-architecture/pull/1945](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1945), [https://github.com/pointfreeco/swift-composable-architecture/discussions/1944](https://togithub.com/pointfreeco/swift-composable-architecture/discussions/1944), [https://github.com/pointfreeco/swift-composable-architecture/discussions/2048](https://togithub.com/pointfreeco/swift-composable-architecture/discussions/2048)).
See the associated [documentation](https://pointfreeco.github.io/swift-composable-architecture/main/documentation/composablearchitecture/navigation) and [tutorial](https://pointfreeco.github.io/swift-composable-architecture/main/tutorials/meetcomposablearchitecture/#navigation) for how to incorporate these tools into your applications today!
- Added: `TestStore.assert`, for asserting state changes on non-exhaustive stores at any time ([https://github.com/pointfreeco/swift-composable-architecture/pull/2123](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2123)).
- Fixed: Ensure that a test store helper runs on the main actor ([https://github.com/pointfreeco/swift-composable-architecture/pull/2117](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2117)).
- Added: Ukrainian translation of TCA's README (thanks [@barabashd](https://togithub.com/barabashd), [https://github.com/pointfreeco/swift-composable-architecture/pull/2121](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2121)).
- Infrastructure: DocC organization ([https://github.com/pointfreeco/swift-composable-architecture/pull/2118](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2118)).
- Infrastructure: Ensure CI runs library tests in release ([https://github.com/pointfreeco/swift-composable-architecture/pull/2120](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2120)).
- Fix assertion values by [@tomassliz](https://togithub.com/tomassliz) in [https://github.com/pointfreeco/swift-composable-architecture/pull/2128](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2128)
- Infrastructure: Documentation fixes (thanks [@tomassliz](https://togithub.com/tomassliz), [https://github.com/pointfreeco/swift-composable-architecture/pull/2124](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2124), [https://github.com/pointfreeco/swift-composable-architecture/pull/2128](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2128); [@jaesung-0o0](https://togithub.com/jaesung-0o0), [https://github.com/pointfreeco/swift-composable-architecture/pull/2144](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2144)).
#### New Contributors
- [@tomassliz](https://togithub.com/tomassliz) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2124](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2124)
- [@jaesung-0o0](https://togithub.com/jaesung-0o0) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2144](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2144)
**Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.53.2...0.54.0
### [`v0.53.2`](https://togithub.com/pointfreeco/swift-composable-architecture/releases/tag/0.53.2)
[Compare Source](https://togithub.com/pointfreeco/swift-composable-architecture/compare/0.53.1...0.53.2)
#### What's Changed
- Make `Send` sendable ([https://github.com/pointfreeco/swift-composable-architecture/pull/2112](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2112))
- When test exhaustivity is off, `receive` now waits for the expected action rather than taking the first action (thanks [@alex-reilly-pronto](https://togithub.com/alex-reilly-pronto), [https://github.com/pointfreeco/swift-composable-architecture/pull/2100](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2100))
- Fix typo in the "Meet the Composable Architecture" (thanks [@redryerye](https://togithub.com/redryerye), [https://github.com/pointfreeco/swift-composable-architecture/pull/2114](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2114))
- Fix compile error in Xcode <14.3 (thanks [@hj56775](https://togithub.com/hj56775), [https://github.com/pointfreeco/swift-composable-architecture/pull/2115](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2115))
#### New Contributors
- [@alex-reilly-pronto](https://togithub.com/alex-reilly-pronto) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2100](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2100)
- [@redryerye](https://togithub.com/redryerye) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2114](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2114)
- [@hj56775](https://togithub.com/hj56775) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2115](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2115)
**Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.53.1...0.53.2
### [`v0.53.1`](https://togithub.com/pointfreeco/swift-composable-architecture/releases/tag/0.53.1)
[Compare Source](https://togithub.com/pointfreeco/swift-composable-architecture/compare/0.53.0...0.53.1)
#### What's Changed
- Fixed: A regression was introduced in 0.53.0 where `TestStore.init`'s `prepareDependencies` was called twice. It will not be called just a single time again ([https://github.com/pointfreeco/swift-composable-architecture/pull/2111](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2111)).
- Infrastructure: Added a "Meet the Composable Architecture" tutorial ([https://github.com/pointfreeco/swift-composable-architecture/pull/2107](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2107), [https://github.com/pointfreeco/swift-composable-architecture/pull/2109](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2109)).
- Infrastructure: Docs fixes (thanks [@Ryu0118](https://togithub.com/Ryu0118), [https://github.com/pointfreeco/swift-composable-architecture/pull/2110](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2110))
**Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.53.0...0.53.1
### [`v0.53.0`](https://togithub.com/pointfreeco/swift-composable-architecture/releases/tag/0.53.0)
[Compare Source](https://togithub.com/pointfreeco/swift-composable-architecture/compare/0.52.0...0.53.0)
#### What's Changed
- Added: `Store.init` and `TestStore.init` now take reducer builders ([https://github.com/pointfreeco/swift-composable-architecture/pull/2087](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2087)).
```swift
// Before:
Store(
initialState: Feature.State(),
reducer: Feature()
)
// After:
Store(initialState: Feature.State()) {
Feature()
}
```
- Changed: `SwitchStore` has gotten some quality-of-life improvements ([https://github.com/pointfreeco/swift-composable-architecture/pull/2029](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2029)).
- `SwitchStore.init` can now take the initial enum state so that it can be switched over exhaustively. This initializer also relaxes certain compile-time constraints previously requiring only `CaseLet` views and an optional, trailing `Default` view.
- `CaseLet` can now omit the `state` parameter label, making it more consistent with other APIs, like `Reducer.ifCaseLet`.
- The older `SwitchStore` and `CaseLet` initializers have been soft-deprecated along with the `Default` view.
```swift
// Before:
SwitchStore(self.store) {
CaseLet(state: /App.State.loggedIn, action: App.Action.loggedIn) { loggedInStore in
LoggedInView(store: loggedInStore)
}
CaseLet(state: /App.State.loggedOut, action: App.Action.loggedOut) { loggedOutStore in
LoggedOutView(store: loggedOutStore)
}
}
// After:
SwitchStore(self.store) {
switch $0 { // Can now switch over initial state for exhaustivity at compile time
case .loggedIn:
CaseLet(/App.State.loggedIn, action: App.Action.loggedIn) { loggedInStore in
LoggedInView(store: loggedInStore)
}
.buttonStyle(.plain) // Can now render arbitrary views/modifiers in the view builder
case .loggedOut:
CaseLet(/App.State.loggedOut, action: App.Action.loggedOut) { loggedOutStore in
LoggedOutView(store: loggedOutStore)
}
}
}
```
- Changed: `WithViewStore.debug` has been renamed to `WithViewStore._printChanges` for consistency with `Reducer._printChanges` ([https://github.com/pointfreeco/swift-composable-architecture/pull/2101](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2101)).
- Fixed: `EffectTask.publisher` now properly escapes dependencies accessed within it ([https://github.com/pointfreeco/swift-composable-architecture/pull/1988](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1988)).
- Fixed: `Reducer._printChanges()` is no longer disabled in tests ([https://github.com/pointfreeco/swift-composable-architecture/pull/1995](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1995)). This allows it to be used for debugging purposes during test runs.
- Changed: The internal `Task.megaYield` tool, for more predictably testing concurrent code, is now configurable via the `TASK_MEGA_YIELD_COUNT` environment variable ([https://github.com/pointfreeco/swift-composable-architecture/pull/2064](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2064)).
- Improved: The output format of `WithViewStore._printChanges()` has been improved ([https://github.com/pointfreeco/swift-composable-architecture/pull/1973](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1973)).
- Improved: Runtime warnings will now emit XCTest failures in test code rather than in app code ([https://github.com/pointfreeco/swift-composable-architecture/pull/2059](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2059)).
- Deprecated: Type-based cancel IDs have been deprecated ([https://github.com/pointfreeco/swift-composable-architecture/pull/2091](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2091)). Use hashable values, instead.
- Deprecated: The actionless overload of `Store.scope(state:)` has been deprecated in favor of the `observe` parameter on view stores ([https://github.com/pointfreeco/swift-composable-architecture/pull/2097](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2097)).
- Deprecated: `Effect.task` and `Effect.fireAndForget` have been soft-deprecated in favor of `Effect.run` ([https://github.com/pointfreeco/swift-composable-architecture/pull/2099](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2099)).
- Infrastructure: Added test coverage for child/parent effect cancellation behavior ([https://github.com/pointfreeco/swift-composable-architecture/pull/1970](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1970)).
- Infrastructure: Clean up effect cancellation logic ([https://github.com/pointfreeco/swift-composable-architecture/pull/1977](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1977)).
- Infrastructure: Miscellaneous documentation/formatting fixes:
Fixed missing `action` parameter in `ForEachStore` documentation (thanks [@m-housh](https://togithub.com/m-housh), [https://github.com/pointfreeco/swift-composable-architecture/pull/1998](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1998)).
Number fact tutorial fix (thanks [@siliconsorcery](https://togithub.com/siliconsorcery), [https://github.com/pointfreeco/swift-composable-architecture/pull/1962](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1962)).
`BindingAction` fix (thanks [@Ryu0118](https://togithub.com/Ryu0118), [https://github.com/pointfreeco/swift-composable-architecture/pull/2019](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2019)).
`withTaskCancellation(id:)` fix (thanks [@bjford](https://togithub.com/bjford), [https://github.com/pointfreeco/swift-composable-architecture/pull/2049](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2049)).
Formatting fix (thanks [@mooyoung2309](https://togithub.com/mooyoung2309), [https://github.com/pointfreeco/swift-composable-architecture/pull/2056](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2056)).
Update 'bindable state' to 'binding state' (thanks [@Jager-yoo](https://togithub.com/Jager-yoo), [https://github.com/pointfreeco/swift-composable-architecture/pull/2054](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2054)).
- Infrastructure: Added Russian README translation (thanks [@artyom-ivanov](https://togithub.com/artyom-ivanov), [https://github.com/pointfreeco/swift-composable-architecture/pull/2014](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2014)).
- Infrastructure: Added Polish README translation (thanks [@MarcelStarczyk](https://togithub.com/MarcelStarczyk), [https://github.com/pointfreeco/swift-composable-architecture/pull/2040](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2040)).
- Infrastructure: Bump dependencies.
- Infrastructure: Bump Xcode demo project settings ([https://github.com/pointfreeco/swift-composable-architecture/pull/2042](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2042)).
- Infrastructure: Clean up and test `TestStore.skipInFlightEffects` ([https://github.com/pointfreeco/swift-composable-architecture/pull/2057](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2057)).
- Infrastructure: CI updates ([https://github.com/pointfreeco/swift-composable-architecture/pull/2060](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2060)).
- Infrastructure: Document how exhaustive vs. non-exhaustive test stores work ([https://github.com/pointfreeco/swift-composable-architecture/pull/2096](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2096)).
#### New Contributors
- [@m-housh](https://togithub.com/m-housh) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/1998](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1998)
- [@siliconsorcery](https://togithub.com/siliconsorcery) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/1962](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1962)
- [@artyom-ivanov](https://togithub.com/artyom-ivanov) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2014](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2014)
- [@Ryu0118](https://togithub.com/Ryu0118) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2019](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2019)
- [@MarcelStarczyk](https://togithub.com/MarcelStarczyk) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2040](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2040)
- [@mooyoung2309](https://togithub.com/mooyoung2309) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2056](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2056)
**Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.52.0...0.53.0
### [`v0.52.0`](https://togithub.com/pointfreeco/swift-composable-architecture/releases/tag/0.52.0)
[Compare Source](https://togithub.com/pointfreeco/swift-composable-architecture/compare/0.51.0...0.52.0)
#### What's Changed
- Added: Support for `XCTModify` and non-exhaustive testing ([https://github.com/pointfreeco/swift-composable-architecture/pull/1939](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1939)).
- Added: Library reducer operators are now annotated with `@warn_unqualified_access` to prevent accidental bugs ([https://github.com/pointfreeco/swift-composable-architecture/pull/1950](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1950)).
- Added: `Effect.publisher` for bridging effects from Combine ([https://github.com/pointfreeco/swift-composable-architecture/pull/1958](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1958)).
- Changed: `Effect.Send` has been renamed to `Send` (thanks [@tgrapperon](https://togithub.com/tgrapperon), [https://github.com/pointfreeco/swift-composable-architecture/pull/1930](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1930)).
- Changed: Dependencies have been bumped to their latest versions to encourage adoption of bug fixes ([https://github.com/pointfreeco/swift-composable-architecture/pull/1964](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1964)).
- Fixed: Dependencies are no longer recursively propagated over effects ([https://github.com/pointfreeco/swift-composable-architecture/pull/1954](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1954)).
- Fixed: `TestStore.init` now calls `prepareDependencies` in a `withDependencies` block ([https://github.com/pointfreeco/swift-composable-architecture/pull/1955](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1955)).
- Infrastructure: Fix UI test for `ForEach` bindings ([https://github.com/pointfreeco/swift-composable-architecture/pull/1933](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1933)).
- Infrastructure: Add missing documentation to `Store.init` (thanks [@kristofferjohansson](https://togithub.com/kristofferjohansson), [https://github.com/pointfreeco/swift-composable-architecture/pull/1940](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1940)).
- Infrastructure: DocC fixes ([https://github.com/pointfreeco/swift-composable-architecture/pull/1942](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1942), [https://github.com/pointfreeco/swift-composable-architecture/pull/1956](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1956)).
- Infrastructure: Update latest version documentation link in README (thanks [@yimajo](https://togithub.com/yimajo), [https://github.com/pointfreeco/swift-composable-architecture/pull/1943](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1943))
- Infrastructure: Fix `.forEach()` documentation (thanks [@finestructure](https://togithub.com/finestructure), [https://github.com/pointfreeco/swift-composable-architecture/pull/1957](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1957)).
- Infrastructure: Documentation grammar fixes (thanks [@bjford](https://togithub.com/bjford), [https://github.com/pointfreeco/swift-composable-architecture/pull/1963](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1963))
#### New Contributors
- [@kristofferjohansson](https://togithub.com/kristofferjohansson) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/1940](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1940)
**Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.51.0...0.52.0
### [`v0.51.0`](https://togithub.com/pointfreeco/swift-composable-architecture/releases/tag/0.51.0)
[Compare Source](https://togithub.com/pointfreeco/swift-composable-architecture/compare/0.50.3...0.51.0)
#### What's Changed
- Added: Escaping `send` from `Effect.run` and sending actions to it after the effect has completed now produces runtime warnings (thanks [@kabiroberai](https://togithub.com/kabiroberai), [https://github.com/pointfreeco/swift-composable-architecture/pull/1900](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1900)).
- Changed: `ReducerProtocol._printChanges()` now logs to console for Xcode 14.3 previews (thanks [@tgrapperon](https://togithub.com/tgrapperon), [https://github.com/pointfreeco/swift-composable-architecture/pull/1917](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1917)).
- Changed: The `Send` type has been moved to be nested in the `Effect` type and should no longer take precedence over the `Sendable` protocol in autocomplete (thanks [@tgrapperon](https://togithub.com/tgrapperon), [https://github.com/pointfreeco/swift-composable-architecture/pull/1911](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1911)).
- Changed: `WithViewStore` now conforms to `View` ([https://github.com/pointfreeco/swift-composable-architecture/pull/1910](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1910)).
- Fixed: Fix some Xcode 14.3 / sendability checking warnings ([https://github.com/pointfreeco/swift-composable-architecture/pull/1920](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1920)).
#### New Contributors
- [@kabiroberai](https://togithub.com/kabiroberai) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/1900](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1900)
**Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.50.3...0.51.0
### [`v0.50.3`](https://togithub.com/pointfreeco/swift-composable-architecture/releases/tag/0.50.3)
[Compare Source](https://togithub.com/pointfreeco/swift-composable-architecture/compare/0.50.2...0.50.3)
#### What's Changed
- Changed: The `Identified` type has been extracted from the Composable Architecture and now comes from Identified Collections ([https://github.com/pointfreeco/swift-composable-architecture/pull/1907](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1907)).
**Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.50.2...0.50.3
### [`v0.50.2`](https://togithub.com/pointfreeco/swift-composable-architecture/releases/tag/0.50.2)
[Compare Source](https://togithub.com/pointfreeco/swift-composable-architecture/compare/0.50.1...0.50.2)
#### What's Changed
- Changed: Improved formatting of test store failures when expected action isn't received ([https://github.com/pointfreeco/swift-composable-architecture/pull/1883](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1883)).
- Changed: Added unavailable overloads to `TestStore.send` and `receive` when state/action is not `Equatable` ([https://github.com/pointfreeco/swift-composable-architecture/pull/1890](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1890)). This should improve compiler error messaging when attempting to write tests against non-equatable state.
- Changed: `Scope`'s trailing builder parameter now has an explicit name, `child`, and `ReducerProtocol.forEach` has an explicit `element` ([https://github.com/pointfreeco/swift-composable-architecture/pull/1897](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1897)).
- Infrastructure: Documentation and deprecation fixes (thanks [@bjford](https://togithub.com/bjford), [https://github.com/pointfreeco/swift-composable-architecture/pull/1893](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1893); [@eimantas](https://togithub.com/eimantas), [https://github.com/pointfreeco/swift-composable-architecture/pull/1896](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1896)).
- Infrastructure: Added a workflow for Slack release announcements ([https://github.com/pointfreeco/swift-composable-architecture/pull/1899](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1899)).
**Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.50.1...0.50.2
### [`v0.50.1`](https://togithub.com/pointfreeco/swift-composable-architecture/releases/tag/0.50.1)
[Compare Source](https://togithub.com/pointfreeco/swift-composable-architecture/compare/0.50.0...0.50.1)
#### What's Changed
- Fixed: SwiftUI can write to bindings at inopportune times, like if a text field in a sheet is focussed, it will write to the binding *after* the sheet has been dismissed. When using `IfLetStore`, this can lead to noisy runtime warnings emitted by TCA, where optional state driving the sheet is now `nil`, and thus the binding cannot write to state at this time. As a workaround, `IfLetStore` will now ignore actions sent through bindings when state is `nil` ([https://github.com/pointfreeco/swift-composable-architecture/pull/1879](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1879)).
- Fixed: A bug in Swift 5.7 and earlier can cause the runtime metadata mechanism used by swift-case-paths to crash in release mode when an `Any` existential exists in the type data. Because `BindingAction` holds onto an `Any` under the hood, it could be responsible for the occasional crash in release mode when present in certain type layouts. We've worked around this bug to prevent crashes in release mode ([https://github.com/pointfreeco/swift-composable-architecture/pull/1881](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1881)).
- Infrastructure: Fix docs link (thanks [@Jager-yoo](https://togithub.com/Jager-yoo), [https://github.com/pointfreeco/swift-composable-architecture/pull/1874](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1874)); add note to reducer protocol dependency docs ([https://github.com/pointfreeco/swift-composable-architecture/pull/1873](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1873)); updated CoC to the latest Contributor Covenant.
**Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.50.0...0.50.1
### [`v0.50.0`](https://togithub.com/pointfreeco/swift-composable-architecture/releases/tag/0.50.0)
[Compare Source](https://togithub.com/pointfreeco/swift-composable-architecture/compare/0.49.2...0.50.0)
#### What's Changed
- Added: `@BindingState` (renamed from `@BindableState` in this release) now conditionally conforms to `Sendable` (thanks [@jshier](https://togithub.com/jshier), [https://github.com/pointfreeco/swift-composable-architecture/pull/1834](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1834)).
- Added: SwiftUI Transaction helper APIs, including `Effect.transaction`, `ViewStore.send(_:transaction:)`, and `Effect.run { send in send(_:transaction:) }` (thanks [@drucelweisse](https://togithub.com/drucelweisse), [https://github.com/pointfreeco/swift-composable-architecture/pull/1824](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1824)).
- Added: `Store.init` now takes a `prepareDependencies` block, for preparing the initial dependencies of a store (`TestStore` introduced a similar API earlier) ([https://github.com/pointfreeco/swift-composable-architecture/pull/1844](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1844)).
- Added: `Effect.send` has been introduced as a new version of `Effect.init(value:)` ([https://github.com/pointfreeco/swift-composable-architecture/pull/1859](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1859)). `Effect.init(value:)` has been soft-deprecated and will be hard-deprecated soon, so prefer using `Effect.send` to synchronously feed actions back into the system.
- Changed: The `@BindableState` property wrapper has been renamed to `@BindingState` ([https://github.com/pointfreeco/swift-composable-architecture/pull/1855](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1855)).
- Changed: `TestStore` ergonomics have been improved to better surface when APIs are unavailable due to lack of an `Equatable` conformance ([https://github.com/pointfreeco/swift-composable-architecture/pull/1857](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1857)).
- Changed: Alert modifiers now use `@StateObject` instead of `@ObservedObject` in iOS 15 and higher ([https://github.com/pointfreeco/swift-composable-architecture/pull/1860](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1860)).
- Changed: Reducer builders have been rewritten to be more performant and to prepare for forthcoming Swift 5.8 changes ([https://github.com/pointfreeco/swift-composable-architecture/pull/1863](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1863)). If you notice any regressions in your app's reducer builders, please [let us know](https://togithub.com/pointfreeco/swift-composable-architecture/issues/new?assignees=\&labels=bug\&template=bug_report.yml).
- Changed: The Composable Architecture has been updated to depend on [SwiftUI Navigation 0.6.0](https://togithub.com/pointfreeco/swiftui-navigation/releases/0.6.0) ([https://github.com/pointfreeco/swift-composable-architecture/pull/1865](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1865)).
> **Warning**: This upgrade contains breaking changes that mostly do not affect the Composable Architecture, with the exception of its UIKit alert helper tools, which will now require you to handle a `nil` alert action for dismissal/cancel buttons with no action attached.
- Fixed: [#1802](https://togithub.com/pointfreeco/swift-composable-architecture/issues/1802) introduced a slight regression in view store binding animation behavior, so it was reverted back to the original behavior ([https://github.com/pointfreeco/swift-composable-architecture/pull/1845](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1845)).
- Fixed: `Effect` is now hard deprecated as planned (thanks [@kalupas226](https://togithub.com/kalupas226), [https://github.com/pointfreeco/swift-composable-architecture/pull/1822](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1822)).
- Fixed: The Composable Architecture now explicitly depends on Ordered Collections, rather than implicitly via its transitive dependency on Identified Collections (thanks [@kalupas226](https://togithub.com/kalupas226), [https://github.com/pointfreeco/swift-composable-architecture/pull/1828](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1828)).
- Fixed: `TestStore.receive` methods that take predicates and case paths no longer require `Action` equatability ([https://github.com/pointfreeco/swift-composable-architecture/pull/1856](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1856)).
- Infrastructure: Removed and updated a few deprecated, flakey tests ([https://github.com/pointfreeco/swift-composable-architecture/pull/1816](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1816)).
- Infrastructure: Added UI test to catch SwiftUI regressions ([https://github.com/pointfreeco/swift-composable-architecture/pull/1815](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1815); thanks [@tgrapperon](https://togithub.com/tgrapperon) in [https://github.com/pointfreeco/swift-composable-architecture/pull/1819](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1819)).
- Infrastructure: Doc fixes (thanks [@brennobemoura](https://togithub.com/brennobemoura), [https://github.com/pointfreeco/swift-composable-architecture/pull/1843](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1843)).
- Infrastructure: Document testing gotchas ([https://github.com/pointfreeco/swift-composable-architecture/pull/1854](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1854)).
#### New Contributors
- [@jshier](https://togithub.com/jshier) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/1834](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1834)
- [@brennobemoura](https://togithub.com/brennobemoura) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/1843](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1843)
- [@drucelweisse](https://togithub.com/drucelweisse) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/1824](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1824)
**Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.49.2...0.50.0
### [`v0.49.2`](https://togithub.com/pointfreeco/swift-composable-architecture/releases/tag/0.49.2)
[Compare Source](https://togithub.com/pointfreeco/swift-composable-architecture/compare/0.49.1...0.49.2)
#### What's Changed
- Fixed: A longstanding bug in SwiftUI can cause bindings to be evaluated in views that are no longer rendered. In apps built in the Composable Architecture, which provides flexible tools for deriving custom bindings, this could lead to accessing state that no longer exists, which at worst could try to evaluate an element of an array at an invalidated index, crashing the application. While this bug was fixed in 0.48.0, it introduced another regression and was reverted in 0.48.1. We have a new workaround (thanks [@iampatbrown](https://togithub.com/iampatbrown), [https://github.com/pointfreeco/swift-composable-architecture/pull/1802](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1802)), that appears to be more reliable and work in both cases. If you encounter any regressions in `ViewStore.binding` behavior in your applications, [let us know](https://togithub.com/pointfreeco/swift-composable-architecture/issues/new?assignees=\&labels=bug\&template=bug_report.yml)!
- Fixed: `Dependencies` has been force-bumped to 0.1.2 to work around a regression in how effects inherit dependencies (thanks [@tgrapperon](https://togithub.com/tgrapperon), [https://github.com/pointfreeco/swift-composable-architecture/pull/1813](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1813)).
**Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.49.1...0.49.2
### [`v0.49.1`](https://togithub.com/pointfreeco/swift-composable-architecture/releases/tag/0.49.1)
[Compare Source](https://togithub.com/pointfreeco/swift-composable-architecture/compare/0.49.0...0.49.1)
#### What's Changed
- Fixed: An internal test helper added in 0.49.0 could prevent builds from working. This has been fixed ([https://github.com/pointfreeco/swift-composable-architecture/pull/1809](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1809)).
- Infrastructure: Fixed UIKit's "Navigate and Load" study (thanks [@tgrapperon](https://togithub.com/tgrapperon), [https://github.com/pointfreeco/swift-composable-architecture/pull/1807](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1807)).
**Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.49.0...0.49.1
### [`v0.49.0`](https://togithub.com/pointfreeco/swift-composable-architecture/releases/tag/0.49.0)
[Compare Source](https://togithub.com/pointfreeco/swift-composable-architecture/compare/0.48.1...0.49.0)
#### What's Changed
- Changed: Depend on [swift-dependencies](https://togithub.com/pointfreeco/swift-dependencies). The `Dependencies` module has been extracted to its own library so that it can be used in non-TCA apps.
**Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.48.1...0.49.0
### [`v0.48.1`](https://togithub.com/pointfreeco/swift-composable-architecture/releases/tag/0.48.1)
[Compare Source](https://togithub.com/pointfreeco/swift-composable-architecture/compare/0.48.0...0.48.1)
#### What's Changed
- Fixed: Reverted [#1784](https://togithub.com/pointfreeco/swift-composable-architecture/issues/1784), which introduced a regression in SwiftUI binding behavior ([https://github.com/pointfreeco/swift-composable-architecture/pull/1799](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1799)).
**Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.48.0...0.48.1
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
from: "0.48.0"
->from: "0.54.1"
Release Notes
pointfreeco/swift-composable-architecture
### [`v0.54.1`](https://togithub.com/pointfreeco/swift-composable-architecture/releases/tag/0.54.1) [Compare Source](https://togithub.com/pointfreeco/swift-composable-architecture/compare/0.54.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 ([https://github.com/pointfreeco/swift-composable-architecture/pull/2201](https://togithub.com/pointfreeco/swift-composable-architecture/pull/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](https://togithub.com/akashsoni01), [https://github.com/pointfreeco/swift-composable-architecture/pull/2171](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2171)) - Infrastructure: Documentation updates and fixes (thanks [@Sajjon](https://togithub.com/Sajjon), [https://github.com/pointfreeco/swift-composable-architecture/pull/2150](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2150); [@tatsuz0u](https://togithub.com/tatsuz0u), [https://github.com/pointfreeco/swift-composable-architecture/pull/2155](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2155); [@hmhv](https://togithub.com/hmhv), [https://github.com/pointfreeco/swift-composable-architecture/pull/2152](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2152); [@MarshalGeazipp](https://togithub.com/MarshalGeazipp), [https://github.com/pointfreeco/swift-composable-architecture/pull/2154](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2154); [@Ryu0118](https://togithub.com/Ryu0118), [https://github.com/pointfreeco/swift-composable-architecture/pull/2153](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2153); [@Czajnikowski](https://togithub.com/Czajnikowski), [https://github.com/pointfreeco/swift-composable-architecture/pull/2157](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2157); [@kristofferjohansson](https://togithub.com/kristofferjohansson), [https://github.com/pointfreeco/swift-composable-architecture/pull/2159](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2159); [@jaesung-0o0](https://togithub.com/jaesung-0o0), [https://github.com/pointfreeco/swift-composable-architecture/pull/2160](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2160); [https://github.com/pointfreeco/swift-composable-architecture/pull/2161](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2161); [@takehilo](https://togithub.com/takehilo), [https://github.com/pointfreeco/swift-composable-architecture/pull/2165](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2165); [@nickkohrn](https://togithub.com/nickkohrn), [https://github.com/pointfreeco/swift-composable-architecture/pull/2168](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2168) [https://github.com/pointfreeco/swift-composable-architecture/pull/2169](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2169); [@d-date](https://togithub.com/d-date), [https://github.com/pointfreeco/swift-composable-architecture/pull/2174](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2174); [@oronbz](https://togithub.com/oronbz), [https://github.com/pointfreeco/swift-composable-architecture/pull/2175](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2175), [https://github.com/pointfreeco/swift-composable-architecture/pull/2176](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2176), [https://github.com/pointfreeco/swift-composable-architecture/pull/2177](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2177); [@devMinseok](https://togithub.com/devMinseok), [https://github.com/pointfreeco/swift-composable-architecture/pull/2180](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2180); [@ccxla](https://togithub.com/ccxla), [https://github.com/pointfreeco/swift-composable-architecture/pull/2181](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2181); [@filblue](https://togithub.com/filblue), [https://github.com/pointfreeco/swift-composable-architecture/pull/2188](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2188); [@thomastosoni](https://togithub.com/thomastosoni), [https://github.com/pointfreeco/swift-composable-architecture/pull/2190](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2190)). #### New Contributors - [@Sajjon](https://togithub.com/Sajjon) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2150](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2150) - [@MarshalGeazipp](https://togithub.com/MarshalGeazipp) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2154](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2154) - [@takehilo](https://togithub.com/takehilo) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2165](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2165) - [@nickkohrn](https://togithub.com/nickkohrn) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2168](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2168) - [@akashsoni01](https://togithub.com/akashsoni01) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2171](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2171) - [@d-date](https://togithub.com/d-date) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2174](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2174) - [@oronbz](https://togithub.com/oronbz) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2175](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2175) - [@devMinseok](https://togithub.com/devMinseok) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2180](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2180) - [@ccxla](https://togithub.com/ccxla) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2181](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2181) - [@thomastosoni](https://togithub.com/thomastosoni) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2190](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2190) **Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.54.0...0.54.1 ### [`v0.54.0`](https://togithub.com/pointfreeco/swift-composable-architecture/releases/tag/0.54.0) [Compare Source](https://togithub.com/pointfreeco/swift-composable-architecture/compare/0.53.2...0.54.0) #### What's Changed - Added: All-new navigation tools for presenting child features ([https://github.com/pointfreeco/swift-composable-architecture/pull/1945](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1945), [https://github.com/pointfreeco/swift-composable-architecture/discussions/1944](https://togithub.com/pointfreeco/swift-composable-architecture/discussions/1944), [https://github.com/pointfreeco/swift-composable-architecture/discussions/2048](https://togithub.com/pointfreeco/swift-composable-architecture/discussions/2048)). See the associated [documentation](https://pointfreeco.github.io/swift-composable-architecture/main/documentation/composablearchitecture/navigation) and [tutorial](https://pointfreeco.github.io/swift-composable-architecture/main/tutorials/meetcomposablearchitecture/#navigation) for how to incorporate these tools into your applications today! - Added: `TestStore.assert`, for asserting state changes on non-exhaustive stores at any time ([https://github.com/pointfreeco/swift-composable-architecture/pull/2123](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2123)). - Fixed: Ensure that a test store helper runs on the main actor ([https://github.com/pointfreeco/swift-composable-architecture/pull/2117](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2117)). - Added: Ukrainian translation of TCA's README (thanks [@barabashd](https://togithub.com/barabashd), [https://github.com/pointfreeco/swift-composable-architecture/pull/2121](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2121)). - Infrastructure: DocC organization ([https://github.com/pointfreeco/swift-composable-architecture/pull/2118](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2118)). - Infrastructure: Ensure CI runs library tests in release ([https://github.com/pointfreeco/swift-composable-architecture/pull/2120](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2120)). - Fix assertion values by [@tomassliz](https://togithub.com/tomassliz) in [https://github.com/pointfreeco/swift-composable-architecture/pull/2128](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2128) - Infrastructure: Documentation fixes (thanks [@tomassliz](https://togithub.com/tomassliz), [https://github.com/pointfreeco/swift-composable-architecture/pull/2124](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2124), [https://github.com/pointfreeco/swift-composable-architecture/pull/2128](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2128); [@jaesung-0o0](https://togithub.com/jaesung-0o0), [https://github.com/pointfreeco/swift-composable-architecture/pull/2144](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2144)). #### New Contributors - [@tomassliz](https://togithub.com/tomassliz) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2124](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2124) - [@jaesung-0o0](https://togithub.com/jaesung-0o0) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2144](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2144) **Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.53.2...0.54.0 ### [`v0.53.2`](https://togithub.com/pointfreeco/swift-composable-architecture/releases/tag/0.53.2) [Compare Source](https://togithub.com/pointfreeco/swift-composable-architecture/compare/0.53.1...0.53.2) #### What's Changed - Make `Send` sendable ([https://github.com/pointfreeco/swift-composable-architecture/pull/2112](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2112)) - When test exhaustivity is off, `receive` now waits for the expected action rather than taking the first action (thanks [@alex-reilly-pronto](https://togithub.com/alex-reilly-pronto), [https://github.com/pointfreeco/swift-composable-architecture/pull/2100](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2100)) - Fix typo in the "Meet the Composable Architecture" (thanks [@redryerye](https://togithub.com/redryerye), [https://github.com/pointfreeco/swift-composable-architecture/pull/2114](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2114)) - Fix compile error in Xcode <14.3 (thanks [@hj56775](https://togithub.com/hj56775), [https://github.com/pointfreeco/swift-composable-architecture/pull/2115](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2115)) #### New Contributors - [@alex-reilly-pronto](https://togithub.com/alex-reilly-pronto) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2100](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2100) - [@redryerye](https://togithub.com/redryerye) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2114](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2114) - [@hj56775](https://togithub.com/hj56775) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2115](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2115) **Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.53.1...0.53.2 ### [`v0.53.1`](https://togithub.com/pointfreeco/swift-composable-architecture/releases/tag/0.53.1) [Compare Source](https://togithub.com/pointfreeco/swift-composable-architecture/compare/0.53.0...0.53.1) #### What's Changed - Fixed: A regression was introduced in 0.53.0 where `TestStore.init`'s `prepareDependencies` was called twice. It will not be called just a single time again ([https://github.com/pointfreeco/swift-composable-architecture/pull/2111](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2111)). - Infrastructure: Added a "Meet the Composable Architecture" tutorial ([https://github.com/pointfreeco/swift-composable-architecture/pull/2107](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2107), [https://github.com/pointfreeco/swift-composable-architecture/pull/2109](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2109)). - Infrastructure: Docs fixes (thanks [@Ryu0118](https://togithub.com/Ryu0118), [https://github.com/pointfreeco/swift-composable-architecture/pull/2110](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2110)) **Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.53.0...0.53.1 ### [`v0.53.0`](https://togithub.com/pointfreeco/swift-composable-architecture/releases/tag/0.53.0) [Compare Source](https://togithub.com/pointfreeco/swift-composable-architecture/compare/0.52.0...0.53.0) #### What's Changed - Added: `Store.init` and `TestStore.init` now take reducer builders ([https://github.com/pointfreeco/swift-composable-architecture/pull/2087](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2087)). ```swift // Before: Store( initialState: Feature.State(), reducer: Feature() ) // After: Store(initialState: Feature.State()) { Feature() } ``` - Changed: `SwitchStore` has gotten some quality-of-life improvements ([https://github.com/pointfreeco/swift-composable-architecture/pull/2029](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2029)). - `SwitchStore.init` can now take the initial enum state so that it can be switched over exhaustively. This initializer also relaxes certain compile-time constraints previously requiring only `CaseLet` views and an optional, trailing `Default` view. - `CaseLet` can now omit the `state` parameter label, making it more consistent with other APIs, like `Reducer.ifCaseLet`. - The older `SwitchStore` and `CaseLet` initializers have been soft-deprecated along with the `Default` view. ```swift // Before: SwitchStore(self.store) { CaseLet(state: /App.State.loggedIn, action: App.Action.loggedIn) { loggedInStore in LoggedInView(store: loggedInStore) } CaseLet(state: /App.State.loggedOut, action: App.Action.loggedOut) { loggedOutStore in LoggedOutView(store: loggedOutStore) } } // After: SwitchStore(self.store) { switch $0 { // Can now switch over initial state for exhaustivity at compile time case .loggedIn: CaseLet(/App.State.loggedIn, action: App.Action.loggedIn) { loggedInStore in LoggedInView(store: loggedInStore) } .buttonStyle(.plain) // Can now render arbitrary views/modifiers in the view builder case .loggedOut: CaseLet(/App.State.loggedOut, action: App.Action.loggedOut) { loggedOutStore in LoggedOutView(store: loggedOutStore) } } } ``` - Changed: `WithViewStore.debug` has been renamed to `WithViewStore._printChanges` for consistency with `Reducer._printChanges` ([https://github.com/pointfreeco/swift-composable-architecture/pull/2101](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2101)). - Fixed: `EffectTask.publisher` now properly escapes dependencies accessed within it ([https://github.com/pointfreeco/swift-composable-architecture/pull/1988](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1988)). - Fixed: `Reducer._printChanges()` is no longer disabled in tests ([https://github.com/pointfreeco/swift-composable-architecture/pull/1995](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1995)). This allows it to be used for debugging purposes during test runs. - Changed: The internal `Task.megaYield` tool, for more predictably testing concurrent code, is now configurable via the `TASK_MEGA_YIELD_COUNT` environment variable ([https://github.com/pointfreeco/swift-composable-architecture/pull/2064](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2064)). - Improved: The output format of `WithViewStore._printChanges()` has been improved ([https://github.com/pointfreeco/swift-composable-architecture/pull/1973](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1973)). - Improved: Runtime warnings will now emit XCTest failures in test code rather than in app code ([https://github.com/pointfreeco/swift-composable-architecture/pull/2059](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2059)). - Deprecated: Type-based cancel IDs have been deprecated ([https://github.com/pointfreeco/swift-composable-architecture/pull/2091](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2091)). Use hashable values, instead. - Deprecated: The actionless overload of `Store.scope(state:)` has been deprecated in favor of the `observe` parameter on view stores ([https://github.com/pointfreeco/swift-composable-architecture/pull/2097](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2097)). - Deprecated: `Effect.task` and `Effect.fireAndForget` have been soft-deprecated in favor of `Effect.run` ([https://github.com/pointfreeco/swift-composable-architecture/pull/2099](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2099)). - Infrastructure: Added test coverage for child/parent effect cancellation behavior ([https://github.com/pointfreeco/swift-composable-architecture/pull/1970](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1970)). - Infrastructure: Clean up effect cancellation logic ([https://github.com/pointfreeco/swift-composable-architecture/pull/1977](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1977)). - Infrastructure: Miscellaneous documentation/formatting fixes: Fixed missing `action` parameter in `ForEachStore` documentation (thanks [@m-housh](https://togithub.com/m-housh), [https://github.com/pointfreeco/swift-composable-architecture/pull/1998](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1998)). Number fact tutorial fix (thanks [@siliconsorcery](https://togithub.com/siliconsorcery), [https://github.com/pointfreeco/swift-composable-architecture/pull/1962](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1962)). `BindingAction` fix (thanks [@Ryu0118](https://togithub.com/Ryu0118), [https://github.com/pointfreeco/swift-composable-architecture/pull/2019](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2019)). `withTaskCancellation(id:)` fix (thanks [@bjford](https://togithub.com/bjford), [https://github.com/pointfreeco/swift-composable-architecture/pull/2049](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2049)). Formatting fix (thanks [@mooyoung2309](https://togithub.com/mooyoung2309), [https://github.com/pointfreeco/swift-composable-architecture/pull/2056](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2056)). Update 'bindable state' to 'binding state' (thanks [@Jager-yoo](https://togithub.com/Jager-yoo), [https://github.com/pointfreeco/swift-composable-architecture/pull/2054](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2054)). - Infrastructure: Added Russian README translation (thanks [@artyom-ivanov](https://togithub.com/artyom-ivanov), [https://github.com/pointfreeco/swift-composable-architecture/pull/2014](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2014)). - Infrastructure: Added Polish README translation (thanks [@MarcelStarczyk](https://togithub.com/MarcelStarczyk), [https://github.com/pointfreeco/swift-composable-architecture/pull/2040](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2040)). - Infrastructure: Bump dependencies. - Infrastructure: Bump Xcode demo project settings ([https://github.com/pointfreeco/swift-composable-architecture/pull/2042](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2042)). - Infrastructure: Clean up and test `TestStore.skipInFlightEffects` ([https://github.com/pointfreeco/swift-composable-architecture/pull/2057](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2057)). - Infrastructure: CI updates ([https://github.com/pointfreeco/swift-composable-architecture/pull/2060](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2060)). - Infrastructure: Document how exhaustive vs. non-exhaustive test stores work ([https://github.com/pointfreeco/swift-composable-architecture/pull/2096](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2096)). #### New Contributors - [@m-housh](https://togithub.com/m-housh) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/1998](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1998) - [@siliconsorcery](https://togithub.com/siliconsorcery) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/1962](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1962) - [@artyom-ivanov](https://togithub.com/artyom-ivanov) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2014](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2014) - [@Ryu0118](https://togithub.com/Ryu0118) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2019](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2019) - [@MarcelStarczyk](https://togithub.com/MarcelStarczyk) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2040](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2040) - [@mooyoung2309](https://togithub.com/mooyoung2309) made their first contribution in [https://github.com/pointfreeco/swift-composable-architecture/pull/2056](https://togithub.com/pointfreeco/swift-composable-architecture/pull/2056) **Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.52.0...0.53.0 ### [`v0.52.0`](https://togithub.com/pointfreeco/swift-composable-architecture/releases/tag/0.52.0) [Compare Source](https://togithub.com/pointfreeco/swift-composable-architecture/compare/0.51.0...0.52.0) #### What's Changed - Added: Support for `XCTModify` and non-exhaustive testing ([https://github.com/pointfreeco/swift-composable-architecture/pull/1939](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1939)). - Added: Library reducer operators are now annotated with `@warn_unqualified_access` to prevent accidental bugs ([https://github.com/pointfreeco/swift-composable-architecture/pull/1950](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1950)). - Added: `Effect.publisher` for bridging effects from Combine ([https://github.com/pointfreeco/swift-composable-architecture/pull/1958](https://togithub.com/pointfreeco/swift-composable-architecture/pull/1958)). - Changed: `EffectConfiguration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.