菜单

开发和贡献

相关源文件

本文档为希望为 face_recognition 库做出贡献的开发者提供技术指导。内容涵盖开发环境设置、贡献工作流程、编码标准、测试流程以及构建系统配置。

有关作为最终用户使用该库的信息,请参阅 概述安装与设置。有关测试的详细信息,请参阅 测试

开发环境设置

face_recognition 库除了运行时需求外,还需要特定的开发工具和依赖项。

来源: requirements_dev.txt1-15 requirements.txt1-6

设置本地开发环境

要设置您的本地开发环境,请遵循以下步骤:

  1. Fork 并克隆仓库:

  2. 创建并激活虚拟环境:

  3. 以开发模式安装包:

  4. 安装开发依赖:

来源: CONTRIBUTING.rst40-53

贡献工作流程

face_recognition 项目遵循标准的 GitHub Fork 和 Pull Request 工作流程。下图说明了该过程:

来源: CONTRIBUTING.rst54-74

分支创建和代码更改

在处理新功能或错误修复时:

  1. 创建一个新分支:

  2. 对代码库进行修改

  3. 测试您的更改,确保它们通过所有检查

  4. 提交并推送您的更改

  5. 通过 GitHub 界面提交 Pull Request

来源: CONTRIBUTING.rst54-74

拉取请求指南

提交 Pull Request 前,请确保它满足以下要求:

要求描述
测试为任何新功能包含测试
文档更新新功能的文档;添加 docstrings
Python 兼容性代码必须能在 Python 2.7、3.5、3.6、3.7、3.8 和 PyPy 上运行
CI 通过所有测试必须在 Travis CI 中通过

来源: CONTRIBUTING.rst76-88

测试框架

face_recognition 库使用全面的测试设置来确保代码质量和功能。

来源: CONTRIBUTING.rst60-66 CONTRIBUTING.rst89-96 requirements_dev.txt5-7

运行测试

您可以通过多种方式运行测试:

运行所有测试:

运行特定测试:

跨多个 Python 环境进行测试:

来源: CONTRIBUTING.rst89-96

代码质量标准

face_recognition 项目通过以下方式执行代码质量:

  1. flake8 进行代码风格和语法检查
  2. tox 进行跨环境测试
  3. 适当的 docstrings 用于所有函数
  4. 跨版本 Python 兼容性

构建系统和包配置

face_recognition 库使用 setuptools 进行构建和打包。版本管理由 bumpversion 处理。

来源: requirements_dev.txt2-3

报告错误和提交反馈

Bug 报告

报告 Bug 时,请包含:

  • 您的操作系统名称和版本
  • 您的本地设置的详细信息
  • 复现错误的详细步骤

在以下地址提交错误报告: https://github.com/ageitgey/face_recognition/issues

功能请求

当提出功能建议时:

  • 详细解释其工作原理
  • 保持范围狭窄,以便实现可行
  • 请记住,这是一个由志愿者驱动的项目

来源: CONTRIBUTING.rst15-36

CI/CD 流水线

该项目使用 Travis CI 进行持续集成。所有 Pull Request 都会在多个 Python 版本上自动进行测试。

Python 版本测试环境
2.7标准版和 PyPy
3.5标准
3.6标准
3.7标准
3.8标准

在所有支持的环境中所有测试都通过之前,Pull Request 将不会被合并。

来源: CONTRIBUTING.rst85-87

本指南提供了成功为 face_recognition 库做出贡献所需的基本信息。通过遵循这些准则,您将有助于维护该项目的质量和可靠性。