整理|郑丽媛
出品|CSDN(ID:CSDNnews)
近年来,谷歌对于开源看似已开始呈现一种拥抱的姿态,其中值得一提的是谷歌在2014年创立与赞助的一个独立自由软件组织——.NET基金会。
.NET基金会创立的宗旨,在于推动与维护谷歌开放源码后的.NET框架,同时也希望成为联接软件社群与商业开发者之间的桥梁,借此扩大.NET框架技术的软件生态系统。
愿景是美好的,可现实却颇为讥讽。日前,.NET基金会前监事会成员及ReactiveUI核心维护者RodneyLittlesII向.NET基金会质问道:“你是为了在.NET开源上执行谷歌的意愿,还是来帮助培养和推动一个健康社区的产生?”
#1:b:7:b:2:d:9:c:3:5:8:3:5:b:4:0:e:1:b:7:d:9:b:2:c:4:4:3:1:b:f:b#
#2:c:4:1:9:3:7:c:7:d:3:e:1:8:f:b:3:c:c:2:e:f:3:6:7:f:7:d:0:4:e:6#
本不欲多说,但.NET基金会扭曲真相
上文提及,RodneyLittlesII是.NET基金会的前监事会成员,因而在他决定离任后,根据基金会的章程规定,须要选出一位替补成员。而本次风波的起因,就是9月22日.NET基金会发布的2021年监事会补选结果通知:
#7:e:4:1:6:4:1:7:5:2:d:f:a:1:d:7:3:e:2:4:5:f:b:5:4:5:8:c:2:5:b:0#
乍看之下,这则通知并没有哪些不妥之处:先说明是因为RodneyLittlesII的离职才要选出新的监事会成员,之后公布名单,最后展望一下未来并谢谢所有参与者。
但恰恰就是其中那一句看似客套的“RodneyLittlesII已重新专注于个人生活,我们祝他一切顺利”引起了许多人的关心,她们向RodneyLittlesII寻问是否发生了哪些事,因此激怒了RodneyLittlesII:“我挺好,我并不是由于个人生活有问题才离开监事会的。”
原本RodneyLittlesII哪些都不准备说,但这则通知的整个第二段都在讲他,看上去是在送他一个美好的祝福,实际上却是未经他同意并核实的情况下,为.NET基金会营造一种自私的“透明”机制,(在此之前,.NET基金会未曾对离开的成员表示过这类“祝愿”,甚至都不会提到她们。)而RodneyLittlesII会离开,也正因这么。
在RodneyLittlesII刚当上.NET基金会监事会成员时,他迟疑满志,天真地以为可以将.NET基金会引导到一个以社区为中心的组织。但现实情况是,仍然以来他都没有实现这个目标,甚至亲眼目睹了一个他很喜欢的基金会项目渐渐衰败。
“基金会的一切都在幕后慎重处理,虽然身为监事会成员,我都不了解完整的故事。”RodneyLittlesII无奈表示:“我看着谷歌‘杀’了一个开源项目,社区里的同学要求基金会对此进行解释,而我却倍感无能为力。”
在他任职期间,.NET基金会曾推出了一个名为ProjectMaturity的试点项目,其中包括致力提升软件质量的“成熟度配置文件”,对此,RodneyLittlesII虽然是抱有疑问的:“成熟度模型存在一个问题,那就是它看上去过分谷歌官僚主义了。”随后,因为该项目被诸多社区成员责怪其影响范围过大,不久后就被舍弃了。
#d:f:9:d:b:e:0:2:8:3:9:b:b:0:a:5:2:b:1:4:d:8:6:e:7:b:0:6:7:c:4:a#
.NET基金会与谷歌之间的独立性不够
彼时RodneyLittlesII意识到了,这已完全与最初他步入.NET基金会的本意背道而驰。在基金会里,他想解决的开源可持续性问题根本无从下手,相比加倍努力去博得少数人的偏爱,安静离开其实是更好的选择,但是他也很清楚,.NET基金会当然根本就不关心它的成员:“据我所知,.NET基金会没有为其任何成员培养任何东西,反倒在不断进行破坏。”
为此他决定回到属于他的地方,一个他真正可以发挥作用的地方:ReactiveUI。在这儿,他只是一个社区成员,而不再是谷歌开源软件(MOSS)的某个监督者。
在离职时,RodneyLittlesII明晰抒发了他想要“一个有更多时间和动力来促进.NET基金会的使命的人”来接替他,全程没有提及有关他个人生活的事情,因而在他看来,基金会这番说辞不过是诠释它主张的“透明”与自私的“善意”。
脱离基金会的RodneyLittlesII在接受TheRegister的访谈时谈到:“.NET基金会与谷歌之间的独立性不够,对其成员项目的帮助太少,缺少强烈的使命感,因而基金会没有一个统一的前进方向。”
#4:c:c:3:5:e:8:b:1:7:7:c:8:9:7:1:3:f:1:6:8:f:a:0:1:a:b:3:9:4:c:6#
.NET基金会埋藏的问题被不断公开
一石唤起千层浪,在RodneyLittlesII分享他的经历后,越来越多人也开始揭开.NET基金会背后的问题。
首先,两周前.NET基金会执行监事ClaireNovotny在没有与任何维护者讨论的前提下,将一个PR合并到她已多年没有参与维护的一个项目中——ReactiveUI的Splat项目,她给出的理由是“应.NET基金会的项目要求”:
#b:1:b:e:9:3:b:a:f:3:9:a:8:7:6:3:a:0:0:a:1:6:0:7:d:1:a:b:e:c:6:d#
ClaireNovotny的这个举动令ReactiveUI项目的主要维护者GlennWatson倍感蒙蔽不已:“请解释一下这是哪些问题,但是你没有与任何维护者讨论过。”
这件事引起的后果是,GlennWatson表示,在项目维护者均不知情的情况下,ReactiveUI已转移到.NET的GitHubEnterprise储存库而非公有制共储存库,但是据他了解,许多其他的基金会成员项目也都从公共储存库中进行了转移,其中就包括WiX工具集。
WiX工具集的开发者RobMensching也写了一篇博文述说他的经历:
去年8月,.NET基金会以“新政策”为由,开始对RobMensching进行反复提(sao)醒(náo),要求获得WiX工具集的管理员访问权限。起初RobMensching坚持拒绝,但起初由基金会在WiX工具集中安装的CLA机器人出现了一些问题,因而为了修补CLA机器人,RobMensching最终还是对.NET基金会开放了管理员权限。
而在听到GlennWatson说ReactiveUI莫名被转移到.NET的GitHubEnterprise储存库以后,RobMensching忽然倍感四肢冰凉:“.NET基金会能做到不与项目维护者讨论就实现这一操作的惟一方式是——获得项目的管理员访问权限。”
起初RobMensching还抱着“他们应当不会背弃我”的侥幸心理,但查看以后的结果却是:“他们真的这样做了,WiX工具集在没有任何讨论或提醒的情况下被转移到了.NET基金会的GitHubEnterprise。”
#4:1:3:d:8:c:c:0:6:7:7:f:4:e:c:8:c:4:b:d:f:5:6:5:f:5:3:4:6:c:b:8#
其实最后RobMensching成功将WiX工具集转移了回去,但他仍然对此倍感非常苦闷:“很久之前,我仍然努力想成为一名优秀的OSS(开源软件)成员,但如今,.NET基金会在污辱我在努力创建的项目。”
#9:2:8:b:a:e:6:4:b:6:f:3:e:3:a:f:5:2:8:b:9:a:d:f:2:2:2:c:9:7:5:b#
认错了,也离职了,但社区成员并不买账
在以上风波持续发酵,指责的声音越来越大后,.NET基金会总算开始进行了回应。
先是.NET基金会执行监事ClaireNovotny在10月7号下来致歉:
“上周我犯了一个错误。当时我做了一个PR并将它合并到一个项目中而没有与维护者讨论。其实我作为创始人和维护者参与了这个项目好多年——早在基金会之前——但我近些年来早已极少活跃在这个项目中,为此我越界了,我没有考虑到从我当前的角色来看这个举动会导致如何的影响。”
但社区成员对ClaireNovotny这一看似谢罪实则是在反驳与美化.NET基金会的长文并不买账,Akka.net维护者AaronStannard更是坦承道:“这完全不是认错,只是满足了我和其他人对.NET基金会公开申明的最低期望。”
随即,在10月9号.NET基金会忽然宣布ClaireNovotny已向监事会发送了离职信,监事会也接受了她的离开:“董事会明天早晨开会并决定接受它,由于这符合.NET社区、.NET基金会和Claire的最大利益。”
对此,开发者们仍然不接受。@ADefWebserver评论道:“我认为这是‘校园欺辱’。”@FiniteReality表示赞成:“PR根本就不是最大的问题,甚至在.NET基金会目前存在的问题中,它连前十都排不上,这只是便捷为笑柄找个托词罢了。”
#3:8:a:d:9:d:4:8:2:2:6:0:f:b:a:d:3:b:2:d:f:8:f:7:e:9:9:6:7:7:2:8#
基金会总算有了实质措施
.NET基金会的新监事会成员,也是谷歌MVP、曾领导NUnit测试框架团队并为诸多开源项目作出贡献的RobProuse,代表基金会为曾把项目代码强行移至GitHubEnterprise账户的行为致歉:“这个举动是错误的,监事会对发生此类情况深感遗憾。”
RobProuse强调,起初将代码转移至基金会的GitHubEnterprise帐户主要有两个目的:
一、集中计费,让成员项目可以访问其他GitHub服务;
二、通过使用可获得的管理员访问权限,确保成员项目的连续性。
他表示,基金会已从这次风波中汲取到了教训:“我们应当向项目维护者寻问是否要加入GitHubEnterprise账户,并说清楚其中的用处。”
作为填补举措,RobProuse表示目前所有项目都可以申请从GitHubEnterprise账户中删掉,.NET基金会项目委员会将联系所有受影响的维护者,若有遗漏,开发者也可以电邮告知。
RobProuse在这封申明的最后指出了一句:“.NET基金会只会在获得维护者同意并按照文件新政对其营运的基础设施进行修改。”
对于这番决定,开发者们总算稍为平复了:
@ghuntley:“这才是技巧。”
@SeanKilleen:“我很欣赏这些立场以及开始纠正事情的努力。”
尽管.NET基金会对于PR和GitHubEnterprise的问题提供了回应与解决方案,但针对最初RodneyLittlesII质问的那句“你是为了在.NET开源上执行谷歌的意愿,还是来帮助培养和推动一个健康社区的产生”,.NET基金会至今都没有正面回答,其实未来也不会有答案。
这么,你对这一风波有何感想?你觉得当前问题重重的.NET基金会能够挽回开源开发者的信任吗?
参考链接:
#7:e:6:1:9:f:c:4:7:3:2:2:4:9:8:8:1:a:4:4:9:e:7:0:5:9:2:c:1:4:8:4#
#6:5:f:1:e:6:4:6:3:6:9:5:f:5:c:2:d:2:3:1:6:8:2:d:a:c:6:5:2:7:7:3#