Google 致力于为黑人社区推动种族平等。查看具体举措
此页面由 Cloud Translation API 翻译。
Switch to English

TensorFlow RFC流程

TensorFlow的每一项新功能都是从征求意见书(RFC)开始的。

RFC是描述需求和解决需求的建议更改的文档。具体来说,RFC将:

TensorFlow评论请求(RFC)的目的是通过从利益相关者和专家那里获得反馈,并广泛地交流设计变更,来使TensorFlow社区参与开发。

如何提交RFC

  1. 在提交RFC之前,请与项目贡献者和维护者讨论您的目标,并尽早获得反馈。使用有关项目的开发人员邮件列表(developers@tensorflow.org或相关SIG的列表)。

  2. 起草您的RFC。

    • 遵循RFC模板
    • 将RFC文件命名为YYYYMMDD-descriptive-name.md ,其中YYYYMMDD是提交日期,而descriptive-name与RFC的标题相关。 (例如,如果您的RFC标题为Parallel Widgets API ,则可以使用文件名20180531-parallel-widgets.md
    • 如果您有图像或其他辅助文件,请创建一个格式为YYYYMMDD-descriptive-name的目录,用于在其中存储这些文件。

    编写RFC草案后,提交之前请先征求维护者和贡献者的反馈。

    不需要编写实现代码,但可以帮助进行设计讨论。

  3. 招募赞助商。

    • 发起人必须是项目的维护者。
    • 在发布PR之前,请先在RFC中确定发起人。

    可以在没有发起人的情况下发布RFC,但是如果在发布PR的一个月内仍然没有发起人,它将被关闭。

  4. 将您的RFC作为请求请求提交到tensorflow / community / rfcs

    使用Markdown在请求请求的注释中包括标头表和“ 目标”部分的内容。有关示例,请参见此示例RFC 。包括共同作者,审稿人和赞助者的GitHub句柄。

    在PR的顶部,确定评论期限。距离发布公关至少两个星期

  5. 通过电子邮件向开发人员邮件列表发送简短说明,PR的链接和审阅请求。如本例所示 ,遵循以前的邮件格式。

  6. 发起人将在RFC PR发布后的两周内要求召开审核委员会会议。如果讨论很活跃,请等到解决后再进行审核。审查会议的目的是解决小问题;应当在重大问题上取得共识。

  7. 会议可以批准,拒绝RFC或要求进行更改,然后才能再次考虑。批准的RFC将合并到community / rfcs中 ,而拒绝的RFC将关闭其PR。

RFC参与者

RFC流程涉及许多人:

  • RFC的作者 -一个或多个社区成员,他们编写RFC并致力于在整个过程中倡导RFC

  • RFC赞助商 -赞助RFC并将通过RFC审查过程进行管理的维护者

  • 审核委员会 -一组维护人员,负责建议采用RFC

  • 任何社区成员都可以通过提供有关RFC是否满足其需求的反馈来提供帮助。

RFC赞助商

发起人是项目维护者,负责确保RFC流程的最佳结果。这包括:

  • 提倡拟议的设计。
  • 指导RFC遵守现有的设计和样式约定。
  • 指导审查委员会达成富有成果的共识。
  • 如果审核委员会要求进行更改,请确保进行了更改并寻求委员会成员的后续批准。
  • 如果RFC转向实施:
    • 确保建议的实施符合设计。
    • 与有关方面进行协调,以成功实施土地。

RFC审核委员会

审核委员会在协商一致的基础上决定是否批准,拒绝或请求更改。他们负责:

  • 确保考虑到公众反馈的实质性内容。
  • 将他们的会议记录作为评论添加到PR。
  • 提供做出决定的理由。

审查委员会的组成可能会根据每个项目的特定治理方式和领导而变化。对于核心TensorFlow,该委员会将由TensorFlow项目的贡献者组成,他们在相关领域领域具有专业知识。

社区成员和RFC流程

RFC的目的是确保TensorFlow的新更改能够很好地代表社区并为其提供服务。社区成员有责任参与对结果感兴趣的RFC审查。

对RFC感兴趣的社区成员应:

  • 尽快提供反馈意见 ,以便有足够的时间考虑。
  • 提供反馈之前,请通读RFC
  • 具有文明和建设性

实施新功能

一旦RFC被批准,就可以开始实施。

如果您正在研究用于实现RFC的新代码:

  • 确保您了解RFC批准的功能和设计。在开始工作之前,提出问题并讨论方法。
  • 新功能必须包括新的单元测试,以验证该功能是否按预期工作。在编写代码之前编写这些测试是一个好主意。
  • 遵循TensorFlow代码样式指南
  • 添加或更新相关的API文档。在新文档中参考RFC。
  • 遵循您正在贡献的项目存储库中CONTRIBUTING.md文件中列出的任何其他准则。
  • 提交代码之前,请运行单元测试。
  • 与RFC赞助商一起成功获取新代码。

保持高标准

在我们鼓励和庆祝每个贡献者的同时,RFC接受的门槛故意保持很高。在以下任何一个阶段中,新功能可能会被拒绝或需要进行重大修改:

  • 有关邮件列表的初始设计对话。
  • 未能招募赞助商。
  • 反馈阶段存在重大异议。
  • 在设计审查期间未能达成共识。
  • 在实施过程中提出的问题(例如:无法实现向后兼容性,对维护的担忧)。

如果此过程运行良好,则RFC有望在早期而不是稍后阶段失败。批准的RFC不能保证一定会承诺实施,接受建议的RFC实施仍需经过常规的代码审查过程。

如果您对此过程有任何疑问,请随时在开发人员邮件列表上询问或在tensorflow / community中提出问题。