新贡献者常问的一个问题是:“我如何选择要为哪个项目做出贡献?”有些人最终会为许多不同的项目做出贡献,而另一些人则倾向于将精力集中在一个项目上。虽然生态系统中的项目有很多共同点,但每个项目都有自己的社区——因此在文化、风格和决策过程中可能存在差异。最终,您为哪些项目做出贡献将在很大程度上取决于您自己的个人兴趣和目标。
一些项目(如 NumPy)被生态系统中的许多项目使用。此类项目已经成熟并且功能相对齐全。鉴于它们在生态系统中的核心作用,参与这些项目的工作可能会产生巨大的影响。但是,对这些项目进行更改可能比对更新且不太核心的项目更具挑战性。即使对于核心开发者来说,他们的拉取请求在合并之前经历数月的迭代也并不罕见。
例如,由于 NumPy 影响了几乎整个生态系统,因此为其贡献大型功能将非常困难,并且通常需要在开始工作之前获得 NumPy 增强提案 (NEP) 的批准。增强提案在生态系统中的核心项目中相当常见,并且包括对计划更改的描述,包括实现的摘要、其优缺点,以及有时编写的概念证明。然后对其进行讨论和迭代,然后再做出决定。
另一方面,像 NetworkX 这样的项目可能只需要一两次审查和基本测试,您的更改就会被合并。
在决定您想要投入多少时间时,值得记住这种区别。
开源科学 Python 社区的工作方式不同于正常的办公环境,因为它主要由来自不同时区、在业余时间做出贡献的人员组成。因此,贡献者和维护者可能无法始终立即回复您。
由于社区中的许多成员都是志愿者,因此任何和所有贡献都受到高度重视。维护人员始终希望提供帮助,但他们通常工作量过大,可能会错过通知或阅读某些内容并忘记回复。如果您几天没有收到他们的回复,通常可以安全地给他们发送一条友好的提醒进行检查。
了解开发者社区是详细了解项目并找到合适项目的绝佳途径。有很多方法可以开始与项目社区互动