Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Address effect cancellation sendability #3326

Merged
merged 4 commits into from
Aug 30, 2024

Conversation

stephencelis
Copy link
Member

Some more changes to avoid sendability warnings in effect cancellation.

@@ -101,7 +102,7 @@ extension Effect {
/// - Parameter id: An effect identifier.
/// - Returns: A new effect that will cancel any currently in-flight effect with the given
/// identifier.
public static func cancel<ID: Hashable>(id: ID) -> Self {
public static func cancel(id: some Hashable & Sendable) -> Self {
Copy link
Member Author

@stephencelis stephencelis Aug 29, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cancellation IDs must now be Sendable. Technically we can avoid this with:

@autoclosure @escaping @Sendable () -> some Hashable

But I'm not sure it's worth it.

@stephencelis stephencelis merged commit 890d2ee into main Aug 30, 2024
6 checks passed
@stephencelis stephencelis deleted the effect-cancellation-sendability branch August 30, 2024 16:15
mbrandonw pushed a commit that referenced this pull request Sep 6, 2024
* Address effect cancellation sendability

* fix

* wip

* wip
mbrandonw added a commit that referenced this pull request Sep 6, 2024
* Address @shared sendability.

* Undo UncheckedSendable<UserDefaults>.

* clean up

* wip

* drop AnySendable.

* wip

* Address `Effect.throttle` sendability (#3325)

* Address effect cancellation sendability (#3326)

* Address effect cancellation sendability

* fix

* wip

* wip

* Separate SendableDefaultSubscript from DefaultSubscript.

* fix test

* drop escaping

* switch on swift 6 language mode

* xcode 16

* update test

* wip

---------

Co-authored-by: Stephen Celis <stephen@stephencelis.com>
mergify bot referenced this pull request in cgrindel/rules_swift_package_manager Sep 16, 2024
…ure to from: "1.15.0" (#1230)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[pointfreeco/swift-composable-architecture](https://redirect.github.com/pointfreeco/swift-composable-architecture)
| minor | `from: "1.13.1"` -> `from: "1.15.0"` |

---

### Release Notes

<details>
<summary>pointfreeco/swift-composable-architecture
(pointfreeco/swift-composable-architecture)</summary>

###
[`v1.15.0`](https://redirect.github.com/pointfreeco/swift-composable-architecture/releases/tag/1.15.0)

[Compare
Source](https://redirect.github.com/pointfreeco/swift-composable-architecture/compare/1.14.0...1.15.0)

#### What's Changed

- Added: Complete Swift 6 Language Mode support
([https://github.com/pointfreeco/swift-composable-architecture/pull/3282](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3282),
[https://github.com/pointfreeco/swift-composable-architecture/pull/3318](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3318);
[https://github.com/pointfreeco/swift-composable-architecture/pull/3317](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3317);
[https://github.com/pointfreeco/swift-composable-architecture/pull/3321](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3321);
[https://github.com/pointfreeco/swift-composable-architecture/pull/3325](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3325);
[https://github.com/pointfreeco/swift-composable-architecture/pull/3326](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3326);
[https://github.com/pointfreeco/swift-composable-architecture/pull/3320](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3320);
[https://github.com/pointfreeco/swift-composable-architecture/pull/3333](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3333);
[https://github.com/pointfreeco/swift-composable-architecture/pull/3329](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3329)).
- Fixed: Warn when bindable store is sent a binding action without
having integrated with `BindingReducer`
([https://github.com/pointfreeco/swift-composable-architecture/pull/3347](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3347)).
- Fixed: Remove and lock subscriptions from the Combine subject powering
Store and Shared subscriptions (thanks
[@&#8203;iampatbrown](https://redirect.github.com/iampatbrown),
[https://github.com/pointfreeco/swift-composable-architecture/pull/2699](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/2699)).
This should improve memory and avoid potential issues related to
concurrent access to the publisher.
- Fixed: Avoid potential deadlock in `Shared` by dispatching to the main
actor
([https://github.com/pointfreeco/swift-composable-architecture/pull/3356](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3356)).
- Fixed: Swift Testing support for concurrent tests by bucketing
cancellation identifiers to each `@Test`
([https://github.com/pointfreeco/swift-composable-architecture/pull/3374](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3374)).
- Infrastructure: Remove disfavored `NSObject.observe` overload in favor
of SwiftNavigation's `observe`
([https://github.com/pointfreeco/swift-composable-architecture/pull/3316](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3316))
- Infrastructure: Fix typo and deprecated content in `Performance.md`
(thanks [@&#8203;MaraMincho](https://redirect.github.com/MaraMincho),
[https://github.com/pointfreeco/swift-composable-architecture/pull/3323](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3323));
'WhatIsNavigation.md' fixes (thanks
[@&#8203;stealmh](https://redirect.github.com/stealmh),
[https://github.com/pointfreeco/swift-composable-architecture/pull/3345](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3345));
fix typos (thanks
[@&#8203;stealmh](https://redirect.github.com/stealmh),
[https://github.com/pointfreeco/swift-composable-architecture/pull/3349](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3349);
thanks [@&#8203;O-O-wl](https://redirect.github.com/O-O-wl),
[https://github.com/pointfreeco/swift-composable-architecture/pull/3354](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3354));
replace deprecated `viewStore` with `store` in documentation (thanks
[@&#8203;qwerty3345](https://redirect.github.com/qwerty3345),
[https://github.com/pointfreeco/swift-composable-architecture/pull/3341](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3341)).
- Infrastructure: Added failing test to document behavior with
observation/identified array
([https://github.com/pointfreeco/swift-composable-architecture/pull/3346](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3346)).
- Infrastructure: Update `05-HigherOrderReducers` CaseStudies (thanks
[@&#8203;qwerty3345](https://redirect.github.com/qwerty3345),
[https://github.com/pointfreeco/swift-composable-architecture/pull/3342](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3342));
update `04-Navigation-Lists-NavigateAndLoad` CaseStudies (thanks
[@&#8203;MaraMincho](https://redirect.github.com/MaraMincho),
[https://github.com/pointfreeco/swift-composable-architecture/pull/3327](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3327)).
- Infrastructure: Issue template updates
([https://github.com/pointfreeco/swift-composable-architecture/pull/3363](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3363)).
- Infrastructure: Apply `any` to all existential protocol uses (thanks
[@&#8203;qwerty3345](https://redirect.github.com/qwerty3345),
[https://github.com/pointfreeco/swift-composable-architecture/pull/3370](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3370)).
- Infrastructure: Improve CI job performance
([https://github.com/pointfreeco/swift-composable-architecture/pull/3357](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3357)).
- Infrastructure: Remove outdated `#if` branching in the library
([https://github.com/pointfreeco/swift-composable-architecture/pull/3376](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3376)).

#### New Contributors

- [@&#8203;stealmh](https://redirect.github.com/stealmh) made their
first contribution in
[https://github.com/pointfreeco/swift-composable-architecture/pull/3345](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3345)
- [@&#8203;O-O-wl](https://redirect.github.com/O-O-wl) made their first
contribution in
[https://github.com/pointfreeco/swift-composable-architecture/pull/3354](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3354)

**Full Changelog**:
pointfreeco/swift-composable-architecture@1.14.0...1.15.0

###
[`v1.14.0`](https://redirect.github.com/pointfreeco/swift-composable-architecture/releases/tag/1.14.0)

[Compare
Source](https://redirect.github.com/pointfreeco/swift-composable-architecture/compare/1.13.1...1.14.0)

#### What's Changed

- Added: Isolate `Store`, `TestStore`, and various view helpers to the
`@MainActor`
([https://github.com/pointfreeco/swift-composable-architecture/pull/3277](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3277),
[https://github.com/pointfreeco/swift-composable-architecture/pull/3283](https://redirect.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.
- Fixed: Don't eagerly dismiss an alert presented by another
([https://github.com/pointfreeco/swift-composable-architecture/pull/3309](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3309)).
- Infrastructure: Bump Swift Navigation version
([https://github.com/pointfreeco/swift-composable-architecture/pull/3310](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3310)).
- Infrastructure: Documentation fixes (thanks
[@&#8203;woohyunjin06](https://redirect.github.com/woohyunjin06),
[https://github.com/pointfreeco/swift-composable-architecture/pull/3296](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3296);
[@&#8203;MaraMincho](https://redirect.github.com/MaraMincho),
[https://github.com/pointfreeco/swift-composable-architecture/pull/3299](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3299)).

#### New Contributors

- [@&#8203;woohyunjin06](https://redirect.github.com/woohyunjin06) made
their first contribution in
[https://github.com/pointfreeco/swift-composable-architecture/pull/3296](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3296)
- [@&#8203;MaraMincho](https://redirect.github.com/MaraMincho) made
their first contribution in
[https://github.com/pointfreeco/swift-composable-architecture/pull/3299](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3299)
- [@&#8203;qwerty3345](https://redirect.github.com/qwerty3345) made
their first contribution in
[https://github.com/pointfreeco/swift-composable-architecture/pull/3305](https://redirect.github.com/pointfreeco/swift-composable-architecture/pull/3305)

**Full Changelog**:
pointfreeco/swift-composable-architecture@1.13.1...1.14.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC44MC4wIiwidXBkYXRlZEluVmVyIjoiMzguODAuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: cgrindel-self-hosted-renovate[bot] <139595543+cgrindel-self-hosted-renovate[bot]@users.noreply.github.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants