优化 Gradle 问题积压
引言
Gradle 最重要的成功因素之一是其社区。用户每天都在提出新功能建议、发现和重现缺陷,或者提交包含贡献的拉取请求。我们感谢用户创建的每一个问题。谢谢!
从事像 Gradle 这样成功的项目会带来挑战,无论是问题的数量和贡献,还是决定团队应该优先处理哪个方面。尽管我们不愿意承认,但我们的能力并非无限。我们希望我们的团队能够专注于为用户创造最大的价值。这意味着要修复正确的 bug 并实现最佳功能。考虑到我们社区的多样性,这是一项艰巨的任务。我们希望与用户一起找到要修复的正确功能/缺陷,而不是被我们可能做的各种事情所压垮。
基本原理 #
作为我们日常工作的一部分,我们会分类您创建的新问题,决定哪些问题应该包含在下一个版本中,并检查哪些问题最受社区投票。同时,我们还在修复现有问题并实现新功能。我们对目前的工作流程感到满意且富有成效。目前我们不太擅长的是管理我们其余的问题积压。来自外部的想法和贡献的数量远远超过了我们可以在合理时间内完成的任务数量。考虑到我们积压的问题数量之多,无论是功能、bug 还是疑问,都很难找到时间定期审查所有这些问题。我们需要确定哪些 bug 在较新版本的 Gradle 中仍然可以重现,哪些用例已经实现(也许只是通过使用一项新功能)。
方法 #
作为工程师,我们有时难以关闭一个缺陷,即使它还没有修复。多年前,我本人就遇到了这种情况。在以前,我的公司刚刚聘请了我们的第一位产品经理。她在第一周就关闭了我们积压的 2000 个问题……所有的。每一个。我震惊了。我愤怒了。回想今天,这可能是她当时能为那个团队做的最好的事情,以帮助他们重新专注于重要部分。在随后的几年里,团队能够重新专注于最重要的事情,并将任务积压保持在团队定义的限制之内。但是,请放心,我们对 Gradle 问题积压的计划会不那么激进:)
保持问题积压的状态,以便我们从中推导出优先级,这对 Gradle 项目的成功至关重要。您,作为我们的社区,通过帮助我们识别重要部分和关闭过时问题,发挥着至关重要的作用。不仅如此,我们还希望确保您了解团队的动向、我们的优先事项以及考虑到我们可用带宽而已超出范围的功能/缺陷。为了帮助我们做到这一点,我们决定引入“Probot: Stale”,这是一个查看问题活动(标签、评论等)以确定其是否仍然活跃的机器人。如果某个问题在一段时间内(例如 2 年)不活跃,它将标记为stale
(过时),并给予提交者和成员干预的机会。一旦被标记为stale
标签,这些问题将有 21 天的宽限期,之后会自动关闭。
这对你意味着什么? #
我们理解,看到旧问题被自动关闭可能很难,特别是如果您是问题的提出者并且关心它。但是,关闭过时问题并不意味着我们不关心。事实上,正好相反。这将帮助我们(重新)发现最重要的可优先处理的问题,而您也可以为此提供帮助。所以,与其让您的问题在 2000 多个未解决的问题的浩瀚海洋中无人问津,不如现在就抓住机会就您关心的问题与我们取得联系。
需要认识到的是,这些问题被标记并关闭为过时。这并非“此问题无效”或“我们不同意这是一个很酷的功能”,它只是“过时”而已。这意味着在很长一段时间内,没有人有精力去处理它。
未来 #
如果您关心的问题被标记为过时或已关闭,但它仍然是您关心的问题:请告知我们并更新该问题,以便我们可以重新打开它以供审议。如果您根据最新的 Gradle 版本验证了该问题,并确保您附带了一个示例项目来重现 bug 或演示您缺失的功能用例,您将极大地帮助我们并增加进展的机会。我们将更直接地表示“我们没有精力”。希望这将引发关于当前问题重要性的新讨论——而不是让它在问题积压中沉寂多年。
这是否意味着您应该停止提交问题和拉取请求?绝不!请继续报告您发现的问题,发送您的想法/功能请求,并继续提交拉取请求。我们非常乐意审查这些请求并据此进行安排。这项改变使我们 Gradle 团队能够重新专注于为你们(我们的社区)提供最高价值的方面。