常见问题:贡献代码 — Django 文档

来自菜鸟教程
Django/docs/3.0.x/faq/contributing
跳转至:导航、​搜索

常见问题:贡献代码

如何开始向 Django 贡献代码?

谢谢提问! 我们已经写了一个完整的文档专门讨论这个问题。 它的标题是 Contributing to Django


几周前我在票务系统中提交了一个错误修复。 你为什么忽略我的补丁?

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

重要的是要了解“票被忽略”和“票尚未处理”之间的区别。 Django 的工单系统包含数百个未解决的工单,对最终用户功能有不同程度的影响,Django 的开发人员必须审查并确定优先级。

最重要的是:在 Django 上工作的人都是志愿者。 因此,我们在框架上工作的时间是有限的,并且会根据我们的空闲时间每周有所不同。 如果我们很忙,我们可能无法在 Django 上花费我们想要的那么多时间。

确保票在签到过程中不会被挂断的最好方法是让它变得非常容易,即使对于可能不熟悉该代码区域的人来说,也可以理解问题并验证修复:

  • 是否有关于如何重现错误的明确说明? 如果这涉及依赖项(例如 Pillow)、contrib 模块或特定数据库,即使对于不熟悉它的人来说,这些说明也足够清楚吗?
  • 如果故障单上附有多个补丁,是否清楚每个补丁的作用、哪些可以忽略以及哪些重要?
  • 补丁是否包含单元测试? 如果没有,是否有一个非常明确的解释为什么不呢? 测试简洁地表达了问题是什么,并表明补丁实际上修复了它。

如果您的补丁没有机会包含在 Django 中,我们不会忽略它——我们只会关闭票证。 因此,如果您的票仍然打开,这并不意味着我们不理会您; 这只是意味着我们还没有时间看它。


我何时以及如何提醒团队我关心的补丁?

向邮件列表发送礼貌、适时的消息是引起注意的一种方式。 要确定合适的时间,您需要密切关注时间表。 如果您在发布截止日期之前发布消息,则不太可能获得所需的关注。

温和的 IRC 提醒也可以工作——同样,如果可能的话,战略性地定时。 例如,在错误冲刺期间将是一个非常好的时间。

另一种获得吸引力的方法是将几张相关的票放在一起。 当某人坐下来检查他们有一段时间没有接触过的区域中的错误时,可能需要几分钟来记住该代码区域如何工作的所有细节。 如果您将几个小错误修复一起收集到一个类似的主题组中,您就会成为一个有吸引力的目标,因为加快代码区域的成本可以分摊到多张票上。

请不要给任何人发电子邮件,也不要一遍又一遍地重复提出相同的问题。 这种行为不会引起您的任何额外关注——当然不是您解决问题所需的关注。


但是我已经提醒你好几次了,你一直无视我的补丁!

说真的 - 我们没有忽视你。 如果您的补丁没有机会包含在 Django 中,我们将关闭票证。 对于所有其他工单,我们需要优先处理我们的工作,这意味着一些工单将在其他工单之前得到解决。

用于确定错误修复优先级的标准之一是可能受给定错误影响的人数。 有可能影响很多人的错误通常会优先于那些边缘情况。

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

不管是什么原因,请记住,虽然您可能经常遇到特定的错误,但并不一定意味着每个 Django 用户都会遇到相同的错误。 不同的用户以不同的方式使用 Django,在不同的条件下强调代码的不同部分。 当我们评估相对优先级时,我们通常会尝试考虑整个社区的需求,而不是优先考虑对某个特定用户的影响。 这并不意味着我们认为您的问题不重要——只是在我们可用的有限时间内,我们总是会犯错,让 10 个人开心而不是让一个人开心。