关于侏儒的变灰

2020-12-21 04:34:14

GNOME项目今年已满23周岁,尽管同样有谣言不断传出,但它仍在不断发展。

不过还活着吗?我所知道的是:GNOME健康的主题出没的地方,很少会出现准确的数据。当然,在公共源代码存储库中有数据-实际上有很多数据。尽管存在很多缺陷,但它可以使我们与过去进行比较,甚至可以对未来进行预测:少数组织是否承担了大部分工作量,使其成为关键的失败点?新的贡献者是否能够从那些离开的人那里得到帮助?项目是否变灰(即越来越多地由退伍军人控制)?

在偶尔出现的傲慢情绪中,我着手处理此数据,以查看是否可以剔除任何有意义的内容。通常,只要满足自己的好奇心就可以了,但是在这种情况下,对于博客而言,结果似乎足够有趣。所以我们到了。

我将首先介绍漂亮的图表,然后继续介绍方法论部分。后者冗长,无聊且必读。

上方堆叠的直方图显示了每年接触该项目的贡献者数量。根据每个贡献者的首次贡献年份,将他们分配给一个世代队列。随着人们离开,随着时间的流逝,这些人群趋于缩小。

对于仅短暂参与的贡献者,有一个特殊的“开车”队列(以淡淡的白色调),这意味着他们的所有活动都在三个月的时间范围内。这是一个很大的群体。在典型的年份中,有200-400人之前或之后从未见过。他们中的大多数人贡献了一次提交。

据此,GNOME在2010年达到顶峰,略高于1,400个贡献者,并在第二年随着GNOME 3.0发布而下降。但是,即使有初步数据,2020年的贡献者仍是很长一段时间,仍然有两周的时间。谁知道这是不是异常。这是一个非典型的一年。

这是相同的直方图,但每个月都有垃圾箱。半年一次的发布周期会导致明显的周期性。高峰月份是2011年3月,就在GNOME 3.0发布之前。该月约有450位贡献者参与其中。

每月的驾车族相对较小。这是有道理的,因为每月之间几乎没有重叠,而且每年的垃圾箱往往会将它们全部累加。

上方是活跃贡献者的前15个分支。我排除了个人帐户。这是有缺陷的(下面有详细信息),但是仍然很有趣。就其价值而言,它基本上与我对事物的记忆保持一致。

尽管仅捕获了总数量的一小部分,但该模式与总数量的跟踪良好。我认为这意味着付费和未付费用都是由相同的基本趋势驱动的,或者前者隐藏了很多。

在这里,我计算的是不同群组中每年的提交次数。

乍一看,这看起来不那么可怕。但是,请注意,新移民的影响较小,尤其是从2014年开始。 2018-2020年的反弹完全是由于少数退伍军人卷土重来。

到2020年,一半的贡献是由参与该项目十年或以上的贡献者做出的。同样值得一提的是,过失提交仅占总数的很小一部分。

联盟排名前15位,但现在按提交次数排序。可以肯定地说,GNOME在很大程度上依赖付费开发商。具体来说,这毫不奇怪,它严重依赖于Red Hat。

按照F / OSS标准,该项目并非不健康。每年都有数百名经验丰富的初学者。与同行相比,它组织得很好,资金也可以说是充足的。但:

尽管招聘稳定,但新来者似乎在承诺方面并未取得进展。

公司赞助可能是使项目继续进行的必要条件,但是赞助商的领域一直在减少。

我认为GNOME正在通过现代化基础架构(GitLab,Discourse)有效地解决风险因素。即使没有可量化的结果,该方法也具有明显的价值,但是很有趣的是,看看是否可以在未来几年内对效果进行测量。

热情降低的原因还可能在于,新贡献者打分或承担责任的方式越来越少。 GNOME已经变得更加保守,肯定比十年前的GNOME 3更加保守。宣布新版本控制方案的理由和措辞(例如,“对技术维护者而言,根本的技术和设计变更过于破坏性,用户和开发者”)似乎表明了这一趋势1。

那么,该分析有什么问题呢?如果您愿意,可以在下几个小标题下找到详细信息,并通过严格的判断。

我将不科学的严格标准设置得足够高,以希望产生有用的东西,但又足够低,我可以在业余时间做到这一点,而不会陷入通常称为“ 90%完成”的可怕状态。

我汇总了189个Git存储库中的数据。其中的绝大多数都托管在gnome.org上,其中一些来自freedesktop.org和github.com。提交由提交哈希唯一标识,这意味着琐碎的重复仅计数一次。

GNOME一直是一个分散的,大帐篷的项目,因此如何对其进行描述并不明显。通过包含完整的meta-gnome-desktop jhbuild中的大多数存储库,我试图做到公平,包括诸如Cairo,Pango和Pipewire等相当低级的依赖项,以及过去,现在和将来的旗舰应用程序。 GNOME伞。代表了文档和基础架构,还有许多归档项目(例如ORBit2,Bonobo,Sabayon,GAL)。

对于X.Org和Wayland的处理方式,我有些不确定。最后,我决定包括后者,但不包括前者,因为Wayland与GNOME紧密联系(甚至在其TODO文件中引用了GTK +),而X.Org则源于更老的XFree86。

Mono是我拒绝的另一个项目,其中包括:它的发展与GNOME息息相关,在最近十年中完全不同。但是,我确实包括了GtkSharp和在2005-2010年期间台式机上常见的一些GNOME托管的C#应用​​程序。

由于我尚未为模块选择建立严格的标准,因此会受到各种偏见的影响。较早的代码可能没有得到很好的体现,因为重要功能的提供者较早就松散地附加到了项目中(例如GNOME Online Accounts和Telepathy被引入,我是否也应该包括Gaim或Pidgin?XChat怎么样?)。

类似的研究通常通过参与者的电子邮件地址来识别参与者。我改用完整的作者姓名,因为我们有充分的理由认为它们在20年的时间范围内更加稳定。我们在拼写自己的名字方面相当一致,并且很少更改(通常永远不会更改)。另一方面,电子邮件地址随托管方式,雇主等的不同而变化。

这种方法的另一个挑战是,有时不同的人具有完全相同的名字。实际上,我不知道GNOME中会发生这种情况。我似乎很罕见地怀疑它会在大多数项目中引入重大错误。

在此我要补充一点,驾车族取决于相当多的事后洞察力(您永远不知道某人何时会回来做出更多贡献,但是随着时间的流逝,这种可能性会迅速下降)。这意味着2020年的队列是初步的。明年下半年再次运行,它们会更加准确。

在某些图表中,我使用电子邮件域名作为组织的代理。这是一个众所周知的不可靠方法,至少出于以下三个原因:

贡献者经常使用个人电子邮件地址从事有偿工作,从而导致总体上大大低估了人数。

特定公司可能会要求其员工(或很好地要求他们)使用公司电子邮件进行协作。在上市公司中,我知道至少有一家确实做到了这一点。但是,有很多不这样做的地方,相对来说,它们的代表性将相对较差。

DNS与组织之间的映射不是一对一的。公司可以使用多个名称或TLD(例如.co.uk和.com)运营。

尽管存在这些弱点,但通常以这种方式对数据进行切片。如果不访问半封闭的数据仓库,就很难做得更好,并且取决于您对隐私的看法和安全处理PII的能力,无论如何您可能都不希望这样做。但是我敢打赌,如果您是LinkedIn和GitHub的企业所有者,那么您的定位就很好。

按组织分组时,目标是了解哪些外部实体在赞助捐款。因此,我从最大的大规模电子邮件提供商(例如@ gmail.com)和以项目为中心的个人帐户提供商(例如@ gnome.org,@ gtk.org)中过滤掉了地址。

我可以自由地重新分配一些多产的作者的个人领域,否则他们将作为个人组织出现。由于无法为所有人做到这一点,因此会带来一些偏见。完整的详细信息位于项目的元数据文件中(请参阅:代码)。

版本控制系统的转换将GNOME的VCS历史划分为三个时代,它们之间明显不连续。

在糟糕的过去,自由软件通常会使用纯RCS或根本不使用版本控制。我基本上没有这个时代的数据:GIMP是GTK +产生的ur项目,于1997年11月被导入到CVS,但那时至少从1995年中期开始就已在开发中。通过散布旧的tarball版本,可能可以对其进行某种程度的重构。 Linux历史学家已经为内核完成了这一工作。

从1998年开始,GNOME项目主要由CVS维护,其基础设施由Red Hat提供。一些公司(例如Ximian)在自己的CVS实例中维护项目,这些实例后来被合并到GNOME中。

CVS有很多限制。例如,历史记录编辑和其他复杂的操作(如重命名文件)属于技术术语“外科手术”和合格的服务器端外科医生的主持。帐户的集中化还促进了工作流,其中外部捐款的提交没有任何正式的作者身份元数据。这在我的地块中显示为活跃贡献者的数量低估。

GNOME在2007年转移到Subversion。虽然在技术上优于CVS,但它仍然是集中式文件跟踪解决方案,并没有太大改变工作流程。

颠覆并没有持续太久; 2009年迁移到Git。活跃的贡献者人数在那一年激增,部分原因是作者身份元数据更加准确。我认为有理由证明,甚至在Git推出之前,参与度就一直在逐渐增加,但改用适当的DVCS肯定不会造成伤害。

由于许多贡献者在此开关中都离开了@ gnome.org,并且根据电子邮件地址分配了从属关系,因此在这些图中最明显地显示了不连续性。

我预计,随着Git的改进,历史记录管理(以及减少的提交焦虑)也将产生更多的提交。数据并不能真正证明这一点-次年的计数确实有所增加,但是很难与导致GNOME 3的总体势头区分开。

我写了一个小程序来使它自动化。没什么,但是至少它可以作为一个幽默的例子,说明当您的影响力开始超出awk的掌握范围时会发生什么,并且您会想到,我应该使用Rust编写脚本!

我已经以CSV格式上传了图表中使用的报告数据。它应该是不言自明的,可以直接导入LibreOffice(UTF-8,以逗号分隔)中。

根据快速统计,我已经在GNOME项目中做了足够的工作,以使提交者2的前3%都占有一席之地。这虽然不错,但可以说是绝大部分,不是最近。我不代表该项目发言,也不代表任何团体发言。

1不一定是坏事。有人说不总是将地毯从所有人的脚下拉出来。

2撇开谦卑,我想强调一点,因为贡献如此之小(“长尾巴”),即使投入不大,也很容易以较高的百分位数告终。