React Native 開源更新 2019 年 3 月
在決定加大對 React Native 開源社群的投資後,我們在 2018 年第四季發布了 React Native 開源路線圖。
在我們的第一個里程碑中,我們專注於找出並改善社群中最顯而易見的面向。我們的目標是減少未處理的 pull request、縮減專案的表面積、找出主要使用者問題,並建立社群管理指南。
在過去兩個月中,我們取得的進展超出預期。請繼續閱讀以瞭解更多詳細資訊
Pull Request
為了建立健全的社群,我們必須快速回應程式碼貢獻。在過去幾年中,我們降低了審查社群貢獻的優先順序,並累積了 280 個 pull request (2018 年 12 月)。在第一個里程碑中,我們將未處理的 pull request 數量減少到約 65 個。同時,每天開啟的 pull request 平均數量從 3.5 個增加到 7 個,這表示我們在過去三個月中處理了大約 600 個 pull request。
我們合併了 將近三分之二 的 pull request,並關閉了三分之一。如果 pull request 已過時或品質不佳,或者不必要地增加了專案的表面積,則會在未合併的情況下關閉。大多數合併的 pull request 修正了錯誤、改善了跨平台對等性或引入了新功能。值得注意的貢獻包括改善類型安全,以及正在進行的 AndroidX 支援工作。
在 Facebook,我們從 master 分支執行 React Native,因此我們會在所有變更進入 React Native 版本之前先進行測試。在所有合併的 pull request 中,只有六個造成問題:四個僅影響內部開發,兩個在候選版本狀態中被發現。
社群更顯而易見的貢獻之一是 更新後的「RedBox」畫面。這是社群如何讓開發者體驗更友善的一個很好的例子。
精簡核心
React Native 目前具有非常廣泛的表面積,其中包含許多我們在 Facebook 不常使用的未維護抽象概念。我們正在努力縮減表面積,以縮小 React Native 的規模,並讓社群更好地維護 Facebook 大多數時間未使用的抽象概念。
在第一個里程碑中,我們請求社群協助精簡核心專案。社群反應熱烈,我們幾乎無法跟上所有進度。查看不到一個月內完成的所有工作!
我們最興奮的是,維護者已加入修正長期存在的問題、新增測試,以及支援長期要求的功能。這些模組獲得了比以往在 React Native 中更多的支援,這表示這對社群來說是向前邁進的一大步。此類專案的範例包括 WebView,自提取以來,該專案已 收到許多 pull request,而 CLI 現在由 社群成員維護,並獲得了急需的改進和修正。
主要使用者問題
在十二月,我們詢問社群他們 不喜歡 React Native 的地方。我們彙整了回應,並 回覆了每個問題。幸運的是,我們社群面臨的許多問題也是 Facebook 的問題。在下一個里程碑中,我們計畫解決一些主要問題。
投票數最高的問題之一是升級到較新版本 React Native 的開發者體驗。遺憾的是,這不是我們自己會遇到的問題,因為我們從 master 分支執行 React Native。值得慶幸的是,社群成員已經挺身而出解決這個問題
- 來自 Callstack 的 Michał Pierzchała 透過在底層使用 rn-diff-purge,改進了 react-native upgrade。我們也更新了網站,以移除過時的升級說明。
- 我們計畫建議 iOS 專案預設使用 CocoaPods,這將減少升級 React Native 時專案檔案的變動。這將使人們更容易安裝和連結第三方模組,這在精簡核心的背景下更為重要,因為我們預期專案預設會連結更多模組。
0.59 版本發布
如果沒有 React Native 社群的幫助,尤其是 Mike Grabowski 和 Lorenzo Sciandra,我們將無法發布版本。我們希望改進版本管理流程,並計畫從現在起更積極地參與
- 我們將與社群成員合作,為每個主要版本建立一篇部落格文章。
- 當人們升級到新版本時,我們將直接在 CLI 中顯示重大變更。
- 我們將縮短發布版本所需的時間。我們正在探索增加自動化測試的方法,並建立改進的手動測試計畫。
許多這些計畫將納入即將推出的 React Native 0.59 版本。0.59 版本將隨附 React Hooks、適用於 Android 的全新 64 位元 JavaScriptCore 版本,以及許多效能和功能改進。目前已發布為候選版本,預計在未來兩週內趨於穩定。
下一步
在接下來的兩個月中,我們將繼續管理 pull request,以保持進度,同時也開始減少未處理的 GitHub issue 數量。我們將透過精簡核心專案繼續縮減 React Native 的表面積。我們計畫解決社群最關注的 5 個問題。在我們完成社群指南的制定後,我們將轉向關注我們的網站和文件。
我們非常興奮能在三月於 Facebook 倫敦接待來自社群的十多位貢獻者,以協助推動其中幾項工作。我們很高興您正在使用 React Native,並希望您能看到和感受到我們在 2019 年努力進行的改進。我們將在幾個月後再次發布更新,並且在這段期間將會合併您的 pull request! ⚛️✌️