本文共 3648 字,大约阅读时间需要 12 分钟。
近日,苹果公司在 上正式发布首批列入源代码兼容性开源项目的清单。源代码兼容性问题是未来 Swift 新版本的重要目标。为了实现这个目标,(苹果公司的 Swift 编译器团队)建立了一个开放社区公有的源代码测试套件,用于 Swift 自身编译器的源代码在逐渐开发过程中针对这些源代码保持回归测试兼容性。凡是列入到本测试套件的项目,均会针对 Swift 最新开发版本进行定期编译测试,以实现 Swift 持续系统集成,也为我们的 Swift 编译器程序员能够深刻理解 Swift 语言在现实应用中的兼容性要求。
被列编入本项目的基本条件包括:
要将满足验收标准的项目添加到套件中,需要执行以下步骤:
项目索引是一个 JSON 文件,其中包含包含 Xcode 或 Swift Package Manager 目标操作的存储库列表。
添加新的 Swift Package Manager 项目,案例如下:
{ "repository": "Git", "url": "https://github.com/example/project.git", "path": "project", "branch": "master", "maintainer": "email@example.com", "compatibility": { "3.0": { "commit": "195cd8cde2bb717242b3081f9c367ccd0a2f0121" } }, "platforms": [ "Darwin" ], "actions": [ { "action": "BuildSwiftPackage", "configuration": "release" }, { "action": "TestSwiftPackage" } ]}
commit
字段指定提交哈希值将存储库固定。它包含在一个compatibility
字段中,该字段指定了 Swift 的版本,该版本已知可以编译。可以指定与 Swift 的不同版本兼容的多个 commit
。
platforms
字段指定可用于构建项目的平台。目前可以指定 Linux 和 Darwin。
如果不支持测试,请删除测试操作条目。
添加新的 Swift Xcode 工作区,可使用如下模板:
{ "repository": "Git", "url": "https://github.com/example/project.git", "path": "project", "branch": "master", "maintainer": "email@example.com", "compatibility": { "3.0": { "commit": "195cd8cde2bb717242b3081f9c367ccd0a2f0121" } }, "platforms": [ "Darwin" ], "actions": [ { "action": "BuildXcodeWorkspaceScheme", "workspace": "project.xcworkspace", "scheme": "project OSX", "destination": "platform=macOS", "configuration": "Release" }, { "action": "BuildXcodeWorkspaceScheme", "workspace": "project.xcworkspace", "scheme": "project iOS", "destination": "generic/platform=iOS", "configuration": "Release" }, { "action": "BuildXcodeWorkspaceScheme", "workspace": "project.xcworkspace", "scheme": "project tvOS", "destination": "generic/platform=tvOS", "configuration": "Release" }, { "action": "BuildXcodeWorkspaceScheme", "workspace": "project.xcworkspace", "scheme": "project watchOS", "destination": "generic/platform=watchOS", "configuration": "Release" }, { "action": "TestXcodeWorkspaceScheme", "workspace": "project.xcworkspace", "scheme": "project OSX", "destination": "platform=macOS" }, { "action": "TestXcodeWorkspaceScheme", "workspace": "project.xcworkspace", "scheme": "project iOS", "destination": "platform=iOS Simulator,name=iPhone 7" }, { "action": "TestXcodeWorkspaceScheme", "workspace": "project.xcworkspace", "scheme": "project tvOS", "destination": "platform=tvOS Simulator,name=Apple TV 1080p" } ]}
添加新的 Swift Xcode 项目,模板如下:
{ "repository": "Git", "url": "https://github.com/example/project.git", "path": "project", "branch": "master", "maintainer": "email@example.com", "compatibility": { "3.0": { "commit": "195cd8cde2bb717242b3081f9c367ccd0a2f0121" } }, "platforms": [ "Darwin" ], "actions": [ { "action": "BuildXcodeProjectTarget", "project": "project.xcodeproj", "target": "project", "destination": "generic/platform=iOS", "configuration": "Release" } ]}
更多精彩内容,详见 Swift 官方网站: