源代码兼容性是 Swift 未来的目标。为了实现这一目标,(苹果公司的 Swift 编译器团队)建立了一个源兼容性测试套件,用于根据 Swift 源代码(逐渐增加)语料库对编译器进行回归测试更改。 添加到这个测试套件的项目,都会针对Swift的最新开发版本进行定期构建,实现Swift持续系统集成,也让 Swift 编译器开发人员能够深刻理解 Swift 语言在现实应用中的兼容性要求。
当前项目清单:
- AMScrollingNavbar
- Alamofire
- AsyncNinja
- BlueSocket
- DNS
- Dollar
- GRDB.swift
- Guitar
- IBAnimatable
- Kickstarter-Prelude
- Kickstarter-ReactiveExtensions
- Kingfisher
- Kronos
- Kitura
- Lark
- mapper
- ObjectMapper
- Perfect
- PinkyPromise
- Plank
- PromiseKit
- Realm
- ReSwift
- ReactiveCocoa
- ReactiveSwift
- RxDataSources
- SRP
- Serpent
- Sourcery
- Starscream
- Surge
- SwiftDate
- SwiftGraph
- panelkit
- siesta
- swiftlint
- vapor
添加项目
Swift源兼容性测试套件是社区驱动的,这意味着开源Swift项目所有者可以提交符合验收标准的项目,以纳入测试套件。添加到套件中的项目可用作通用源兼容性测试。
验收标准
要进入Swift源代码兼容性测试套件,项目必须符合以下要求:
- 目标为Linux,macOS或iOS / tvOS / watchOS设备
- 使用Xcode或者SPM软件包管理器
- 支持在Linux或macOS上构建
- 托管在可公开访问的git仓库中
- 产品分支使用Swift 3.0兼容性编译,并通过所有单元测试
- 有维护者及时解决问题
- 与最新GM / Beta版本的Xcode和swiftpm兼容
- 而且项目功能与在编项目没有重叠
- 使用以下开源协议:
- BSD
- MIT
- Apache License, version 2.0
- Eclipse Public License
- Mozilla Public License (MPL) 1.1
- MPL 2.0
- CDDL
添加项目
要将满足验收标准的项目添加到套件中,请执行以下步骤:
- 确保项目在针对Swift 3.0 GM特定情况下成功构建
- 针对源代码兼容性套件存储库创建一个提取请求,修改projects.json以包含要添加到测试套件中的项目引用。
项目索引是一个JSON文件,其中包含Xcode 或Swift Package Manager目标操作的存储库列表。
添加向项目模板等更多内容请查看 Swift 官方网站
转自 http://www.oschina.net/news/84419/swift-source-compatibility