Contributing rosdep rules¶
In order to contribute rosdep rules, you should first make sure that you are familiar with the rosdep.yaml format.
Summary¶
There are several steps to contributing rosdep rules. You will create a copy of the database on GitHub, point your own rosdep to use it, make some changes, and then ask that they be included back in the main database.
In short:
Update your
/etc/ros/rosdep/sources.list.d
to use this forkModify your fork to have new rules
Test your changes
Send a pull request to have your changes included in the main database
Fork the rosdistro GitHub repository¶
The main rosdep database is stored in files in the “rosdistro” repository in the “ros” project on GitHub:
https://github.com/ros/rosdistro
Start by forking this repository so you have your own copy of the database to work with. Next, you’ll point your local rosdep to use this database instead.
Point your sources.list.d at your forked repository¶
The default sources list for rosdep uses the following files:
yaml https://github.com/ros/rosdistro/raw/master/rosdep/base.yaml
yaml https://github.com/ros/rosdistro/raw/master/rosdep/python.yaml
yaml https://github.com/ros/rosdistro/raw/master/rosdep/osx-homebrew.yaml osx
Create a new file in /etc/ros/rosdep/sources.list.d/
that points
at your forked repository instead. The filename should use a lower
number so it is processed first.
Now that your rosdep is using the new database, you’re ready to make and test your changes.
Make your changes to your forked repository¶
The repository contains the following files:
rosdep/osx-homebrew.yaml
: Rules for OS X Homebrewrosdep/python.yaml
: Python-specific dependenciesrosdep/base.yaml
: Everything else
Edit the appropriate file(s) for your change, i.e., if you are
contributing a Homebrew rule, only edit osx-homebrew.yaml
, if you
are contributing a rule for a Python library, only edit
python.yaml
, and, otherwise, put your rule in base.yaml
.
To edit, change the https://
url to a local path using the format
file:///abs/path
.
Make sure that your rules work¶
Update your local index:
rosdep update
Test your new rules:
rosdep resolve <key-name>
Test with different OS rules:
rosdep resolve <key-name> --os=OS_NAME:OS_VERSION
Submit a pull request with your updated rules¶
Use GitHub’s pull request mechanism to request that your updates get included in the main databases.
There are guidelines for submitting pull requests at: https://github.com/ros/rosdistro/blob/master/CONTRIBUTING.md And include instructions how to prevalidate your changes using the unit tests.
After your request has been accepted, you can undo your changes to
/etc/ros/rosdep/sources.list.d
.