DEV Community

Gary Kramlich
Gary Kramlich

Posted on • Originally published at patreon.com

Pidgin Developer Tiers

This article was originally posted on Patreon and has been brought over here to get all of the Pidgin Development/History posts into one single place.

Recently we named out first Crazy Patch Writer in quite sometime and this made many people ask "What is a Crazy Patch Writer?". So today we're going to tackle that very question!

Most Open Source projects have at least a three tiered approach when it comes to contributors. These are, casual, regular, and committer.

But before we get too deep I'd like to point out that while we're going to focus primarily on code contributions in this post, there are many non code related ways for people to contribute as well like translations, user support, documentation, promotion, issue tracker triage, etc. There are also part time developers from programs like Google's Summer of Code, Outreachy, Hacktoberfest, etc. We won't be covering any of these today, but maybe in a later post.

The casual contributor is someone who is in general just scratching their own itch. That is fixing a bug that directly affects them or something along those lines. A good example of this is when I submitted a patch to OBS Studio to add support for Randr. I use OBS Studio for streaming, and one weekend I changed my monitor layout and OBS Studio couldn't support it, so I patched OBS Studio to make it work. I'm not interested in doing a lot of work on OBS Studio, so this was just me fixing my issue and moving on.

On the other side we have the committer tier. This one is pretty easy to understand, as contributors with this title are usually decision makers in the project and can usually directly make changes or at least have their changes and opinions prioritized by the other committers as these contributors are the ones that keep the project moving forward. In Pidgin this would currently be Elliott "QuLogic" Sales de Andrade and myself.

But the middle area between casual contributors and committers is where things get kind of fuzzy. In my experience most projects don't seem to acknowledge this tier or give it its own title. These are the casual contributors that keep coming back and are showing more than a passing interest in the project. They're the ones whose names you start recognizing in code reviews, emails, or chats.

What really defines contributors in this tier is that it's become apparent to the project at large that they are becoming an authority on the project. They don't need as much mentoring for their contributions and the committers realize that they can trust them with the best interests of the project.

In Pidgin we call this tier the "Crazy Patch Writers" or CPW's. I don't really know the history around it, but the term was first introduced in our code base by Rob Flynn in February of 2002. That said, the legend goes that since working in our code base has not always been the most pleasant experience, that anyone that's taken the time to learn it has to have a little crazy in them.

However, as I mentioned earlier, it isn't always about code. Markus "ivanhoe" Fischer is the most recent contributor to earn this title in Pidgin. The thing that really made me realize he had earned this title was when I found out that he was applying a large amount, if not all, of the patches in our Review Board locally and then running them in Valgrind looking for newly introduced memory leaks.

As you may have guessed this is immensely helpful because even if you're reviewing every patch, bugs and memory leaks are going to slip through. Of course ivanhoe does more than just run Valgrind, but it was this initiative and quite frankly value that he brought to the project that deserved the recognition and earned him the title.

Just as the criteria to transition from casual contributor to Crazy Patch Writer is very loosely defined, so too is the transition from Crazy Patch Writer to committer.

Historically in Pidgin, committers would just commit without code review, but we stopped that when I took over lead developer duties back in 2016, and now all code contributions need at least one person to review them. This has basically turned the committer tier into more of an honorary title.

That said, there are still some clear things that would show a title change is in order. Things like redesigning API's and/or creating a new User Interface to libpurple, or you know just consistently helping out the project as well!

I hope you're enjoying these posts! Remember they go live for patrons at 9AM CST on Mondays and go public at 12AM CST on Thursdays! If you'd like to support my work, you can join find a list of ways to do so here.

Top comments (0)