菜单

PR 流程

相关源文件

本文档介绍了向 AutoGPT 仓库贡献代码的拉取请求(PR)流程。它涵盖了 PR 从初始准备到最终合并的整个生命周期。有关通用贡献指南,请参阅 贡献指南

PR 生命周期概览

下图展示了 AutoGPT 项目中拉取请求的典型生命周期

来源:CONTRIBUTING.md15-20

准备提交 PR

在提交拉取请求之前,请务必遵循以下准备步骤

  1. 避免重复工作:检查现有的 issue 和 PR,确保您没有重复劳动

  2. 协作处理大型更改:对于重要的功能或更改,建议

    • 在 Discord 的开发频道讨论您的想法
    • 在处理大型更改时尽早创建草稿 PR,以表明正在进行的工作
  3. 遵循代码指南:确保您的代码遵循项目的风格和质量标准

来源:CONTRIBUTING.md14-23

PR 模板和要求

创建拉取请求时,您需要使用项目的 PR 模板,其中包含几个部分

1. 更改描述

清楚地解释您正在进行的更改以及为什么需要这些更改。模板会提示您

  • 解释更改的必要性
  • 简要描述 PR 中进行的所有修改

2. 清单部分

PR 模板包含一个清单,该清单根据更改的类型而有所不同

对于代码更改

  • 清晰的更改列表
  • 测试计划创建
  • 验证根据计划已对更改进行了测试

对于配置更改

  • 必要时更新 .env.example
  • 必要时更新 docker-compose.yml
  • 在 PR 描述中包含配置更改列表

来源:.github/PULL_REQUEST_TEMPLATE.md1-38

PR 测试计划

测试计划是 PR 流程的关键部分。模板包含一个示例测试计划,可能包括以下任务

  • 创建并执行具有多个模块的代理
  • 测试从文件上传导入功能
  • 验证市场集成
  • 确认代理编辑功能正常工作

您应该根据 PR 引入的具体更改来定制您的测试计划。

来源:.github/PULL_REQUEST_TEMPLATE.md8-24

自动化标签系统

AutoGPT 使用自动化标签系统根据 PR 修改的文件对其进行分类。这有助于维护者识别代码库的哪些部分受到影响。

标签系统应用诸如以下之类的标签

标签更改包含时应用
Classic AutoGPT Agentclassic/original_autogpt/ 中的文件
Classic Benchmarkclassic/benchmark/ 中的文件
Classic Frontendclassic/frontend/ 中的文件
Forgeclassic/forge/ 中的文件
documentationdocs/ 中的文件
platform/frontendautogpt_platform/frontend/ 中的文件
platform/backendautogpt_platform/backend/ 中的文件(不包括模块)
platform/blocksautogpt_platform/backend/backend/blocks/ 中的文件

来源:.github/labeler.yml1-33

拉取请求的最佳实践

为确保您的 PR 顺利处理

  1. 清晰简洁:清楚地说明您的 PR 的作用以及为什么需要它
  2. 充分测试:不要提交损坏的代码;验证您的更改是否按预期工作
  3. 保持更改的专注性:避免在一个 PR 中合并不相关的更改
  4. 避免不必要的更改:不要仅仅出于个人偏好而进行更改
  5. 及时响应反馈:及时处理审阅者的评论
  6. 遵循项目约定:遵守既定的代码风格和架构

对于修改 autogpt_platform 文件夹的 PR,请注意,贡献将遵循项目的贡献者许可协议,而不是适用于其他文件夹的 MIT 许可证。

来源:CONTRIBUTING.md10-23

PR 提交架构

下图说明了 PR 流程如何与 AutoGPT 项目的开发工作流集成

来源:CONTRIBUTING.md14-24 .github/PULL_REQUEST_TEMPLATE.md1-38

PR 审阅标准

在审阅 PR 时,维护者会考虑几个因素

  1. 与项目目标的一致性:PR 是否与项目的路线图和目标一致?
  2. 代码质量:代码是否遵循最佳实践和项目标准?
  3. 测试覆盖率:是否有足够的测试来验证更改?
  4. 文档:更改是否已正确记录?
  5. 影响:更改如何影响现有功能?

PR 模板有助于确保在开始审阅过程之前满足这些标准。

来源:CONTRIBUTING.md14-28 .github/PULL_REQUEST_TEMPLATE.md7-15

贡献不同组件

AutoGPT 项目的不同组件可能有特定的 PR 要求

  1. AutoGPT 平台:对 autogpt_platform 文件夹的贡献需要同意贡献者许可协议
  2. Classic AutoGPT:对其他文件夹的贡献属于 MIT 许可证
  3. 文档:文档更改应清晰准确

自动化标签系统有助于根据受影响的组件将 PR 路由给相应的维护者。

来源:CONTRIBUTING.md10-11 .github/labeler.yml1-33

结论

遵循本文档概述的 PR 流程将有助于确保您的 AutoGPT 贡献得到高效处理并顺利集成到项目中。请记住,通过开发渠道与社区互动,并创建专注、经过充分测试且更改文档清晰的拉取请求。