Why aren't you contributing (To Python)?

by jesse in ,


Over the past year or two, I've been in a pile of discussions surrounding attempting to increase the number of contributions to Python (as a project and ecosystem) - specifically around bug fixes/patch reviews, filing bugs, pointing out documentation issues, website content, etc. Many of these conversations seem relatively insular (people already involved talking about how they get work done, and how easy it is) or relatively hand-wavy ("let's make it better! *crickets*"). We all know that the fact is that there are plenty of areas for anyone (both programmer and not) to contribute to the Python project/ecosystem, this is actually true for most, if not all, open source, and open communities out there. While I am looking at this through the myopic lens of Python-core, the same discussion could be applied anywhere.

In the discussions I've had on mailing lists, and in private conversations with people about why they don't contribute, I've found a set of recurring issues cited by people who could be contributors, roughly speaking these are:

  • Don't know how (documentation issue)
  • Don't know where (site layout, organization issue)
  • Don't want to fight/argue with the "but this is the way we've always done it" people (perception issue)
  • For many issues, see checkout (svn), build (learn a "new" build system), run tests/write tests, generate patch, file bug, defend bug as a "high bar" (process/tool issue)
  • Don't feel that they'll be valued (perception issue)
  • Can't invest the time to learn the tool chain(s) (make, ReST, regrtest, svnmerge/svndiff, sphinx, etc) (I got nothin here)

And so on.

What interests me more than the things I've listed about (which is a distillation of months of discussions) is what, if anything, prevents you, my reader(s) from contributing to the following areas:

  • Filing bug reports (including the stdlib and documentation)
  • Filing patches for bugs/improvements (including the stdlib and documentation)
  • Fixing issues/sending patches on website content
  • Proposing new website or documentation content
  • Contributing to website maintenance
  • Contributing to the Documentation

And anything else you can think of. What I'm asking for, is for you to give me thoughts, ideas and feedback on how we can lower the bar and reduce the friction of any of this so that you too can help out. Everything is fair game, even "I find the method of arguing for PEPs to cause lower intestinal irritation" (although, I hope to get more constructive comments than that).

Here's the reason I'm asking/reaching out - I firmly, and totally believe that every single person who uses Python today can become a contributor to the project and ecosystem beyond that of a user. While it is true that philosophically, everyone who uses Python is contributing, I would like to see if we can make it so that even the most "basic" user feels that they can file a bug, submit a patch, fix the documentation, fix/add website content, etc.

Much like I think anyone can, and should be empowered to contribute back to the "Python Project" - I believe the culture of "everyone contributes" is an important one. Citing the wonderful keynote from PyCon 2010 by Antonio Rodriguez (video here), I maintain this is should be a goal for everyone, not just companies - but open source projects as well.

There are lots of things we can change/fix/improve - but before we can do that, we have to be able to identify the "bugs" in what we have now. Do we need a giant flowchart with flashing text (I joke!) or do we need simplified "how do I..." text to the website? Everything's fair game (except "just put it on github").

So, do you have any thoughts? If you don't feel comfortable airing them publicly, you can email comments to jnoller at (gmail.com|python.org) as you see fit. I promise not to share any identifiable information, but I reserve the right to share the feedback you provide, albeit anonymously. I also promise to ask meaningful questions so I can squirrel out more detail if needed.