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

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

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

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

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

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

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

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

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

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

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

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

2 .NET 基金會與微軟之間的獨立性不夠

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

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

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

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

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

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

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

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

Claire Novotny 的這個舉動令 ReactiveUI 項目的主要維護者 Glenn Watson 感到迷惑不已:“請解釋一下這是什么問題,而且你沒有與任何維護者討論過。

強行將成員項目從 GitHub 轉(zhuǎn)移到 .NET 基金會的 GitHub Enterprise

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

一、集中計費,讓成員項目可以訪問其他 GitHub 服務;

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

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

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

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

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

@ghuntley:“這才是方法。”

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

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

那么,你對這一事件有何看法?你認為當前問題重重的 .NET 基金會還能挽回開源開發(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

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

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

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