Help us learn about your current experience with the documentation. Take the survey.

Python 合并请求指南

GitLab 标准 代码审查指南 同样适用于 Python 项目。

如何设置 Python 代码审查流程

在 GitLab 设置 Python 代码审查流程主要有两种方法:

  1. 成熟项目:较大的 Python 项目通常通过 reviewer-roulette 拥有自己的专属审查者池。要设置此功能,请参阅 设置审查者轮盘
  2. 小型项目:对于贡献者较少的项目,我们在整个 GitLab 中维护一个共享的 Python 审查者池。

设置审查者轮盘

本节介绍如何将您的项目与 审查者轮盘 和其他资源集成,以将项目贡献者与 Python 专家连接起来进行代码审查。

对于大型和小型项目,审查者轮盘都可以自动化审查者分配流程。设置方法如下:

  1. 将 Python 项目添加到 GitLab 项目列表
  2. 项目维护者应在 GitLab.org 维护者仓库 中为项目添加一个组。
  3. 在您的项目中安装并配置 Dangerfiles,确保 CI 正确设置 以启用审查者轮盘插件。

然后,根据您的项目规模:

  • 对于有足够贡献者的大型项目

    • 合格的团队成员应将 Python 项目添加到其在 团队成员团队数据库 中的个人条目的 projects 字段中,指定适当的角色,如审查者或维护者。
    • 个人轮盘配置 添加到您的项目中。
  • 对于小型项目(例如,贡献者少于 10 人)

    • 通过将 共享池配置 添加到您的项目中,利用公司范围内的 Python 专家池。
    • 您还可以鼓励贡献者或其他非领域审查者在需要时在团队的 Slack 频道中寻求领域专业知识。

创建合并请求时,审查者轮盘将根据您的配置随机选择合格的审查者。

其他建议

有关更多信息,请参阅 审查者轮盘

寻求帮助

如果贡献者对 Python 特定的审查有疑问或需要额外帮助,请引导他们到 GitLab 的 #python#python_maintainers Slack 频道寻求帮助。

如何成为 Python 维护者

成熟项目有自己的审查者和维护者池。小型或新项目可以从 GitLab 成熟 Python 专家的帮助中受益。

GitLab Python 专家

GitLab Python 专家是具有 Python 专业知识的专业人士,他们致力于改进不同项目的代码质量。 要成为其中一员:

  1. 创建合并请求,在您的 团队 文件的 projects 下添加 python: maintainer 能力。
  2. 使用 此模板 并遵循描述的流程。

一旦您的合并请求被合并,您将被添加到 Python 维护者组中。

特定项目的审查者和维护者

每个项目都可以建立自己的审查流程。请查阅维护者指南和/或联系当前维护者获取更多信息。

维护者职责

除了代码审查外,维护者还负责指导架构决策,并将 GitLab.com 中引入的相关工程实践监控并应用到其 Python 项目中。这有助于确保 Python 项目与公司标准保持一致并保持一致性。保持一致性可以简化 GitLab.com 和 Python 项目之间的过渡,同时减少上下文切换的开销。

维护者的技术要求

  • 对项目中使用的 Python 框架有丰富经验。常用的框架包括:FastAPIPydantic 等。
  • 熟练掌握 Python 测试框架,如 pytest,包括高级测试策略(例如,模拟、集成测试和测试驱动开发)。
  • 了解向后兼容性考虑(工作项)。

代码审查目标

  • 验证并确认更改符合项目中的样式指南(工作项)和现有模式。
  • 在适用的情况下,确保为 MR 中引入的更改添加测试覆盖。
  • 审查性能影响。
  • 检查安全漏洞。
  • 评估代码更改对现有系统的影响。
  • 验证 MR 是否具有正确的 MR 类型标签 并已分配给当前里程碑。

其他职责

  • 维护准确完整的文档。
  • 根据需要监控和更新包依赖。
  • 指导其他工程师了解 Python 最佳实践。
  • 评估和提议新的工具和库。
  • 监控性能并提议优化。
  • 确保维护安全标准。
  • 通过定期监控和采用 GitLab.com 中引入的相关工程实践,确保项目与 GitLab 标准保持一致。
  • 建立并执行清晰的代码审查流程。

代码审查最佳实践

在编写和审查代码时,请遵循我们的样式指南。鼓励代码作者和审查者关注以下领域:

审查重点领域

在审查 GitLab 的 Python 代码时,请考虑以下领域:

1. 代码风格

  • 代码遵循我们约定的 Python 格式标准(在流水线中强制执行)。
  • 命名约定清晰且具有描述性。
  • 所有公共函数和类都使用文档字符串。

2. 代码质量

  • 函数专注,不过于复杂且可测试。
  • 代码可读,无需过多注释。
  • 没有未使用的代码或注释掉的代码。

3. 测试

  • 新代码的测试覆盖充分。
  • 测试遵循命名约定 test_{被测试的文件}.py
  • 适当使用模拟来处理外部依赖。

4. 文档

  • 函数和类有清晰的文档字符串。
  • 复杂逻辑有解释性注释。
  • 添加功能时更新文档。

5. 安全

  • 代码遵循 GitLab 安全指南。
  • 输入得到适当验证。
  • 错误处理得当。

向后兼容性要求

在维护面向客户的服务时,维护者必须确保在支持的 GitLab 版本之间保持向后兼容性。请参阅 GitLab 支持声明 和 Python 部署指南。在合并更改之前,请验证它们是否与所有支持的版本保持兼容,以防止不同 GitLab 版本的用户受到干扰。