库管理

这是一个动态文档,解释了我们如何协同管理古腾堡存储库。如果您想建议更改,请打开问题进行讨论或向文档提交拉取请求。

本文件涵盖:

问题

健康的问题列表是指问题相关且可操作的列表。相关从某种意义上说,它们与项目当前的优先事项有关。可采取行动从这个意义上说,很清楚需要采取什么行动来解决问题。

任何不相关或不可操作的问题都应该关闭,因为它们阻碍了项目的进展。把问题清单想象成一张桌子:你的桌子越凌乱,就越难利用这个空间完成工作。

标签

所有问题都应该有一个或多个标签.

工作流标签以“需要”开头,可以根据需要应用。理想情况下,每个工作流标签后面都有一个组,例如需要辅助功能反馈,测试团队需要测试等。

优先级高OMGWTFBBQ优先级问题应该有一个受让人和/或处于活动里程碑中。

作为第一步,应在相关的支持论坛上发布帮助请求或“如何”问题。如果某个问题可能是错误但不清楚,支持团队或论坛志愿者可以帮助解决该问题,以帮助获取有效错误报告所需的所有正确信息。

以下是您可能经常看到的一些标签:

  • 良好的首次发行–确定的问题适合新贡献者处理。评论以注意您打算处理该问题,并在提交的请求中引用问题编号。
  • 良好的首次审查–Pull请求被确定为适合对代码评审感兴趣的新贡献者。
  • 需要辅助功能反馈–影响可访问性并需要相应审查的更改(例如标记更改)。
  • 需要设计反馈–以某种方式修改设计或用户体验并需要签署的更改。
  • [类型]Bug–现有功能以某种方式被破坏。
  • [类型]增强功能–古腾堡如果再加上这项改进会更好。
  • [类型]插件互操作性–Gutenberg与插件或扩展之间冲突的文档。应该通知插件作者,并提供有关如何寻址的文档。
  • [状态]需要更多信息–该问题需要更多信息,以便采取行动并具有相关性。这通常需要原始报告人的跟进。

签出标签目录获取所有标签的列表。

里程碑

我们把问题放在里程碑以便更好地对它们进行分类。问题从添加到里程碑WordPress(文字出版社)和拉请求被添加到以结尾的里程碑中(古腾堡).

以下是您可能会看到的一些里程碑:

  • WordPress X.Y:未来WordPress版本应完成的任务。
  • X.Y(古腾堡):针对古腾堡插件X.Y版本的公关。
  • 未来:每个人都认为这是一件好事,但不属于其他标准。

分类问题

为了保持问题列表的健康,需要定期对其进行分类。急诊分诊台是审查现有问题的做法,以确保它们相关、可操作,并拥有所需的所有信息。

任何人都可以帮助分类,尽管您需要Gutenberg存储库上的贡献者权限才能修改问题的标签或编辑其标题。

请参阅Triage Contributors指南了解详细信息。

Pull请求

Gutenberg对所有代码和文档更改都遵循一个特性分支请求工作流。从高层来看,流程如下:

  1. 在本地签出新的功能分支。
  2. 进行更改,彻底测试。
  3. 当你满意时,提交你的更改,并推动分支。
  4. 打开您的拉动请求。
  5. 如果您是具有适当访问权限的常规投稿人,请适当标记和命名您的推送请求(请参阅下文)。

对于标记和命名拉请求,这里有一些准则需要考虑,以使编译changelog更加高效和有序。这些准则对经常捐款的人尤其重要。不要让以下内容成为分享工作的拦路虎——错误是意料之中的,而且很容易纠正!

  • 在使用实验屏幕和功能时,应用[类型]实验标签而不是功能,增强等。
  • 在为技术包开发新功能(脚本、创建块、添加反应挂钩等)时,应用[类型]新API标签而不是功能,增强等。
  • 当修复错误或对项目中使用的内部工具进行增强时,请应用[类型]构建工具而不是漏洞,增强
  • 在pull请求标题中,与其描述为修复问题而进行的代码更改,不如考虑引用正在修复的实际错误。例如:与其说“检查组件中的可空对象”,不如说“单击复制块按钮时修复编辑器破损”。

在这一过程中,还有几点需要提及:

  • 非平凡的拉请求之前应该有一个相关的问题,它定义了要解决的问题,并允许在实际编写代码之前讨论最合适的解决方案。
  • 为了更容易合并代码,每个请求应该只包含一个概念更改。保持贡献原子化可以使拉请求讨论集中在一个主题上,并可以根据具体情况批准更改。
  • 单独的请求可以解决与其链接的问题不同的项目或待办事项,如果问题不是普通问题,则不需要单个请求来解决单个问题。

代码审查

除了自动化测试外,每个pull请求都要经过手动代码审查。代码审查的目标最好是:

  • 正确-更改是否达到预期效果?
  • 安全-邪恶的一方会找到某种方法来利用这一变化吗?
  • 可读性——几个月后,你未来的自己能理解这种变化吗?
  • 优雅-这一变化是否符合整体风格和建筑的美学要求?
  • 利他主义——这种改变如何有助于更大的整体?

作为审阅者,你的反馈应该集中在想法上,而不是人。寻求理解、尊重并专注于建设性对话。

作为贡献者,您的责任是从建议中学习,并根据反馈重复您的拉请求。寻求合作,为更大的整体做出尽可能最好的贡献。

每个愿意尝试代码审查的人都鼓励进行代码审查。如果你审查了一个请求,并且对更改很有信心,那么批准它。如果你对它准备合并没有完全的信心,那么在你的审查中添加一条评论,说它应该在最终批准之前对它进行另一次审查。这可以帮助筛选出明显的错误并简化核心成员的审查。后续的复习也将有助于提高你对未来复习的信心。

如果你还不愿意留下完整的评论,试着评论一位公关。关于功能或更改背后的理由的问题也很有帮助。您还可以对理解的部分代码的更改发表评论,而无需留下完整的评论。

如果您难以获得评论,请参阅:如何审核您的拉取请求?

设计审查

如果您的拉请求影响设计/UI,则需要适当标记以提醒设计。要请求设计审查,请添加需要设计反馈标签。如果有任何PR需要更新设计/UI,请使用Figma库更新标签。

作为指南,应审查的变更:

  • 基于先前设计的更改,以确认设计在更改后仍然有效。
  • 任何在视觉上改变事物的东西。
  • 如果你只是想对一个想法或探索进行设计反馈。

合并拉入请求

拉取请求通常可以在以下情况下合并:

  • 认为对代码库进行了值得的更改。
  • 符合所有相关规范审查标准。
  • 必要时进行充分的测试。
  • 针对所有潜在的边缘情况进行审查。
  • 已正确添加更改日志条目。
  • 由原作者以外的人审阅。
  • 重新定位到最新版本的大旅行箱分支。

最终的拉取请求合并决策由@wordpress/gutenberg-core公司团队。

GitHub上WordPress组织的所有成员都有能力审查和合并拉取请求。如果你已经审查了一份公关并且对代码有信心,那么批准拉取请求和评语ping@wordpress/gutenberg-core公司或参与PR的特定核心成员。一旦他们确认没有异议,您可以将PR合并到主干中。

大多数拉入请求都会自动分配一个发布里程碑,但请确保为合并的拉入请求分配了一个里程碑。这样做将创建代码何时到达的历史遗留,并使所有项目贡献者(甚至非技术贡献者)都可以访问此信息。

关闭拉取请求

有时,拉请求可能无法合并,无论对其应用了多少额外的工作(例如超出范围)。在这些情况下,最好与贡献者进行亲切的沟通,同时描述为什么拉请求被关闭,这将鼓励未来的有效参与。

确保:

  1. 感谢贡献者的时间和努力。
  2. 充分解释决定结束拉取请求背后的理由。
  3. 链接到尽可能多的支持文档。

如果您希望使用模板:

感谢____为您在这个拉取请求上花费的时间。

我关闭此拉取请求是因为____。为了进一步澄清,____。

有关更多详细信息,请参阅____和____。

团队

项目中使用了两个GitHub团队。

  • 古腾堡核电站:由积极参与项目的人员组成的团队:定期参加会议,参加分类会议,定期进行审查,处理功能和错误修复,执行插件和npm发布。

  • 古腾堡:由贡献者组成的团队,对项目至少有2-3个有意义的贡献。

如果您符合以下标准,即一些有意义的贡献已被接受到存储库中,并且希望被添加到古腾堡团队,请随时在#核心编辑松弛通道.

项目

我们使用GitHub项目跟踪那些不能立即采取行动的细节,但我们希望保留这些细节以备将来参考。

一些关键项目包括:

  • 第2阶段–古腾堡第二阶段所需的开发任务。
  • 第二阶段设计–第2阶段的设计任务。注:具体项目可能有自己的董事会。
  • 思想–包含门票的项目,虽然暂时关闭,但可以在未来重新访问。