-
Notifications
You must be signed in to change notification settings - Fork 1
Contribution Guide
This guide suggests ways in which you can become a part of WilsonROS.
WilsonROS uses GitHub Issue Tracking to track issues (primarily bugs and contributions of new code). If you've found a bug in WilsonROS, this is the place to start. You'll need to create a (free) GitHub account in order to submit an issue, to comment on them or to create pull requests.
If you've found a problem in WilsonROS, do a search on GitHub under Issues in case it has already been reported. If you are unable to find any open GitHub issues addressing the problem you found, your next step will be to open a new one.
Your issue report should contain a title and a clear description of the issue at the bare minimum. You should include as much relevant information as possible and should at least post a code sample that demonstrates the issue. It would be even better if you could include a unit test that shows how the expected behavior is not occurring. You can then share your executable test case as a gist, or simply paste the content into the issue description. Your goal should be to make it easy for yourself - and others - to reproduce the bug and figure out a fix.
You're creating this issue report in the hope that others with the same problem will be able to collaborate with you on solving it. Do not expect that the issue report will automatically see any activity or that others will jump to fix it. Creating an issue like this is mostly to help yourself start on the path of fixing the problem and for others to confirm it with an "I'm having this problem too" comment.
You are encouraged to add and discuss feature requests freely. There is no guarantee that your feature gets implemented. Best thing to make sure your feature gets implemented, is to write it yourself or together with other contributors (see section "Contributing to the Source Code").
As a next step beyond reporting issues, you can help the core team resolve existing issues. If you check the issues list in GitHub Issues, you'll find lots of issues already requiring attention. What can you do for these? Quite a bit, actually:
For starters, it helps just to verify bug reports. Can you reproduce the reported issue on your own computer? If so, you can add a comment to the issue saying that you're seeing the same thing.
If an issue is very vague, can you help narrow it down to something more specific? Maybe you can provide additional information to help reproduce a bug, or help by eliminating needless steps that aren't required to demonstrate the problem.
If you find a bug report without a test, it's very useful to contribute a failing test. This is also a great way to get started exploring the source code.
Anything you can do to make bug reports more succinct or easier to reproduce helps folks trying to write code to fix those bugs - whether you end up writing the code yourself or not.
You can help improve the WilsonROS guides by making them more coherent, consistent or readable, adding missing information, correcting factual errors, fixing typos, or bringing them up to date with the latest version.
First you have to setup your development environment. If you are unfamiliar with ROS, please see the User's Guide and Developer's Guide.
Fork the GitHub repository, clone your fork and compile the project as described in the User's Guide.
Then checkout a new branch:
$ git checkout -b my_new_branchNow get busy and add/edit code. You're on your branch now, so you can write whatever you want (make sure you're on the right branch with git branch -a). But if you're planning to submit your change back for inclusion in WilsonROS, keep a few things in mind:
- Get the code right.
- Use WilsonROS idioms and helpers.
- Include tests that fail without your code, and pass with it.
- Update the (surrounding) documentation, examples elsewhere, and the guides: whatever is affected by your contribution.
WilsonROS follows a simple set of coding style conventions:
- ROS C++ Style Guide for C++ Code
- ROS Python Style Guide for Python Code
Please create atomic commits and write good commit messages. You can stage hunks separately with git.
Finally, push your commits and open a pull request:
Navigate to your fork repository you just pushed to (e.g. https://github.com/your-user-name/wilson_ros) and click on "Pull Requests" seen in the right panel. On the next page, press "New pull request" in the upper right hand corner.
Click on "Edit", if you need to change the branches being compared (it compares "master" by default) and press "Click to create a pull request for this comparison".
Ensure the changesets you introduced are included. Fill in some details about your potential patch including a meaningful title. When finished, press "Send pull request". The WilsonROS core team will be notified about your submission.
If you implement a new feature, it is a good practice to early open a pull request. This will give you the chance to discuss your implementation with the core team and other contributors. Please add a note like "early open" to your message.
This Contribution Guide is based on the Contributing to Ruby on Rails Guide and is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License