Python Web 框架 Flask 的作者 David Lord 宣布达成了一项重要成就:获得开源维护者白金奖杯 (open source maintainer platinum trophy)。原因是他已处理了项目仓库中的所有 issue 和 PR。据介绍,截至上个月,Flask 的下载次数达到了 7500 万次。
可以看到,Flask repo 的所有公开 issue 和 PR 数量是 0。
有人向作者表达了祝贺,并专门制作了跟踪 Flask repo 的 issue 和 PR 变化的图表:
也有开发者表示,自己昨天准备开始为 Flask 贡献代码,但发现其仓库的公开 issue 数量是 0,让他以为进错了仓库,毕竟他从未见过一个主流框架会有这样的数据。
不过也有人认为 Flask 作者的做法没意义,毕竟这只是一时的数据,很快就会产生新的 issue 和 PR,所以他们觉得 David Lord 只是“维护者强迫症”。
还有开发者提出了“灵魂质疑”:“这到底是因为项目维护者在积极贡献,还是压根没有什么人使用它?”
Flask 的一名维护者对大家的疑惑和不解进行了解释:
- David 是 Flask 迄今为止最活跃的维护者,但项目大约有 7 人在积极贡献(每月举行一次维护者会议)。
- 此前有些开启的 issue 与 Flask 无关,例如关于如何在某个项目中使用 Flask 的 issue 已被关闭。因为这些问题可从 Stack Overflow 获取答案。David 在 SO 上面也非常积极地回答问题。此外还有 Discord 社区可以提问,这也十分活跃。
- 机器人确实可以帮助我们作为维护者,因为没有它,用户会评论不相关的问题。这使得跟踪问题变得非常困难(问题名称与问题不匹配)。
- Flask 服务器不应该在生产中使用。请使用 Gunicorn、uWSGI、mod-apache 或其他一些 WSGI 服务器。我个人认为我们需要用更强大的东西替换开发服务器,因为用户不断这样做 :p
- David 希望邮箱收件箱的未读数量是 0,这就是为什么他将 0 issue 当做一个目标。
- 最后,Flask 和 Werkzeug 正在积极开发并不断改进。例如,这是一个新的路由器,可以让它更快。
我需要的 Flask 都有,并且非常容易扩展。
我用 Flask 制定了:
API文档和测试支持(也对前端界面进行了扩展);
内置租户支持(也对ORM进行了定制);
HTTP参数数据类型扩展(比如session可以直接定义为某角色,而不只是 string,省去了很多安全验证);
...
而那些一站式框架既不能提供我想要的,还会羁绊我自己去实现。
Flask 的作者勤劳是一方面,更重要的是对自己的一分三亩地后很清醒的认识,才做到了精耕细作。