菜单

开发

相关源文件

本页面概述了AutoGPT的开发流程,面向希望为项目做出贡献的开发者。它涵盖了开发工作流程、代码库结构以及使用代码库的最佳实践。有关具体的贡献指南,请参阅贡献;有关CI/CD的详细信息,请参阅CI/CD工作流程;有关测试方法,请参阅测试;有关详细的拉取请求流程,请参阅PR流程

开发工作流

AutoGPT项目遵循标准的GitHub开发工作流程。贡献者会fork代码库,为他们的更改创建分支,并提交拉取请求以供审查和集成。

图示:开发工作流程

来源: CONTRIBUTING.md12-23

存储库结构

AutoGPT代码库组织成不同的区域,每个区域都有特定的目的和贡献要求。

主要组件

代码库包含两个主要系统

  1. 经典AutoGPT - 原始实现
  2. AutoGPT平台 - 带有前端和后端组件的较新平台

图示:代码库组织结构

来源: .github/labeler.yml1-32

贡献流程

开始工作前

  1. 查看路线图,避免重复工作
  2. 在进行重大更改之前,先在开发频道讨论想法
  3. 开始大型功能开发时,创建一个草稿PR
  4. 了解对autogpt_platform 文件夹的贡献受贡献者许可协议约束

拉取请求(PR)要求

提交拉取请求时,开发者应

  1. 清晰地解释更改及其目的
  2. 遵循代码指南
  3. 彻底测试更改
  4. 完成PR模板清单

图示:拉取请求生命周期

来源: .github/PULL_REQUEST_TEMPLATE.md1-38 CONTRIBUTING.md13-23

PR 模板结构

PR模板有助于确保所有贡献都符合项目标准。以下是主要组成部分的细分:

章节目的
更改对所有更改进行简洁的描述
清单验证代码质量和测试
测试计划分步测试方法
配置更改环境更改文档

来源: .github/PULL_REQUEST_TEMPLATE.md1-38 CONTRIBUTING.md13-23

文件标签系统

该项目使用自动标签来根据修改的文件对拉取请求进行分类。这有助于维护者识别更改所影响的区域。

图示:自动PR标签

来源: .github/labeler.yml1-32

开发最佳实践

一般准则

  1. 避免基于个人偏好的不必要更改
  2. 不要提交损坏的代码 - 验证所有更改
  3. 创建集中的拉取请求,解决特定问题
  4. 遵循已建立的代码风格和架构模式
  5. 考虑在代码以外的领域做出贡献(文档、测试等)

表格:开发领域和注意事项

领域关键注意事项
经典 AutoGPT保持与现有功能的兼容性
平台前端遵循React/Next.js最佳实践,确保响应式设计
平台后端遵循FastAPI约定,维护正确的API文档
区块确保适当的隔离,一致的接口
文档清晰、简洁的解释和示例
测试为新功能提供全面的测试覆盖

来源: CONTRIBUTING.md23-25

关键开发资源

AutoGPT项目提供了一些资源来帮助贡献者

  1. 用于讨论的Discord开发频道
  2. 包含贡献指南的Wiki
  3. 用于指导功能开发的项目路线图
  4. 用于任务跟踪的看板

对于那些有兴趣在代码贡献之外更深入地参与项目的人来说,“催化”Wiki页面提供了有关项目管理角色的额外信息。

来源: CONTRIBUTING.md27-38

贡献平台与经典版本

代码库不同部分适用不同的许可条款

  1. AutoGPT平台:对autogpt_platform 文件夹的贡献受贡献者许可协议 (CLA) 约束
  2. 其他文件夹:对代码库其他部分的贡献受MIT许可约束

在为项目特定区域做出贡献之前,请确保了解许可条款。

来源: CONTRIBUTING.md10-11

有关特定开发主题的更详细信息,请参阅以下页面: