Hi @stevejake007,
We get this question a lot. Without knowing much about you, your interests, and your time constrains, it is really hard for us to just assign you an issue in a package or a library. As a distributed community, it is difficult for us to play matchmaker, so you’ll need to be a bit self-directed.
The advice I give most newcomers is to pick a tool or package that you use every day, or want to use every day, and have at it. If there is a feature you would like to see, or a function you would like to see improved, you can be the person to make it happen. Every repository has a list of issues and pull requests, and everyone is welcome to address an issue or review a pull request. If you are a little unsure about the scope and priority of an issue, feel free to drop a comment in the issue and talk it over with the maintainer.
Another really good way to get started is to review a pull request. Everyone is allowed and encouraged to review pull requests. Just browse through the recent PRs and find one you are comfortable reviewing. Reviews are a great way to get familiar with the codebase, and if you are doing a thorough job, you’ll get familiar with building and testing the package from source.
Here are a couple of other things off the top of my head:
- Feel free to join us for the PMC, Working Group, and Community Group meetings. You can find all of these meetings on our calendar. I am right in the middle of putting together a table that makes everything a bit easier to find.
- Familiarize yourself with your chosen repository’s contribution guidelines. The contributing guidelines for core ROS 2 packages are here, and here for Gazebo. Some individual ROS packages may have slightly different contributing guidelines, but they should be roughly similar.
- Join our Zulip server and hang out with the devs to see what we’re actively working on.
- Watch this ROSCon 2025 talk where I give a quick rundown of how to get involved with ROS.
- Consider adopting a package and become a co-maintainer. There are a ton of ROS packages (anything in ROS perception comes to mind) that could really use more maintainers. These packages often need someone to help triage issues, review PRs, and update the package for each ROS release. A good first step in this process is simply fixing issues and reviewing pull requests.
- We have our annual Test and Tutorial parties in April for ROS, and July/August for Gazebo. Helping us test the next release is another great way to get started.
- The ROS 2 GitHub Org is here, the Gazebo org is here, and you can find the source for a ROS package using ROS Index. Feel free to browse around and take a look at what packages are currently under heavy development and could use an extra set of hands.
- You are more than welcome to contribute and release your own ROS package. Perhaps you have a great idea from your recent work experience; why not create a package that addresses a problem you had and share it with the community?
- Just this week we had a new contributor send us a guide to developing YAML launch files. We always need more and better documentation. If there is a topic or subject that you know a lot about, or want to know more about, why don’t you write a guide for everyone else?
I’m sure a few other people will chime in here with ideas.