How-to-contribute-to-FOSS.md (2725B)
- ---
- date: 2020-08-10
- title: I want to contribute to your project, how do I start?
- layout: post
- tags: [foss]
- ---
- I get this question a lot! The answer is usually... don't. If you already know
- what you want to do, then the question doesn't need to be asked.[^1] But, if you
- don't already know what you want to do, then your time might be better spent
- elsewhere!
- [^1]: Or perhaps the better question is "where should I start with this goal?"
- The best contributors are always intrinsically motivated. Some contributors show
- up every now and then who appreciate the value the project gives to them and
- want to give something back. Their gratitude is definitely appreciated[^2], but
- these kinds of contributions tend to require more effort from the maintainers,
- and don't generally lead to recurring contributions. Projects you already like
- are less likely to need help when compared to incomplete projects that you don't
- already depend on — so this model leaves newer projects with fewer
- contributors and encourages established projects to grow in complexity.
- Instead, you should focus on scratching your own itches. Is there a bug which is
- getting on your nerves? A conspicuously absent feature? Work on those!
- [^2]: For real, we don't hear "thanks" very often and expressions of gratitude are often our only reward for our work. We do appreciate it :)
- If there's nothing specific that you want to work on, then you may be better off
- finding something to do in a different project. Don't be afraid to work on any
- free- and open-source codebase that you encounter — nearly all of them
- will accept your patches. If something is bothering you about another project,
- then go fix it! Someone has a cool idea and needs help realizing it? Get
- involved! If we spread the contributions around, the FOSS ecosystem will
- flourish and the benefits will come back around to our project, too.
- So, if you want to contribute to open-source — as a whole — here are
- my tips:
- - Find problems which you are intrinsically motivated to work on.
- - Focus on developing skills to get up to speed on new codebases fast.
- - Don't be afraid to work on *any* project — new languages, tools,
- libraries; learn enough of them and it'll only get easier to learn more.
- - When you file bug reports with a FOSS project, get into the habit of following
- up with a patch which addresses the problem.
- - Get used to introducing yourself to maintainers and talking through the code;
- it always pays to ask.
- If you want to work on a specific project, and you have a specific goal in mind:
- perfect! If you don't have a specific goal in mind, try to come up with some.
- And if you're still drawing a blank, consider another project.