sass-site/source/blog/006-dropping-support-for-old-ruby-versions.html.md
Natalie Weizenbaum 193a124050 Move the blog onto sass-lang.com
Logdown seems to be basically unmaintained, its servers are
unreliable, and it's been causing some mixed-content errors lately.
This moves all blog posts to sass-lang.com itself; I'll set up
redirects from the blog as best I can once this lands.

Closes #401
Closes #402
Closes #403
2019-12-18 16:00:40 -08:00

60 lines
3.1 KiB
Markdown

---
title: Dropping Support For Old Ruby Versions
author: Natalie Weizenbaum
date: 2016-02-29 14:25 PST
---
As of version 3.5, Ruby Sass will drop support for Ruby 1.8.7 and Ruby 1.9.3. We
will continue to support Ruby 2.0.0 and higher.
Ruby 1.8.7 was retired by the Ruby maintainers in [June
2013](https://www.ruby-lang.org/en/news/2013/06/30/we-retire-1-8-7/), and Ruby
1.9.3 was retired in [February
2015](https://www.ruby-lang.org/en/news/2015/02/23/support-for-ruby-1-9-3-has-ended/).
Despite that, we continued to maintain support for older versions because Ruby
1.8.7 was installed by default on Mac OS X through Mountain Lion (which was
released in July 2012).
There are many users of Sass who aren't independently users of Ruby. We wanted
to minimize the amount of work these users need to do to use Sass, which means
letting it run on their machine without also requiring them to install a new
language.
That decision wasn't without costs, though. Most seriously, recent versions of
the [listen package](https://github.com/guard/listen) didn't support older Ruby
versions, and older versions of RubyGems weren't clever enough to avoid
downloading them on incompatible Ruby versions. To work around this, we bundled
an older version of `listen` with Sass and used it for users who didn't have a
compatible version installed elsewhere, but this produced constant compatibility
headaches.
These headaches led us to reevaluate our policy for supporting older Ruby
versions. We still cared a lot about users' built-in Ruby versions, but we
couldn't support them forever. We needed a way to determine when the benefit of
dropping support outweighed the costs.
We decided to use the analytics data for sass-lang.com to approximate the
proportion of our user base that was still using operating systems that shipped
with old Ruby versions. Before we looked at the data, we decided that we would
drop support for a Ruby version if it had been retired by the Ruby maintainers,
*and* less than 2% of our visitors across the previous month were using an OS
that shipped it by default.
Once we did that, we looked at the data. 34.3% of our visitors were using OS X,
and 1.4% of OS X users were using Mountain Lion or earlier. We were clearly able
to drop support for 1.8.7. In addition, 1.9.3 was never shipped with OS X so we
were able to drop it as well. Ruby 2.0.0, despite retired [last
week](https://www.ruby-lang.org/en/news/2016/02/24/support-plan-of-ruby-2-0-0-and-2-1/),
was shipped with the most recent OS X version—we won't be dropping support for
it any time soon.
<img class="center" src="/assets/img/blog/006-sass-visitors.png" alt="sass-lang.com visitors by operating system">
For Sass 3.4, we're just planning on printing deprecation messages for users of
deprecated Ruby versions. But once 3.5 releases, support will be fully dropped
and we'll switch to using `listen` as a proper gem dependency. If you're on an
older version of OS X and you haven't upgraded your Ruby version, there are some
simple instructions [on the Ruby
site](https://www.ruby-lang.org/en/documentation/installation/#homebrew) for how
to do so easily using Homebrew.