如果GitHub是魔鬼怎么办?

2021-01-28 22:25:41

一些批评家认为curl项目不应该使用GitHub。反对GitHub托管的原因通常是以下一种或多种:

有些人坚持疯狂,例如“我们让GitHub保留源代码人质”。

curl项目大约在11年前切换到了GitHub(从Sourceforge),从那以后一直很顺利。

我们之所以在GitHub上,不仅因为它提供了许多实用功能,而且是一种用于托管和管理源代码的稳定且快速的服务。 GitHub也是数百万已拥有帐户并熟悉GitHub开发风格,条款和工具的开发人员的开发人员中心。通过在GitHub上,我们减少了贡献过程中的摩擦,并最大限度地提高了其他人加入和帮助的能力。我们降低酒吧。这对我们有好处。

通过自托管服务提供几乎相同的正常运行时间和快速的响应时间是一个挑战,并且需要花费一些时间和精力来自愿开展这项工作-我们现在可以花时间和精力来代替开发该项目。作为一个小型的独立开源项目,我们没有任何“基础设施部门”可以为我们做这件事。并相信我:我们已经有足够的基础架构管理来应对,而无需增加。

…并运行我们自己的托管版本,对于已经在使用该平台并了解该平台的人们,我们将失去“网络效应”和便利。我们还将失去与很酷的服务(例如我们运行的许多不同的CI和代码分析器作业)的轻松集成。

git是开源的,而GitHub是专有系统。但事实是,即使我们与竞争对手一起在其他地方完成代码托管,我们的代码仍将存储在我们永远无法物理访问的远程服务器园区中的某个机器上。托管公司使用开放源代码还是专有代码都没有关系。如果他们决定有一天关闭服务器,甚至只是选择性地阻止我们的项目,我们将无能为力。

我们必须努力,以使它的风险以及如果它仍然发生的影响降到最低。

专有软件平台可以像任何免费或开放源代码软件平台一样,将我们的代码作为人质,仅仅是因为我们让别人来托管它。它们运行我们存储代码的服务器。

无论我们使用哪种服务,总有一天他们会关灯并且不回来的风险,或者只是更改规则或许可条款以阻止我们呆在那里。我们无法避免这种风险。但是,我们可以确保自己对此有所了解,制定应急计划,或者至少对当日到来时该怎么做有所了解。

如果GitHub立即关闭并且我们收到零警告以从他们那里抢救一切,那么curl项目的结果将是什么?

码。到那时,我们仍将拥有完整的git存储库,其中包含所有代码,所有源历史记录和所有现有分支。我们有数百名开发人员经常自动提取该存储库,其中许多是自动生成的,因此在世界范围内都有非常分散的备份。

CI。我们大部分的CI设置都是通过源存储库中的yaml配置文件完成的。如果我们过渡到另一个托管平台,则可以重用它们。

问题。错误报告和请求请求存储在GitHub上,突然退出肯定会让我们失去其中的一些。我们每天都会对所有问题和请求请求进行“提取”,因此仍可以保存和保留许多元数据。我也不认为这将是沉重的打击:我们将长期存在的错误和想法移到存储库中的文档中,因此,当前打开的错误和想法可能会在不远的将来再次提交。

毫无疑问,这对于该项目来说将是一个重大的提速机,但不会比这更糟。我们可以在新平台上反弹,开发将在几天之内进行。

一件罕见的事情是,一项服务突然间没有任何警告,也没有任何提示,只会变黑,并使项目完全搁浅。在大多数情况下,我们会收到警报,通知,并有机会进行整洁有序的过渡。

当然,还有其他选择。看起来相似并提供相似服务的纯GitHub替代方案,以及使我们自己运行相似事物并在本地托管的项目。有很多选择。

我不是在寻找替代品。我不打算在不久的将来切换托管!如上所述,我认为GitHub对curl项目是一个积极的影响。

我们之前已经切换过几次服务,并且我希望我们将来会再次改变,我们将为工作以及项目中的开发人员和参与者提供各种托管和相关项目。没有什么可以天长地久。

当我们使用的服务出现故障或变酸时,我们将找出可能的最佳替代方案并采取行动。然后,我们修补跳跃可能造成的所有缝隙,并将竞赛继续到未来。步步高升。我们已经知道了二十多年的方法。