流行的开源 Go 语言 Web 工具包 Gorilla 宣布已正式归档,目前已进入只读模式。“它发出的信号是,这些库在未来将不会有任何发展。”
根据介绍,Gorilla Web Toolkit 是一个用于基于 Web 的应用程序的流行开源 Go 工具包,由一些增强 Go 基础库以添加重要功能(例如参数化路由和会话管理)的包组成。其中,尤其是它的 Web 请求路由器 mux 一直相当受欢迎;在超过 90,000 个软件库中被使用,且在 Cilium、Istio 和 Open Policy Agent 等顶级项目中被调用执行任务。Gorilla 的 WebSocket 库甚至被用于 Kubernetes 中。
gorilla/mux 的 first commit 是在 2012 年 10 月,也就是在 Go 达到 1.0 版本之后的几个月时间内。gorilla/websocket 开始于 2013 年 10 月,而其他一些形成 "Gorilla Toolkit"的包,也大约在同一时间涌现。
项目的主要维护者 Matt Silverlock 在公告中指出,项目归档的主要原因在于维护者的缺乏。
原作者和维护者 moraes 在很久以前就已经离开了。kisielk 和 garyburd 的工作时间最长,他们分别维护着 HTTP 库和 gorilla/websocket 的组合。我是在 2014 年左右参与进来的,当时我注意到 kisielk 做了很多繁重的工作,并想帮助回馈我在一些个人项目中使用的库。从 2018 年左右开始,我是除 websocket 之外的所有项目的(大部分)唯一维护者。大约在同一时间,garyburd 发出了一个(实际上没有成功的)招募新维护者的呼吁。
Matt Silverlock 认为,他们为潜在的新维护者提供了公平的参与机会,也没有设置过高的加入门槛。两个主要的问题在于:
- 甚至没有对问题进行分类的积极贡献者。我们在征集维护者时明确表示,我们将帮助合并并为任何想要开始贡献的人做最后的审查。然而而,许多人举起了手(阅读:在帖子中发表评论),之后就再也没有出现过。许多 OSS 项目都有一些临时维护者:我们似乎从来没有让任何人坚持下去。也许这些库的“utilitarian”本质没有帮助,或者也许编写自己的库更有吸引力?
- 这些是广泛使用的库。正如我们在最初的维护者征集中所说:“没有维护者比有一个唱反调的维护者更好!” — 把一个每周有 3k unique clones 的软件包(mux)交给别人来管理,这不是我所能接受的。这在其他项目中往往表现得很糟糕。
原定的维护者征集时间范围是 6 个月,但在远远超出了这个时间期限后,其仍未能找到一个能够负责任地接管仓库的个人/组织,从而导致了如今项目归档的局面。“我确实相信开源软件有一个生命周期——开始、中间和结束——并且没有项目需要永远存在。这可能不会让每个人都开心,但这就是生活。”
Matt Silverlock 还表示,他们这些人对 Gorilla Toolkit 的维护都是出于热爱,并没有金钱目的。从来没有任何人试图通过利用 Gorilla 来获取金钱上的利益。“我们并不希望它成为一份工作。这并不是在挖苦那些希望得到报酬的维护者,而是在提醒我们,不是每个人都是为了钱而做事的。”