.NET 開源一年以後......

發表於2016-01-22

微軟已經開源 .NET framework 的核心部分一年多了,之前 Scott Hanselman 做了一個 非常好的原始碼分析工具,基於微軟的 Power BI 實現。本文也是通過這個分析工具得出的結論,.NET 框架核心部分開源一年多了:

自從微軟開源之後,究竟社群參與了多少?

這裡會以 3 個 .NET 生態系統中最主要的三個部分來說明,這些專案也是 .NET 基金會最活躍/最多 star 和最多 Fork 的專案

  • Roslyn – .NET 編譯平臺 (“Roslyn”) 提供開源 C# 和 Visual Basic 的編譯器,支援富程式碼分析 APIs。
  • CoreCLR – .NET Core 執行時,名為 CoreCLR,包括一個基礎庫 mscorlib。CoreCLR 包括垃圾收集器,JIT 編譯器,基礎 .NET 資料型別和大量低階別類。
  • CoreFX –  .NET Core 函式庫,包括集合,檔案系統,工作臺,XML,非同步等等。

現有資料

GitHub 自身也有一些內建圖表,以下就是整一年中的 Commits per Month:

Commits Per Month

還有一個很清晰的儀表盤可以檢視 Monthly Pulse

github stats - monthly pulse

但是要回答那個問題還需要更多的資料,幸運的是,GitHub 還提供一個非常不錯的 API,完美的結合了 Octokit.net library LINQPad,這樣可以輕鬆的獲取想要的資料。這裡有個示例 LINQPad 指令碼

但是,即使知道每個月的 “# of Issues” 或者 “Merged Pull Requests” 也沒有用,因為不能知道是誰建立了 issue 和提交了 PR。但是 GitHub 還有一個功能,可以識別不同的使用者。請看 Roslyn Issue #670,可以清楚的識別使用者是專案所有者還是協作者,沒有任何說明的就是社群參與人員。

owner collaborator or community

結果

資料已經到手,結果就在資料裡面:

總 Issues 數 – By Submitter

Project Owner Collaborator Community Total
Roslyn 481 1867 1596 3944
CoreCLR 86 298 487 871
CoreFX 334 911 735 1980
Total 901 3076 2818 6795

在這裡可以看出,在某些情況下,擁有者和協作者貢獻占主導地位。例如:Roslyn 幾乎 60% 的 issues 是擁有者和協作者開啟的。但是在另一些方面,社群表現會很活躍,特別是在 CoreCLR,這個專案社群成員開啟的 issue 比較多。還有一部分原因是不同的專案,CoreCLR 是 .NET 最明顯的部分,包括微軟的一些網路框架,.NET 開發者日常開發經常用到,所以社群會有比較多的建議,改進和修復,而且 CoreCLR 是比較有歷史的一個庫。相對來說,Roslyn 是一比較新的專案,平常比較少用,而且在編譯器找錯誤也是比較困難的。

總合並 Merged Pull Requests – By Submitter

Project Owner Collaborator Community Total
Roslyn 465 2093 118 2676
CoreCLR 378 567 201 1146
CoreFX 516 1409 464 2389
Total 1359 4069 783 6211

但是當我們看合併的 Pull Requests 數,社群成員無疑是參與比較少的,只有大概 12%。但這並不意外,因為不是所有的 pull request 都被接受。首先,專案會使用他自己的機制, up for grabs,所以 12% 已經很不錯了。

更新: “up for grabs” 並不是必要的。

每個月的 Issues 數 – By Submitter

Issues Per Month - By Submitter (Owner, Collaborator or Community)

每個月合併的 Pull Request – By Submitter

Merged Pull Requests Per Month - By Submitter (Owner, Collaborator or Community)

issue 標籤 Top 20

最常使用的 issue 標籤 TOP 20

Top 20 Issue Labels

這是根據結果的一些觀察:

相關文章