在之前的文章我們討論了微軟開源 .NET 框架核心部分後一年的社群的貢獻程度。本文要繼續繼續分析這個問題,但是主要關注的是 ASP.NET 生態圈下的專案:
- MVC -構建動態 Web 網站的 模型-檢視-控制器 框架,包括合併 MVC,Web API 和 Web Pages w/ Razor。
- DNX – DNX (一個 .NET 執行環境) 包括啟動和執行應用所需要的程式碼,包括編譯系統,SDK 工具和原生 CLR hosts。
- EntityFramework – 微軟為 .NET 新應用推薦的資料訪問技術
- KestrelHttpServer – ASP.NET 5 基於 libuv 的 Web 伺服器
方法論
在上一篇文章把 issues/PRs 建立者分為專案擁有者,協作者和社群成員。但是這會有一些質疑,有一些協作者並不是微軟員工。
所以,決定分為以下兩種角色:
- 微軟
- 社群
這是可行的,因為所有微軟員工都會在 GitHub 個人資訊裡面標記為微軟員工,比如:
結果
經過這個調查分析,“issues”超過 60% 是社群成員建立的,合併的“Pull Requests”有超過 30% 是社群成員完成的。但是,這個資料平均值已經被 EntityFramework 專案變得有點不真實,因為 EntityFramework 裡面微軟員工完成合並的 PRs 比社群成員的多太多,如果忽略這個專案,社群成員完成的 PRs 數可以達到 44%。
Issues 建立 (2013 年 11 月 – 2015 年 12 月)
Project | Microsoft | Community | Total |
---|---|---|---|
aspnet/MVC | 716 | 1380 | 2096 |
aspnet/dnx | 897 | 1206 | 2103 |
aspnet/EntityFramework | 1066 | 1427 | 2493 |
aspnet/KestrelHttpServer | 89 | 176 | 265 |
Total | 2768 | 4189 | 6957 |
合併的 Pull Requests (2013 年 11 月 – 2015 年 12 月)
Project | Microsoft | Community | Total |
---|---|---|---|
aspnet/MVC | 385 | 228 | 613 |
aspnet/dnx | 406 | 368 | 774 |
aspnet/EntityFramework | 937 | 225 | 1162 |
aspnet/KestrelHttpServer | 69 | 88 | 157 |
Total | 1798 | 909 | 2706 |
注意:這裡包括了 Kestrel Http Server 專案,因為這是非常有趣的一個事例,當前 #1 貢獻者並不是微軟員工,他是 Ben Adams,在改進記憶體使用做了很大的貢獻。
每個月建立的 Issues – By Submitter (點選檢視原圖)
每個月合併的 Pull Request – By Submitter (點選檢視原圖)
人們的貢獻總和
不同角色 GitHub 使用者對每個專案的總貢獻程度,issue 建立和 PR 合併:
Project | Microsoft | Community | Total |
---|---|---|---|
aspnet/MVC | 39 | 395 | 434 |
aspnet/dnx | 46 | 421 | 467 |
aspnet/EntityFramework | 31 | 570 | 601 |
aspnet/KestrelHttpServer | 22 | 95 | 117 |
Total | 138 | 1481 | 1619 |
FSharp
Isaac Abraham 指出了之前那篇文章的一些問題:
.NET 在一年之間開源的部分不僅僅是這麼多,還有 F# 編譯器和 FSharp.Core。
為了確認這個,大概瀏覽了一下 FSharp 庫:
就像 Isaac 解釋的,他們的關係是:
… visualfsharp 是微軟的庫 Visual F#,另一個是社群所有。前者是直接整合到 Visual Studio 的 Visual F# 工具鏈;後者是類似 Xamarin 的工具。這裡有一個 (過時) 關係解釋圖,其他內容請看 http://fsharp.github.io/。
FSharp – Issues 建立數 (2010 年 12 月 – 2015 年 12 月)
Project | Microsoft | Community | Total |
---|---|---|---|
fsharp/fsharp | 9 | 312 | 321 |
microsoft/visualfsharp | 161 | 367 | 528 |
Total | 170 | 679 | 849 |
FSharp – 合併的 Pull Requests (2011 年 5 月 – 2015 年 12 月)
Project | Microsoft | Community | Total |
---|---|---|---|
fsharp/fsharp | 27 | 134 | 161 |
microsoft/visualfsharp | 36 | 33 | 69 |
Total | 63 | 167 | 230 |
總結
社群越來越多的響應會促使微軟開源更多的專案程式碼。