近日,苹果公司在 Swift 官方网站上正式发布首批列入源代码兼容性开源项目的清单。源代码兼容性问题是未来 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" }
] }
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是一个个人学习交流的平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽,造成漏登,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。