本文共 2082 字,大约阅读时间需要 6 分钟。
开源维护机制
关于开放源代码软件(OSS),您可以说一件事,那就是它默默无闻地运行着我们的世界。 互联网的大部分都建立在开源软件之上,如今,数百万开发人员使用构建和维护成千上万个开源软件包。 如果这还不够,那么企业公司将在2020年继续增加对开源的投资。
开源软件渗透到我们的日常生活中越多,保持所有这些项目的安全性,兼容性和维护性就变得越重要。
正如我们将看到的那样,这并不像听起来那样容易,特别是如果志愿者构建了大量开源资源时。 为了解决开源维护的问题,我构建了 ,这是一个应用程序(当然是开源的),可以帮助您找到共同维护者并保持开源项目及其维护者的健康。
很多开发者贡献的开源工作,无论是像一个庞大的工程或开源产品一样 。
但是,大量OSS项目的维护是由志愿者在业余时间完成的。 许多项目从个人副项目发展为流行且广泛使用的库。 社区吸引了更多的关注,提出了更多的问题和请求请求。 维护人员的责任越来越大,现在是协调传入的请求和更改并引导整个项目。
。 他们谈论的是精神上令人筋疲力尽的社区管理,以及在分类问题和拉动请求方面必须付出的巨大努力。 当听到这些(大多数是自愿的)努力的故事时,维护人员有时会因工作量大而感到不知所措,而放弃了他们的项目也就不足为奇了。花费更少的时间甚至什至离开开源项目的原因有很多。 维护者离开公司或失去兴趣。 个人生活的变化使他们更少的时间来照顾项目,或者完全由于精疲力尽或生病而停止了在开源领域的活动。 在最坏的情况下,他们已经过世了。
在所有这些情况下,项目都被遗留下来,通常只有原始作者拥有管理权或访问发布帐户的权限。 当然,您可以使用新名称创建分支并发布项目。 但是最终,这导致了对项目状态以及是否可以并且仍然应该将其视为稳定的软件的困惑。
在过去的几年中,进行Web开发时,我经常发现自己的情况是,长期使用的库不再与最新版本的框架或编程语言兼容。 原来,原始维护者在离开公司后就失去了访问该项目的权限,或者只是没有足够的时间。 很难与任何可以帮助合并错误修复程序和发布新版本的人联系。
我发现仅在GitHub上,就有36,000多个问题问 ,我考虑了如何解决这个问题。 其中有15,000多个是未解决的问题。 因此,许多项目在维护方面需要帮助。
我很幸运,今年初我处于工作岗位之间,并且有很多时间考虑这个问题以及如何为开源项目及其维护者的健康做出贡献。 所以我刚刚开始做某事。
首先,我认为最好有一个仪表板来评估OSS项目是否需要维护方面的帮助。 经过几天的工作,当我运行了一个原型时,我发现它虽然可行,但并没有真正克服与维护人员联系的问题。 而且当我需要支持人员而难以与维护者联系时,已经为时已晚。
因此,我重新考虑了实际目标。 因为维护人员首先知道他们何时需要帮助,所以他们应该能够使他们的项目对潜在的共同维护人员可见并提出要求。 同样,考虑成为共同维护者的人们应该能够找到有趣的项目并与维护者联系。
写下这些目标后,我于2020年2月开始构建Adoptoposs。我必须说,它的发展速度比我预期的要快。 作为技术堆栈,我选择了并尝试了 ,主要是因为我想了解更多有关它的信息,还因为我计划从一开始就将Adoptoposs作为开源发布。 就生产力和我必须花在维护和托管应用程序上的资源而言,此堆栈似乎是完美的。
两个月后,在我对Elixir,HTML,CSS和用户体验设计有了很多了解之后,Adoptoposs于3月30日上线。自那时以来,它已经找到了自己的第一个联合维护者,当然是使用Adoptoposs!
Adoptoposs的理念是,每个受欢迎程度很高的开源项目都应该有一个共同维护者团队,以免被忽视。 多个人应具有对项目和所有相关服务(如程序包注册表,托管帐户和第三方服务)的完全访问权限,以确保即使维护人员来来去去,也能进行持续的维护。
对于您流行的开源项目,我建议您组建一个共同维护者团队以消除单点故障。 建立信任时,有很多方法可以做到这一点。
您的共同维护者不必每天都在项目上工作。 他们可能只是紧急情况下的联络人,但至少他们将能够在那里。 此过程通常意味着在以前的维护者想要卸任时给予新维护者访问权限。 您可以遵循诸如的类的示例,也可以参阅上的项目指南,以获取想法和指导。
如果您还没有开源项目的共同维护者,请考虑将项目提交给 。 Adoptoposs将列出您的项目,并通知对您使用的编程语言感兴趣的开发人员。
请记住有关您项目的 ,以使人们更轻松地为您提供帮助。 尽早开始寻求帮助,并建立一个团队维护团队,以保持您的开源项目和您自己的健康。
如果您正在考虑成为共同维护者,则可以探索需要帮助的项目并与维护者联系。 您可以肯定需要帮助,这是提高专业知识或仅使代码有趣的好方法。
当然,如果您发现Adoptoposs的任何问题或对改进的建议,请在告诉我们。
翻译自:
开源维护机制
转载地址:http://knszd.baihongyu.com/