• <fieldset id="82iqi"></fieldset>
    <tfoot id="82iqi"><input id="82iqi"></input></tfoot>
  • 
    <abbr id="82iqi"></abbr><strike id="82iqi"></strike>
  • .NET?基金會,你是為開源而生,還是在為微軟服務?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    未經討論,擅自合并 PR

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

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

    強行將成員項目從 GitHub 轉移到 .NET 基金會的 GitHub Enterprise

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

    WiX 工具集的開發者 Rob Mensching 也寫了一篇博文講述他的經歷:

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

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

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

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

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

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

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

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

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

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

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

    5 基金會終于有了實質舉措

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

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

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

    二、通過使用可獲得的管理員訪問權限,確保成員項目的連續性。

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

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

    Rob Prouse 在這封聲明的最后強調了一句:“.NET 基金會只會在獲得維護者同意并根據文件政策對其運營的基礎設施進行更改。”

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

    @ghuntley:“這才是方法。”

    @SeanKilleen:“我很欣賞這種立場以及開始糾正事情的努力。”

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

    那么,你對這一事件有何看法?你認為當前問題重重的 .NET 基金會還能挽回開源開發者的信任嗎?

    參考鏈接:

    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氪經授權發布。