How do I find and make meaningful contributions to open source projects?
December 17, 2024 8:58 AM   Subscribe

Please give me general and specific advice about how to make my first contributions to open source projects. Looking for best practices for finding projects, making connections, and being helpful. I’m comfortable programing in Python and contributing to documentation.

I would like to build some practical experience with development work, and add to my resume. I’m an intermediate Python programer with some college level courses under my belt. I’ve also written English in a wide variety of contexts and feel comfortable contributing to technical documentation, or elsewhere as needed.

I’ve read a lot of advice similar to “contribute to the open source software you use,” but most of the software I use comes from big, mature projects that already have hundreds of contributors, and that feels overwhelming to this first timer. Please share your best practices for navigating this world, and how to find a place where I can be useful to a project.

Please also suggest specific projects that are open to new contributors, or otherwise good places to learn the ropes. Bonus points for projects related in any way to cybersecurity.
posted by Hoenikker to Computers & Internet (4 answers total) 8 users marked this as a favorite
 
Best answer: If you haven't come across it yet, First Timers Only is a great site that links to a bunch of relevant resources. There are walkthroughs for making your first contribution (just to get used to the tools and mechanics of it), curated lists of issues that have been marked as good for first time contributors, blog posts describing the process...

It's certainly less intimidating to contribute to a smaller project, so dig through what you use (or even what you've considered using) to see if there are smaller projects in there. A browser extension? An open-source web application? A small utility program you heard about one time and thought might be interesting?

And then you might ease yourself into it by a series of incremental steps (this is probably redundant with some of the links in First Timers Only, but oh well):
  1. Just read through the issues (both open and closed) in a repository to get a sense of what sorts of things have come up, how they tend to be handled, how the maintainers communicate, etc.
  2. Clone the repository, build it, run tests, and start making small, trivial changes to make sure you have the development and build workflow down.
  3. Comment in a few open issues where you can add some detail to a vague report, confirm with your own test results, and things like that.
  4. Read through the documentation. All of it. I'll bet you quickly find something you can improve in it. Make a simple first pull request for that!
  5. And along the way, all of this will eventually point you to an issue where you find you can contribute code as well!
And just to hedge your bets, maybe pick two different repositories to go through those steps at the same time. It's hard to predict up front which will be a good fit for you, so trying out two at once might help.
posted by whatnotever at 9:30 AM on December 17 [6 favorites]


Finding the right small project can be difficult, but very likely if you can write accurate documentation you will be as a god.
posted by Tell Me No Lies at 9:54 AM on December 17 [2 favorites]


Best answer: I have a LOT of experience with this and here is my advice for you.
posted by brainwane at 10:29 AM on December 17 [2 favorites]


Response by poster: The really, really helpful advice from brainwane’s link: start by trying to reproduce bugs and commenting on bug reports, rather than trying to fix bugs.

Thank you!
posted by Hoenikker at 4:41 PM on December 19 [1 favorite]


« Older Caffeine Allergy or Sleep Apnea?   |   Be my personal shopper Newer »

You are not logged in, either login or create an account to post comments