Bot releases are hidden (Show)
Store
, TestStore
, and various view helpers to the @MainActor
(https://github.com/pointfreeco/swift-composable-architecture/pull/3277, https://github.com/pointfreeco/swift-composable-architecture/pull/3283). This has been done with @preconcurrency
for backwards compatibility. If you are using strict concurrency it may require you add @MainActor
annotations to any SwiftUI view helpers that access the store.Full Changelog: https://github.com/pointfreeco/swift-composable-architecture/compare/1.13.1...1.14.0
Published by stephencelis about 2 months ago
observe
was limited to platforms that can import UIKit by bringing back an AppKit-compatible version (https://github.com/pointfreeco/swift-composable-architecture/pull/3295).Full Changelog: https://github.com/pointfreeco/swift-composable-architecture/compare/1.13.0...1.13.1
Published by stephencelis 2 months ago
Shared
to invoke reportIssue
(https://github.com/pointfreeco/swift-composable-architecture/pull/3258).Full Changelog: https://github.com/pointfreeco/swift-composable-architecture/compare/1.12.1...1.13.0
Published by stephencelis 3 months ago
IssueReporting
symbols instead of XCTestDynamicOverlay
to avoid some linker errors (https://github.com/pointfreeco/swift-composable-architecture/pull/3256).Full Changelog: https://github.com/pointfreeco/swift-composable-architecture/compare/1.12.0...1.12.1
Published by stephencelis 3 months ago
FileStorageKey
now supports custom decoding/encoding (thanks @oskarek, https://github.com/pointfreeco/swift-composable-architecture/pull/3225).@Reducer enum
macro to generate direct action cases for ephemeral state and avoid warnings produced by Never
(https://github.com/pointfreeco/swift-composable-architecture/pull/3240).Shared
's didSet
is now isolated to the main actor to avoid potential data races (https://github.com/pointfreeco/swift-composable-architecture/pull/3206).ActorIsolated
to LockIsolated
(https://github.com/pointfreeco/swift-composable-architecture/pull/3198)..editorconfig
for consistent code formatting (thanks @Matejkob, https://github.com/pointfreeco/swift-composable-architecture/pull/3215).Full Changelog: https://github.com/pointfreeco/swift-composable-architecture/compare/1.11.2...1.12.0
Published by stephencelis 4 months ago
PersistenceKeyDefault
no longer uses the loaded value as an initial value (thanks @fdzsergio, https://github.com/pointfreeco/swift-composable-architecture/pull/3174).Shared.withLock
to the main actor (https://github.com/pointfreeco/swift-composable-architecture/pull/3178).Shared
's optional dynamic member lookup (https://github.com/pointfreeco/swift-composable-architecture/pull/3170). Note that this fix may be source breaking. See the migration guide for more details.$shared.elements
is now stable based on identity, and restricted to identified arrays (https://github.com/pointfreeco/swift-composable-architecture/pull/3187).Full Changelog: https://github.com/pointfreeco/swift-composable-architecture/compare/1.11.1...1.11.2
Published by stephencelis 4 months ago
Shared.withLock
now pass values by continuation (https://github.com/pointfreeco/swift-composable-architecture/pull/3154).Full Changelog: https://github.com/pointfreeco/swift-composable-architecture/compare/1.11.0...1.11.1
Published by stephencelis 4 months ago
Shared.withLock
, for mutating shared state from asynchronous contexts (https://github.com/pointfreeco/swift-composable-architecture/pull/3136). Direct mutations from asynchronous contexts is marked unavailable and will be an error in Swift 6.SharedReader.constant
(https://github.com/pointfreeco/swift-composable-architecture/pull/3127).$store.scope
will now emit a warning when a dismiss action doesn't nil
out a child feature, suggesting a Reducer.ifLet
(or parent integration) is missing (https://github.com/pointfreeco/swift-composable-architecture/pull/3089).Shared
's optional dynamic member lookup overload has been deprecated in favor of a Binding.init
that unwraps optional values (https://github.com/pointfreeco/swift-composable-architecture/pull/3145)..appStorage
with a URL
value (thanks @pwszebor, https://github.com/pointfreeco/swift-composable-architecture/pull/3098).@_spi(Internal)
(thanks @Alex293, https://github.com/pointfreeco/swift-composable-architecture/pull/3097).Full Changelog: https://github.com/pointfreeco/swift-composable-architecture/compare/1.10.4...1.11.0
Published by mbrandonw 5 months ago
Full Changelog: https://github.com/pointfreeco/swift-composable-architecture/compare/1.10.3...1.10.4
Published by stephencelis 5 months ago
Fixed: Automatically cancel in-flight TestStore
effects when its root feature is dismissed (https://github.com/pointfreeco/swift-composable-architecture/pull/3044).
Fixed: Propagate current dependencies to Store.init
(https://github.com/pointfreeco/swift-composable-architecture/pull/3049).
Fixed: Runtime warn when stack integration is detected to be missing from store's reducer (https://github.com/pointfreeco/swift-composable-architecture/pull/3048).
Fixed: TestStore.finish()
should assert against unreceived actions (https://github.com/pointfreeco/swift-composable-architecture/pull/3054).
Fixed: Precondition when conflicting persistence keys must match value by @stephencelis in https://github.com/pointfreeco/swift-composable-architecture/pull/3051.
Important:
If you have defined a custom persistence key, you may need to explicitly conform it toHashable
after upgrading to this version.
Fixed: @Shared
no longer eagerly evaluates its initial value (thanks @seanmrich, https://github.com/pointfreeco/swift-composable-architecture/pull/3057).
Infrastructure: Added a brand new tutorial: Building SyncUps (https://github.com/pointfreeco/swift-composable-architecture/pull/3039).
Infrastructure: Add store invalidation test (https://github.com/pointfreeco/swift-composable-architecture/pull/3038).
Infrastructure: Document @CasePathable @dynamicMemberLookup
in 1.4 migration guide (https://github.com/pointfreeco/swift-composable-architecture/pull/3043).
Infrastructure: Document nested enum reducers (https://github.com/pointfreeco/swift-composable-architecture/pull/3050).
Full Changelog: https://github.com/pointfreeco/swift-composable-architecture/compare/1.10.2...1.10.3
Published by stephencelis 6 months ago
@Shared(.appStorage)
initializer with explicit = nil
should not crash (https://github.com/pointfreeco/swift-composable-architecture/pull/3035).Full Changelog: https://github.com/pointfreeco/swift-composable-architecture/compare/1.10.1...1.10.2
Published by stephencelis 6 months ago
NSPrivacyCollectedDataTypes
to PrivacyInfo.xcprivacy (thanks @DandyLyons, https://github.com/pointfreeco/swift-composable-architecture/pull/3027).Reducer._Body
workaround (https://github.com/pointfreeco/swift-composable-architecture/pull/3023).Full Changelog: https://github.com/pointfreeco/swift-composable-architecture/compare/1.10.0...1.10.1
Published by stephencelis 6 months ago
@Shared
property wrapper and more (https://github.com/pointfreeco/swift-composable-architecture/pull/2858). (Thanks @NFulkerson, @hallee, @pyrtsa, @DandyLyons, @hiltonc, @lukeredpath, @andtie, @AlexKobachiJP, @ZevEisenberg, for their contributions!)@unchecked
from StackState
's Sendable
conformance (thanks @rhysm94, https://github.com/pointfreeco/swift-composable-architecture/pull/2997).Full Changelog: https://github.com/pointfreeco/swift-composable-architecture/compare/1.9.3...1.10.0
Published by stephencelis 6 months ago
StackActionOf<R>
type alias (thanks @d-date, https://github.com/pointfreeco/swift-composable-architecture/pull/2906).TestStore
autocompletion (https://github.com/pointfreeco/swift-composable-architecture/pull/2923).package
access modifier support in enum @Reducer
macro (thanks @samrayner, https://github.com/pointfreeco/swift-composable-architecture/pull/2939).Effect.publisher
is no longer escaping (https://github.com/pointfreeco/swift-composable-architecture/pull/2968).observe
(https://github.com/pointfreeco/swift-composable-architecture/pull/2996).Full Changelog: https://github.com/pointfreeco/swift-composable-architecture/compare/1.9.2...1.9.3
Published by stephencelis 8 months ago
BindableAction
dynamic case lookup added in 1.9 led to a regression in compile time performance that could break downstream builds. This has been reverted (https://github.com/pointfreeco/swift-composable-architecture/pull/2886).Full Changelog: https://github.com/pointfreeco/swift-composable-architecture/compare/1.9.1...1.9.2
Published by stephencelis 8 months ago
Full Changelog: https://github.com/pointfreeco/swift-composable-architecture/compare/1.9.0...1.9.1
Published by stephencelis 8 months ago
See Migrating to 1.9 for more details.
TestStore.send
that accept case key paths (thanks @scogeo, https://github.com/pointfreeco/swift-composable-architecture/pull/2681; https://github.com/pointfreeco/swift-composable-architecture/pull/2868).Reducer.dependency(value)
, for overriding a reducer's dependency using a singleton value of a type (https://github.com/pointfreeco/swift-composable-architecture/pull/2863).Store
diagnostics for deriving bindings (https://github.com/pointfreeco/swift-composable-architecture/pull/2793).ViewStore
s are initialized in a view that doesn't use WithPerceptionTracking
(https://github.com/pointfreeco/swift-composable-architecture/pull/2849).#if
branching in @ObservableState
and enum @Reducer
s (https://github.com/pointfreeco/swift-composable-architecture/pull/2800).Full Changelog: https://github.com/pointfreeco/swift-composable-architecture/compare/1.8.2...1.9.0
Published by mbrandonw 8 months ago
Full Changelog: https://github.com/pointfreeco/swift-composable-architecture/compare/1.8.1...1.8.2
Published by mbrandonw 8 months ago
@Reducer(state: .equatable)
in the migration guide https://github.com/pointfreeco/swift-composable-architecture/pull/2796
Full Changelog: https://github.com/pointfreeco/swift-composable-architecture/compare/1.8.0...1.8.1
Published by stephencelis 8 months ago
Added: New @Reducer
macro features (https://github.com/pointfreeco/swift-composable-architecture/pull/2795).
The @Reducer
macro has been enhanced to streamline usage and simplify some common patterns:
When left undefined, the @Reducer
will now define default implementations of State
, Action
, and body
. This means stubbing a feature is as simple as @Reducer struct Feature {}
.
@Reducer
can now be used with enums to simplify the boilerplate associated with "destination" and "path" reducers.
See the 1.8 migration guide for more information on how to use these APIs.
Fixed: Propagate @ViewAction
macro availability (https://github.com/pointfreeco/swift-composable-architecture/pull/2785).
Fixed: Properly tag nested observable enums so that changes to non-observable cases are better observed (https://github.com/pointfreeco/swift-composable-architecture/pull/2786).
Infrastructure: Fix typo in migration guide 1.6 (thanks @takehilo, https://github.com/pointfreeco/swift-composable-architecture/pull/2779); better document explicit id
with scoped ForEach
(https://github.com/pointfreeco/swift-composable-architecture/pull/2784); Fix typo in the 1.7 migration guide (thanks @yaslab, https://github.com/pointfreeco/swift-composable-architecture/pull/2780; thanks @Ryu0118, https://github.com/pointfreeco/swift-composable-architecture/pull/2790);
Full Changelog: https://github.com/pointfreeco/swift-composable-architecture/compare/1.7.2...1.8.0
Full Changelog: https://github.com/pointfreeco/swift-composable-architecture/compare/1.7.3...1.8.0