Swift 3.0 Release Process

This post describes the goals, release process, and estimated schedule for Swift 3.0.

Swift 3.0 is a major release that is not source-compatible with Swift 2.2. It contains fundamental changes to the language and Swift Standard Library. A comprehensive list of implemented changes for Swift 3.0 can be found on the Swift evolution site.

Swift 3.0 is also the first release to include the Swift Package Manager. While the Swift Package Manager is still early in its development, it supports the development and distribution of cross-platform Swift packages. The Swift Package Manager will be available on both Darwin and Linux.

For Linux, Swift 3 will also be the first release to contain the Swift Core Libraries.

Swift 3.0 is expected to be released sometime in late 2016. In addition to its Swift.org release, Swift 3.0 will ship in a future version of Xcode.

Developer Previews

Getting Changes into Swift 3.0


Philosophy on Taking Changes into Swift 3.0


Impacted Repositories

The following repositories will have swift-3.0-preview-<X>-branch/swift-3.0-branch branches to track sources as part of Swift 3.0 release:

The following repositories will only have a swift-3.0-branch instead of developer preview branches, as they have already effectively converged:

Release Managers

The overall management of the release will be overseen by the following individuals, who will announce when stricter control of change goes into effect for the Swift 3.0 release as the release converges:

Please feel free to email swift-dev or Ted Kremenek directly concerning any questions about the release management process.

Pull Requests for Developer Previews

All pull requests nominating changes for inclusion in developer preview branches should include the following information:

One or more code owners for the impacted components should review the change. Technical review can be delegated by a code owner or otherwise requested as deemed appropriate or useful.

All change going into developer preview branches must go through pull requests that are accepted by the corresponding release manager.