Upgrading to Ruby on Rails 5.0 & Ruby 2.2

113 views
Skip to first unread message

Luke Brickman

unread,
Jun 12, 2015, 9:52:29 PM6/12/15
to canvas-l...@googlegroups.com
Hi guys. I'm currently running a modified version of Canvas with tons of extra features.

We currently have a full staff of programmers.

However, I was wondering how hard it would be to upgrade canvas to Ruby on Rails 5.0 (when released) and Ruby 2.2.

Is it even possible? How many hours are we looking at? 800 - 1,000 hours of programming?

Cody Cutrer

unread,
Jun 15, 2015, 12:07:12 PM6/15/15
to canvas-l...@googlegroups.com
Luke,

Core Canvas requires Ruby 2.1 as of last week (on master). Ruby 2.2 will be supported soon™ (the last few commits that get tests passing on it should go in this week). As for Rails 5, that is a significantly larger task. Currently, Canvas will boot under Rails 4.0, but is pretty broken, and we haven't even attempted running our test suite against it yet. We will not be jumping straight to Rails 5, as there are many things in Rails 4.1 that are deprecated in 4.0, and completely gone in 4.1 (and same with 4.2), that have no easy backwards-compatibility with Rails 3.2 (since we need to be able to run both versions of Rails on the same code base). So the plan is to get to 4.0, then quick jumps from there to 4.1, 4.2, and possibly 5.0 if it's released by then. This is similar to how long it took us to get from Ruby 1.9 to Ruby 2.1, and now we're already in striking distance of Ruby 2.2. Due to other commitments here at Instructure, we hope to pick up on the Rails 4 work in mid-August or so.

If you and your team would like to expedite the process, you'll need to work within that flow (going to Rails 4.0 first, while keeping Rails 3.2 working). The best thing would probably be to just start running Canvas under Rails 4 (by creating a file `config/RAILS4`), and start clicking around, or running small pieces of the test suite and playing whack-a-mole as you find issues, then sending pull requests for each fix against the master branch. Remember that Instructure has several more plugins that need to keep working, so we'll need to work on those privately, and sometimes they may cause issues with fixes in Canvas core.

Cody Cutrer
Software Engineer
Instructure


--

---
You received this message because you are subscribed to the Google Groups "Canvas LMS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to canvas-lms-use...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Luke Brickman

unread,
Jun 15, 2015, 8:02:50 PM6/15/15
to canvas-l...@googlegroups.com
I see, thanks for the reply.

When do you think you guys will be running a stable version of Ruby 2.2 & Rails 4? Will it be sometime this fall?

Also, how many hours do you think something like upgrading to Rails 5 from Rails 4 would take? I know it depends on a lot of things, but just a wild guess.

Cody Cutrer

unread,
Jun 17, 2015, 3:53:56 PM6/17/15
to canvas-l...@googlegroups.com
Luke,

I would guess we'll be running Ruby 2.2 _and_ Rails 4 sometime late fall, with Rails 4.2 by end of year. As for estimating hours from 4.2 to 5 - I dunno, several hundred. The Rails 2.3 to 3.2 upgrade finally got done when we set aside a "strike team" of about 4 engineers that worked on it for several weeks.

Cody Cutrer
Software Engineer
Instructure

Luke Brickman

unread,
Jun 19, 2015, 9:52:58 PM6/19/15
to canvas-l...@googlegroups.com
Thanks Cody!
Reply all
Reply to author
Forward
0 new messages