migrating-to-swift-concurrency
Scannednpx machina-cli add skill kylehughes/the-unofficial-swift-concurrency-migration-skill/migrating-to-swift-concurrency --openclawSwift Concurrency Migration Guide
The complete content of the Swift Concurrency Migration Guide by Apple. This guide helps you migrate your code to take advantage of Swift's data-race safety guarantees and the Swift 6 language mode.
Documentation
- Data Race Safety (Guide/DataRaceSafety.md): Learn about the fundamental concepts Swift uses to enable data-race-free
- Migration Strategy (Guide/MigrationStrategy.md): Get started migrating your project to the Swift 6 language mode.
- Enable data-race safety checking (Guide/EnableDataRaceSafety.md): Use Swift 6 to get full data-race safety checking or add checking to an existing Swift 5 project.
- Common Compiler Errors (Guide/CommonProblems.md): Identify, understand, and address common problems you can encounter while
- Incremental Adoption (Guide/IncrementalAdoption.md): Learn how you can introduce Swift concurrency features into your project
- Migrating to upcoming language features (Guide/FeatureMigration.md): Migrate your project to upcoming language features.
- Source Compatibility (Guide/SourceCompatibility.md): See an overview of potential source compatibility issues.
- Library Evolution (Guide/LibraryEvolution.md): Annotate library APIs for concurrency while preserving source and ABI
- Runtime Behavior (Guide/RuntimeBehavior.md): Learn how Swift concurrency runtime semantics differ from other runtimes you may
Code Examples
Swift source files demonstrating migration patterns and concurrency concepts:
- Boundaries.swift (Examples/Boundaries.swift): Example code demonstrating Boundaries.
- ConformanceMismatches.swift (Examples/ConformanceMismatches.swift): Example code demonstrating ConformanceMismatches.
- DispatchQueue_PendingWork.swift (Examples/DispatchQueue_PendingWork.swift): Example code demonstrating DispatchQueue PendingWork.
- Globals.swift (Examples/Globals.swift): Example code demonstrating Globals.
- IncrementalMigration.swift (Examples/IncrementalMigration.swift): Example code demonstrating IncrementalMigration.
- PreconcurrencyImport.swift (Examples/PreconcurrencyImport.swift): Example code demonstrating PreconcurrencyImport.
- main.swift (Examples/main.swift): Example code demonstrating main.
Usage Notes
- Start with Data Race Safety to understand the core concepts
- Follow the Migration Strategy for a recommended approach
- Refer to Common Problems for solutions to typical issues
- Use the Code Examples as reference implementations
License & Attribution
Content License
The documentation and example code in this skill are from the Swift Concurrency Migration Guide, copyright Apple Inc. and the Swift project authors, distributed under the Apache 2.0 License.
Skill Structure License
The structure and organization of this skill (this index file) is copyright Kyle Hughes, distributed under the MIT License.
Source
git clone https://github.com/kylehughes/the-unofficial-swift-concurrency-migration-skill/blob/main/migrating-to-swift-concurrency/SKILL.mdView on GitHub Overview
Provides the complete Swift Concurrency Migration Guide to help teams move to Swift 6, resolve data-race safety issues, and adopt async/await incrementally. It covers Sendable, actor isolation, and runtime behavior with references and code examples for practical migration.
How This Skill Works
The guide is organized around core topics such as Data Race Safety, Migration Strategy, Enable Data Race Safety, and Incremental Adoption, plus practical code examples. It guides you through migration patterns, reference implementations, and how to apply them in real projects.
When to Use It
- Migrating to Swift 6 and adopting async/await
- Resolving data-race safety errors in existing code
- Understanding Sendable and actor isolation concepts
- Incrementally adopting concurrency features in a large codebase
- Planning migration with Strategy, Source Compatibility, and Library Evolution considerations
Quick Start
- Step 1: Read Data Race Safety and Migration Strategy docs
- Step 2: Enable data-race safety checking in Swift 6 (or apply to Swift 5 project)
- Step 3: Start Incremental Adoption with provided code examples (e.g., IncrementalMigration.swift) and iterate
Best Practices
- Start with Data Race Safety concepts to understand core guarantees
- Follow the Migration Strategy before making major changes
- Enable data-race safety checking in Swift 6 (or extend to Swift 5 projects)
- Use Incremental Adoption patterns to phase in concurrency features
- Review Common Problems, Library Evolution, and Runtime Behavior when debugging
Example Use Cases
- Boundaries.swift
- ConformanceMismatches.swift
- DispatchQueue_PendingWork.swift
- Globals.swift
- IncrementalMigration.swift