Effective communication is key when collaborating on an open source project and being reachable is the first step. For many open source projects the two key communication channels used are email and IRC. Email tends to be used for longer conversations on topics that might span weeks or even months of back and forth, and IRC is the medium of choice when you need to gather information or come to a consensus quickly. Everybody has an email address, but not nearly as many people manage to stay connected on IRC. Being available on IRC makes a huge difference if you want to be a truly effective member of the open source community.

The best thing about IRC is that it can really bring a distributed community together. For instance, with OpenStack many projects have their own IRC channel where those involved hang out. Additionally there are a few other channels that span multiple projects (like #openstack-infra) where you can find a huge number of active contributors. Hanging out on those channels is a great way to get to know the people involved and is essential if you want to receive or provide help quickly. Hopping on one of these IRC channels can feel like wandering into a room filled with a bunch of great friends.

If you are interested in becoming an OpenStack contributor, having a persistent IRC presence might be one of the most important secrets to success. Anyone who spends time in one of the more active project channels will immediately see the value of synchronous communication here where problems are sometimes solved in minutes.

The challenge with a synchronous communication channel like IRC is that not everyone is awake and online at the same time. If you’re using an IRC client that goes offline when you aren’t around you are often missing part of the conversation. It also makes it difficult for people to find you if you’re going on and off-line several times a day. This issue can be solved by running your IRC client (like irssi) in a screen or tmux session on a machine that’s always online, and then connecting to that machine as needed. The biggest problem with this approach is that it makes it hard to catch a notification if you’re not connected to the remote session.

To solve this some people configure an IRC bouncer like ZNC. This is essentially an IRC proxy, which buffers messages when you’re not connected to it and plays the messages back when you return. With most bouncers you can configure a notification to alert you via email if your IRC nickname is mentioned while you’re offline. If you have a bouncer set up, you can then connect to it with any IRC client that runs on your platform of choice. Sean Dague wrote a really good doc on his IRC proxy setup, and even included a puppet manifest to automate the setup. This works reasonably well, but can get pretty complicated when you want to connect from multiple IRC clients at the same time, like your desktop and your phone for instance.

weechat terminal scrrenshot
WeeChat terminal

What if you also have cause to use Slack? Many teams are using Slack as essentially a hosted IRC server and client. If you are anything like me, you’ve already been invited to join several different Slack orgs, which means in addition to paying attention to a dozen (or a few dozen) IRC channels you also have to keep several browser tabs open for all the Slacks.

If you are looking for some way to unify all these messaging platforms (as I was), I’ve found the perfect solution – WeeChat, an IRC client with a built in relay that makes it incredibly easy to stay connected in a terminal session, a web app and your phone, all at the same time. You get a consistent view across all your devices, and can catch up on any conversation by scrolling back up. If you run the Android client, you’ll get a notification on your phone when someone mentions your nick. If you use Glowing-Bear web client, you’ll get a notification on your desktop too! It’s lightweight and easy to install, and has an excellent modular architecture with a great many scripts and plugins available, including one called WeeSlack that allows you to bring several slack organizations and all their channels under one roof.

Installing WeeChat is very straightforward, though the steps to take depend on your platform of choice. I decided to install WeeChat on an Ubuntu VM running on a public OpenStack cloud – installation was as simple as typing “sudo apt-get install weechat”. Once installed, their docs are excellent. DON’T FORGET to start WeeChat in a screen session so you can disconnect without shutting it down!

weechat android client screenshot
WeeChat Android client

Once WeeChat is running you can enable an encrypted relay and get connected from the WeeChat Android client. It might not be your first choice (at least for me, I do not type incredibly fast or error-free on my phone!) but it sure does come in handy when you are following along with an ongoing conversation. It’s also great when someone pings you, and you can quickly respond with “away from the computer, but I’ll ping you when I return in half an hour!”

You can also get connected from your browser with Glowing-Bear, which is my personal favorite. I’ll get a quick notification on the desktop if I’m mentioned somewhere and all the IRC channels and Slack organizations I’m connected to are in one convenient tab.

Details on setting up the encrypted relay can be found in the WeeChat docs, or even easier by visiting http://www.glowing-bear.org and clicking “Encryption instructions”. It will take less than a minute and SHOULD be your connection method of choice.

Along the way you’ll want to get connected to freenode.net. When you do, be sure to pick a nickname you like and don’t forget to register it!

Glowing-bear.org
Glowing-bear.org

I really believe being available on IRC can make a tremendous difference if you are involved in the open source community, and my personal experience definitely supports this. There are several different ways to achieve a persistent presence on IRC but hopefully you’ll agree WeeChat is the best option around. If you happen to get connected to a freenode server please say hello, it’s as easy as “/msg docaedo Hi there!”

5 Comments on "IRC, the secret to success in open source"

  1. You make some good points, but I disagree on the use of IRC bouncers. So I wrote a response: http://anticdent.org/persistent-irc-considered-harmful.html

  2. […] Planet OpenStack talk about IRC: one very good source of information on how to use IRC better from Chris Aedo who suggests to stay more on IRC. He […]

  3. ChristopherAedo December 23, 2015

    Chris and Stephano – thank you for making some great points about finding balance when using the tools available for community interaction!

  4. I use IRC Cloud – http://www.irccloud.com I believe it has the best mobile user experience of any irc client I’ve tried. You have to use their client, but I don’t really mind. It’s one less thing I have to think about.

  5. […] CA:我看到过大量的新手在面对 Gerrit 时受挫,阅读开发者引导中的开发者工作步骤,有可能的话多读几遍。如果你没有用过 Gerrit,那你最初对它的感觉可能是困惑和无力的。但是,如果你随后做了一些代码评审的工作,那么你就能轻松应对它。此外,我是 IRC 的忠实粉丝,它可能是一个获得帮助的好地方,但是,你最好保持一个长期在线的状态,这样,尽管你在某个时候没有出现,人们也可以回答你的问题。(阅读 IRC,开源成功的秘诀)你不必总是在线,但是你最好能够轻松的在一个频道中回溯之前信息,以此来跟上最新的动态,这种能力非常重要。 […]

Join The Discussion

Your email address will not be published. Required fields are marked *