To show the community’s progress towards a future free from data races, the Swift Package Index now monitors compatibility with Swift 6 and the status of data races across all packages.
The site is tracking progress towards Swift 6 readiness in a few ways:
### Compatibility checking
The Swift Package Index has tracked platform and Swift version compatibility since 2021, displaying a glanceable matrix on every package page. As of today, Swift 6 joins that matrix to show which packages you can use if your project uses the Swift 6 compiler.

It’s important to note that the matrix tracks compatibility instead of data race safety which package authors must explicitly opt into.
Compatibility builds run by the Swift Package Index run with default build settings, meaning the build will use the Swift 5 language mode unless the package author has explicitly opted in to use Swift 6 language mode.
### Progress towards data race safety
Compatibility is one thing, but the true benefits of Swift 6 come with the additional checks enabled by default in Swift 6 language mode, including data race safety checks.
The Swift Package Index’s “[Ready for Swift 6](https://swiftpackageindex.com/ready-for-swift-6)” page tracks progress towards data race safety across the whole package ecosystem. Packages can opt-in to the Swift 6 language mode whenever convenient, but this page shows the number of packages that would pass those checks if all strict concurrency checks were enabled.

The two charts show progress across two metrics. The first chart shows progress over time for the number of packages with zero errors when compiled with [strict concurrency checks set to `complete`](https://www.swift.org/documentation/concurrency/). The second chart shows a cumulative count of errors remaining across all packages.
As compatibility builds continue over the summer, success will come from two directions. First, as more package authors opt into these checks, they will also fix the potential data races highlighted by the compiler, leading to increased compatibility and fewer errors in the cumulative chart.
However, these charts will also track success from the Swift team, who plan to iterate on the compiler during the beta releases consolidating and further targeting errors to make fixing these issues easier. Each data point in the charts will use the latest Swift 6 beta toolchain and the latest source code from every package.
### Data race safety metadata
Aggregate data is great for showing progress, but when you want to consider using a package it’s useful to know if that package has any data race safety issues.
To help you make those decisions, the Swift Package Index now shows a “Safe from data races” alongside other package metadata when packages have zero errors when compiled with `complete` strict concurrency checks.

Data race safety is the central feature of this compiler release, and the checks it enables will eliminate many sources of subtle - or even not-so-subtle - issues as package authors adopt it.
However, this feature can only truly shine if adoption rates are high, and the goal is to encourage this adoption across as many packages as possible with these Swift 6 readiness checks.
---
# POSSIBLE ALTERNATIVE (TED)
Swift 6 introduces compile-time data race safety for code that opts into the new Swift 6 language mode. While individual modules can adopt this mode incrementally and independently of their dependencies, the combined code (client and dependencies) achieves runtime data race safety only when all parts adopt the Swift 6 language mode. Therefore, open source packages adopting Swift 6 are crucial in advancing data race safety across the entire Swift ecosystem.
### Tracking Swift 6 Readiness and Progress
The Swift Package Index's “[Ready for Swift 6](https://swiftpackageindex.com/ready-for-swift-6)” page tracks progress toward data race safety across the entire package ecosystem. While packages can opt-in to Swift 6 language mode at their convenience, this page shows the number of packages that would pass those checks if all strict concurrency checks were enabled in a package.
The Swift Package Index has tracked platform and Swift version compatibility since 2021, displaying a glanceable matrix on every package page. Today, Swift 6 has been added to this matrix, showing which packages are compatible with the Swift 6 compiler. It's important to note that this matrix tracks **compatibility**, not data race safety, which package authors must explicitly opt into. Compatibility builds run by the Swift Package Index use default build settings. This means the build will default to Swift 5 language mode unless the package author has explicitly opted in to use Swift 6 language mode.
## How is Swift 6 Readiness Determined?
The site tracks progress towards Swift 6 readiness through two main charts:
1. The first chart shows progress over time for the number of packages with zero errors when compiled with [strict concurrency checks set to `complete`](https://www.swift.org/documentation/concurrency/).
2. The second chart shows a cumulative count of errors across all packages.

Over time, success will come from two directions. First, as more package authors opt into these checks, they will fix potential data races highlighted by the compiler, increasing compatibility and reducing errors. Second, compiler iterations will refine data race checking and consolidate error diagnostics. These iterations will be available through development snapshots on Swift.org or Xcode betas. Each data point in the charts will use the latest Swift 6 beta toolchain and the most recent source code from every package.
### Data Race Safety Indicators
When evaluating a package, it's helpful to know if it has any reported data race safety issues. To assist with this, the Swift Package Index now displays a “Safe from data races” label alongside other package metadata when packages compile with zero errors using `complete` strict concurrency checks.

Data race safety is a key feature of this compiler release, and its checks will eliminate many sources of subtle or significant issues as package authors adopt it. However, for this feature to be effective, widespread adoption is essential. The goal is to encourage as many packages as possible to adopt Swift 6 readiness checks to maximize data race safety across the ecosystem.
### Call to Action: Adopt Swift 6 for Ecosystem Data Race Safety
Data race safety is a crucial feature of the Swift 6 compiler, eliminating many subtle or significant issues. For this feature to be effective, widespread adoption is essential. We urge package authors to adopt Swift 6 readiness checks to maximize data race safety across the ecosystem.