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
767231d179
Add Store.init that takes reducer builder ( #2087 )
...
* Add `Store.init` that takes reducer builder
* wip
* wip
* added some tests
* wip
* wip
* wip
---------
Co-authored-by: Brandon Williams <mbrandonw@hey.com >
2023-05-11 12:30:08 -07:00
Stephen Celis
da205c71ae
Deprecate Store.scope(state:) for view store observe ( #2097 )
...
* Deprecate `Store.scope(state:)` for view store `observe`
Explicit scoping is most appropriate for transforming domains, which
almost always requires an action transform. In the rare case it doesn't,
we should prefer an explicit `{ $0 }`.
Scoping for the view has been deprecated for awhile for the `observe`
parameter when creating view stores, so let's lead folks that direction.
* wip
* wip
2023-05-11 08:17:54 -07:00
Brandon Williams
847d5edf3f
Improve docs on how exhaustive vs non-exhaustive test stores work ( #2096 )
...
* Improved docs for non-exhaustive test stores.
* wip
* wip
* update test
* wip
---------
Co-authored-by: Stephen Celis <stephen@stephencelis.com >
2023-05-11 10:29:33 -04:00
Stephen Celis
b7c5a40ce2
Deprecate type-based cancel IDs ( #2091 )
...
* Deprecate type-based cancel IDs
Swift may aggressively compile types out of release mode, including
types defined for cancellation. Because of this, folks should migrate to
use value-based identifiers and avoid any potential bugs.
* wip
* wip
2023-05-10 13:20:16 -07:00
유재호
ce187a4d08
Update remaining 'bindable state' to 'binding state' ( #2054 )
2023-04-25 09:38:05 -07:00
Stephen Celis
3029263c10
Add 'Effect.publisher' for bridging effects from Combine ( #1958 )
...
We are looking to deprecate TCA's dependence on Combine, _e.g._ the
direct conformance of `Effect` to `Publisher`, as well as many
Combine-centric APIs, but that doesn't mean we want to eliminate support
for using Combine with TCA. Our current advice given by our soft
deprecations is to iterate over `publisher.values`, but this is
unavailable in iOS 13 and 14, so let's introduce a dedicated bridging
mechanism, instead.
2023-03-06 13:46:20 -08:00
Stephen Celis
bb384617d9
Clean up uncategorized DocC ( #1956 )
2023-03-06 09:54:42 -08:00
Stephen Celis
685e8fcfc0
DocC fixes ( #1942 )
...
We have a number of outdated DocC references. This PR should hopefully
take care of them!
2023-02-27 08:29:19 -08:00
Stephen Celis
1a168e2397
Add note to reducer protocol dependency section ( #1873 )
...
* Add note to reducer protocol dependency section
The discussion #1870 noted that our migration guide could include more
of a breadcrumb that migrating to the Dependencies library isn't a
simple matter of changing every environment property to a `@Dependency`
property.
* wip
Co-authored-by: Brandon Williams <mbrandonw@hey.com >
2023-01-26 09:22:30 -08:00
Stephen Celis
e294b24edb
Add Effect.send ( #1859 )
...
* Add `Effect.send`
With the `Effect<Action, Failure>` -> `Effect<Action>` migration,
`Effect.init(value:)` and `Effect.init(error:)` no longer make sense. We
will be retiring the latter some time in the future, so let's also get a
head start and rename the former to `Effect.send`.
For now it will call `Effect.init(value:)` under the hood, but in the
future we will want a non-Combine-driven way of running synchronous
effects.
* format fix
* wip
* fix
* wip
* wip
2023-01-23 16:41:01 -08:00
Stephen Celis
52c4a01437
Rename BindableState to BindingState ( #1855 )
...
The -`able` naming evokes protocols in Swift, and is an outlier when
considered alongside the rest of TCA's binding tools:
- `BindingAction`: concrete type
- `BindableAction`: protocol
- `BindingReducer`: concrete type
So, let's make things consistent.
The one caveat is that Swift diagnostics for such a deprecation aren't
great, so users won't get proactive warnings here for the time being:
https://github.com/apple/swift/issues/63139
We may just want to keep the deprecation around till it does...
2023-01-20 14:56:53 -08:00
Brandon Williams
e47342740b
Testing gotchas ( #1854 )
...
* Testing gotchas
* Update Testing.md
Co-authored-by: Stephen Celis <stephen@stephencelis.com >
2023-01-20 12:59:59 -08:00
Stephen Celis
c5a7d1be9a
Add prepareDependencies to Store.init ( #1844 )
...
* Add `prepareDependencies` to `Store.init`:wq
* wip
* test and doc
* update TTT previews to use new trailing closure style"
* wip
Co-authored-by: Brandon Williams <mbrandonw@hey.com >
2023-01-17 20:08:52 -08:00
brenno
eb5494051a
fixed typo at getting started ( #1843 )
...
Co-authored-by: brennomoura <brenno.moura@compasso.com.br >
2023-01-17 07:40:51 -08:00
Brandon Williams
3810aee31b
Fix typo in docs.
2023-01-15 13:16:52 -08:00
Stephen Celis
9b5a510174
Depend on swift-dependencies ( #1808 )
...
Co-authored-by: Brandon Williams <mbrandonw@hey.com >
2023-01-09 11:08:23 -05:00
Stephen Celis
30015d13a3
Revert #1790 ( #1795 )
...
It occurred to us that this solution unfortunately is incompatible with
view actions. We have an alternate solution that works, so I'll PR that
in the future if no others materialize!
2023-01-05 18:04:48 -05:00
Thomas Grapperon
c719fa1d39
Allow BindingReducer to work with ViewState ( #1790 )
...
* Simpler bindable view state
* wip
* wip
* Remove `BindingStore`
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* Make BindingState conditionally sendable.
* Fixed tests
* Update bindings article
* Add some additional contextual information to the runtime warnings
* update some docs
* lots more docs
* test clean up
* Improve diagnostic
* Put back `BindingReducer()` in the form study
* clean up
* Improve DocC references
* Remove DocC references for `@`'d property wrappers.
* wip
Co-authored-by: Stephen Celis <stephen@stephencelis.com >
Co-authored-by: Brandon Williams <mbrandonw@hey.com >
2023-01-05 13:18:34 -05:00
Brandon Williams
4266744f04
Soft-deprecate EffectPublisher ( #1791 )
...
* Soft-deprecate EffectPublisher in favor of EffectTask.
* wip
2023-01-04 15:54:27 -08:00
Stephen Celis
ea9cc86779
Fix TestStore docs ( #1787 )
...
* Fix TestStore docs
* fix
* wip
2023-01-04 00:57:13 -05:00
Daeyoung Kim
315d935fcd
Fix code typo ( #1773 )
...
Signed-off-by: Daeyoung Kim <daykim22@gmail.com >
Signed-off-by: Daeyoung Kim <daykim22@gmail.com >
2022-12-27 09:46:26 -05:00
Kenta Aikawa
b555bfeac6
Fix minor document error ( #1764 )
2022-12-21 10:01:15 -05:00
Brandon Williams
0a1958115c
Depend on SwiftUINavigation for TextState, AlertState, etc... ( #1685 )
...
* Use `swiftui-navigation` for alerts
* wip
* wip
* wip
* wip
* wip
Co-authored-by: Stephen Celis <stephen@stephencelis.com >
2022-11-21 17:46:36 -05:00
Brandon Williams
52dca7e5ed
Fix quick link to migration guide.
2022-11-14 10:56:58 -05:00
hmhv
3f30621ae8
Fix typo in GettingStarted.md and README.md ( #1659 )
...
* fix typo GettingStarted.md
* fix typo README
2022-11-12 07:42:14 -08:00
Brandon Williams
f444001520
Update performance article ( #1642 )
...
* Update performance doc to mention specifying view store type.
* wip
2022-11-09 13:30:17 -05:00
유재호
ab020e81bd
Fix typos in ReducerProtocol.swift and so on ( #1638 )
2022-11-08 12:37:07 -05:00
Tyson
632ac99c82
Fix minor typo ( #1612 )
2022-11-02 12:40:25 -04:00
PierreCapo
c9a07f5239
fix typo ( #1609 )
2022-11-02 08:48:19 -04:00
Stephen Celis
5d687b6b41
Non-exhaustive testing ( #1599 )
...
* Allow for non-exhaustive test store.
* wip
* wip
* wip
* wip
* wip
* clean up
* docs
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* fix tests
* wip
* wip
* wip
* wip
* wip
* merge fixes
* fixes
* wip
* wip
* wip
* infrastructure
* add extraction based overload
* wip
* more tests
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* docs fix
* fix
* wip
* wip
* wip
* lots of doc fixes
* wip
* ci
* wip
* wip
* wip;
* wip
* Update .github/workflows/ci.yml
Co-authored-by: Brandon Williams <135203+mbrandonw@users.noreply.github.com >
* Update Sources/ComposableArchitecture/Documentation.docc/Articles/Testing.md
Co-authored-by: Brandon Williams <135203+mbrandonw@users.noreply.github.com >
* fix docs
Co-authored-by: Brandon Williams <mbrandonw@hey.com >
Co-authored-by: Brandon Williams <135203+mbrandonw@users.noreply.github.com >
2022-10-31 11:23:10 -07:00
Brandon Williams
4ece153d6b
Add swift-clocks to TCA ( #1547 )
...
* Convert schedulers to clocks.
* wip
* wip
* wip
* wip
* Update 01-GettingStarted-Animations.swift (#1512 )
Typo
* bump
* wip
* wip
* fix
* doc fix
* wip
* update
* update
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* update clocks
* wip
* clocks
* wip
* wip
Co-authored-by: Ken Grigsby <kgrigsby@mac.com >
Co-authored-by: Stephen Celis <stephen@stephencelis.com >
2022-10-23 22:28:31 -07:00
Stephen Celis
cc535c3e37
XCTUnimplemented -> unimplemented (#1530 )
2022-10-19 16:17:48 -07:00
Thomas Grapperon
6fee86ba4f
Store dependencies default values on first access ( #1510 )
...
* wip
* wip
* wip
* Fix lock
* Remove trailing spaces
* Simplify implementation
* Store default values in `DependencyValues`
* Simplify implementation again
* Make helper function private
* Rename `Default` to `DefaultValues`
* Fix spacing
* Fix spacing again
* Some changes to dependency caching logic.
* shorten
* fix tests
* fileprivate
* Update docs
Co-authored-by: Brandon Williams <mbrandonw@hey.com >
2022-10-18 16:08:17 -04: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
Stephen Celis
12b028e980
Remove broken link ( #1523 )
...
* Remove broken link
Fix #1522 .
* Update DependencyManagement.md
2022-10-17 13:57:17 -07:00
Tyson
9e3ac1d596
Fixes a small typo in concurrency docs ( #1504 )
2022-10-15 08:50:31 -07:00
유재호
c5508de7a0
Fix typos in every DocC-Articles ( #1490 )
...
* Fix typos in every DocC-Articles
* Update Sources/ComposableArchitecture/Documentation.docc/Articles/DependencyManagement.md
* Update Sources/ComposableArchitecture/Documentation.docc/Articles/DependencyManagement.md
* Update Sources/ComposableArchitecture/Documentation.docc/Articles/MigratingToTheReducerProtocol.md
Co-authored-by: Stephen Celis <stephen.celis@gmail.com >
2022-10-13 11:41:04 -07:00
roeybiran
6771988691
docs: small rephrase ( #1479 )
...
* docs: slight rephrasing
* small fix
* Update Sources/ComposableArchitecture/Documentation.docc/Articles/DependencyManagement.md
Co-authored-by: Stephen Celis <stephen.celis@gmail.com >
2022-10-13 10:16:39 -07:00
Yoshinori Imajo
439c745b48
Fix typo in DependencyManagement.md ( #1484 )
2022-10-13 06:39:12 -04:00
Yoshinori Imajo
484fda5325
Fix typo in GettingStarted.md ( #1485 )
2022-10-13 06:37:24 -04:00
Martin Václavík
39c15c4322
Typo fix ( #1468 )
2022-10-11 14:55:07 -04:00
Brandon Williams
8a75b24f88
Small docs fixes.
2022-10-10 16:23:12 -04: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
ddanilyuk
a0065688fe
Fix Performance.md brackets ( #1446 )
2022-10-05 16:41:47 -04:00
Brandon Williams
a27a7a57bc
Add compiler performance section to table of contents.
2022-09-22 08:52:57 -04:00
Mark Adams
912e10074c
Update example to set badge to the unread count ( #1391 )
2022-09-19 09:12:58 -04:00
Stephen Celis
26f9ed286d
Rename Effect<Output, _> to Effect<Action, _> ( #1362 )
...
* Rename Effect<Output, _> -> Effect<Action, _>
We'll keep the typealias for the `Publisher` conformance, but given the
changes made to TCA for concurrency, `Effect` should typically only be
used these days in reducers to feed actions back into the store, and not
more generally as publishers of any output.
* wip
2022-09-10 10:46:00 -04:00
Brandon Williams
764de879ef
More docs for WithViewStore and new observe argument ( #1368 )
...
* wip
* wip
* Update Performance.md
* Update Performance.md
* wip
* wip
* Update Performance.md
Co-authored-by: Stephen Celis <stephen@stephencelis.com >
2022-09-10 10:20:35 -04:00