Open source software powers much of the technology you use daily, from the web browser on your screen to the NASA Ingenuity helicopter that flew on Mars.
Contributing to open source software allows you to build upon your technical expertise, boost your portfolio, help shape the future of technology, and connect with developers across the globe.
Discovering relevant projects
With the vast array of available open source projects spanning numerous domains and technologies, finding where to begin your contribution journey can seem overwhelming. If you have open source software that you use daily, that's a great place to get started! GitHub also provides several tools that can help narrow down your search to a project that fits your domain.
Using Copilot Chat to find open source projects
You can use Copilot Chat to help find open source repositories that match an area you want to improve or boost your skills in.
Open Copilot Chat and start a general purpose chat. In this example, we'll ask Copilot to find open source projects written in the Python programming language.
I'm looking for a list of open source projects written in Python that are accepting new contributors. Narrow down the list to repositories that use the `good first issue` or `help wanted` labels and have over 100 stars on GitHub.
I'm looking for a list of open source projects written in Python that are accepting new contributors. Narrow down the list to repositories that use the `good first issue` or `help wanted` labels and have over 100 stars on GitHub.
Using the good first issue
and help wanted
labels in the search will help Copilot filter for repositories that open for first-time contributors. After searching, Copilot will provide a link to a full list of repositories with those labels in the context of your search.
Using other resources to find projects to contribute to
If there's a particular topic that interests you, visit github.com/topics/<topic>
. For example, if you are interested in machine learning, you can find relevant projects and good first issues by visiting https://github.com/topics/machine-learning. You can also search for repositories that match a topic you're interested in. See Searching for repositories. You can browse popular repositories of the day by visiting Trending.
If you're interested in contributing to projects that reduce the carbon emissions of software, review GitHub's Green Software Directory.
If you've been active on GitHub, you can find personalized recommendations for projects and good first issues based on your past contributions, stars, and other activities in Explore GitHub.
Checking if the repository is actively maintained
Before getting started contributing to an open source repository, it's recommended to check if the repository is being actively maintained. Copilot can analyze a repository and tell you about its recent activity.
- On the GitHub website, go to the repository you want to chat about.
- Click the GitHub Copilot icon at the top right of the page. The full-page, immersive, mode GitHub Copilot Chat is displayed. The heading at the top of the chat panel will show the name of the repository as an attachment.
- In the prompt box, type "Is this repository being actively maintained?" and press Enter. Copilot replies in the chat panel.
You can also visit the Pulse view under the Insights tab in the repository to get an overview of recent activity. See the github/docs
Pulse for an example of what an active open source project looks like.
Finding ways to contribute
There are many ways to contribute to open source projects.
- Looking through the issue tracker: Look for bugs that need fixing or reproduction, feature requests, or documentation improvements. Many open source projects use the
good first issue
orhelp wanted
labels to make it easier for new contributors to find issues to work on. - Testing a pull request: You can contribute by merging a pull request into your local copy of the project and testing the changes. Add the outcome of your testing in a comment on the pull request.
- Installing and testing the project: As you use an open source project, note any bugs, usability issues, or missing features you encounter. Sharing these pain points can provide valuable feedback to other contributors.
- Improving the documentation: Documentation improvements are almost always welcome, and can be an excellent way to start contributing while learning the project.
- Adding tests: Many projects need better test coverage, which helps you learn the codebase while adding value.
Each open source project will have a different approach to how they want to accept contributions. If you're looking to add a new feature or have discovered a bug, you'll want to open an issue outlining your proposed approach before investing significant development time. This can save effort by aligning with maintainer expectations early on.
Remember that non-code contributions like improving documentation, design, or community support are just as valuable as code contributions, and often have a lower barrier to entry.
Next steps
Now that you've found an open source project to work on and have learned about different ways to contribute, you are ready to make your first contribution. Head over to Contributing to open source to walk through the end-to-end process of making a contribution.