维护开源项目是非常辛苦的工作。随着 Ant Design 在社区越来越受欢迎,我们每天都在收到越来越多的问题, bug 报告,功能需求和 Pull Requests。
作为一个完全免费使用的开源项目,Ant Design 的维护人手是有限的。这意味着想要让项目长期的可持续发展,我们必须:
- 给予更具体的工作更高的优先级(比如 bug 的修复和新功能的开发);
- 提高 issue 处理的效率。
针对 (1),我们决定将 GitHub issue 列表严格地限制用于有具体目标和内容的工作。问题和讨论应当发送到更适合它们的场合。针对 How to 类问题(例如《如何将对话框设置为可拖拽》),建议发到 Ant Design 讨论区,或者把它细化成更具体的 Bug 和 Feature Request。这两者的区别是,『如何 ***』是一个未经思考和调研的问句,而 Bug 和 Feature Request 需要提问者进一步明确这是一个缺陷或者未支持的特性。
请对比下面两个问题,后者体现出提问者经过进一步调研,且提供了更多信息:
- 请问如何将对话框设置为可拖拽?
- 需要对话框支持可拖拽的功能,用于满足 *** 这个场景,我调研过 antd 目前不支持这个功能,并且没有其他同类 issue。我的期待的属性名为
draggable。
针对 (2),我们发现影响 issue 处理效率的最大因素是用户在开 issue 时没有提供足够的信息。这导致我们需要花费大量的时间去跟用户来回沟通,只为了获得一些基本信息好让我们对 issue 进行真正的分析。这正是我们开发这个 app 的理由:我们要确保每个新 issue 都提供了必需的信息,这样能节省维护者和开发者双方的时间。
最重要的是,请明白一件事:开源项目的用户和维护者之间并不是甲方和乙方的关系,issue 也不是客服。在开 issue 的时候,请抱着一种『一起合作来解决这个问题』的心态,避免期待社区单方面地为你服务。