It’s been two long years, and a week. But today, I cut 1.26.0. Add this to your Gemfile:

gem "resque", "~>1.26.0"

After a bundle install, you’ll be good to go.

Why so long?

Way back when, my day job was working on open source Ruby projects. So was several of our other contributors’. We had big plans for Resque: a 2.0. Resque is a very old codebase, and is one of the larger and most widely deployed Ruby projects. There’s lots of good work that could be done, and a 2.0 is freeing: it allows you to reach for the sky.

But times change. I’m the only active maintainer left, and I don’t even primarily work in Ruby anymore. So I put the kibosh on 2.0, and will be spending my time maintinaing Resque rather than re-thinking it. If you use Resque, I would love your help, and we’ve gotten some contributions from several new people in the last few months.

What’s new?

Mostly, fixing bugs. You can see the changelog entry here. One of the things that we’ll be doing in the future is keeping the changelog up to date as we do development, rather than right before a release. The work of putting together the changelog has made releasing tough in the past.

Another notable change: we have also adopted the Contributor Covenant 1.4. We want Resque contribution to be pleasant for all.

One of the things we did was reach out to companies that we knew were on a fork of Resque and bring their patches back into the mainline, so they can use the official releases again. If your company is still on a fork, I would love to help you migrate to the official release again. Get in touch.

Finally, 1.x work is done on the master branch again, which is now the default branch. The few remaining open PRs that are targetted against 1-x-stable will be manually merged into master by me when they’re ready.

Ruby version support

As Resque has a lot of legacy deployments, we support very old Rubies, including ones that are not supported by the Ruby project itself. However, I recently modified the rubies we test in CI. We now have three “tiers” of Ruby support:

Tier 1: blocking
----------------

These are tested in CI, and we won’t cut a release without it passing.

This list is:

* 1.8.7
* 1.9.3
* 2.3.0

... also known as the last release in each version line.

Tier 2: community
-----------------

We consider these Ruby versions supported, but won’t test in CI.
Patches to fix breakage on these versions are very welcome, but we
probably won’t actively prioritize efforts ourselves.

This list is:

* 1.9.2
* 2.0.0
* 2.1.0
* 2.2.0

Unsupported
-----------

We don’t support these versions at all. If you can submit a fix for
breakage on these versions, we’ll take it if it doesn’t break newer
versions, but won’t guarnatee that they won’t end up broken in the
future.

This list is:

* 1.9.1
* 1.9.0
* All versions before 1.8.7

However, at this point, I truly wonder how much Resque is used on Ruby 1.8 or 1.9. I can barely even get 1.8 on my computer these days, and mostly rely on Travis telling me what’s going on with it. I am considering dropping 1.8.7 and 1.9.3 to ‘community’. If you don’t want that to happen, please get in touch. I mostly am just wondering if I’m doing this work for no real reason, not because I truly want to drop these rubies. It’s one less thing to worry about.