首頁(yè)>資訊 >
.NET?基金會(huì),你是為開源而生,還是在為微軟服務(wù)? 2021-10-25 17:38:22  來源:36氪

近些年來,微軟對(duì)于開源看似已開始呈現(xiàn)一種擁抱的姿態(tài),其中值得一提的是 微軟在 2014 年成立與贊助的一個(gè)獨(dú)立自由軟件組織——.NET 基金會(huì)。

.NET 基金會(huì)成立的宗旨,在于推進(jìn)與維護(hù)微軟開放源碼后的 .NET 框架,同時(shí)也希望成為連接軟件社群與商業(yè)開發(fā)者之間的橋梁,以此擴(kuò)大 .NET 框架技術(shù)的軟件生態(tài)系統(tǒng)。

愿景是美好的,可現(xiàn)實(shí)卻頗為諷刺。近日,.NET 基金會(huì)前董事會(huì)成員及 ReactiveUI 核心維護(hù)者 Rodney Littles II 向 .NET 基金會(huì)質(zhì)問道:“你是為了在 .NET 開源上執(zhí)行微軟的意愿,還是來幫助培養(yǎng)和促進(jìn)一個(gè)健康社區(qū)的形成?

1 本不欲多說,但 .NET 基金會(huì)扭曲真相

上文提到,Rodney Littles II 是 .NET 基金會(huì)的前董事會(huì)成員,因此在他決定卸任后,按照基金會(huì)的章程規(guī)定,需要選出一位替補(bǔ)成員。而本次事件的起因,就是 9 月 22 日 .NET 基金會(huì)發(fā)布的 2021 年董事會(huì)選舉結(jié)果通知:

乍看之下,這則通知并沒有什么不妥之處:先說明是由于 Rodney Littles II 的辭職才要選出新的董事會(huì)成員,然后公布名單,最后展望一下未來并感謝所有參與者。

但恰恰就是其中那一句看似客套的“Rodney Littles II 已重新專注于個(gè)人生活,我們祝他一切順利”引起了許多人的關(guān)心,他們向 Rodney Littles II 詢問是否發(fā)生了什么事,因而惹惱了 Rodney Littles II:“我很好,我并不是因?yàn)閭€(gè)人生活有問題才離開董事會(huì)的?!?/p>

本來 Rodney Littles II 什么都不打算說,但這則通知的整個(gè)第二段都在講他,看起來是在送他一個(gè)美好的祝愿,實(shí)際上卻是未經(jīng)他同意并核對(duì)的情況下,為 .NET 基金會(huì)營(yíng)造一種虛偽的“透明”機(jī)制,(在此之前,.NET 基金會(huì)從未對(duì)離開的成員表示過這類“祝愿”,甚至都不會(huì)提及他們。)而 Rodney Littles II 會(huì)離開,也正因如此。

在 Rodney Littles II 剛當(dāng)上 .NET 基金會(huì)董事會(huì)成員時(shí),他躊躇滿志,天真地以為可以將 .NET 基金會(huì)引導(dǎo)到一個(gè)以社區(qū)為中心的組織。但現(xiàn)實(shí)情況是,一直以來他都沒有實(shí)現(xiàn)這個(gè)目標(biāo),甚至親眼目睹了一個(gè)他很喜歡的基金會(huì)項(xiàng)目逐漸衰落。

基金會(huì)的一切都在幕后謹(jǐn)慎處理,即便身為董事會(huì)成員,我都不了解完整的故事。”Rodney Littles II無奈表示:“我看著微軟‘殺’了一個(gè)開源項(xiàng)目,社區(qū)里的朋友要求基金會(huì)對(duì)此進(jìn)行解釋,而我卻感到無能為力?!?/p>

在他任職期間,.NET 基金會(huì)曾推出了一個(gè)名為 Project Maturity 的試點(diǎn)項(xiàng)目,其中包括旨在提高軟件質(zhì)量的“成熟度配置文件”,對(duì)此,Rodney Littles II 其實(shí)是抱有疑惑的:“成熟度模型存在一個(gè)問題,那就是它看起來過于微軟官僚主義了?!彪S后,由于該項(xiàng)目被眾多社區(qū)成員抱怨其影響范圍過大,不久后就被放棄了。

2 .NET 基金會(huì)與微軟之間的獨(dú)立性不夠

彼時(shí) Rodney Littles II 意識(shí)到了,這已完全與最初他進(jìn)入 .NET 基金會(huì)的初衷背道而馳。在基金會(huì)里,他想解決的開源可持續(xù)性問題根本無從下手,相比加倍努力去贏得少數(shù)人的青睞,安靜離開顯然是更好的選擇,并且他也很清楚,.NET 基金會(huì)其實(shí)根本就不關(guān)心它的成員:“據(jù)我所知,.NET 基金會(huì)沒有為其任何成員培養(yǎng)任何東西,反而在不斷進(jìn)行破壞?!?/p>

因此他決定回到屬于他的地方,一個(gè)他真正可以發(fā)揮作用的地方:ReactiveUI。在這里,他只是一個(gè)社區(qū)成員,而不再是微軟開源軟件(MOSS)的某個(gè)監(jiān)督者。

在辭職時(shí),Rodney Littles II 明確表達(dá)了他想要“一個(gè)有更多時(shí)間和動(dòng)力來推動(dòng) .NET 基金會(huì)的使命的人”來接替他,全程沒有提到有關(guān)他個(gè)人生活的事情,因此在他看來,基金會(huì)這番說辭不過是展現(xiàn)它主張的“透明”與虛偽的“善意”。

脫離基金會(huì)的 Rodney Littles II 在接受 The Register 的采訪時(shí)提到:“.NET 基金會(huì)與微軟之間的獨(dú)立性不夠,對(duì)其成員項(xiàng)目的幫助太少,缺乏強(qiáng)烈的使命感,因此基金會(huì)沒有一個(gè)統(tǒng)一的前進(jìn)方向?!?/p>

3 .NET 基金會(huì)潛藏的問題被不斷公開

一石激起千層浪,在 Rodney Littles II 分享他的經(jīng)歷后,越來越多人也開始揭露 .NET 基金會(huì)背后的問題。

未經(jīng)討論,擅自合并 PR

首先,兩周前 .NET 基金會(huì)執(zhí)行董事 Claire Novotny 在沒有與任何維護(hù)者討論的前提下,將一個(gè) PR 合并到她已多年沒有參與維護(hù)的一個(gè)項(xiàng)目中——ReactiveUI 的 Splat 項(xiàng)目,她給出的理由是“應(yīng).NET 基金會(huì)的項(xiàng)目要求”:

Claire Novotny 的這個(gè)舉動(dòng)令 ReactiveUI 項(xiàng)目的主要維護(hù)者 Glenn Watson 感到迷惑不已:“請(qǐng)解釋一下這是什么問題,而且你沒有與任何維護(hù)者討論過。

強(qiáng)行將成員項(xiàng)目從 GitHub 轉(zhuǎn)移到 .NET 基金會(huì)的 GitHub Enterprise

這件事引發(fā)的后果是,Glenn Watson 表示,在項(xiàng)目維護(hù)者均不知情的情況下,ReactiveUI 已轉(zhuǎn)移到 .NET 的 GitHub Enterprise 存儲(chǔ)庫(kù)而非公共存儲(chǔ)庫(kù),并且據(jù)他了解,許多其他的基金會(huì)成員項(xiàng)目也都從公共存儲(chǔ)庫(kù)中進(jìn)行了轉(zhuǎn)移,其中就包括 WiX 工具集。

WiX 工具集的開發(fā)者 Rob Mensching 也寫了一篇博文講述他的經(jīng)歷:

今年 8 月,.NET 基金會(huì)以“新政策”為由,開始對(duì) Rob Mensching 進(jìn)行反復(fù)提(sao)醒(rao),要求獲得 WiX 工具集的管理員訪問權(quán)限。原本 Rob Mensching 堅(jiān)持拒絕,但原先由基金會(huì)在 WiX 工具集中安裝的 CLA 機(jī)器人出現(xiàn)了一些問題,因此為了修復(fù) CLA 機(jī)器人,Rob Mensching 最終還是對(duì) .NET 基金會(huì)開放了管理員權(quán)限。

而在看到 Glenn Watson 說 ReactiveUI 莫名被轉(zhuǎn)移到 .NET的 GitHub Enterprise 存儲(chǔ)庫(kù)之后,Rob Mensching 突然感到渾身冰冷:“.NET 基金會(huì)能做到不與項(xiàng)目維護(hù)者討論就實(shí)現(xiàn)這一操作的唯一方法是——獲得項(xiàng)目的管理員訪問權(quán)限。

原本 Rob Mensching 還抱著“他們應(yīng)該不會(huì)背叛我”的僥幸心理,但查看之后的結(jié)果卻是:“他們真的這樣做了,WiX 工具集在沒有任何討論或提醒的情況下被轉(zhuǎn)移到了 .NET 基金會(huì)的 GitHub Enterprise?!?/p>

雖然最后 Rob Mensching 成功將 WiX 工具集轉(zhuǎn)移了回來,但他依舊對(duì)此感到十分痛苦:“很久之前,我一直努力想成為一名優(yōu)秀的 OSS(開源軟件)成員,但現(xiàn)在,.NET 基金會(huì)在玷污我在努力創(chuàng)建的項(xiàng)目?!?/p>

4 道歉了,也辭職了,但社區(qū)成員并不買賬

在以上事件持續(xù)發(fā)酵,質(zhì)疑的聲音越來越大后,.NET 基金會(huì)終于開始進(jìn)行了回應(yīng)。

先是.NET 基金會(huì)執(zhí)行董事 Claire Novotny 在 10 月 7 號(hào)出來道歉

“上周我犯了一個(gè)錯(cuò)誤。當(dāng)時(shí)我做了一個(gè) PR 并將它合并到一個(gè)項(xiàng)目中而沒有與維護(hù)者討論。雖然我作為創(chuàng)始人和維護(hù)者參與了這個(gè)項(xiàng)目很多年——早在基金會(huì)之前——但我近年來已經(jīng)很少活躍在這個(gè)項(xiàng)目中,因此我越界了,我沒有考慮到從我當(dāng)前的角色來看這個(gè)舉動(dòng)會(huì)造成怎樣的影響。”

但社區(qū)成員對(duì) Claire Novotny 這一看似道歉實(shí)則是在辯解與美化 .NET 基金會(huì)的長(zhǎng)文并不買賬,Akka.net 維護(hù)者 Aaron Stannard 更是直言道:“這完全不是道歉,只是滿足了我和其他人對(duì) .NET 基金會(huì)公開聲明的最低期望?!?/p>

隨后,在 10 月 9 號(hào) .NET 基金會(huì)突然宣布 Claire Novotny 已向董事會(huì)發(fā)送了辭職信,董事會(huì)也接受了她的離開:“董事會(huì)今天早上開會(huì)并決定接受它,因?yàn)檫@符合 .NET 社區(qū)、.NET 基金會(huì)和 Claire 的最大利益?!?/p>

對(duì)此,開發(fā)者們依舊不接受。@ADefWebserver 評(píng)論道:“我覺得這是‘校園欺凌’。”@FiniteReality 表示贊同:“PR 根本就不是最大的問題,甚至在 .NET 基金會(huì)目前存在的問題中,它連前十都排不上,這只是方便為替罪羊找個(gè)借口罷了?!?/p>

5 基金會(huì)終于有了實(shí)質(zhì)舉措

.NET 基金會(huì)的新董事會(huì)成員,也是微軟 MVP、曾領(lǐng)導(dǎo) NUnit 測(cè)試框架團(tuán)隊(duì)并為眾多開源項(xiàng)目做出貢獻(xiàn)的 Rob Prouse,代表基金會(huì)為曾把項(xiàng)目代碼強(qiáng)行移至 GitHub Enterprise 帳戶的行為道歉:“這個(gè)舉動(dòng)是錯(cuò)誤的,董事會(huì)對(duì)發(fā)生這種情況深感遺憾?!?/p>

Rob Prouse 指出,原本將代碼轉(zhuǎn)移至基金會(huì)的 GitHub Enterprise 賬戶主要有兩個(gè)目的:

一、集中計(jì)費(fèi),讓成員項(xiàng)目可以訪問其他 GitHub 服務(wù);

二、通過使用可獲得的管理員訪問權(quán)限,確保成員項(xiàng)目的連續(xù)性。

他表示,基金會(huì)已從此次事件中吸取到了教訓(xùn):“我們應(yīng)該向項(xiàng)目維護(hù)者詢問是否要加入 GitHub Enterprise 帳戶,并說清楚其中的好處?!?/p>

作為彌補(bǔ)措施,Rob Prouse 表示目前所有項(xiàng)目都可以申請(qǐng)從 GitHub Enterprise 帳戶中刪除,.NET 基金會(huì)項(xiàng)目委員會(huì)將聯(lián)系所有受影響的維護(hù)者,若有遺漏,開發(fā)者也可以郵件告知。

Rob Prouse 在這封聲明的最后強(qiáng)調(diào)了一句:“.NET 基金會(huì)只會(huì)在獲得維護(hù)者同意并根據(jù)文件政策對(duì)其運(yùn)營(yíng)的基礎(chǔ)設(shè)施進(jìn)行更改?!?/p>

對(duì)于這番決定,開發(fā)者們終于稍微平復(fù)了:

@ghuntley:“這才是方法?!?/p>

@SeanKilleen:“我很欣賞這種立場(chǎng)以及開始糾正事情的努力?!?/p>

雖然 .NET 基金會(huì)對(duì)于 PR 和 GitHub Enterprise 的問題提供了回應(yīng)與解決方案,但針對(duì)最初 Rodney Littles II 質(zhì)問的那句“你是為了在 .NET 開源上執(zhí)行微軟的意愿,還是來幫助培養(yǎng)和促進(jìn)一個(gè)健康社區(qū)的形成”,.NET 基金會(huì)至今都沒有正面回答,或許未來也不會(huì)有答案。

那么,你對(duì)這一事件有何看法?你認(rèn)為當(dāng)前問題重重的 .NET 基金會(huì)還能挽回開源開發(fā)者的信任嗎?

參考鏈接:

https://rodneylittlesii.com/posts/topic/foundation-echo-chamber

https://robmensching.com/blog/posts/2021/10/6/how-the-.net-foundation-kerfuffle-became-a-brouhaha/

https://www.theregister.com/2021/10/13/net_foundation_admits_it_violated/

https://github.com/dotnet-foundation/Home/discussions/59

https://github.com/dotnet-foundation/Home/discussions/39

本文來自微信公眾號(hào) “CSDN”(ID:CSDNnews),整理:鄭麗媛,36氪經(jīng)授權(quán)發(fā)布。

關(guān)鍵詞: NET 基金會(huì) 你是 開源

相關(guān)閱讀:
熱點(diǎn)
圖片 圖片