为NumPy贡献 >
不是编码员?没问题!NumPy是多方面的,我们可以使用很多帮助。这些都是我们希望获得帮助的活动(它们都很重要,因此我们按字母顺序列出):
代码维护与开发
社区协调
开发运维
开发教育内容和叙述性文件
编写技术文档
筹款活动
项目管理
营销学
翻译内容
网站设计与开发
本文档的其余部分讨论了有关NumPy代码库和文档的工作。我们正在更新对其他活动和角色的描述。如果您对其他活动感兴趣,请与我们联系!您可以通过numpy-discussion邮件列表或在GitHub上执行此操作(打开问题或对相关问题发表评论)。这些是我们首选的沟通渠道(开放源代码是开放性的!),但是如果你愿意私下讨论首先,请与我们的社区协调员numpy-team@googlegroups.com或numpy-team.slack.com(首次发送电子邮件至 numpy-team@googlegroups.com)。
这是简短的摘要,完整的TOC链接如下:
如果您是初次贡献者:
转到https://github.com/numpy/numpy并单击“ fork”按钮以创建您自己的项目副本。
将项目克隆到本地计算机:
git clone https://github.com/your-username/numpy.git
更改目录:
cd numpy
添加上游存储库:
git remote add upstream https://github.com/numpy/numpy.git
现在,git remote -v将显示两个名为的远程存储库:
upstream
,指的是numpy
存储库
origin
,指的是您的个人叉子
发展您的贡献:
提交您的贡献:
审核过程:
审阅者(其他开发人员和感兴趣的社区成员)将在您的请求(PR)中内嵌和/或一般性评论,以帮助您改善其实施,文档和样式。每个从事该项目的开发人员都要审查他们的代码,我们已经将其视为友好的对话,我们从中都可以从中学习到总体的代码质量。因此,请不要让评论阻止您作出贡献:它的唯一目的是提高项目质量,而不是批评(毕竟,我们非常感谢您的捐赠时间!)。
要更新您的PR,请在本地存储库中进行更改,提交, 运行测试,并且仅在成功完成后才能进行推送。这些更改一经推送(与以前相同的分支),PR就会自动更新。如果您不知道如何解决测试失败,可以继续进行更改,并在PR评论中寻求帮助。
每次PR更新后,都会触发各种持续集成(CI)服务以构建代码,运行单元测试,测量代码覆盖率并检查分支的编码样式。必须先通过CI测试,然后才能合并PR。如果CI失败,则可以通过单击“失败”图标(红叉)并检查构建和测试日志来找出原因。为避免过度使用和浪费此资源, 请在提交之前在本地测试您的工作。
合并之前,PR必须至少由一名核心团队成员批准。批准表示核心团队成员已仔细检查了更改,并且PR已准备好合并。
文件变更
除了对功能文档字符串的更改以及通用文档中可能的描述之外,如果您的更改引入了任何面向用户的修改,则它们可能需要在发行说明中提及。要将更改添加到发行说明中,您需要创建一个带有摘要的简短文件并将其放在中doc/release/upcoming_changes
。该文件doc/release/upcoming_changes/README.rst
详细说明了格式和文件名约定。
如果您的更改导致弃用,请确保首先在GitHub或邮件列表上进行讨论。如果就弃用达成协议,请遵循NEP 23弃用策略 以添加弃用。
交叉引用问题
如果PR涉及到的任何问题,你可以添加文字哪里
是问题对GitHub的评论数。同样,如果PR解决了一个问题,更换用,或任何其他口味的github上接受。xref gh-xxxx
xxxx
xref
closes
fixes
在源代码中,请确保以开头任何问题或PR参考
gh-xxxx
。
有关更详细的讨论,请继续阅读并遵循本页底部的链接。
设置您的编辑器以遵循PEP 8(删除尾随空白,没有制表符等)。检查代码与pyflakes / flake8。
使用numpy数据类型代替字符串(np.uint8
代替
"uint8"
)。
使用以下导入约定:
import numpy as np
有关C代码,请参见numpy-c-style-guide
修改代码的拉取请求(PR)应该具有新测试,或修改现有测试以使其在PR之前失败并在之后通过。您应该在执行 PR之前运行测试。
理想情况下,对模块的测试应覆盖该模块中的所有代码,即语句覆盖率应为100%。
要测量测试覆盖率,请安装 pytest-cov ,然后运行:
$ python runtests.py --coverage
这将在中创建一个报告build/coverage
,该报告可以通过以下方式查看:
$ firefox build/coverage/index.html
故事的其余部分
特定于NumPy的工作流位于numpy-development-workflow中。