停止支援舊版 Ruby
由 Natalie Weizenbaum 發佈於 2016 年 2 月 29 日
從 3.5 版開始,Ruby Sass 將停止支援 Ruby 1.8.7 和 Ruby 1.9.3。我們將繼續支援 Ruby 2.0.0 和更高版本。
Ruby 1.8.7 已於2013 年 6 月由 Ruby 維護者停用,而 Ruby 1.9.3 則於2015 年 2 月停用。儘管如此,我們仍然繼續支援舊版本,因為從 Mac OS X 一直到 Mountain Lion(2012 年 7 月發佈)系統預設安裝的都是 Ruby 1.8.7。
許多 Sass 的使用者本身並不是 Ruby 的使用者。我們希望盡可能減少這些使用者使用 Sass 所需的工作量,這意味著讓 Sass 在他們的機器上運行,而無需額外安裝新的程式語言。
然而,這個決定並非沒有代價。最嚴重的問題是,最新版本的 listen 套件 不支援舊版 Ruby,而舊版 RubyGems 又不夠聰明,無法避免在不相容的 Ruby 版本上下載它們。為了因應這個問題,我們將舊版 listen 與 Sass 捆綁在一起,提供給沒有安裝相容版本的使用者,但這卻造成了持續不斷的相容性問題。
這些問題促使我們重新評估支援舊版 Ruby 的策略。我們仍然非常關心使用者內建的 Ruby 版本,但我們不可能永遠支援它們。我們需要一種方法來判斷何時停止支援的益處大於其成本。
我們決定使用 sass-lang.com 的分析數據來估算仍在使用搭載舊版 Ruby 作業系統的使用者比例。在查看數據之前,我們決定,如果某個 Ruby 版本已被 Ruby 維護者停用,*並且*在上個月中使用預設搭載該版本作業系統的訪客比例不到 2%,我們就會停止支援該版本。
接著,我們查看了數據。我們的訪客中有 34.3% 使用 OS X,而 OS X 使用者中有 1.4% 使用 Mountain Lion 或更早版本。顯然,我們可以停止支援 1.8.7。此外,由於 1.9.3 從未隨 OS X 一起發佈,因此我們也可以停止支援它。雖然 Ruby 2.0.0 上週 也已停用,但它是最新版 OS X 預設搭載的版本,因此我們近期內不會停止支援它。
對於 Sass 3.4,我們只計劃向使用已停用 Ruby 版本的使用者顯示棄用訊息。但是一旦 3.5 版發佈,支援將會完全停止,我們將會把 listen 作為正式的 gem 依賴項。如果您使用的是舊版 OS X,並且尚未升級 Ruby 版本,Ruby 網站上有一些簡單的說明,教您如何使用 Homebrew 輕鬆升級Ruby。