本文档为希望为 face_recognition 库做出贡献的开发者提供技术指导。内容涵盖开发环境设置、贡献工作流程、编码标准、测试流程以及构建系统配置。
有关作为最终用户使用该库的信息,请参阅 概述 和 安装与设置。有关测试的详细信息,请参阅 测试。
face_recognition 库除了运行时需求外,还需要特定的开发工具和依赖项。
来源: requirements_dev.txt1-15 requirements.txt1-6
要设置您的本地开发环境,请遵循以下步骤:
Fork 并克隆仓库:
创建并激活虚拟环境:
以开发模式安装包:
安装开发依赖:
face_recognition 项目遵循标准的 GitHub Fork 和 Pull Request 工作流程。下图说明了该过程:
在处理新功能或错误修复时:
创建一个新分支:
对代码库进行修改
测试您的更改,确保它们通过所有检查
提交并推送您的更改
通过 GitHub 界面提交 Pull Request
提交 Pull Request 前,请确保它满足以下要求:
| 要求 | 描述 |
|---|---|
| 测试 | 为任何新功能包含测试 |
| 文档 | 更新新功能的文档;添加 docstrings |
| Python 兼容性 | 代码必须能在 Python 2.7、3.5、3.6、3.7、3.8 和 PyPy 上运行 |
| CI 通过 | 所有测试必须在 Travis CI 中通过 |
face_recognition 库使用全面的测试设置来确保代码质量和功能。
来源: CONTRIBUTING.rst60-66 CONTRIBUTING.rst89-96 requirements_dev.txt5-7
您可以通过多种方式运行测试:
运行所有测试:
运行特定测试:
跨多个 Python 环境进行测试:
face_recognition 项目通过以下方式执行代码质量:
face_recognition 库使用 setuptools 进行构建和打包。版本管理由 bumpversion 处理。
报告 Bug 时,请包含:
在以下地址提交错误报告: https://github.com/ageitgey/face_recognition/issues
当提出功能建议时:
该项目使用 Travis CI 进行持续集成。所有 Pull Request 都会在多个 Python 版本上自动进行测试。
| Python 版本 | 测试环境 |
|---|---|
| 2.7 | 标准版和 PyPy |
| 3.5 | 标准 |
| 3.6 | 标准 |
| 3.7 | 标准 |
| 3.8 | 标准 |
在所有支持的环境中所有测试都通过之前,Pull Request 将不会被合并。
本指南提供了成功为 face_recognition 库做出贡献所需的基本信息。通过遵循这些准则,您将有助于维护该项目的质量和可靠性。