We'd love to accept your patches and contributions to this project. We do have some guidelines to follow, covered in this document, but don't be concerned about getting everything right the first time! Create a pull request (discussed below) and we'll nudge you in the right direction.
Contributions to this project must be accompanied by a Contributor License Agreement (CLA). You (or your employer) retain the copyright to your contribution; the CLA simply gives us permission to use and redistribute your contributions as part of the project. Please visit https://cla.developers.google.com/ to see your current agreements on file or to sign a new one. You generally only need to submit a Google CLA once, so if you've already submitted one (even if it was for a different project), you probably don't need to do it again.
We have a code of conduct to make the project an open and welcoming community environment. Please make sure to read and abide by the code of conduct.
All submissions, including submissions by project members, require review. We use the tools provided by GitHub for pull requests for this purpose. The preferred manner for submitting pull requests is to fork the repository, create a new git branch in this fork to do your work, and when ready, create a pull request from your branch to the main project repository.
We follow the Google coding style guides
for the programming languages used in this project, with only a few deviations.
The .editorconfig file in this repository defines the
settings we use. Please run clang-format on any modified C++ files before
submitting a pull request.