Copy
You're reading the Ruby/Rails performance newsletter by Speedshop.

Many of you are reading this for the first time after joining me from the Sidekiq in Practice sale - welcome! This newsletter is always about Ruby and usually about performance, but this week it's sort of neither. We'll be back to regular programming soon.

It takes every kind of people to make the open-source world go 'round

Recently, Julia Evans tweeted that giving away maintainership of rbspy (a Ruby profiler) was a great decision for her. In fact, she realized she didn't really like ongoing involvement with open source software (OSS) at all.

I'm really glad Julia figured this out for herself. I'm also really glad she released rbspy under an OSS license.

Too often, we get caught up in other's peoples expectations when it comes to OSS. We think that "being involved" in open-source has to look a certain way. Here are some toxic myths we have around OSS that create expectations that not everyone wants to live up to:
  • If you release a project publicly under an OSS license, you must maintain it.
  • Maintainership means that you have to the majority of the bug fixes and features for the project yourself.
  • There is no meaningful way to contribute to an OSS project without committing code.
What is lost on people who hold these toxic myths to be true is that open source work is done almost exclusively in people's free time. If we want more people to contribute to open source, contributing should be as fun as possible for each individual person. If you're gonna do something for free, it better be fun! And everyone does different things for fun - we all have different talents and interests.

One open-source community which has very positive ideas around contribution styles is Wikipedia. They actually have this idea of the "fauna" of Wikipedia ("WikiFauna") - that is, all of the different styles of Wikipedia "editors" (contributors in our parlance) have their own names and descriptions. People use these descriptions of various "fauna" to describe themselves and how they like to contribute to Wikipedia. It's a great way to normalize and value different styles of contribution.

Here are some types of WikiFauna (there are several dozen at this point):
  1. WikiElves contribute in the behind-the-scenes sections of Wikipedia (i.e. not editing articles directly).
  2. WikiFairies like to beautify articles, like through adding media and photos.
  3. WikiGnomes like to correct typos, fix broken links, and other minute details.
  4. WikiCyclops focus on a very narrow subject area rather than contributing across Wikipedia.
I have noticed several types of OSS "fauna" in my decade or so of contributing. I wish we valued all of these fauna more equally than we do today (I think we overvalue or expect too much from SuperMaintainers):
  1. SuperMaintainer - The traditional image of OSS contribution. Does everything, all at once - writes new projects, maintains existing ones by writing all the new features and bugfixes. Examples: Tobias Koppers, maintainer of Webpack
  2. Hacker - Releases new projects, maybe maintains them for a short time or even not at all, and usually ends up with projects that are either maintained by someone else. Examples: @evanphx and @b0rk.
  3. Lone Wolf - Releases new projects, but either explicitly or implicitly does not accept contributions from outsiders. Many older Basecamp projects that weren't Rails worked this way.
  4. Custodian - Someone who maintains other people's projects, usually never starting projects of their own. This is my fauna!
  5. Issue Helper - A contributor who mostly helps solve support requests in issues, triages new issues, reproduces bug reports. @dentarg is a good example, as well as the Rails issue team.
  6. Librarian - Someone who primarily maintains documentation - both in the code and on any external websites.
  7. Bugswatter - Primarily reproduces and submits fixes for bugs. Sometimes these people like just submitting bugfixes for projects that they use in their day to day work, contributing to many projects rather than just one.
  8. CI Custodian - Works mostly on making sure the CI always passes reliably and deterministically. @MSP-Greg fills this role for Puma.
  9. Reviewer - Mostly only reads other people's PRs and leaves helpful feedback.
  10. Committer - Looks for open feature requests and ships them.
This is just a list I came up with quickly - I'm sure there are hundreds more styles!

What makes this more complicated is that sometimes project owners may be hostile to certain types of fauna in their project. This is, unfortunately, their loss (and the loss of the project). A really healthy community needs as many contributors as possible, which means making way for all styles of contribution. I suggest finding projects that are as welcoming of all types of contribution as possible.

If you're interested in contributing to Puma, we're currently accepting all kinds of fauna to our little corner of OSS - read CONTRIBUTING.md to get going.

Until next time, 

Nate
You can share this email with this permalink: https://mailchi.mp/railsspeed/on-the-various-oss-fauna?e=[UNIQID]

Copyright © 2022 Nate Berkopec, All rights reserved.


Want to change how you receive these emails?
You can update your preferences or unsubscribe from this list.