菜单

拉取请求流程

相关源文件

目的与范围

本文档解释了 Font Awesome 存储库的 pull request 流程,包括重要的限制、提交指南和最佳实践。Font Awesome 项目的 pull request 方法与许多开源项目不同。本文档专门介绍通过 pull request 进行的代码贡献;有关提交图标请求的信息,请参阅提交图标请求,有关报告 bug 的信息,请参阅报告 bug

来源: CONTRIBUTING.md17-24 .github/PULL_REQUEST_TEMPLATE.md1-6

Pull Request 限制

仅供参考的 Pull Request

Font Awesome pull request 流程中最重要的方面是此存储库中的 pull request 无法合并。这是项目的基本政策。

图示:Pull Request 参考流程

提交到 Font Awesome 存储库的 pull request 仅作为参考实现。它们展示了贡献者希望看到的更改,但需理解

  1. PR 不会直接合并到代码库中
  2. 贡献者不会通过 GitHub 的贡献跟踪被列为项目贡献者

来源: .github/PULL_REQUEST_TEMPLATE.md1-6

已生成文件限制

Font Awesome 存储库中的许多文件是通过内部构建系统生成的。这种架构使得直接合并外部 pull request 在技术上具有挑战性,即使这符合项目的政策。

图示:已生成文件和 PR 限制

来源: CONTRIBUTING.md21

贡献类型

不接受通过 Pull Request 提交的内容

以下贡献不接受通过 pull request 提交

  1. 图标添加或修改 - Font Awesome 不接受包含图标的 PR
  2. 与现有问题无关的更改

可能可接受的 Pull Request

以下类型的贡献可能会被考虑

  1. 现有功能的 bug 修复
  2. 性能改进
  3. 文档改进
  4. 已获得批准的 issue 中请求的功能实现
贡献类型接受策略正确的渠道
新图标不通过 PR图标请求 issue
品牌图标不通过 PR品牌请求 issue
Bug修复仅供参考引用现有 issue 的 PR
功能实现仅供参考引用已批准的功能请求的 PR
文档仅供参考具有专注更改的 PR

来源: CONTRIBUTING.md17-20

提交流程

图示:Pull Request 提交顺序

提交 Pull Request 前

  1. 确保有现有的 issue 是你的 PR 所要解决的
  2. 专注于解决特定问题
  3. 保持更改简单和最小化
  4. 彻底测试你的更改

提交要求

提交拉取请求时

  1. 引用你的 PR 所要解决的 issue 编号
  2. 通过 PR 模板中的复选框,承认 PR 的仅供参考性质
  3. 包含有关你的代码已在哪些浏览器中测试过的信息
  4. 对你的更改进行清晰的文档记录,说明

来源: CONTRIBUTING.md19-24 .github/PULL_REQUEST_TEMPLATE.md3-6

PR 优先级

不解决现有 issue 的 pull request 被认为优先级较低,可能不会得到及时关注。Font Awesome 团队优先处理

  1. 修复关键 bug 的 PR
  2. 实现备受追捧的功能的 PR
  3. 符合当前开发路线图的 PR

图示:Pull Request 优先级

来源: CONTRIBUTING.md20

最佳实践

专注的更改

创建 pull request 时,请专注于单一问题,避免包含无关的更改。这使得 Font Awesome 团队更容易理解和潜在地实现你建议的更改。

浏览器测试

包含有关你的代码已在哪些浏览器中测试过的信息。这有助于团队了解你提议更改的兼容性。

引用 Issue

在你的 pull request 描述中,始终使用 GitHub issue 引用语法(例如,“Fixes #123”或“Addresses #456”)引用相关的 issue。

文档

包含你更改的清晰文档,说明

  • 你正在解决什么问题
  • 你的解决方案如何工作
  • 任何潜在的边缘情况或限制

来源: CONTRIBUTING.md22-24

提交后的操作

提交 pull request 后

  1. 你的 PR 将保持开放状态,作为参考实现
  2. Font Awesome 团队可能会审查并提供反馈
  3. 如果认为有价值,团队可能会在内部实现类似的解决方案
  4. 你的解决方案可能会影响项目方向,即使它没有被直接合并

Font Awesome 团队对正式版本包含的内容拥有完全控制权,但重视社区通过 PR 流程提供的输入和建议。

来源: .github/PULL_REQUEST_TEMPLATE.md4-6