Stephen Celis
57e804f1cc
Macro bonanza ( #2553 )
...
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* Silence test warnings
* wip
* wip
* wip
* update a bunch of docs
* wip
* wip
* fix
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* Kill integration tests for now
* wip
* wip
* wip
* wip
* updating docs for @Reducer macro
* replaced more Reducer protocols with @Reducer
* Fixed some broken docc references
* wip
* Some @Reducer docs
* more docs
* convert some old styles to new style
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* bump
* update tutorials to use body
* update tutorials to use DML on destination state enum
* Add diagnostic
* wip
* updated a few more tests
* wip
* wip
* Add another gotcha
* wip
* wip
* wip
* fixes
* wip
* wip
* wip
* wip
* wip
* fix
* wip
* remove for now
* wip
* wip
* updated some docs
* migration guides
* more migration guide
* fix ci
* fix
* soft deprecate all apis using AnyCasePath
* wip
* Fix
* fix tests
* swift-format 509 compatibility
* wip
* wip
* Update Sources/ComposableArchitecture/Macros.swift
Co-authored-by: Mateusz Bąk <bakmatthew@icloud.com >
* wip
* wip
* update optional state case study
* remove initializer
* Don't use @State for BasicsView integration demo
* fix tests
* remove reduce diagnostics for now
* diagnose error not warning
* Update Sources/ComposableArchitecture/Macros.swift
Co-authored-by: Jesse Tipton <jesse@jessetipton.com >
* wip
* move integration tests to cron
* Revert "move integration tests to cron"
This reverts commit f9bdf2f04b .
* disable flakey tests on CI
* wip
* wip
* Revert "Revert "move integration tests to cron""
This reverts commit 66aafa7327 .
* fix
* wip
* fix
---------
Co-authored-by: Brandon Williams <mbrandonw@hey.com >
Co-authored-by: Mateusz Bąk <bakmatthew@icloud.com >
Co-authored-by: Brandon Williams <135203+mbrandonw@users.noreply.github.com >
Co-authored-by: Jesse Tipton <jesse@jessetipton.com >
2023-11-13 12:57:35 -08:00
Brandon Williams
464d95e368
Add previews to integration test cases ( #2551 )
...
* Add previews to all integration tests.
* wip;
* wip
* wip
* debug
* xcode 15
* split out examples
* wip
* wip
* move around tests so they don't go off screen
* wip
* wip
* ops
* wip
* wip
---------
Co-authored-by: Stephen Celis <stephen@stephencelis.com >
2023-11-09 14:10:23 -08:00
Stephen Celis
5ba7943402
Internal: rename Store.{state,stateSubject} ( #2538 )
...
* Internal: rename `Store.{state,stateSubject}`
Both an internal readability win and will make it easier to provide a
public `state` property in the future.
* wip
2023-10-31 14:45:57 -07:00
Ryu
77dee2dc0b
Refactor ViewStore ( #2496 )
...
Co-authored-by: Stephen Celis <stephen@stephencelis.com >
2023-10-05 23:08:24 -07:00
Stephen Celis
195284b94b
The Composable Architecture 1.0 ( #2318 )
...
* docs
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* Fix invalid states count for 3 optionals and typos (#2094 )
* wip
* wip
* more dismisseffect docs
* fixed some references
* navigation doc corrections
* more nav docs
* fix cancellation tests in release mode
* wrap some tests in #if DEBUG since they are testing expected failures
* update UUIDs in tests to use shorter initializer
* fixed a todo
* wip
* fix merge errors
* wip
* fix
* wip
* wip
* fixing a bunch of todos
* get rid of rawvalue in StackElementID
* more todos
* NavLinkStore docs
* fix swift 5.6 stuff
* fix some standups tests
* fix
* clean up
* docs fix
* fixes
* wip
* 5.6 fix
* wip
* wip
* dont parallelize tests
* updated demo readmes
* wip
* Use ObservedObject instead of StateObject for alert/dialog modifiers.
* integration tests for bad dismissal behavior
* check for runtime warnings in every integration test
* wip
* wip
* wip
* fix
* wip
* wip
* wip
* wip
* wip
* wip
* Drop a bunch of Hashables.
* some nav bug fixes
* wip
* wip
* wip
* fix
* fix
* wip
* wip
* Simplify recording test.
* add concurrent async test
* fix
* wip
* Refact how detail dismisses itself.
* fix
* 5.6 fix
* wip
* wip
* wip
* wip
* Add TestStore.assert.
* Revert "Add TestStore.assert."
This reverts commit a892cccc66 .
* add Ukrainian Readme.md (#2121 )
* Add TestStore.assert. (#2123 )
* Add TestStore.assert.
* wip
* Update Sources/ComposableArchitecture/TestStore.swift
Co-authored-by: Stephen Celis <stephen@stephencelis.com >
* Update Sources/ComposableArchitecture/Documentation.docc/Extensions/TestStore.md
Co-authored-by: Stephen Celis <stephen@stephencelis.com >
* fix tests
---------
Co-authored-by: Stephen Celis <stephen@stephencelis.com >
* Run swift-format
* push for store.finish and presentation
* wip
* move docs around
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* Add case subscripts
* wip
* wip
* wip
* 5.7-only
* wip
* wip
* wip
* wip
* fix
* revert store.finish task cancellation
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* add test for presentation scope
* wip
* wip
* wip
* wip
* wip
* cleanup
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* Rename ReducerProtocol.swift to Reducer.swift (#2206 )
* Hard-deprecate old SwitchStore initializers/overloads
* wip
* wip
* Resolve CaseStudies crash (#2258 )
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* Bump timeout for CI
* wip
* Remove old deprecations
* Simplify test store
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* images for tutorials
* wip
* wip
* Remove deprecated alert APIs
* Bump dependencies
* wip
---------
Co-authored-by: Brandon Williams <mbrandonw@hey.com >
Co-authored-by: 유재호 <y73447jh@gmail.com >
Co-authored-by: Dmytro <barabashdmyto@gmail.com >
Co-authored-by: Brandon Williams <135203+mbrandonw@users.noreply.github.com >
Co-authored-by: mbrandonw <mbrandonw@users.noreply.github.com >
2023-07-30 14:58:40 -07:00
Stephen Celis
db2a55fd89
Expose StorePublisher directly on Store ( #2330 )
...
Now that `ViewStore`s have a limited future, we should surface
functionality that was `ViewStore`-only to the `Store` instead.
2023-07-28 10:01:33 -07:00
Brandon Williams
2c93195c23
Prerelease 1.0 ( #1929 )
...
* Converted voice memos back to identified array
* update deps
* update docs for DismissEffect
* wip
* Add Sendable conformance to PresentationState (#2086 )
* wip
* swift-format
* wip
* wip
* fix some warnings
* docs
* wip
* wip
* Catch some typos in Articles (#2088 )
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* docs
* wip
* wip
* docs
* wip
* wip
* wip
* wip
* docs
* docs
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* Fix invalid states count for 3 optionals and typos (#2094 )
* wip
* wip
* more dismisseffect docs
* fixed some references
* navigation doc corrections
* more nav docs
* fix cancellation tests in release mode
* wrap some tests in #if DEBUG since they are testing expected failures
* update UUIDs in tests to use shorter initializer
* fixed a todo
* wip
* fix merge errors
* wip
* fix
* wip
* wip
* fixing a bunch of todos
* get rid of rawvalue in StackElementID
* more todos
* NavLinkStore docs
* fix swift 5.6 stuff
* fix some standups tests
* fix
* clean up
* docs fix
* fixes
* wip
* 5.6 fix
* wip
* wip
* dont parallelize tests
* updated demo readmes
* wip
* Use ObservedObject instead of StateObject for alert/dialog modifiers.
* integration tests for bad dismissal behavior
* check for runtime warnings in every integration test
* wip
* wip
* wip
* fix
* wip
* wip
* wip
* wip
* wip
* wip
* Drop a bunch of Hashables.
* some nav bug fixes
* wip
* wip
* wip
* fix
* fix
* wip
* wip
* Simplify recording test.
* add concurrent async test
* fix
* wip
* Refact how detail dismisses itself.
* fix
* 5.6 fix
* wip
* wip
* wip
* wip
* Add TestStore.assert.
* Revert "Add TestStore.assert."
This reverts commit a892cccc66 .
* add Ukrainian Readme.md (#2121 )
* Add TestStore.assert. (#2123 )
* Add TestStore.assert.
* wip
* Update Sources/ComposableArchitecture/TestStore.swift
Co-authored-by: Stephen Celis <stephen@stephencelis.com >
* Update Sources/ComposableArchitecture/Documentation.docc/Extensions/TestStore.md
Co-authored-by: Stephen Celis <stephen@stephencelis.com >
* fix tests
---------
Co-authored-by: Stephen Celis <stephen@stephencelis.com >
* Run swift-format
* push for store.finish and presentation
* wip
* move docs around
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* Add case subscripts
* wip
* wip
* wip
* 5.7-only
* wip
* wip
* wip
* wip
* fix
* revert store.finish task cancellation
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* add test for presentation scope
* wip
* wip
* wip
* wip
* wip
* cleanup
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* Rename ReducerProtocol.swift to Reducer.swift (#2206 )
* Hard-deprecate old SwitchStore initializers/overloads
* wip
* wip
* Resolve CaseStudies crash (#2258 )
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* Bump timeout for CI
* wip
* wip
---------
Co-authored-by: Jackson Utsch <jutechs@gmail.com >
Co-authored-by: Stephen Celis <stephen@stephencelis.com >
Co-authored-by: 유재호 <y73447jh@gmail.com >
Co-authored-by: Dmytro <barabashdmyto@gmail.com >
Co-authored-by: mbrandonw <mbrandonw@users.noreply.github.com >
2023-07-27 17:35:07 -07:00
Stephen Celis
faadf6a780
Add named closure arguments ( #2295 )
...
* Add named closure arguments
Better for documentation and auto-fill.
* wip
2023-07-16 15:27:02 -07:00
Harshil Shah
0602a68941
Added the ability to specify an animation or transaction with Store.send ( #2241 )
...
* Added an internal initialiser for ViewStoreTask
This is done to allow returning a ViewStoreTask from Store.send(_:animation:)
* Added Store.send methods that allow specifying an animation or transaction
* Added StoreTask
* Made StoreTask.rawValue internal
This is to allow ViewStore to access the rawValue as it does currently
* Made ViewStoreTask a deprecated typealias of StoreTask
* Store.send methods now return a StoreTask instead of a ViewStoreTask
* Update ViewStore.swift
* Update Sources/ComposableArchitecture/Store.swift
---------
Co-authored-by: Stephen Celis <stephen.celis@gmail.com >
Co-authored-by: Stephen Celis <stephen@stephencelis.com >
2023-07-14 13:10:49 -07:00
Stephen Celis
c0a9e1c3bd
Make ViewStoreTask.cancel synchronous ( #2282 )
...
Currently, `ViewStoreTask.cancel` works like `TestStoreTask`, where
it'll cancel _and_ await cancellation to complete. This is needlessly
limiting, and probably not what you want when interacting with
cancellation.
2023-07-14 10:22:30 -07:00
Stephen Celis
daf41b3370
Add public Store.send and Store.withValue ( #2222 )
2023-06-28 09:32:32 -07:00
Alex Hunsley
42b01f284e
Fix some swiftdoc and small tidy ( #2204 )
...
* Remove double word and a little grammar gardening
* Fix some swiftdoc parameters
* Tidy params to '_' in DataManager
2023-06-16 07:49:38 -07:00
Takehiro Kaneko
570fa26843
fix ViewStore binding doc comment ( #2165 )
2023-06-01 10:04:50 -07:00
Stephen Celis
c432a76b5b
Navigation ( #1945 )
...
* wip
* fix
* wip
* wip
* move
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* Fix
* wip
* wip
* Renamed action to onTap in NavigationLinkStore (#2043 )
Renamed the `action` parameter to mirror other inits and differentiate itself from `action fromDestinationAction`
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* Tie view identity to stack element identity
* Tie item identity to case
* wip
* wip
* cleanup
* fix
* fix
* Add warning to nav link
* wip
* wip
* Rename FullscreenCover.swift to FullScreenCover.swift (#2062 )
* wip
* fix isDetailLink on non-iOS platforms
* Correct some comments in Effect.swift (#2081 )
* add integration tests for showing alert/dialog from alert/dialog.
* copy StackElementIDGenerator dependency before running TestStore receive closure.
* Removed some unneeded delegate actions.
* wip
* clean up
* lots of clean up
* Converted voice memos back to identified array
* update deps
* update docs for DismissEffect
* wip
* Add Sendable conformance to PresentationState (#2086 )
* wip
* swift-format
* wip
* wip
* docs
* wip
* wip
* Catch some typos in Articles (#2088 )
* wip
* wip
* wip
* wip
* wip
* docs
* wip
* wip
* docs
* wip
* wip
* wip
* wip
* docs
* docs
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* Fix invalid states count for 3 optionals and typos (#2094 )
* wip
* wip
* more dismisseffect docs
* fixed some references
* navigation doc corrections
* more nav docs
* fix cancellation tests in release mode
* wrap some tests in #if DEBUG since they are testing expected failures
* update UUIDs in tests to use shorter initializer
* fixed a todo
* wip
* fix merge errors
* wip
* fix
* wip
* wip
* fixing a bunch of todos
* get rid of rawvalue in StackElementID
* more todos
* NavLinkStore docs
* fix swift 5.6 stuff
* fix some standups tests
* fix
* clean up
* docs fix
* fixes
* wip
* 5.6 fix
* wip
* wip
* dont parallelize tests
* updated demo readmes
* wip
* Use ObservedObject instead of StateObject for alert/dialog modifiers.
* integration tests for bad dismissal behavior
* check for runtime warnings in every integration test
* wip
* wip
* fix
* wip
* wip
* wip
* wip
* wip
* Drop a bunch of Hashables.
* some nav bug fixes
* wip
* wip
* wip
* fix
* fix
* wip
* wip
* Simplify recording test.
* add concurrent async test
* fix
* wip
* Refact how detail dismisses itself.
* fix
* 5.6 fix
* wip
* wip
* Add TestStore.assert.
* Revert "Add TestStore.assert."
This reverts commit a892cccc66 .
* add Ukrainian Readme.md (#2121 )
* Add TestStore.assert. (#2123 )
* Add TestStore.assert.
* wip
* Update Sources/ComposableArchitecture/TestStore.swift
Co-authored-by: Stephen Celis <stephen@stephencelis.com >
* Update Sources/ComposableArchitecture/Documentation.docc/Extensions/TestStore.md
Co-authored-by: Stephen Celis <stephen@stephencelis.com >
* fix tests
---------
Co-authored-by: Stephen Celis <stephen@stephencelis.com >
* Run swift-format
* push for store.finish and presentation
* move docs around
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* Add case subscripts
* wip
* wip
* 5.7-only
* wip
* wip
* wip
* wip
* revert store.finish task cancellation
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* add test for presentation scope
* wip
* wip
* wip
* wip
* wip
* cleanup
* updated presentation scope test
* sytnax update
* clean up
* fix test
* wip
* wip
* wip
* wip
* wip
---------
Co-authored-by: Brandon Williams <mbrandonw@hey.com >
Co-authored-by: Martin Václavík <mvaclavik96@icloud.com >
Co-authored-by: 유재호 <y73447jh@gmail.com >
Co-authored-by: Jackson Utsch <jutechs@gmail.com >
Co-authored-by: Dmytro <barabashdmyto@gmail.com >
Co-authored-by: Brandon Williams <135203+mbrandonw@users.noreply.github.com >
Co-authored-by: mbrandonw <mbrandonw@users.noreply.github.com >
2023-05-30 12:22:00 -04:00
Stephen Celis
5d4f96ddbe
Soft-deprecate Effect.task and Effect.fireAndForget ( #2099 )
...
* Soft-deprecate `Effect.task` and `Effect.fireAndForget`
See https://github.com/pointfreeco/swift-composable-architecture/discussions/1520
* wip
* wip
* wip
2023-05-12 09:13:37 -07:00
Stephen Celis
98af2adcb5
IfLetStore: ignore view store binding writes to nil state (#1879 )
...
* `IfLetStore`: ignore view store binding writes to `nil` state
* swift-format
* wip
* add test for filter
---------
Co-authored-by: Brandon Williams <mbrandonw@hey.com >
2023-01-27 13:59:43 -08:00
Stephen Celis
b524b01be3
Unconstrain TestStore action for predicate/case path receive ( #1856 )
...
* Unconstrain TestStore action for predicate/case path `receive`
These methods are currently defined in a constrained extension, but it's
not necessary, so let's loosen the constraint.
* added some tests
* Update Sources/ComposableArchitecture/TestStore.swift
* flakey test
Co-authored-by: Brandon Williams <mbrandonw@hey.com >
2023-01-23 12:16:04 -08:00
mbrandonw
fd9ce8d14e
Run swift-format
2023-01-18 04:07:46 +00:00
Andrey Plotnikov
b4e6e83c98
Add support for SwiftUI withTransaction API ( #1824 )
...
* Adds withTransaction extension
* reduce code
* fix typo
* Adds transaction support to Send and ViewStore.send
* Update Sources/ComposableArchitecture/Effect.swift
* Update Sources/ComposableArchitecture/ViewStore.swift
Co-authored-by: Stephen Celis <stephen.celis@gmail.com >
2023-01-17 19:05:29 -08:00
Stephen Celis
717796fb4c
Revert #1802 ( #1845 )
...
Fixes #1812 .
This regression was subtle, but it's better to retain the old crashing
behavior than introduce this change since it's been with the library for
a very long time, and we have workarounds like `ForEachStore`.
We'll try to re-explore these subtle binding behaviors in the future.
2023-01-17 17:25:22 -08:00
stephencelis
6cf778a7da
Run swift-format
2023-01-10 20:08:39 +00:00
Pat Brown
57b3012b54
Wrap view store binding ( #1802 )
2023-01-10 14:54:31 -05:00
Stephen Celis
cbf8a45fa9
Revert #1784 : Resolve binding key path crash ( #1799 )
...
* Revert "Simplify/fix #1784 (#1785 )"
This reverts commit 626c35c7de .
* Revert "resolve binding key path crash (#1784 )"
This reverts commit fbe68471a3 .
2023-01-06 11:22:47 -05:00
Stephen Celis
626c35c7de
Simplify/fix #1784 ( #1785 )
...
* Simplify/fix #1784
This PR works on top of #1784 and:
* Reduces the number of moving parts
* Restores implicit animations by directly producing the binding from
the observable object
* Strongly retains the store in the binding to avoid losing writes
* Move
2023-01-03 13:37:16 -05:00
stephencelis
8f19bf88ae
Run swift-format
2023-01-03 17:44:07 +00:00
Dmytro
fbe68471a3
resolve binding key path crash ( #1784 )
2023-01-03 12:34:46 -05:00
Thomas Grapperon
41f1cb9f3f
Add a EffectTask<Action> typealias for Effect<Action, Never> and rename Effect to EffectPublisher ( #1471 )
...
* Add an `EffectOf<Action>` typealias for `Effect<Action, Never>`
* Fix doc
* Rename `EffectOf` to `EffectTask`
* Rename `Effect` to `EffectPublisher`
* Soft-deprecate `Effect`
* Link to `EffectTask`
* Use `EffectPublisher` in Combine contexts
* Reword soft-deprecation message
* Remove `renamed:` fix-it for `Effect` deprecation
* Update Sources/ComposableArchitecture/Documentation.docc/Extensions/ReducerProtocol.md
Co-authored-by: Stephen Celis <stephen.celis@gmail.com >
* Update Sources/ComposableArchitecture/Documentation.docc/ComposableArchitecture.md
* Update Sources/ComposableArchitecture/Effect.swift
* Fix DocC identifiers
Co-authored-by: Stephen Celis <stephen.celis@gmail.com >
2022-10-17 15:16:46 -07:00
Brandon Williams
ed34c76fcd
Make ViewStore.yield(while:) main actor. ( #1517 )
2022-10-17 14:59:53 -04:00
mbrandonw
ef137808e7
Run swift-format
2022-10-10 20:33:04 +00:00
Brandon Williams
55755c3103
ViewStore.init(_:observe:) ( #1448 )
...
* ViewStore.init(_:observe:)
* clean up
2022-10-10 15:55:54 -04:00
Brandon Williams
b8294b89d5
ReducerProtocol ( #1283 )
...
* Add previewValue to DependencyKey, and fixed build errors on Xcode 13.
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* Add Xcode 14 to CI (#1266 )
* Add Xcode 14 to CI
* Update ci.yml
* wip
* wip
* Update Makefile
* Update Makefile
* wip
* runtime warning when no live dependency available for live app
* bring back live
* wip
* soft deprecate Reducer
* fusion test
* ternary clean up
* wip
* add some todos
* typealias Reducer inside AnyReducer
* Add `now` convenience property to date dependency (#1286 )
* Remove type alias
* LiveDependencyKey: DependencyKey -> DependencyKey: TestDependencyKey (#1288 )
* LiveDependencyKey: DependencyKey -> DependencyKey: TestDependencyKey
* wip
* wip
* wip
* wip
* wip
* fix
* wip
* fix navigate case studies
* wip
* fixes and docs
* more migration
* wip
* wip
* thread deps through ifLet and forEach examples.
* update
* clean up
* wip
* wip
* Update MigratingToReducerProtocols.md
* wip
* wip
* docs
* docs
* fix some docs
* Fix for CombineReducers compiler bug
* wip
* wip
* wip
* wip
* todos for docs
* Don't warn for overridden test dependencies (#1324 )
* Don't warn while setting test dependencies
* wip
* fix conflict
* wip
* Docs and deprecations
* add binding info
* wip
* Add URL session
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* Don't run debug reducer in tests
* wip
* updated reducer debugging
* Update UUID.swift (#1374 )
* wip
* optional
* added Self as default associatedtype value for TestDependencyKey.value (#1395 )
* added Self as default associatedtype value for TestDependencyKey.value
* Update Tests/ComposableArchitectureTests/DependencyKeyTests.swift
Co-authored-by: Brandon Williams <135203+mbrandonw@users.noreply.github.com >
* Update example to set badge to the unread count (#1391 )
* Add store.finish().
* Fix warnings introduced in Xcode 14.1 (#1388 )
* Fix warnings introduced in Xcode 14.1
* wip
* Conform dependency values to DependencyKey where convenient
* fix
* Fail if testValue is invoked without providing implementation (#1399 )
* Update example to set badge to the unread count (#1391 )
* Add store.finish().
* Fix the CaseStudies (UIKit) (#1392 )
* Fix warnings introduced in Xcode 14.1 (#1388 )
* Fix warnings introduced in Xcode 14.1
* wip
* Fail when accessing testValue when one hasn't been provided.
* wip
* wip
* wip
* test
Co-authored-by: Mark Adams <hyperspacemark@users.noreply.github.com >
Co-authored-by: Maciek Czarnik <Czajnikowski@users.noreply.github.com >
Co-authored-by: Stephen Celis <stephen@stephencelis.com >
* Add DateGenerator.init(_ generate:)
* Start running some tests in release config. (#1405 )
* Start running some tests in release config.
* wip
* wip
* wip
* wip
* wip
* Update Sources/ComposableArchitecture/Store.swift
Co-authored-by: Thomas Grapperon <35562418+tgrapperon@users.noreply.github.com >
* wip
* wip
Co-authored-by: Thomas Grapperon <35562418+tgrapperon@users.noreply.github.com >
* added test that dependencies are transferred to effects
* wip
* self
* clean up
* simplify
* fix
* doc fixes
* wip
* fix
* wip
* wip
* wip
* fix
* Run dependencies tests on CI. (#1408 )
* Run dependencies tests on CI.
* wip
* update makefile
* wtf
* more docs
* more docs
* wip
* docs
* wip
* docs
* wip
* message tweaks
* wip
* docs and clean up
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* typo fix
* docs clean up
* doc fixes
* cancel in progress
* cancel in progress
* no need to make recope release-only, and make more use of XCTAssert to get better release tests
* fix test
* Remove ActorIsolated from tests where it's not needed
* fix test
* wip
* wip
* Add a benchmark for dependency key writing.
* fix test
* make benchmark 5.7 compatible
* iflet docs
* more docs
* dependency docs
* rearrange
* @Dependency docs
* docs
* fix benchmark in 5.6
* doc fix
* wip
* wip
* wip
* wip
* more docs
* clean up
* fix
* wip
* Fixes compilation on watchOS (#1423 )
Co-authored-by: Gunnar Herzog <gunnar.herzog@kf-interactive.com >
* move deprecation
* format
* wip
* Fix openURL
* wip
* wip
* wip
* wip
* fix
* Keep simple
* Reducer.debug -> Reducer._printChanges
We want to revisit some of these debugging APIs in the future, so let's
keep them around, but underscore them to allow for more flexible
evolution.
* `ReducerProtocol.debug` -> `ReducerProtocol._printChanges` (#1426 )
* Reducer.debug -> Reducer._printChanges
We want to revisit some of these debugging APIs in the future, so let's
keep them around, but underscore them to allow for more flexible
evolution.
* Update DebugTests.swift
* OpenURL fix for macCatalyst (#1429 )
* OpenURL fix for macCatalyst
Fixes #1428 .
* Update Makefile
* Correct typo in "Designing dependencies" chapter (#1430 )
protocol AudioPlayerClient should be a struct
* fix
* fix
* protocol docc
* docs
* Typos (#1439 )
* remove unneeded internals
* wip
* Fix missing parameter in code sample (#1450 )
* typo fix
* more docs for DependencyKeyWritingReducer
* wip
* wip
* update readme
* wip
* update image
* main actor
* Added withValue, added docs and tests
* public properties
* cleaned up overload
* changed reducer->feature in a bunch of spots of dependencies docs
* add articles to readme
* 6
* fix tests for swift 5.6
* tweak
* tweak
* Update ReducerProtocol.swift
* wip
* wip
* docs update
* docs for conforming dependency directly to DependencyKey
* typo fix
* performance article update
* fixes
* deprecate another effect timer API
* link to migration doc in deprecation messages
* make some tests that deal with line numbers less fragile
* package.swift clean up
* tweak to echos
* remove docs at root, not in docs-out
* remove todo
* update WithViewStore.init deprecation message to explain and link to performance doc
* Add back ReducerProtocolOf for 5.7.1 (#1444 )
* Add back ReducerProtocolOf for 5.7.1
* wip
* Move scheme tests to matrix
* streamline
* try this
* store.finish
* wip
* dependencies -> transformDependency
* wip
* wip
* Compat
* fix
* preserve deps for combine publishers
* Remove dump calls (#1460 )
* Fix compiler errors for library evolution. (#1443 )
* Fix compiler errors for library evolution.
* wip
* wip
* work around ambiguous init
* Revert "work around ambiguous init"
This reverts commit 002a199d59 .
* fix ambiguity errors
* remove _Observe for now
* wip
* wip
* wip
* longer timeout
* more waiting
* wip
Co-authored-by: Stephen Celis <stephen@stephencelis.com >
Co-authored-by: Ken Grigsby <kgrigsby@mac.com >
Co-authored-by: Petr Sima <ptea.sima@gmail.com >
Co-authored-by: Mark Adams <hyperspacemark@users.noreply.github.com >
Co-authored-by: Maciek Czarnik <Czajnikowski@users.noreply.github.com >
Co-authored-by: Thomas Grapperon <35562418+tgrapperon@users.noreply.github.com >
Co-authored-by: Gunnar Herzog <github@trispo.de >
Co-authored-by: Gunnar Herzog <gunnar.herzog@kf-interactive.com >
Co-authored-by: Guttorm Aase <guttormaase@gmail.com >
Co-authored-by: Julien Sagot <contact@juliensagot.fr >
Co-authored-by: Jaanus Siim <jaanussiim+github@gmail.com >
2022-10-10 11:37:50 -04:00
Stephen Celis
bcdcb3d709
Fix warnings introduced in Xcode 14.1 ( #1388 )
...
* Fix warnings introduced in Xcode 14.1
* wip
2022-09-19 11:31:34 -04:00
Stephen Celis
bef2084cb2
Introduce WithViewStore.init(_:observe:send:...) ( #1339 )
...
* wip
* Introduce `WithViewStore.init(_:observe:send:...)`
* Update examples
* wip
* typo
* wip
2022-09-07 10:08:20 -04:00
Thomas Grapperon
b6ca93d0a3
Add _StateObject, an iOS 13 compatible substitute of StateObject ( #1336 )
...
* Add `_StateObject`
* wip
* `Storage` doesn't need to be `ObservableObject`
* Improve performance
Introduce a magic `@Published` that makes it much faster for some reason.
Both Storage and Observed have been merged into one type only, and properties/functions have been renamed like `StateObject` internals.
* wip
* wip
* wip
* wip
* wip
* Cleanup
* wip
* Remove `ObjectWillChangePublisher.Output` condition
This is not used anymore.
* Move `_StateObject` to "internal/"
* Typo
* wip
* wip
* wip
* Rollback `StateObjectViewStore` changes
2022-09-05 13:25:46 -04:00
Stephen Celis
a6fc9a2ed5
Add deprecations to non-view WithViewStore initializers ( #1323 )
...
* wip
* Deprecate WithViewStore overloads
* wip
* wip
* wip
* wip
* wip
* wip
* docs on withviewstore performance
* wip
* wip
* wip
Co-authored-by: Brandon Williams <mbrandonw@hey.com >
2022-09-01 12:45:07 -04:00
Stephen Celis
799aa18f86
Cleanup: Global/Local -> Parent/Child ( #1269 )
...
* Make openSettings async.
* global/local -> parent/child
* error cleanup
* Clean up action scoping
* cleanup
* wip
Co-authored-by: Brandon Williams <mbrandonw@hey.com >
2022-08-16 12:25:31 -04:00
Brandon Williams
108e3a536f
Concurrency Beta ( #1189 )
...
* more main actor audit
* wip
* wip
* fix
* better task result ==
* task result tests
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* fix merge conflicts
* wip
* wip
* lots of doc fixes and modernizations
* lots more docs and better hashable conformance for TaskResult
* more docs
* clean up
* more tests and docs
* clean up
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* small clean up
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* explicit
* wip
* fix bug in TestStore.receive
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* fixes
* wip
* tools for non-deterministic TestStore.receive
* fix
* wip
* wip
* remove inAnyOrder stuff
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* convert download case study to use async/await
* animations
* fix tests
* remove executor experiment
* wip
* wip
* wip
* wip
* wip
* speech simplification
* wip
* wip
* wip
* wip
* wip
* wip
* add a few todos
* wrote some tests
* simplify speech recognizer
* fix tests
* update some docs about error throwing behavior
* wip
* wip
* fix
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* Swift 5.5.2 fixes
* wip
* Bump timeout
* wip
* wip
* Finesse
* proper way to detect main queue
* extra guard
* revert main queue check
* move stuff around
* docs
* fixed a bunch of warnings
* Fix references
* clean up
* clean up
* fix a bunch of warnings
* clean up
* un-soft deprecate concatenate
* async teststore.send
* fix uikit tests
* drop sendable
* wip
* wip
* wip
* wip
* wip
* clean up
* clean up
* reorganize, remove extra task cancellation handler
* wip
* wip
* wip
* wip
* wip
* wip
* Make TestStore.send async (#1190 )
* async teststore.send
* fix uikit tests
* Converted all tests to async
* clean up
* added docs
* Update Sources/ComposableArchitecture/TestStore.swift
Co-authored-by: Stephen Celis <stephen@stephencelis.com >
* Update Sources/ComposableArchitecture/TestStore.swift
Co-authored-by: Stephen Celis <stephen@stephencelis.com >
* docs and readme update
* Update README.md
* Update Tests/ComposableArchitectureTests/StoreTests.swift
Co-authored-by: Stephen Celis <stephen@stephencelis.com >
* fix
* Update Sources/ComposableArchitecture/TestStore.swift
Co-authored-by: Stephen Celis <stephen@stephencelis.com >
* Update Sources/ComposableArchitecture/TestStore.swift
Co-authored-by: Stephen Celis <stephen@stephencelis.com >
* Update Sources/ComposableArchitecture/TestStore.swift
Co-authored-by: Stephen Celis <stephen@stephencelis.com >
* clean up
Co-authored-by: Stephen Celis <stephen@stephencelis.com >
* wip
* wip
* wip
* make fetchNumber throwing and fix tests
* effect basics clean up
* use local state for isLoading in refreshable case study
* clean up
* fix test
* wip
* wip
* wip
* wip
* wip
* wip
* fixes
* clean up
* clean up
* Simplify
* wip
* clean up
* wip
* AsyncStream.finished()
* give Send a public initializer
* make send public
* temporarily make box public
* remove concurrency flag
* wip
* wip
* wip
* wip
* wip
* docs
* speech
* simplify
* clean up;
* unchecked sendable
* clean up
* clean up
* wip
* docs
* docs
* more docs
* lots of docs
* wip
* wip
* wip
* more docs for streamWithContinuation
* wip
* wip
* wip
* Make internal, too
* wip
* Remove sendability detection
It breaks things, like:
let request = UncheckedSendable(
SKProductsRequest(productIdentifiers: []
)
// UncheckedSendable<NSObject> // *not* _<SKProductsRequest>
* wip
* doc clean up;
* fixed some todos
* docs
* wip
* remove thread safety FAQ from readme
* fix test
* wip
* docs clean up
* docs clean up
* added a testing article and fixed some docs
* rearrange
* docs clean up
* wip
* Update Sources/ComposableArchitecture/Documentation.docc/Articles/Testing.md
Co-authored-by: Thomas Grapperon <35562418+tgrapperon@users.noreply.github.com >
* Update Sources/ComposableArchitecture/Effects/ConcurrencySupport.swift
Co-authored-by: Thomas Grapperon <35562418+tgrapperon@users.noreply.github.com >
* Update Sources/ComposableArchitecture/Effects/ConcurrencySupport.swift
Co-authored-by: Thomas Grapperon <35562418+tgrapperon@users.noreply.github.com >
* Update Sources/ComposableArchitecture/Effects/ConcurrencySupport.swift
Co-authored-by: Thomas Grapperon <35562418+tgrapperon@users.noreply.github.com >
* Update Sources/ComposableArchitecture/Effects/ConcurrencySupport.swift
Co-authored-by: Thomas Grapperon <35562418+tgrapperon@users.noreply.github.com >
* Update Sources/ComposableArchitecture/Documentation.docc/Articles/Testing.md
Co-authored-by: Thomas Grapperon <35562418+tgrapperon@users.noreply.github.com >
* Update Sources/ComposableArchitecture/Documentation.docc/Articles/Testing.md
Co-authored-by: Thomas Grapperon <35562418+tgrapperon@users.noreply.github.com >
* Update Sources/ComposableArchitecture/Documentation.docc/Articles/Testing.md
Co-authored-by: Thomas Grapperon <35562418+tgrapperon@users.noreply.github.com >
* Update Sources/ComposableArchitecture/Documentation.docc/Articles/Testing.md
Co-authored-by: Thomas Grapperon <35562418+tgrapperon@users.noreply.github.com >
* Update Sources/ComposableArchitecture/Documentation.docc/Articles/Testing.md
Co-authored-by: Thomas Grapperon <35562418+tgrapperon@users.noreply.github.com >
* Update Sources/ComposableArchitecture/Documentation.docc/Articles/Testing.md
Co-authored-by: Thomas Grapperon <35562418+tgrapperon@users.noreply.github.com >
* Update Sources/ComposableArchitecture/Documentation.docc/Articles/Testing.md
Co-authored-by: Thomas Grapperon <35562418+tgrapperon@users.noreply.github.com >
* wip
* wip
* wip
Co-authored-by: Stephen Celis <stephen@stephencelis.com >
Co-authored-by: Thomas Grapperon <35562418+tgrapperon@users.noreply.github.com >
2022-08-08 01:04:16 -04:00
Stephen Celis
cfcf8b43ad
Rename ViewStore.suspend(while:) to yield(while:) ( #1151 )
...
The naming of `ViewStore.suspend(while:)` was inspired by
`Task.suspend()`, which was deprecated and renamed to `Task.yield()`
long ago. Let's do the same here and call it `ViewStore.yield(while:)`.
2022-06-20 09:36:47 -04:00
Stephen Celis
b8dddaf0bf
Clean up generic signatures ( #1143 )
2022-06-14 09:39:05 -04:00
Stephen Celis
c232a9f353
Swift 5.7 fixes ( #1089 )
...
* Fix Swift 5.7 warnings
* Fix Swift 5.7 threading issue
2022-05-12 13:07:37 -04:00
Brandon Williams
af3eed801a
Move send(_:animation:) to ViewStore.swift. ( #1075 )
2022-05-02 17:44:45 -07:00
Thomas Grapperon
85050a28a9
Fix WithViewStore issues with Views using escaping closures ( #1015 )
...
* Use a new instance of `ViewStore` in `WithViewStore`'s `body`
* Use explicit `self` for style coherence
* Remove `viewCancellable` additional reference in `newInstance()`
* Revert "Remove `viewCancellable` additional reference in `newInstance()`"
This reverts commit cb6a22ae4f .
* Change `viewCancellable` capture list
* Update `GeometryReader`'s workarounds
2022-03-11 15:23:42 -05:00
Stephen Celis
ff41e51a4e
Limit async/await to Swift 5.5.2 (Xcode 13.2) ( #923 )
2021-12-16 16:32:02 -05:00
stephencelis
b85fb40057
Run swift-format
2021-12-13 19:12:18 +00:00
Stephen Celis
23155a04fe
Support concurrency backdeployment ( #916 )
2021-12-13 14:03:15 -05:00
iampatbrown
46d0ca40fb
ObservedViewStore for projectedBindings ( #770 )
...
* Added observedSelf property to ViewStore
* Created ObservedViewStore
* Try projectedBinding first for ViewStore bindings
* Replaced @ObservedObject with @ObservedViewStore
* Revert "Replaced @ObservedObject with @ObservedViewStore"
This reverts commit 6aadf373db .
* Revert "Try projectedBinding first for ViewStore bindings"
This reverts commit 0e2fae1cbf .
* Revert "Created ObservedViewStore"
This reverts commit 7f99a718b9 .
* Revert "Added observedSelf property to ViewStore"
This reverts commit 65dc3837b3 .
* Replaced self.binding with projectedValue
* Revert "Replaced self.binding with projectedValue"
This reverts commit cc2b69777e .
* Derive bindings using WrappedState helper
* wip
* wip
* wip
* avoid potential retain cycle
* Revert "Derive bindings using WrappedState helper"
This reverts commit f3fb18f445 .
Co-authored-by: Stephen Celis <stephen@stephencelis.com >
2021-09-20 10:13:16 -04:00
iampatbrown
4b8db86edb
Alternative to CurrentValueSubject in ViewStore ( #755 )
...
* Replaced CurrentValueSubject with CurrentValueRelay
* Added final to DemandBuffer
Co-authored-by: Brandon Williams <mbrandonw@hey.com >
2021-09-17 16:33:13 -04:00
Brandon Williams
33279f4c38
Update to thread warnings. ( #773 )
...
* Update to thread warnings.
* fix tests
* clean up
* rename variable
2021-09-07 11:56:46 -04:00
Brandon Williams
a38e04da7d
Modernize some things ( #713 )
...
* Modernize some things.
* clean up
* wip
* wip
* clean up
* wip
* wip
2021-08-12 18:13:40 -04:00
Brandon Williams
bf3fc47ee8
Add some docs about ViewStore publisher. ( #699 )
...
* Add some docs about ViewStore publisher.
* clean up
2021-08-06 12:20:43 -04:00