通用指南
以下是所有类型贡献需要记住的一些事项:
- 遵循"fork and pull request"工作流程。
- 在打开拉取请求时填写已检查的拉取请求模板。注意相关的问题并标记相关的维护者。
- 在请求审查之前,请确保您的PR通过了格式化、代码风格检查和测试检查。
- 如果您希望就当前进度获得评论或反馈,请打开一个问题或讨论并标记维护者。
- 有关如何在本地运行这些检查的信息,请参阅Testing和Formatting and Linting部分。
- 向后兼容性是关键。除非是关键的漏洞和安全修复,否则您的更改不得破坏现有功能。
- 在开启新的PR或问题之前,先查找是否已经有重复的PR或问题被开启。
- 尽可能保持范围的隔离。作为一般规则,您的更改不应一次影响超过一个包。
Bug修复
我们鼓励并感谢错误修复。我们要求您:
- 详细解释错误,以便维护者能够复现它。
- 如果存在相关的问题,请链接到它。使用
Fixes
前缀,以便在PR合并时自动关闭问题。
- 如果存在相关的问题,请链接到它。使用
- 尽可能避免破坏性更改。
- 包含在没有错误修复的情况下会失败的单元测试。
如果您遇到一个错误并且不知道如何修复它,我们建议您为此打开一个问题,详细描述您遇到错误的环境。
新功能
我们的目标是为新功能保持高标准。我们通常不接受新的核心抽象、基础设施的更改、依赖项的更改,或来自外部贡献者的新代理/链,除非有现有的GitHub讨论或问题表明对这些功能有迫切需求。
- 新功能必须附带文档、单元测试,以及(如果适用)集成测试。
- 新的集成必须附带文档、单元测试,以及(如果适用)集成测试。
- 有关贡献新集成的更多详情,请参见此页面。
- 新功能不应继承或使用已弃用的方法或类。
- 我们将拒绝可能导致安全漏洞或报告的功能。
- 不要添加任何硬性依赖。集成可以添加可选的依赖项。