优化 Gradle 问题积压

Gradle 最大的成功因素之一是它的社区。每天都有用户建议新功能、发现和重现缺陷或提交带有贡献的拉取请求。我们感谢用户创建的每一个问题。谢谢!

在像 Gradle 这样的成功项目上工作会带来挑战,无论是问题和贡献的数量,还是决定哪个方面对团队来说优先级最高。尽管我们不喜欢承认,但我们的能力不是无限的。我们希望我们的团队能够专注于为用户创造最大价值。这意味着修复正确的错误并实施最佳功能。鉴于我们社区的多样性,这是一项不容易完成的任务。我们希望找到与用户一起完成的正确功能/缺陷,而不是被我们可能做的事情的数量所困扰。

Open Issue trend over time for the Gradle Built Tool

基本原理

作为我们日常工作的一部分,我们会对您创建的新问题进行分类,决定哪些问题应该进入下一个版本,并检查哪些问题得到社区的最多投票。同时,我们实际上修复了现有问题并实施了新功能。我们对我们当前的工作流程感到非常高兴和高效。我们目前不太擅长的一件事是管理我们剩余的积压工作。来自外部的想法和贡献的数量远远超过了我们在合理的时间范围内可以处理的任务数量。鉴于我们积压了多少问题,无论是功能、错误还是问题,定期浏览所有问题真的很难。我们需要确定哪些错误在更新版本的 Gradle 中仍然可以重现,以及哪些用例已经实现(也许只是使用其中一项新功能)。

方法

作为工程师,我们有时会遇到明明没有修复却要关闭缺陷的情况。几年前,我本人就遇到了这样的情况。在我之前的工作中,公司刚聘请了第一位产品经理。她仅仅工作了一周就关闭了我们所有的 2000 个问题……每一个。问题。我当时震惊了,非常愤怒。但现在回想起来,这是她当时为了帮助团队重新专注于重要部分而做出的最好的决定。在接下来的几年里,团队能够重新专注于最重要的工作,并将任务积压控制在团队定义的范围内。但请放心,我们对 Gradle 积压的计划不会那么激进 :)

保持这个积压处于我们可以从中得出优先级排序的状态对于 Gradle 项目的成功至关重要。您作为我们的社区,在帮助我们识别重要部分和关闭过时问题方面发挥着至关重要的作用。不仅如此,我们还希望确保您了解团队在做什么,我们的优先事项是什么,以及在现有带宽下哪些功能/缺陷超出了范围。为了帮助我们实现这一点,我们决定引入 “Probot: Stale”,这是一个机器人,它会查看问题的活动(标签、评论等)以确定它们是否仍然活跃。如果它们在一段时间内(例如 2 年)处于非活动状态,它会用 stale 标签标记它们,让提交者和成员有机会进行干预。一旦被标记为 stale 标签,问题将有 21 天的宽限期,之后它们将被自动关闭。

Probot Stale

这对您意味着什么?

我们理解,看到旧问题被自动关闭可能会让人感到沮丧,尤其是当你创建了该问题并对此很关心时。但是,关闭陈旧问题并不意味着我们不在乎。事实上,恰恰相反。这将帮助我们(重新)发现最重要的问题,以便优先处理它们,而你也可以帮助我们。因此,与其让你的问题在 2000 多个未解决问题的庞大堆积中被忽视,不如利用这个机会,重新向我们表达你的担忧。

重要的是要意识到,这些问题被标记为陈旧并被关闭。这并不意味着“这是无效的”或“我们不同意这是一个很酷的功能”,它只是“陈旧”。这意味着很长一段时间以来,没有人有带宽来查看它。

展望未来

如果你关心的问题被标记为陈旧或被关闭,但你仍然对此感到担忧:请告知我们并更新问题,以便我们重新打开它以供考虑。如果你根据最新的 Gradle 版本验证问题,并确保你附带了一个示例项目来重现错误或演示你所缺少的功能的用例,你将对我们有很大帮助,并增加取得进展的机会。我们会更坦诚地说“我们没有带宽”。希望这能引发关于当前问题重要性的新对话,而不是让它在积压工作中停留,多年来被忽视。

这是否意味着你应该停止创建问题和 PR?当然不是!请继续报告你发现的问题,发送你的想法/功能请求,并继续创建那些 PR。我们很乐意审查它们并相应地安排它们。这种改变使我们,Gradle 团队,能够重新关注那些为你们,我们的社区提供最高价值的方面。

讨论