FAQ:贡献代码

如何为 Django 贡献代码?

感谢反馈!我们已经为这个问题编写了一个详细的文档。参见 Contributing to Django

几周前我提交了一个错误修复。为什么你们不理睬我的贡献?

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

重要的是要明白,“工单被忽略”和“工单还没有被查看”是有区别的。 Django 的工单系统包含数百个打开的工单,对最终用户功能有不同程度的影响,Django 的开发人员必须检查并确定优先级。

另外:所有的 Django 工作都是由志愿者完成的。因此,我们花在这个框架上的总时间是有限的,它取决于我们的空闲时间,并且每周都会有所不同。如果我们很忙,我们可能无法在 Django 上花费太多的时间,尽管我们不愿如此。

确保工单在签入过程中不被挂起的最佳方法是让它所描述的问题通俗易懂,即便是对相关领域并不熟悉的人也能理解并修复问题:

  • 是否有明确的用以重现 bug 的说明? 是否触及依赖项(如Pillow),contrib 模块或特定数据库?这些说明对于不熟悉它的人是否也足够明确?
  • 如果有多条分支链接到该张票证上,请明确每一条代表什么功能?哪些可以被忽略,哪些是重要的呢?
  • 更改是否包括单元测试?如果没有,是否有非常清晰的解释为什么没有进行测试?测试简洁地表达了问题所在,并展示了分支实际上解决了这个问题。

如果你的贡献不适合包含在 Django 中,我们不会忽略它—我们会关闭该工单。所以,如果你提交的工单仍然开放,并不代表我们在忽略你;这仅仅意味着我们还没有时间去审查它。

何时以及以何种方式提醒团队我关心的更改?

在论坛/分支中发送一个有礼貌、时机恰当的信息是吸引注意的一种方式。为了确定正确的时机,你需要关注时间表。如果你在发布截止日期前发布信息,你不太可能得到所需的关注。

温和的 IRC 提醒也可以发挥作用——还是如此:如果可能的话,选取一个合适的时间。 例如,在修复 bug 的冲刺期间就是一个不错的时机。

另一种增加影响力的方法是将几个相关的问题归并在一起。当某人开始审查长时间未涉及的某个领域的错误时,可能需要几分钟来回忆该代码区域的所有细节。如果你将几个小的错误修复归集到一个主题相似的组中,你就会成为一个有吸引力的目标,因为适应某个代码领域的成本可以分摊到多个问题上。

请不要私自给任何人发送电子邮件,也不要反复提出同样的问题。这种行为不会给你带来任何额外的关注,尤其不能获得解决你问题所需的关注。

但我已经提醒了你好几次,你仍然无视我的贡献!

严肃地说,我们并没有忽视你。如果你的贡献不适合包含在 Django 中,我们将关闭这个票务单。对于所有其他票务单,我们需要优先处理我们的努力,这意味着一些票务单将比其他票务单先得到解决。

确定 bug 修复优先级的标准之一是对于特定 bug 而言,可能会受到影响的人数。有可能影响许多人的 bug 一般会优先于那些边缘情况下的 bug。

另一个错误可能被暂时忽略的原因是,这个错误只是更大问题的症状。虽然我们可以花费时间编写、测试和应用许多小的更改,但有时正确的解决方案可能是重建。如果已经提出或正在进行特定组件的重构或重建,你可能会发现影响该组件的错误不会得到太多关注。再次,这是关于优先处理稀缺资源的问题。通过专注于重建,我们可以一次关闭所有的小错误,并希望在未来阻止其他小错误的出现。

不管什么原因,请记住,你可能会经常碰到一个特定的 bug,但并不一定每个 Django 用户都会遇到同样的 bug。 不同的用户以不同的方式使用 Django,在不同的条件下执行代码的不同部分。 我们评估相对优先事项时,会考虑整个社区的需求,而不是优先考虑对某个特定用户的影响。 当然,这并不意味着我们认为你的问题不重要,只是在有限的可用时间内,我们总是希望让 10 个人的问题得到解决,而不是只解决 1 个人的问题。

我肯定我的工单百分之100绝对完成了,那么就能说我把这个工单认定为 ”通过批准” 了吗?

抱歉,不是这样的。在工单上得到更多的关注总是更好的事情。如果你在获得额外关注上遇到问题,那么回顾一下上面的这些问题。