常见问题:贡献代码 — Django 文档
FAQ:贡献代码
几周前我在票务系统中提交了一个错误修复。 你为什么忽略我的补丁?
别担心:我们不会忽视你!
重要的是要了解“票被忽略”和“票尚未处理”之间的区别。 Django 的工单系统包含数百个未解决的工单,对最终用户功能有不同程度的影响,Django 的开发人员必须审查并确定优先级。
最重要的是:在 Django 上工作的人都是志愿者。 因此,我们在框架上工作的时间是有限的,并且会根据我们的空闲时间每周有所不同。 如果我们很忙,我们可能无法在 Django 上花费我们想要的那么多时间。
确保工单在签入过程中不被挂起的最佳方法是让它所描述的问题通俗易懂,即便是对相关领域并不熟悉的人也能理解并修复问题:
- 是否有关于如何重现错误的明确说明? 如果这涉及依赖项(例如 Pillow)、contrib 模块或特定数据库,即使对于不熟悉它的人来说,这些说明也足够清楚吗?
- 如果工单附有多个补充,是否能够明确每个补充是做什么的、哪些补充可以忽略,哪些补充很重要?
- 补丁是否包含单元测试? 如果没有,是否有一个非常明确的解释为什么不呢? 测试简洁地表达了问题是什么,并表明补丁实际上修复了它。
如果您的补丁没有机会包含在 Django 中,我们不会忽略它——我们只会关闭票证。 因此,如果您的票仍然打开,这并不意味着我们不理会您; 这只是意味着我们还没有时间看它。
何时以及如何提醒团队我所关注的补丁?
向邮件列表发送礼貌、适时的消息是引起注意的一种方式。 要确定合适的时间,您需要密切关注时间表。 如果您在发布截止日期之前发布消息,则不太可能获得所需的关注。
温和的 IRC 提醒也可以工作——同样,如果可能的话,战略性地定时。 例如,在错误冲刺期间将是一个非常好的时间。
另一种获得吸引力的方法是将几张相关的票放在一起。 当某人坐下来检查他们有一段时间没有接触过的区域中的错误时,可能需要几分钟来记住该代码区域如何工作的所有细节。 如果您将几个小错误修复一起收集到一个类似的主题组中,您就会成为一个有吸引力的目标,因为加快代码区域的成本可以分摊到多张票上。
请不要给任何人发电子邮件,也不要一遍又一遍地重复提出相同的问题。 这种行为不会引起您的任何额外关注——当然不是您解决问题所需的关注。
但是我已经提醒你好几次了,你一直无视我的补丁!
说真的 - 我们没有忽视你。 如果您的补丁没有机会包含在 Django 中,我们将关闭票证。 对于所有其他工单,我们需要优先处理我们的工作,这意味着一些工单将在其他工单之前得到解决。
用于确定错误修复优先级的标准之一是可能受给定错误影响的人数。 有可能影响很多人的错误通常会优先于那些边缘情况。
可能会暂时忽略错误的另一个原因是错误是否是更大问题的征兆。 虽然我们可以花时间编写、测试和应用许多小补丁,但有时正确的解决方案是重建。 如果已提议或正在进行特定组件的重建或重构,您可能会发现影响该组件的错误不会得到太多关注。 同样,这只是优先考虑稀缺资源的问题。 通过专注于重建,我们可以一次关闭所有小错误,并希望将来防止其他小错误出现。
不管是什么原因,请记住,虽然您可能经常遇到特定的错误,但并不一定意味着每个 Django 用户都会遇到相同的错误。 不同的用户以不同的方式使用 Django,在不同的条件下强调代码的不同部分。 当我们评估相对优先级时,我们通常会尝试考虑整个社区的需求,而不仅仅是某个特定用户的严重程度。 这并不意味着我们认为您的问题不重要——只是在我们可用的有限时间内,我们总是会犯错,让 10 人快乐而不是让 1 人快乐。