Contributing

Edit on GitHubThank you for your interest in contributing to this project. Whether it be reporting bugs or implementing new features, we are always happy to receive contributions from the community. To get started, please take a few moments to read through this document to make the contribution process easier and more effective.

Robot consists of multiple repositories hosted on GitHub which include the native C++ library, the Node.js bindings and this website. Each of these repositories has their own issue tracker which can be used to report bugs or request features. Code contributions should be made through pull requests on each individual repository. Please review the relevant sections below for more information.

Reporting Bugs

A bug is a demonstrable problem that is caused by code in the repository. Good bug reports are extremely helpful and benefit everybody. Before submitting a bug report, ensure that the bug still exists in the latest version of the library. If it does exist, use the search feature on the GitHub issues page to ensure it has not been previously reported, include closed issues in your search. If it hasn't been reported, create a new issue with the following information:

  • A short and descriptive title
  • A detailed description of the bug
  • Steps for reproducing the bug
  • Any relevant screenshots
  • Your system information
    • Your operating system
    • Hardware configuration
    • Any other useful info

Requesting Features

Feature requests are an important part of the software development life-cycle. Before submitting a feature request, please take the time to find out whether your idea fits within the scope of the project. It's up to you to make a strong case for why your feature should get implemented. If it does fit, use the search feature on the GitHub issues page to ensure the feature has not been previously requested, include closed issues in your search. If it hasn't been requested, create a new issue with the following information:

  • A short and descriptive title
  • A detailed description of the feature
  • A few typical use case scenarios
  • How you expect the feature to work
  • Any other useful information

Contributing Code

Contributing patches and new features are a fantastic way to help out the project. To get started, please ensure that the code you're planning to contribute is within the scope of the project and that no one else is working on it. In both cases, these can be easily tracked through the issues page on GitHub. Furthermore, please consult with the developers prior to implementing any large feature, otherwise you run the risk of spending a lot of time working on something that the project's developers might not be interested in merging.

Once you're ready to begin coding, simply fork the project and, once finished, submit a pull request. Good pull requests are minimal and are free of merge conflicts, contain proper commit logs with no unrelated materials and are well tested with any applicable test cases. Additionally, the code should adhere to the coding conventions used throughout the project as much as possible to ensure consistency. By submitting a pull request you acknowledge that all the code is your own and that it's free of patents and other licensing-related issues. Moreover, you agree to allow the project developers to license your work under the terms of the ZLIB license.

Once your pull request has been submitted, the project developers will inspect and comment on the pull request as part of the code review process. This ensures that a high-level of quality is maintained throughout the project's development life-cycle. Once satisfied with the request, it will be merged into a development branch for further testing and analysis before being integrated into the master branch according to the needs of the release schedule.