Did you always want to help an open-source project like Ruby on Rails, but never got started?

Many people have the interest of contributing to open-source, myself included. I’ve done a couple of small contributions, but nothing fancy.

It’s a little intimidating, right? You’re not part of the group of contributors and you don’t really know where to start. You see 800 open issues, which one is a good one to pick?

I’ve had those feelings as well. But if you never get started, you’ll never learn what is really needed. Besides that, the rails community is super friendly and helpful, you don’t need to be scared.

Everybody’s got to start somewhere. Better now than later. And you can just learn as you go.

That’s what Stefanni and I have been doing. We just decided we wanted to start contributing to open-source and we picked our first issue.

We started a project called Open Source Thursdays.

We’re doing a livestream every thursday on our youtube channel showing what we’re doing and what we’re learning.

The goal is to show the real life of working on a new codebase: lots of googling, stumbling around, debugging, making lots of mistakes, reading docs and learning in real-time. We’ve been having lots of fun!

Last week, we went over a couple of Rails issues, and some of them looked promising. There was no open issue labeled as “good for beginners”, and we didn’t really want to work on an issue that was too simple (such as changing documentation), so we tried a different approach.

We looked for issues that had:

  • a good description of the bug
  • had reproduction steps written down
  • had no open pull request available
  • we could understand the problem without needing too much context about the codebase

We selected a couple of issues, and then decided to pick this one: Active Storage Disk Service NoMethodError: undefined method `rails_disk_service_url' related to ActiveStorage.

The first step was to try and reproduce the error by following the reproduction steps, which was possible.

We were able to run a Rails app that is just a single ruby file by using the bundler/inline feature.

This script will automatically install any missing gems, require the gems you listed, and then run your code. Pretty cool, right?

Then we tried one of the solutions that someone commented, but we were not able to fix the problem. So we created a gist showing what happened and asking for feedback and more information. That was the end of the livestream!

During the week, we got some more answers and ideas. One of the problems was that we were using the wrong ruby version (2.7 vs 3.x), and that fixed our problem.

Now have a little bit more context (from this comment and this other comment).

We’ll start writing some code to implement a fix. That’s going to happen this Thursday, so stay tuned!

Check our youtube channel if you’re interested!