Releases: pointfreeco/swift-composable-architecture
1.12.0
What's Changed
- Added: Swift Testing beta support (#3229).
- Added:
FileStorageKey
now supports custom decoding/encoding (thanks @oskarek, #3225). - Fixed: Update
@Reducer enum
macro to generate direct action cases for ephemeral state and avoid warnings produced byNever
(#3240). - Fixed:
Shared
'sdidSet
is now isolated to the main actor to avoid potential data races (#3206). - Fixed: Point updated packages to swiftlang organization to suppress SwiftPM warnings (#3234)
- Infrastructure: Tutorial/documentation/example typo fixes and cleanup (thanks @btr-better, #3193; @eltociear, #3194; #3200; @larryonoff, #3201; @junbangg, #3217, #3216, #3221, #3237, #3238; @gibachan, #3228; @takehilo, #3220; @daichikuwa0618, #3210).
- Infrastructure: Convert all test/example usage of
ActorIsolated
toLockIsolated
(#3198). - Infrastructure: Made internal improvements to shared file storage throttling (#3079).
- Infrastructure: Remove Swift 5.7.1 tools (#3203).
- Infrastructure: Add
.editorconfig
for consistent code formatting (thanks @Matejkob, #3215).
New Contributors
- @junbangg made their first contribution in #3217
- @Matejkob made their first contribution in #3215
- @daichikuwa0618 made their first contribution in #3210
- @oskarek made their first contribution in #3225
Full Changelog: 1.11.2...1.12.0
1.11.2
What's Changed
- Fixed: Avoid potential sendability warnings in Swift 6 mode (#3167).
- Fixed:
PersistenceKeyDefault
no longer uses the loaded value as an initial value (thanks @fdzsergio, #3174). - Fixed: Address a potential deadlock by isolating
Shared.withLock
to the main actor (#3178). - Fixed: Disfavor
Shared
's optional dynamic member lookup (#3170). Note that this fix may be source breaking. See the migration guide for more details. - Fixed: Don't over-observe app storage mutations (#3186).
- Fixed:
$shared.elements
is now stable based on identity, and restricted to identified arrays (#3187). - Infrastructure: Drop Swift <5.9 support (#3185). Xcode 15 has been required for app submission since April, so we can keep our Swift support in line with Apple's.
- Infrastructure: 1.11 migration guide fixes (thanks @larryonoff, #3184); tutorial typo fixes (thanks @meltsplit, #3161).
New Contributors
- @meltsplit made their first contribution in #3161
- @fdzsergio made their first contribution in #3174
Full Changelog: 1.11.1...1.11.2
1.11.1
What's Changed
- Fixed: Support swift-syntax from 600.0.0-latest (#3160).
- Fixed:
Shared.withLock
now pass values by continuation (#3154). - Infrastructure: Clean up DocC and link to new migration guide in README (#3153); SyncUp tutorial fixes (thanks @dafurman, #3139; thanks @RuiAAPeres, #3159); note Swift bug in documentation (#3157).
New Contributors
- @RuiAAPeres made their first contribution in #3159
Full Changelog: 1.11.0...1.11.1
1.11.0
What's Changed
- Added:
Shared.withLock
, for mutating shared state from asynchronous contexts (#3136). Direct mutations from asynchronous contexts is marked unavailable and will be an error in Swift 6. - Added:
SharedReader.constant
(#3127). - Added:
$store.scope
will now emit a warning when a dismiss action doesn'tnil
out a child feature, suggesting aReducer.ifLet
(or parent integration) is missing (#3089). - Deprecated:
Shared
's optional dynamic member lookup overload has been deprecated in favor of aBinding.init
that unwraps optional values (#3145). - Fixed: Avoid crash when using
.appStorage
with aURL
value (thanks @pwszebor, #3098). - Fixed: Worked around a build failure when integrating with Tuist (#3140).
- Infrastructure: Tutorial fixes (#3076; thanks @MartinMoizard, #3078; #3072; thanks @hmhv, #3091; thanks @gibachan, #3099; thanks @btr-better, #3107; thanks @woxtu, #3119, #3123; #3135; #3141; #3148); DocC fixes (#3085; #3087; thanks @JOyo246, #3092; thanks @leeari95, #3110; #3138); README fixes (thanks @Matt54, #3129); expose some navigation APIs with
@_spi(Internal)
(thanks @Alex293, #3097).
New Contributors
- @MartinMoizard made their first contribution in #3078
- @JOyo246 made their first contribution in #3092
- @pwszebor made their first contribution in #3098
- @Alex293 made their first contribution in #3097
- @gibachan made their first contribution in #3099
- @leeari95 made their first contribution in #3110
- @btr-better made their first contribution in #3107
- @Matt54 made their first contribution in #3129
Full Changelog: 1.10.4...1.11.0
1.10.4
What's Changed
- Fixed: Compute warnings lazily by @heoblitz in #3058
- Fixed: Lazy loading of Shared initial values by @seanmrich in #3060
- Fixed: Fix for throttle logic. by @mbrandonw in #3075
New Contributors
Full Changelog: 1.10.3...1.10.4
1.10.3
What's Changed
-
Fixed: Automatically cancel in-flight
TestStore
effects when its root feature is dismissed (#3044). -
Fixed: Propagate current dependencies to
Store.init
(#3049). -
Fixed: Runtime warn when stack integration is detected to be missing from store's reducer (#3048).
-
Fixed:
TestStore.finish()
should assert against unreceived actions (#3054). -
Fixed: Precondition when conflicting persistence keys must match value by @stephencelis in #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, #3057). -
Infrastructure: Added a brand new tutorial: Building SyncUps (#3039).
-
Infrastructure: Add store invalidation test (#3038).
-
Infrastructure: Document
@CasePathable @dynamicMemberLookup
in 1.4 migration guide (#3043). -
Infrastructure: Document nested enum reducers (#3050).
New Contributors
- @seanmrich made their first contribution in #3057
Full Changelog: 1.10.2...1.10.3
1.10.2
What's Changed
- Fixed:
@Shared(.appStorage)
initializer with explicit= nil
should not crash (#3035). - Fixed: Don't warn when dismissing two layers of tree-based navigation (#3037).
- Fixed: Don't emit perception warnings when deploying to 17.0.0 (#3036).
- Infrastructure: Fix typo in Reducers article (thanks @larryonoff, #3034)
New Contributors
- @larryonoff made their first contribution in #3034
Full Changelog: 1.10.1...1.10.2
1.10.1
What's Changed
- Fixed: Support nested enum reducers (thanks @sk409, #2814).
- Fixed: Add missing
NSPrivacyCollectedDataTypes
to PrivacyInfo.xcprivacy (thanks @DandyLyons, #3027). - Fixed: Emit test failure when warning in release (#3024).
- Fixed: Bump Perception availability to support 1.1.6 (#3025).
- Infrastructure: Update README for TCA 1.10.0 (thanks @kalupas226, #3019).
- Infrastructure: Fix DocC organization of shared state tools (#3022).
- Infrastructure: Remove
Reducer._Body
workaround (#3023).
New Contributors
Full Changelog: 1.10.0...1.10.1
1.10.0
What's Changed
- Added: All new state sharing tools, including the
@Shared
property wrapper and more (#2858). (Thanks @NFulkerson, @hallee, @pyrtsa, @DandyLyons, @hiltonc, @lukeredpath, @andtie, @AlexKobachiJP, @ZevEisenberg, for their contributions!) - Updated: Bumped swift-collections to remove
@unchecked
fromStackState
'sSendable
conformance (thanks @rhysm94, #2997). - Updated: Bumped swift-custom-dump to avoid a crash and leverage the latest tools for shared state (thanks @y-mimura, #3008).
- Infrastructure: Update README.md package addition wording to match latest Xcode (thanks @dafurman, #2998).
- Infrastructure: Tutorial fixes and updates (thanks @dafurman, #3003).
New Contributors
Full Changelog: 1.9.3...1.10.0
1.9.3
What's Changed
- Added: Added missing
StackActionOf<R>
type alias (thanks @d-date, #2906). - Fixed: Cache scoped presentation stores where possible (thanks @lukeredpath, #2908).
- Fixed: Allow "inert" enum state to be observed by having an ever-changing ID (#2910).
- Fixed: Silence SwiftSyntax 510 / Xcode 15.3 warnings (#2909).
- Fixed: Restore
TestStore
autocompletion (#2923). - Fixed: It is now possible to scope bindings of enum stores to non-reducer cases for sheets and other navigation (#2943).
- Fixed:
package
access modifier support in enum@Reducer
macro (thanks @samrayner, #2939). - Fixed:
Effect.publisher
is no longer escaping (#2968). - Fixed: Add runtime warning diagnostic to catch nested calls to
observe
(#2996). - Infrastructure: Fix documentation typos (thanks @takehilo, #2898; #2944); tutorial fixes (thanks @LRSnowX, #2808); test store tutorial/documentation fixes (#2912); fix favorites case study mocks (thanks @beribas, #2962); improve docs for stack-based navigation (#2967); fix dismissal in UIKit demos (#2986) fix shared state case study (thanks @eltociear, #2994).
New Contributors
- @LRSnowX made their first contribution in #2808
- @beribas made their first contribution in #2962
- @samrayner made their first contribution in #2939
- @eltociear made their first contribution in #2994
Full Changelog: 1.9.2...1.9.3