贡献#

如果您有兴趣为 cuVS 贡献代码,您的贡献将属于以下三类

  1. 您想报告错误、功能请求或文档问题

    • 提交一个问题,描述您遇到的情况或希望看到的更改。

    • RAPIDS 团队将评估问题并对其进行分类,安排在发布中解决。如果您认为问题需要优先关注,请在问题中评论以通知团队。

  2. 您想提议并实现一个新功能

    • 发布您计划实现的功能,我们将讨论设计和实现。

    • 一旦我们同意计划看起来不错,请按照下面的代码贡献指南进行实现。

  3. 您想为一个未解决的问题实现一个功能或错误修复

    • 按照下面的代码贡献指南进行。

    • 如果您需要关于特定问题的更多上下文,请提出要求,我们将提供。

代码贡献#

您的第一个问题#

  1. 阅读项目的 README.md,了解如何设置开发环境

  2. 找到一个可以处理的问题。最好的方法是查找带有 good first issuehelp wanted 标签的问题

  3. 在该问题下评论,说明您将处理它

  4. 开始写代码!确保更新单元测试!

  5. 完成后,创建您的拉取请求

  6. 验证 CI 是否通过所有状态检查。如果需要,进行修复

  7. 等待其他开发者审查您的代码并根据需要更新代码

  8. 一旦审查并批准,RAPIDS 开发者将合并您的拉取请求

记住,如果您对任何事情不确定,请不要犹豫,在问题下评论并寻求澄清!

Python / Pre-commit 钩子#

CUVS 使用 pre-commit 来执行代码 linter 和格式化工具,例如 Blackisortflake8。这些工具确保整个项目中的代码格式一致。使用 pre-commit 可确保所有开发者的 linter 版本和选项一致。此外,还有 CI 检查来强制执行提交的代码符合我们的标准。

要使用 pre-commit,通过 condapip 安装

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