FAQ: Contributing code

How can I get started contributing code to Django?

感谢您的问候!我们写了一个专门讨论这个问题的文件。标题为Contributing to Django

我在几个星期前在票系统中提交了一个错误修复。Why are you ignoring my patch?

别担心:我们不会忽视你!

重要的是要理解“票被忽略”和“票还没有被关注”之间的区别。Django的票系统包含数百张开放票,对终端用户功能有不同程度的影响,Django的开发人员必须审查和确定优先级。

除此之外:在Django工作的人都是志愿者。因此,我们在框架上工作的时间有限,并且根据我们的业余时间每周不同。如果我们忙,我们可能不能花尽可能多的时间在Django,因为我们可能想要。

确保票据在登录途中不会挂断的最好方法是让它变得容易,甚至对那些可能不熟悉代码区域的人来说,理解问题并验证修复:

  • 是否有清楚的说明如何重现错误?如果这触及一个依赖(如Pillow),一个contrib模块或一个特定的数据库,这些指令是否清楚,即使对于不熟悉的人?
  • 如果有几个补丁附加到票证,是否清楚每个人做什么,哪些可以忽略和哪些重要?
  • 补丁是否包含单元测试?如果没有,是否有一个非常清楚的解释为什么不呢?测试简单地表达了什么问题,并显示补丁实际上修复它。

如果你的补丁没有机会包含在Django中,我们不会忽略它 - 我们将关闭票。所以如果你的票仍然是开放的,这并不意味着我们忽略你;它只是意味着我们没有时间去看它。

When and how might I remind the core team of a patch I care about?

一个礼貌,及时的消息到邮件列表是一种获得注意的方法。要确定正确的时间,您需要关注日程安排。如果你发布你的消息,当核心开发人员试图击中一个功能的截止日期或管理规划阶段,你不会得到你所需要的关注。然而,如果你提请注意一个票,当核心开发人员特别注意bug - 在bug修复冲刺之前,或者在beta版本的引导之前,你更有可能得到一个有效的响应。

温柔的IRC提醒也可以工作 - 再次,策略性地定时,如果可能的话。例如,在一个bug冲刺将是一个非常好的时间。

另一种获得牵引力的方法是将几张相关的票拉在一起。当核心开发人员坐下来修复他们没有触及一段时间的错误时,可能需要几分钟来记住这个区域的代码是如何工作的所有细节。如果你将几个小错误修复一起收集到一个类似的主题组中,你就会成为一个有吸引力的目标,因为在一个区域的代码的速度的成本可以分布在多个票。

请不要向核心开发者个人发送电子邮件,也不要反复提出同样的问题。这种行为不会给你任何额外的关注 - 当然不是你需要的注意,以获得你的宠物bug解决。

But I’ve reminded you several times and you keep ignoring my patch!

认真 - 我们不忽视你。如果你的补丁没有机会包含在Django,我们将关闭票。对于所有其他票,我们需要优先考虑我们的努力,这意味着一些票将在其他人面前。

用于优先处理错误修复的标准之一是可能受到给定错误影响的人数。有潜力影响许多人的bug通常优先于那些边缘情况。

错误可能被忽略的另一个原因是如果错误是更大问题的症状。虽然我们可以花时间编写,测试和应用大量的小补丁,有时正确的解决方案是重建。如果特定组件的重建或重构已经提出或正在进行,您可能会发现影响该组件的错误不会受到太多的关注。同样,这只是优先考虑稀缺资源的问题。通过专注于重建,我们可以立即关闭所有的小错误,并希望防止其他小错误在未来出现。

无论什么原因,请记住,虽然你可能会定期遇到一个特定的错误,但不一定遵循每个Django用户都会遇到相同的错误。不同的用户以不同的方式使用Django,在不同的条件下强调代码的不同部分。当我们评估相对优先级时,我们通常试图考虑整个社区的需求,而不仅仅是一个特定用户的严重性。这并不意味着我们认为你的问题是不重要的 - 只是在有限的时间,我们有可用,我们将永远错在使10人快乐,而不是让1人快乐。