停止支持旧版 Ruby 版本
2016 年 2 月 29 日发布,作者:Natalie Weizenbaum
从 3.5 版本开始,Ruby Sass 将停止支持 Ruby 1.8.7 和 Ruby 1.9.3。我们将继续支持 Ruby 2.0.0 及更高版本。
Ruby 维护者于 2013 年 6 月 停止维护 Ruby 1.8.7,并于 2015 年 2 月 停止维护 Ruby 1.9.3。尽管如此,我们仍然继续支持旧版本,因为 Mac OS X(直至 Mountain Lion,于 2012 年 7 月发布)默认安装了 Ruby 1.8.7。
许多 Sass 用户并非 Ruby 的独立用户。我们希望最大程度地减少这些用户使用 Sass 所需的工作量,这意味着让它在他们的机器上运行,而无需他们另外安装新的语言。
不过,这个决定并非没有代价。最严重的是,最近版本的 listen 包 不支持旧版 Ruby,而旧版 RubyGems 也不够智能,无法避免在不兼容的 Ruby 版本上下载它们。为了解决这个问题,我们将旧版本的 listen
与 Sass 捆绑在一起,并将其用于那些没有安装兼容版本的用户的机器上,但这导致了持续不断的兼容性问题。
这些问题促使我们重新评估支持旧版 Ruby 的策略。我们仍然非常关心用户内置的 Ruby 版本,但我们无法永远支持它们。我们需要一种方法来确定何时停止支持的益处超过了成本。
我们决定使用 sass-lang.com 的分析数据来估算仍在使用预装旧版 Ruby 的操作系统的用户群的比例。在我们查看数据之前,我们决定,如果 Ruby 维护者已停止维护某个 Ruby 版本,并且在上个月访问我们网站的用户中,使用默认安装该版本的 OS 的用户少于 2%,那么我们将停止支持该 Ruby 版本。
在我们这样做之后,我们查看了数据。34.3% 的访客使用的是 OS X,而 1.4% 的 OS X 用户使用的是 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轻松地做到这一点。