Ruby on Rails創建人David Hansonn在8月中的時候發布了Rails 6.0,並提到包括GitHub在內多家企業在之前已經偷跑,採用預發布版Rails 6.0,而今天GitHub官方也分享升級Rails 6.0的經驗,表示他們積極影響Rails 6.0框架發展,以滿足GitHub需求,並且每周更新Rails以提早發現錯誤。

約在Rails 6.0正式發布1.5個星期後,GitHub所有流量就皆由Rails 6.0的程式碼處理,官方提到,從他們在Rails 3.2使用自定義的分支到現在,這次Rails 6.0更新之所以可以這麼順利,來自於他們這段時間對Rails的貢獻。

GitHub團隊對Rails 6.0的貢獻,比起之前所有版本都還要積極,GitHub工程師共發送了100多個拉取請求,改進文件、修復錯誤、增加功能以及提升效能。官方表示,許多GitHub的貢獻者是第一次向開發框架Rails發送更改,而這個動作不僅幫助GitHub,還能同時能改善其他開發者社群。

在這次GitHub部署Rails 6.0的過程,沒有對任何用戶產生負面影響,僅在測試過程中發生一次Rails 6.0異常,而且是由機器人觸發。GitHub之所以在升級時,仍然能夠維持高穩定性,GitHub認為,積極參與Rails開發是關鍵,他們在去年升級完Rails 5.2之後,便馬不停蹄地又開始著手將應用程式升級到Rails 6.0。

GitHub並沒有等到Rails 6.0發布最終版本才開始採用,而是拉取每星期最新的Rails主分支進行升級,並針對新版本執行所有測試,GitHub開發團隊表示,這個模式讓他們能夠快速地發現錯誤,通常在引入Rails主分支後幾個小時內,就能找出回歸(Regression)。而由於GitHub每周更新Rails,僅部署一周的提交而非一整年的提交更新,讓他們能夠有餘裕地分散處理這些錯誤。

GitHub會在內部Rails 6.0建置成功時,合併拉取請求到主分支中,而所有GitHub的新程式碼,都要通過Rails 5.2以及Rails最新主分支建置的測試。GitHub也提到,他們會持續使用這個方法,繼續將GitHub從Rails 6.0升級到Rails 6.1。

GitHub在Rails 6.0做出許多貢獻,除了穩定性之外,還為Rails 6.0增加了平行測試以及連結多資料庫功能。官方提到,這些工具過去他們必須自己在內部實作,但透過為上游開發框架增加工具建立標準,就能降低內部專案程式碼的複雜度,這個過程代表GitHub程式碼與Rails一同進步,而非僅是被動的回應Rails。


Advertisement

更多 iThome相關內容