First off, thank you for considering contributing to Jupyter-ROS 🥳. It's people like you that make Jupyter-ROS such a great tool.
Following these guidelines helps to communicate that you respect the time of the developers managing and developing this open source project. In return, they should reciprocate that respect in addressing your issue, assessing changes, and helping you finalize your pull requests.
Jupyter-ROS is an open source project and we love to receive contributions from our community — you! There are many ways to contribute. For example, you can
- write a new tutorial or a blog post
- improve the documentation or the existing examples
- submit bug reports or feature requests
- write code to incorporate into Jupyter-ROS itself
We welcome all kinds of contribution and value them highly. We pledge to treat everyone's contribution fairly and with respect, and we are here to bring awesome pull requests over the finish line.
Please note that we adhere to the Python Community Code of Conduct and by contributing to this project you also agree to follow the same guidelines.
Working on your first Pull Request? Here are some resources to help you get started:
At this point, you're ready to make your changes! Feel free to ask for help; everyone is a beginner at first 😸.
If a maintainer asks you to "rebase" your PR, they're saying that a lot of code has changed and that you need to update your branch so that it's easier to merge.
- Create your own fork of the code.
- Do the changes in your fork.
- If your changes only involve spelling or grammar fixes, move to step 7.
- Test your changes in a clean environment and update installation instructions and dependencies as needed.
- When adding new features, make sure to update the documentation and provide an example under notebooks/.
- New notebooks
- Remove all output.
- Remove unnecessary cells.
- Include a descriptive title.
- Specify ROS version in the notebook name, "ROS Turtlesim.ipynb" vs "ROS2 Turtlesim.ipynb"
- Any additional steps the user needs to take to run all the cells in the notebook should be clearly stated in markdown cells.
- If you are happy with your changes, create a pull request.
If you find a security vulnerability, do NOT open an issue. Email w.vollprecht@gmail.com instead. In order to determine whether you are dealing with a security issue, ask yourself these two questions:
- Can I access something that's not mine, or something I shouldn't have access to?
- Can I disable something for other people?
If the answer to either of those two questions are "yes", then you're probably dealing with a security issue. Note that even if you answer "no" to both questions, you may still be dealing with a security issue, so if you're unsure, just email us.
When filing an issue, make sure to answer these five questions:
- What version of jupyros are you using?
- What operating system and processor architecture are you using?
- What did you do?
- What did you expect to see?
- What did you see instead?
General questions should be handled through Gitter instead of the issue tracker. The maintainers there will answer or ask you to file an issue if you've tripped over a bug.
If you find yourself wishing for a feature that doesn't exist in Jupyter-ROS, you are probably not alone. There are bound to be others out there with similar needs. Many of the features that Jupyter-ROS has today have been added because our users saw the need. Open an issue on our issues list on GitHub which includes the following:
- A description of the feature you would like to see
- Why do you need it?
- How should it work?
Any change to resources in this repository must be through pull requests. This applies to all changes to documentation, code, binary files, etc. No pull request can be merged without being reviewed.
The core team looks at Pull Requests on a regular basis and provides feedback after each review. Once feedback has been given, we expect responses within three weeks. After the three weeks have elapsed, we may close the pull request if it isn't showing any activity.
A pull request will be merged once all the feedback has been addressed and there are no objections by any of the committers.
You can chat with the core team on gitter.im/RoboStack. We try to answer all questions within 48 hours.