贡献#
如果您有兴趣为 cuVS 贡献代码,您的贡献将属于以下三类
您想报告错误、功能请求或文档问题
提交一个问题,描述您遇到的情况或希望看到的更改。
RAPIDS 团队将评估问题并对其进行分类,安排在发布中解决。如果您认为问题需要优先关注,请在问题中评论以通知团队。
您想提议并实现一个新功能
发布您计划实现的功能,我们将讨论设计和实现。
一旦我们同意计划看起来不错,请按照下面的代码贡献指南进行实现。
您想为一个未解决的问题实现一个功能或错误修复
按照下面的代码贡献指南进行。
如果您需要关于特定问题的更多上下文,请提出要求,我们将提供。
代码贡献#
您的第一个问题#
阅读项目的 README.md,了解如何设置开发环境
找到一个可以处理的问题。最好的方法是查找带有 good first issue 或 help wanted 标签的问题
在该问题下评论,说明您将处理它
开始写代码!确保更新单元测试!
完成后,创建您的拉取请求
验证 CI 是否通过所有状态检查。如果需要,进行修复
等待其他开发者审查您的代码并根据需要更新代码
一旦审查并批准,RAPIDS 开发者将合并您的拉取请求
记住,如果您对任何事情不确定,请不要犹豫,在问题下评论并寻求澄清!
Python / Pre-commit 钩子#
CUVS 使用 pre-commit 来执行代码 linter 和格式化工具,例如 Black、isort 和 flake8。这些工具确保整个项目中的代码格式一致。使用 pre-commit 可确保所有开发者的 linter 版本和选项一致。此外,还有 CI 检查来强制执行提交的代码符合我们的标准。
要使用 pre-commit
,通过 conda
或 pip
安装
conda install -c conda-forge pre-commit
pip install pre-commit
然后在提交代码之前运行 pre-commit 钩子
pre-commit run
或者,您可以设置 pre-commit 钩子,使其在您进行 git commit 时自动运行。可以通过运行以下命令实现
pre-commit install
现在,每次您提交更改时,代码 linter 和格式化工具都将运行。
您可以使用 git commit --no-verify
或其简写形式 git commit -n
跳过这些检查。
经验丰富的开发者#
一旦您熟悉了代码,您就可以在我们的项目看板中查看我们下一个版本的优先问题。
专业提示:始终查看数字最大的发布看板,以查找要处理的问题。RAPIDS 开发者也将精力集中在这里。
查看未分配的问题,找到一个您乐于贡献的问题。从上面的 第 3 步 开始,在该问题下评论,让其他人知道您正在处理它。如果您对问题的实现有任何疑问,请在问题中提出,而不是在 PR 中。
致谢#
部分内容改编自 https://github.com/pytorch/pytorch/blob/master/CONTRIBUTING.md