如何为你的开源项目寻找新的维护者

这款开源软件可以帮助你建立一个健康的共同维护者团队,从而避免任何项目被遗忘。
73 位读者喜欢这篇文章。

如果你要说开源软件 (OSS) 有什么特点,那就是它悄然但无可辩驳地运行着我们的世界。互联网的大部分是建立在开源软件之上的,而且,如今,数百万开发者正在用超过 250 种编程语言 构建和维护着成千上万的开源软件包。如果这还不够,企业公司在 2020 年将继续增加对开源的投资。

开源软件越是渗透到我们日常生活中,保持所有这些项目的安全、兼容和良好维护就变得越重要。

正如我们将看到的,这并不像听起来那么容易,尤其是在大部分开源软件是由志愿者构建的情况下。为了解决开源维护的问题,我构建了 Adoptoposs.org,一个应用程序(当然是开源的!),它可以帮助你找到共同维护者,并保持开源项目及其维护者的健康。

未维护的开源项目的问题

许多开发者在工作中为开源做贡献,无论是像 Kubernetes 这样的大型项目,还是像 Ansible 这样的开源产品。

然而,绝大部分开源软件项目的维护工作是由志愿者在业余时间完成的。许多项目从个人的业余项目发展成为流行且广泛使用的库。随着吸引力的增加,社区会打开更多的问题和拉取请求。维护者日益增长的责任现在是协调接收到的请求和更改,并引导整个项目。

有很多关于开源软件维护者的挑战和 挣扎 的故事。他们谈论着令人情绪疲惫的社区管理,以及必须投入大量精力来分类问题和拉取请求。当听到这些(主要是志愿的)努力的故事时,维护者有时会感到工作量过大而离开他们的项目也就不足为奇了。

减少投入开源项目的时间甚至离开开源项目的原因有很多且各不相同。维护者离开公司或失去兴趣。个人生活中的变化让他们没有更多时间来照顾项目,或者他们因为倦怠或疾病而完全停止在开源领域的活动。在最坏的情况下,他们已经去世了。

在所有这些情况下,项目都被遗忘了,通常只有原始作者拥有管理权限或访问发布帐户的权限。当然,你可以 fork 并以新名称发布项目。但最终,这会导致关于项目状态的混乱,以及它是否可以并且应该仍然被认为是稳定的软件。

看似未维护的项目负担

在过去几年的 Web 开发中,我经常发现自己处于长期使用的库不再与最新版本的框架或编程语言兼容的情况。事实证明,最初的维护者在离开公司后失去了对项目的访问权限,或者只是无法投入足够的时间。总是很难联系到任何可以帮助合并错误修复和发布新版本的人。

构建 Adoptoposs

在我发现仅在 GitHub 上就有超过 36,000 个问题询问 “这个项目被废弃了吗?” 后,我开始思考如何解决这个问题。其中超过 15,000 个是未解决的问题。因此,许多项目都需要维护方面的帮助。

我很幸运,今年年初我正处于换工作的空档期,有很多时间思考这个问题,以及我如何才能为开源项目及其维护者的健康做出贡献。所以我只是开始着手做一些事情。

首先,我认为如果有一个仪表板可以根据开源项目是否需要维护帮助来对其进行评级,那可能会很好。当我在几天的工作后运行了一个原型时,我发现它在某种程度上奏效了,但并没有真正克服与维护者取得联系的问题。而且,当我在需要支持时难以联系到维护者时,就已经为时已晚。

因此,我重新考虑了实际目标。因为维护者最先知道他们何时需要帮助,所以他们应该能够让他们的项目对潜在的共同维护者可见并寻求帮助。同样,考虑成为共同维护者的人应该能够找到有趣的项目并联系维护者。

有了这些写下来的目标,我于 2020 年 2 月开始构建 Adoptoposs。我必须说,它比我预期的要快。作为技术栈,我选择了 Elixir 并尝试了 Phoenix LiveView,主要是因为我想更多地了解它,但也因为我计划从一开始就将 Adoptoposs 作为开源发布。就生产力以及我将不得不花费在维护和托管应用程序上的资源而言,这个技术栈似乎是完美的。

两个月后,在学习了很多关于 Elixir、HTML、CSS 和用户体验设计之后,Adoptoposs 于 3 月 30 日上线。从那时起,它已经找到了它的第一个共同维护者——当然是通过使用 Adoptoposs!

你如何提供帮助

Adoptoposs 的理念是,每个具有相当知名度的开源项目都应该有一个共同维护者团队,以避免陷入被忽视的境地。多人应该拥有对项目和所有相关服务(如软件包注册表、托管帐户和第三方服务)的完全访问权限,以确保即使维护者来来去去,维护工作也能持续进行。

对于你流行的开源项目,我鼓励你建立一个共同维护者团队,以消除单点故障。有很多很棒的方法可以在建立信任的同时做到这一点。

你的共同维护者不一定需要每天都参与项目。他们可能只是紧急情况下的联系人,但至少他们可以在那里。这个过程通常意味着在前维护者想要退出时,给予新的维护者访问权限。你可以参考 Python 的核心开发者计划 等示例,或者查看 Homebrew 的项目指南,以获取想法和方向。

正在寻找维护者?试试 Adoptoposs!

如果你还没有想到你的开源项目的共同维护者,请考虑将你的项目提交到 Adoptoposs.org。Adoptoposs 将列出你的项目,并通知对你使用的编程语言感兴趣的开发者。

请记住 记录关于你的项目的重要细节,以便人们更容易帮助你。尽早寻求帮助,并建立一个共同维护者团队,以保持你的开源项目和你自己的健康。

如果你正在考虑成为一名共同维护者,你可以探索需要帮助的项目并联系维护者。你可以非常肯定你的帮助是需要的,而且这是一个提升你的专业知识或只是享受代码乐趣的好方法。

当然,如果你发现 Adoptoposs 有任何问题,或者对如何改进它有任何建议,请在我们的 GitHub 仓库 中告知我们。

接下来阅读什么
标签
User profile image.
Paul 是一名软件开发者,漫画迷,也是烂笑话爱好者。他的目标是掌握多种语言,以便为世界上的所有小问题找到合适的工具——目前正尝试用 Elixir、Ruby、Python 和 JavaScript 解决其中的一些问题。如果他不编程,Paul 喜欢绘画和创作关于日常瞬间的漫画。

1 条评论

不错的信息

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.