本不欲多說,但 .NET 基金會扭曲真相
上文提到,Rodney Littles II 是 .NET 基金會的前董事會成員,因此在他決定卸任后,按照基金會的章程規(guī)定,需要選出一位替補(bǔ)成員。而本次事件的起因,就是 9 月 22 日 .NET 基金會發(fā)布的 2021 年董事會選舉結(jié)果通知:
乍看之下,這則通知并沒有什么不妥之處:先說明是由于 Rodney Littles II 的辭職才要選出新的董事會成員,然后公布名單,最后展望一下未來并感謝所有參與者。
但恰恰就是其中那一句看似客套的“Rodney Littles II 已重新專注于個人生活,我們祝他一切順利”引起了許多人的關(guān)心,他們向 Rodney Littles II 詢問是否發(fā)生了什么事,因而惹惱了 Rodney Littles II:“我很好,我并不是因為個人生活有問題才離開董事會的?!?/p>
本來 Rodney Littles II 什么都不打算說,但這則通知的整個第二段都在講他,看起來是在送他一個美好的祝愿,實際上卻是未經(jīng)他同意并核對的情況下,為 .NET 基金會營造一種虛偽的“透明”機(jī)制,(在此之前,。NET 基金會從未對離開的成員表示過這類“祝愿”,甚至都不會提及他們。)而 Rodney Littles II 會離開,也正因如此。
在 Rodney Littles II 剛當(dāng)上 .NET 基金會董事會成員時,他躊躇滿志,天真地以為可以將 .NET 基金會引導(dǎo)到一個以社區(qū)為中心的組織。但現(xiàn)實情況是,一直以來他都沒有實現(xiàn)這個目標(biāo),甚至親眼目睹了一個他很喜歡的基金會項目逐漸衰落。
“基金會的一切都在幕后謹(jǐn)慎處理,即便身為董事會成員,我都不了解完整的故事。”Rodney Littles II 無奈表示:“我看著微軟‘殺’了一個開源項目,社區(qū)里的朋友要求基金會對此進(jìn)行解釋,而我卻感到無能為力?!?/p>
在他任職期間,。NET 基金會曾推出了一個名為 Project Maturity 的試點項目,其中包括旨在提高軟件質(zhì)量的“成熟度配置文件”,對此,Rodney Littles II 其實是抱有疑惑的:“成熟度模型存在一個問題,那就是它看起來過于微軟官僚主義了?!彪S后,由于該項目被眾多社區(qū)成員抱怨其影響范圍過大,不久后就被放棄了。
.NET 基金會與微軟之間的獨立性不夠
彼時 Rodney Littles II 意識到了,這已完全與最初他進(jìn)入 .NET 基金會的初衷背道而馳。在基金會里,他想解決的開源可持續(xù)性問題根本無從下手,相比加倍努力去贏得少數(shù)人的青睞,安靜離開顯然是更好的選擇,并且他也很清楚,。NET 基金會其實根本就不關(guān)心它的成員:“據(jù)我所知,。NET 基金會沒有為其任何成員培養(yǎng)任何東西,反而在不斷進(jìn)行破壞?!?/p>
因此他決定回到屬于他的地方,一個他真正可以發(fā)揮作用的地方:ReactiveUI。在這里,他只是一個社區(qū)成員,而不再是微軟開源軟件(MOSS)的某個監(jiān)督者。
在辭職時,Rodney Littles II 明確表達(dá)了他想要“一個有更多時間和動力來推動 .NET 基金會的使命的人”來接替他,全程沒有提到有關(guān)他個人生活的事情,因此在他看來,基金會這番說辭不過是展現(xiàn)它主張的“透明”與虛偽的“善意”。
脫離基金會的 Rodney Littles II 在接受 The Register 的采訪時提到:“。NET 基金會與微軟之間的獨立性不夠,對其成員項目的幫助太少,缺乏強(qiáng)烈的使命感,因此基金會沒有一個統(tǒng)一的前進(jìn)方向。”
.NET 基金會潛藏的問題被不斷公開
一石激起千層浪,在 Rodney Littles II 分享他的經(jīng)歷后,越來越多人也開始揭露 .NET 基金會背后的問題。
未經(jīng)討論,擅自合并 PR
首先,兩周前 .NET 基金會執(zhí)行董事 Claire Novotny 在沒有與任何維護(hù)者討論的前提下,將一個 PR 合并到她已多年沒有參與維護(hù)的一個項目中——ReactiveUI 的 Splat 項目。
Claire Novotny 的這個舉動令 ReactiveUI 項目的主要維護(hù)者 Glenn Watson 感到迷惑不已:“請解釋一下這是什么問題,而且你沒有與任何維護(hù)者討論過?!?/p>
強(qiáng)行將成員項目從 GitHub 轉(zhuǎn)移到 .NET 基金會的 GitHub Enterprise
這件事引發(fā)的后果是,Glenn Watson 表示,在項目維護(hù)者均不知情的情況下,ReactiveUI 已轉(zhuǎn)移到 .NET 的 GitHub Enterprise 存儲庫而非公共存儲庫,并且據(jù)他了解,許多其他的基金會成員項目也都從公共存儲庫中進(jìn)行了轉(zhuǎn)移,其中就包括 WiX 工具集。
WiX 工具集的開發(fā)者 Rob Mensching 也寫了一篇博文講述他的經(jīng)歷:
今年 8 月,。NET 基金會以“新政策”為由,開始對 Rob Mensching 進(jìn)行反復(fù)提(sao)醒(rao),要求獲得 WiX 工具集的管理員訪問權(quán)限。原本 Rob Mensching 堅持拒絕,但原先由基金會在 WiX 工具集中安裝的 CLA 機(jī)器人出現(xiàn)了一些問題,因此為了修復(fù) CLA 機(jī)器人,Rob Mensching 最終還是對 .NET 基金會開放了管理員權(quán)限。
而在看到 Glenn Watson 說 ReactiveUI 莫名被轉(zhuǎn)移到 .NET的 GitHub Enterprise 存儲庫之后,Rob Mensching 突然感到渾身冰冷:“。NET 基金會能做到不與項目維護(hù)者討論就實現(xiàn)這一操作的唯一方法是——獲得項目的管理員訪問權(quán)限?!?/p>
原本 Rob Mensching 還抱著“他們應(yīng)該不會背叛我”的僥幸心理,但查看之后的結(jié)果卻是:“他們真的這樣做了,WiX 工具集在沒有任何討論或提醒的情況下被轉(zhuǎn)移到了 .NET 基金會的 GitHub Enterprise?!?/p>
雖然最后 Rob Mensching 成功將 WiX 工具集轉(zhuǎn)移了回來,但他依舊對此感到十分痛苦:“很久之前,我一直努力想成為一名優(yōu)秀的 OSS(開源軟件)成員,但現(xiàn)在,。NET 基金會在玷污我在努力創(chuàng)建的項目?!?/p>
道歉了,也辭職了,但社區(qū)成員并不買賬
在以上事件持續(xù)發(fā)酵,質(zhì)疑的聲音越來越大后,。NET 基金會終于開始進(jìn)行了回應(yīng)。
先是。NET 基金會執(zhí)行董事 Claire Novotny 在 10 月 7 號出來道歉:
“上周我犯了一個錯誤。當(dāng)時我做了一個 PR 并將它合并到一個項目中而沒有與維護(hù)者討論。雖然我作為創(chuàng)始人和維護(hù)者參與了這個項目很多年——早在基金會之前——但我近年來已經(jīng)很少活躍在這個項目中,因此我越界了,我沒有考慮到從我當(dāng)前的角色來看這個舉動會造成怎樣的影響?!?/p>
但社區(qū)成員對 Claire Novotny 這一看似道歉實則是在辯解與美化 .NET 基金會的長文并不買賬,Akka.net 維護(hù)者 Aaron Stannard 更是直言道:“這完全不是道歉,只是滿足了我和其他人對 .NET 基金會公開聲明的最低期望?!?/p>
隨后,在 10 月 9 號 .NET 基金會突然宣布 Claire Novotny 已向董事會發(fā)送了辭職信,董事會也接受了她的離開:“董事會今天早上開會并決定接受它,因為這符合 .NET 社區(qū)、。NET 基金會和 Claire 的最大利益?!?/p>
對此,開發(fā)者們依舊不接受。@ADefWebserver 評論道:“我覺得這是‘校園欺凌’?!盄FiniteReality 表示贊同:“PR 根本就不是最大的問題,甚至在 .NET 基金會目前存在的問題中,它連前十都排不上,這只是方便為替罪羊找個借口罷了?!?/p>
基金會終于有了實質(zhì)舉措
.NET 基金會的新董事會成員,也是微軟 MVP、曾領(lǐng)導(dǎo) NUnit 測試框架團(tuán)隊并為眾多開源項目做出貢獻(xiàn)的 Rob Prouse,代表基金會為曾把項目代碼強(qiáng)行移至 GitHub Enterprise 帳戶的行為道歉:“這個舉動是錯誤的,董事會對發(fā)生這種情況深感遺憾。”
Rob Prouse 指出,原本將代碼轉(zhuǎn)移至基金會的 GitHub Enterprise 賬戶主要有兩個目的:
一、集中計費,讓成員項目可以訪問其他 GitHub 服務(wù);
二、通過使用可獲得的管理員訪問權(quán)限,確保成員項目的連續(xù)性。
他表示,基金會已從此次事件中吸取到了教訓(xùn):“我們應(yīng)該向項目維護(hù)者詢問是否要加入 GitHub Enterprise 帳戶,并說清楚其中的好處?!?/p>
作為彌補(bǔ)措施,Rob Prouse 表示目前所有項目都可以申請從 GitHub Enterprise 帳戶中刪除,。NET 基金會項目委員會將聯(lián)系所有受影響的維護(hù)者,若有遺漏,開發(fā)者也可以郵件告知。
Rob Prouse 在這封聲明的最后強(qiáng)調(diào)了一句:“。NET 基金會只會在獲得維護(hù)者同意并根據(jù)文件政策對其運營的基礎(chǔ)設(shè)施進(jìn)行更改。”
對于這番決定,開發(fā)者們終于稍微平復(fù)了:
@ghuntley:“這才是方法。”
@SeanKilleen:“我很欣賞這種立場以及開始糾正事情的努力?!?/p>
雖然 .NET 基金會對于 PR 和 GitHub Enterprise 的問題提供了回應(yīng)與解決方案,但針對最初 Rodney Littles II 質(zhì)問的那句“你是為了在 .NET 開源上執(zhí)行微軟的意愿,還是來幫助培養(yǎng)和促進(jìn)一個健康社區(qū)的形成”,。NET 基金會至今都沒有正面回答,或許未來也不會有答案。
那么,你對這一事件有何看法?你認(rèn)為當(dāng)前問題重重的 .NET 基金會還能挽回開源開發(fā)者的信任嗎?