How do you choose which project to contribute to? There’s no single best way to choose a project, but here are some questions to think about when choosing:
One last tip is to look at the project’s open issues to see if there are any tagged as “easy” or “good first issue”, and if any of those look appealing to you.
For a more detailed discussion, also take a look at our Choosing a project
video, linked below.
As with any trade, there are certain fundamental tools you should learn. Since the ecosystem is built in Python, you’ll need to know how to program in that language. Other tools we use daily include:
In this video series, the basics of using these tools are covered along the way. To learn more about them, take at the links below:
Now that you’ve chosen a project to contribute to, it’s time to get set up.
Many projects have a file called CONTRIBUTING
in the root of the repository that will tell you how to set up your development environment, propose changes, etc.
Most projects also have a page on their website called “Developer documentation” or “Contributor guide” that will have similar information, and usually also explain testing and review procedures, and whatever else you need to know.
When first contributing to a project, it’s best to start with small, self-contained issues. Examples of a good first issue include fixing a small bug, adding tests, fixing documentation typos, or writing up simple documentation. If you haven’t already found an issue you want to work on, now is the time (remember to look for the “good first issue” label if the project has it).
It is not uncommon to get stuck while making your first contribution. Don’t panic! Try to find the real-time chat or discussion forum for the project, and ask for assistance there. The maintainers will be happy to help!
For more details, also check out our First contribution
video.
Once you’re comfortable making small changes to the project, you can start taking on bigger contributions. There are many different ways to help: you may, e.g., implement new features, write documentation, refactor and clean up code, improve testing, work on build infrastructure, and so forth.
No matter what you contribute, or whether you contribution is big or small, it is much appreciated.