SSWG 孵化流程

概览

正如服务器页面所述,Swift 服务器工作组 (SSWG) 的目标是为使用 Swift 进行服务器应用程序开发创建强大、健康的生态系统。实现此目标的一种途径是鼓励开发高质量、维护良好的库和工具,以便社区可以放心地依赖它们。

SSWG 和 Swift 演进流程之间的区别在于,作为工作组努力成果而产生的面向服务器的库和工具将存在于 Swift 语言项目本身之外,并且它们将分布在不同的代码库中。

Apple 和 Vapor 团队的工程师将积极参与此类库和工具的开发,我们非常希望看到社区加入这项工作。为此,工作组定义并启动了一个孵化流程,任何人都可以在其中提出、提议、开发和贡献此类库和工具。

孵化流程旨在帮助培育和成熟项目,确保标准化、质量和持久性。它还力求提高可能为 SSWG 使命增加价值的想法、实验或其他早期工作的可见性。以下文档详细介绍了此孵化流程。SSWG 指导小组的角色类似于 Swift 核心团队,并将根据社区的反馈,对推动提案/提议通过孵化流程做出最终决定。就像 Swift 演进一样,任何人都可以提出提案和提议,成为 SSWG 指导小组的成员绝不是一项要求。

流程

孵化分为以下阶段:推介 (Pitch)提案 (Proposal)开发 (Development)推荐 (Recommendation)。“开发”阶段是孵化过程的主要部分。SSWG 将维护一个公开的“Swift 服务器生态系统”索引页面,其中将列出所有推荐的工具和库,以及正在孵化过程中的项目及其各自的孵化级别。

推介 (Pitch)

推介是介绍新库或工具想法的引言。它们还可以介绍对现有工具的新功能或更改的想法。推介用于收集社区的反馈,并帮助在编写代码之前定义项目的确切范围。它们应展示如何与 SSWG 改善服务器端 Swift 的目标保持一致。推介通过在 Swift 服务器论坛区域中创建一个新主题来提交。

提案 (Proposal)

为了使推介进入提案阶段,它必须得到至少两名 SSWG 成员的认可。拟议代码的范围需要与认可的推介密切一致,并且要根据下面定义的 SSWG 毕业标准进行审查。

提案通过创建 PR 提交给 SSWG,该 PR 将提案文档添加到提案目录。提案遵循模板,并包含以下信息

一旦提案 PR 提交,SSWG 将在其双周会议期间分配一名审查经理。审查经理的职责包括

SSWG 以双周为周期对待审提案进行投票,目标是每月至少对两个提案进行投票。

投票结束后,审查经理将

  1. 在审查主题中宣布投票结果。
  2. 根据投票结果更新提案的状态。
  3. 关闭审查主题。

毕业标准

每个 SSWG 项目都有相关的成熟度级别:沙箱 (Sandbox)孵化中 (Incubating)已毕业 (Graduated)。提案应说明其首选的初始成熟度级别,SSWG 将进行投票以决定实际级别。

项目要被接受为“孵化中”或“已毕业”,需要获得绝对多数(三分之二)的票数。如果进入“已毕业”级别没有获得绝对多数票,则投向“已毕业”的票数将重新计为进入“孵化中”级别的票数。如果进入“孵化中”级别没有获得绝对多数票,则所有票数将重新计为进入“沙箱”级别的赞助。如果至少没有两位赞助者,则提案将被拒绝。

沙箱级别

要被沙箱级别接受,项目必须满足下面详述的SSWG 最低要求,并获得至少两位 SSWG 赞助者的认可。

早期采用者应格外谨慎地对待早期阶段的项目。虽然沙箱项目可以安全试用,但预计某些项目可能会失败,并且永远不会进入下一个成熟度级别。不保证生产就绪性、用户或专业级别的支持。因此,用户必须运用自己的判断力。

孵化中级别

要被孵化中级别接受,项目必须满足沙箱级别要求,外加

已毕业级别

要被已毕业级别接受,项目必须满足下面详述的SSWG 毕业要求,外加

流程图

process diagram

生态系统索引

所有项目及其各自的级别都将列在Swift 服务器生态系统索引中。如果多个项目解决了特定问题(例如,两个类似的数据库驱动程序),它们将按受欢迎程度排序。SSWG 保留为关键构建块(例如,日志记录或指标 API)定义单一解决方案的权利,在这种情况下,跨生态系统的一致性至关重要。

建议已被任何成熟度级别接受的项目在其项目的 README 中列出成熟度级别,并带有定义的相应徽章

sswg:sandbox sswg:incubating sswg:graduated

SSWG 将每 6 个月召开一次会议以审查所有项目,并且保留降级、存档或删除不再满足最低要求的项目的权利。例如,不再定期更新或未能及时解决安全问题的“已毕业”项目。同样,SSWG 保留删除或存档不再更新的推介和提案的权利。

对 Swift 服务器生态系统索引页面的更改将由 SSWG 使用 Swift 服务器论坛宣布。

最低要求

毕业要求

安全性

请遵循安全性部分中列出的指南。

技术最佳实践

变更管理

对孵化过程的更改必须记录在案并公开,并且受语义版本控制方案的约束

导致版本号增加的更新需要 SSWG 的绝对多数投票。琐碎的更改,例如修复拼写错误或格式错误,不需要版本号增加。

资源和参考