新建贡献者常见问题解答#

这是一组由开源开发新手和NetworkX首次贡献者提出的常见问题。

问:我是开放源码的新手,愿意为NetworkX做出贡献。我该怎么开始呢?#

要为NetworkX做出贡献,您需要三样东西:

  1. 源代码

  2. 发展环境

  3. 关于你想贡献什么的想法

有关步骤1和2的详细信息,请参阅 Development Workflow 。第3步没有通用的答案。有许多方法可以改进NetworkX,从添加新算法、改进现有算法、改进测试套件(例如,增加测试覆盖率)和改进文档。找到起点的“最好”方法是追随自己的个人兴趣!尽管如此,还是有几个地方可以查看一下从哪里开始的想法:

问:我发现了一个我感兴趣的问题,可以分配给我吗?#

NetworkX通常不会将问题分配给贡献者。如果您在问题跟踪器上发现了您想要处理的问题或功能请求,您应该首先检查问题线程,以查看是否有任何链接的拉请求。如果没有,那么可以打开一个新的公关来解决这个问题--不需要请求许可--并且不要忘记在公关评论中引用问题编号,这样其他人就知道你正在处理这个问题!

问:我想做一个特定的功能。我如何在源代码中找到它?#

假设您已按照以下说明操作 setting up the development workflow ,有几种方法可以确定在 源代码 定义了特定的函数或类。

例如,假设您有兴趣更改 kamada_kawai_layout 函数,因此需要知道它是在哪里定义的。在IPython终端中,您可以使用 ? -源文件列在 File: 字段:

In [1]: import networkx as nx
In [2]: nx.kamada_kawai_layout?
Signature: <clipped for brevity>
Docstring: <clipped for brevity>
File: ~/networkx/networkx/drawing/layout.py
Type: function

命令行实用程序,如 grepgit grep 也非常有用。例如,从NetworkX源目录:

$ grep -r "def kamada_kawai_layout" .
./networkx/drawing/layout.py:def kamada_kawai_layout(

问:决定是否包括新算法的政策是什么?#

对于NetworkX中的新算法,没有官方政策设置明确的纳入标准。如果新的算法已经发表并被其他人引用,那么它们更有可能被纳入其中。比引文数量更重要的是建议的增补内容与项目的匹配程度 使命与价值观