Kasper Timm Hansen

Start Contributing to Rails

What should I work on? That’s the first thing you hear from people who have decided to contribute to Rails moments earlier. Having never so much as looked at the Rails code base they come up empty.

If you could just think up something to give. Maybe a few snagged roses from Grandmas garden? Rails would love those you’re sure of it. Don’t overthink it. There’s no need to conjure up anything. Willingness to help is all you need to be ready to go.

Your destination is a place that grows skills and bonds strangers. Go where those who already help are. Then you have found the reviewers. Those who field incoming traffic to Rails and help improve the framework every day. I’m drafting you to become one of us.

With us, you can use your Ruby skills to improve the code of contributors. You can weed out shady sentences and troublesome typos with your English savvy. Or indulge your humanity by spreading cheer to give everyone a better time. Mix it up and try for a combo that hits all the right spots.

Your spot is a button away on https://github.com/rails/rails. Click watch on there and you’re on rails to get the latest issue, Pull Request or comment created. They come fresh off the tracks and into your inbox. Seal your reviewer’s ticket by replying to something. That’s reviewing in essence: getting emails and responding to them - did I make it too exciting?

There’s good reason to be excited. You’re where all the action is. Sure, you’re scared. I was too when I plunged in. With one step at a time, you will naturally become better. Don’t be afraid to step back if you feel overwhelmed. It’s fine to delete emails you don’t know how to handle. Understanding these coding guidelines, however, will give you a handle on contributors. A surprising amount of them don’t follow those, so you have amble chance to advise like your fellow reviewers.

In their replies you’ll find a great way to learn quickly. I get better every day by soaking in their knowledge. I’ve also been corrected a fair number of times because they were aware of scenarios I hadn’t thought of. Those corrections should be welcomed, not feared because you made the mistake. Being corrected is part of learning. None of us know every line of code in Rails. We simply have a willingness to help. Equipped with that a mistake or five won’t matter. You will want to do better automatically. After all we better the tool by bettering our craft. But the tool box won’t be wide open; you won’t have commit access. Which is a relief because you can’t break Rails.

Besides it’s more likely to hurt people with a reply that can be misunderstood. To avoid that finding a balance is key. Take a note from the Plataformatec team when they say: ”Not too rough, nor too loppy.” — actually take as many notes from them you can. Review someone’s work by letting some things pass but keep steadfast on others. At times that balance feels hard to spot when replying. You try rephrasing over and over, but it still feels too rough.

Such a ticking sentence is best diffused with a heart emoji — their beat unmistakeable. Using Emoji you can add the missing expressions from real life conversation. Outside your screen you’d smile, twiddle your eyebrows or give a thumbs up. Those gestures cue people to your intent when your vocabulary fails you. If it sounds harsh but ends with a smile, they probably meant no harm. Emoji’s are an invaluable tool when you don’t have time to consider your words. On top of that they imbue humanity into an all black on white terrain. In this landscape a heart rainbow isn’t as rare a sight as you might think.

They’re of the kind that carry special gold pots at their ends: space between writers and their readers. Opposite of that is a direct tone where sentences wheeze eerily close. Readers can feel under attack if you write like this. Instead breathe in a gap with phrases like: I think and I would; in my opinion and from my bifocals; let us and we should. These phrases admits comments can only sway not force. Done right your readers will be free to decide while respecting your opinion. Showing trust will make them trust you.

But what if you’ve been mistrusted? Still prickly as you wonder what to respond you try, but a coherent answer won’t form without being mean. Adding to that you’re confused about what they really meant. Replace that doubt and simply choose to believe they meant well. Then you can calmly answer with all the courtesy you can court easily.

To sit in and enjoy these ideas in practice, see this Pull Request by Brian Morearty that I’ve reviewed. That amount of back and forth is why you don’t need to dream up work. Applying your knowledge in a review can be a tremendous help already. Don’t be afraid to be thorough or wrong — on there I’m both.