Python 合并请求指南
GitLab 标准 代码审查指南 同样适用于 Python 项目。
如何设置 Python 代码审查流程
在 GitLab 设置 Python 代码审查流程主要有两种方法:
- 成熟项目:较大的 Python 项目通常通过 reviewer-roulette 拥有自己的专属审查者池。要设置此功能,请参阅 设置审查者轮盘。
- 小型项目:对于贡献者较少的项目,我们在整个 GitLab 中维护一个共享的 Python 审查者池。
设置审查者轮盘
本节介绍如何将您的项目与 审查者轮盘 和其他资源集成,以将项目贡献者与 Python 专家连接起来进行代码审查。
对于大型和小型项目,审查者轮盘都可以自动化审查者分配流程。设置方法如下:
- 将 Python 项目添加到 GitLab 项目列表。
- 项目维护者应在 GitLab.org 维护者仓库 中为项目添加一个组。
- 在您的项目中安装并配置 Dangerfiles,确保 CI 正确设置 以启用审查者轮盘插件。
然后,根据您的项目规模:
-
对于有足够贡献者的大型项目:
-
对于小型项目(例如,贡献者少于 10 人):
- 通过将 共享池配置 添加到您的项目中,利用公司范围内的 Python 专家池。
- 您还可以鼓励贡献者或其他非领域审查者在需要时在团队的 Slack 频道中寻求领域专业知识。
创建合并请求时,审查者轮盘将根据您的配置随机选择合格的审查者。
其他建议
有关更多信息,请参阅 审查者轮盘
寻求帮助
如果贡献者对 Python 特定的审查有疑问或需要额外帮助,请引导他们到 GitLab 的 #python 或 #python_maintainers Slack 频道寻求帮助。
如何成为 Python 维护者
成熟项目有自己的审查者和维护者池。小型或新项目可以从 GitLab 成熟 Python 专家的帮助中受益。
GitLab Python 专家
GitLab Python 专家是具有 Python 专业知识的专业人士,他们致力于改进不同项目的代码质量。 要成为其中一员:
一旦您的合并请求被合并,您将被添加到 Python 维护者组中。
特定项目的审查者和维护者
每个项目都可以建立自己的审查流程。请查阅维护者指南和/或联系当前维护者获取更多信息。
维护者职责
除了代码审查外,维护者还负责指导架构决策,并将 GitLab.com 中引入的相关工程实践监控并应用到其 Python 项目中。这有助于确保 Python 项目与公司标准保持一致并保持一致性。保持一致性可以简化 GitLab.com 和 Python 项目之间的过渡,同时减少上下文切换的开销。
维护者的技术要求:
- 对项目中使用的 Python 框架有丰富经验。常用的框架包括:FastAPI 和 Pydantic 等。
- 熟练掌握 Python 测试框架,如
pytest,包括高级测试策略(例如,模拟、集成测试和测试驱动开发)。 - 了解向后兼容性考虑(工作项)。
代码审查目标:
- 验证并确认更改符合项目中的样式指南(工作项)和现有模式。
- 在适用的情况下,确保为 MR 中引入的更改添加测试覆盖。
- 审查性能影响。
- 检查安全漏洞。
- 评估代码更改对现有系统的影响。
- 验证 MR 是否具有正确的 MR 类型标签 并已分配给当前里程碑。
其他职责:
- 维护准确完整的文档。
- 根据需要监控和更新包依赖。
- 指导其他工程师了解 Python 最佳实践。
- 评估和提议新的工具和库。
- 监控性能并提议优化。
- 确保维护安全标准。
- 通过定期监控和采用 GitLab.com 中引入的相关工程实践,确保项目与 GitLab 标准保持一致。
- 建立并执行清晰的代码审查流程。
代码审查最佳实践
在编写和审查代码时,请遵循我们的样式指南。鼓励代码作者和审查者关注以下领域:
审查重点领域
在审查 GitLab 的 Python 代码时,请考虑以下领域:
1. 代码风格
- 代码遵循我们约定的 Python 格式标准(在流水线中强制执行)。
- 命名约定清晰且具有描述性。
- 所有公共函数和类都使用文档字符串。
2. 代码质量
- 函数专注,不过于复杂且可测试。
- 代码可读,无需过多注释。
- 没有未使用的代码或注释掉的代码。
3. 测试
- 新代码的测试覆盖充分。
- 测试遵循命名约定
test_{被测试的文件}.py。 - 适当使用模拟来处理外部依赖。
4. 文档
- 函数和类有清晰的文档字符串。
- 复杂逻辑有解释性注释。
- 添加功能时更新文档。
5. 安全
- 代码遵循 GitLab 安全指南。
- 输入得到适当验证。
- 错误处理得当。
向后兼容性要求
在维护面向客户的服务时,维护者必须确保在支持的 GitLab 版本之间保持向后兼容性。请参阅 GitLab 支持声明 和 Python 部署指南。在合并更改之前,请验证它们是否与所有支持的版本保持兼容,以防止不同 GitLab 版本的用户受到干扰。