Uh oh!
There was an error while loading. Please reload this page.
Adopt strict concurrency for project - #157
Conversation
* Fix one warning related to that
mattt
commented
Sep 7, 2025
Thanks for opening this PR, @Overcot. We were so close to having everything right for strict concurrency mode 🥲. I wanted to better understand the implications of enabling this would be for downstream consumers. Reading this article by @mattmassicotte, I came to the conclusion that it's the right thing to do here. However, I was surprised to see CI failing on Swift 6.0.3 with this error (both Linux and macOS):
No such problems for Swift 6.1.0, though: https://github.com/modelcontextprotocol/swift-sdk/actions/runs/17327395019/job/49779583926?pr=157 It looks like we'll need to either provide a version-specific package manifest or conditionalize this setting. |
2ae2267 to
fa43821Comparefa43821 to
68da99cComparemattt
commented
Sep 7, 2025
Nice, that fixed it. Merging now. Thanks again for your help, @Overcot. |
Uh oh!
There was an error while loading. Please reload this page.
mattmassicotte
commented
Sep 7, 2025
Glad you all figured it out! The compiler recently downgraded the errors produced for unnecessary flags recently, but I cannot quite recall which version did that. Maybe 6.1 The issue you ran into here looks like it would affect 6.2+ only - it's caused by the introduction of |
* Enable building with the Swift Linux SDK (modelcontextprotocol#151) * Update README to document support for Alpine Linux (modelcontextprotocol#153) * Adopt strict concurrency for project (modelcontextprotocol#157) * Adopt strict concurrency for project * Fix one warning related to that * Add version-specific manifest for Swift 6.0 --------- Co-authored-by: Alexey Ivashko <a_ivashko@apple.com> Co-authored-by: Mattt Zmuda <mattt@me.com> * Make `Tool.description` optional (modelcontextprotocol#160) * Make Tool.description optional * Make description parameter in Tool initializer optional * fix: allow description field to be absent from `Tool` (modelcontextprotocol#159) * fix: allow description field to be absent from `Tool` * description field is not a requried field of Tool * Apply suggestions from code review * Update Tests/MCPTests/ToolTests.swift --------- Co-authored-by: Mattt <mattt@me.com> * Add Mac Catalyst to target dependencies for EventSource. (modelcontextprotocol#163) * chore: update licensing to Apache 2.0 for new contributions (modelcontextprotocol#177) * Add SECURITY.md with GitHub Security Advisories guidance (modelcontextprotocol#200) * V0.11.x (modelcontextprotocol#199) * Support 2025-06-18 Spec (modelcontextprotocol#167) * Support OpenAI _meta for Tool * Update init * Add title and outputSchema * Concurreny issue * General fields * Add Generate Fields to Server elements * 4 tab spacing * Update Version * Elicitation * Format * More tests and inits * Elicitation in README * Fix orphaned test * Add title to more structs * Public init * Fix meta validation and make tests more generic * Format and make Result properties public again * Revert more visibility changes * feat: 2025-11-25 phase 1, includes Version, Icon, Progress (modelcontextprotocol#181) * chore: fixed unit tests * feat: added icon and progess base structs * feat: added progress notification and meta to callTool * feat: added tests * feat: simplified RequestMeta encoding/decoding * tests: added unit test to track progress * chore: rebased v0.11.x * feat: implemented cancellation * feat: added overloaded callTool method * fix: encoding Response _meta fix * chore: added old version to the versions list * feat: 2025-11-25 phase 2; added Logging and Completions (modelcontextprotocol#196) * feat: added Logging and Completions * feat: updated EmbeddedResource for the latest spec * chore: changed encoding of meta in Prompts to encodeIfPresent * feat: compliance tests + http server transport (modelcontextprotocol#197) * feat: http server transport * feat: added http server transport * feat: removed unused files * feat: added conformance tests * feat: improved conformace testing * chore: removed redundant files * feat/2025-11-25: sampling, elicitation, roots (modelcontextprotocol#198) * feat: Roots implementation * feat: added unit testing * feat: improved unit tests and fixed NetworkTransport crash * feat: implemented sampling and elicitation * feat: improved sampling tests * feat: improved elicitation tests * feat: improved confirmance tests * feat: improved Prompts unit tests * feat: removed test code * feat: updated conformance tests * chore: removed redundant commas * chore: removed 6.0.3 swift version from ci * chore: improved unit tests a little bit * chore: update README.md * chore: add server progress tracking example to README.md * chore: updated README.md * chore: updated transports table formatting * chore: updated MockNetworkConnection --------- Co-authored-by: Austin Evans <austinjevans@me.com> Co-authored-by: yehorsobko <yehorsobko@macpaw.com> --------- Co-authored-by: Tobias <t089@users.noreply.github.com> Co-authored-by: Mattt <mattt@me.com> Co-authored-by: Alexey Ivashko <mcivashko@gmail.com> Co-authored-by: Alexey Ivashko <a_ivashko@apple.com> Co-authored-by: Yifan Liu <liuyf1117@hotmail.com> Co-authored-by: Semen Kudriavtsev <sam@kudr.me> Co-authored-by: adam jones <domdomegg+git@gmail.com> Co-authored-by: Den Delimarsky <53200638+localden@users.noreply.github.com> Co-authored-by: Maksym Mova <maks.mova@gmail.com> Co-authored-by: Austin Evans <austinjevans@me.com> Co-authored-by: yehorsobko <yehorsobko@macpaw.com>
Motivation and Context
If I enable strict concurrency in project that depends on swift-sdk it shows that there's a warning with :
How Has This Been Tested?
By building a framework, it shouldn't impact any runtime behavior
Breaking Changes
No
Types of changes
Checklist
Additional context