How to contribute

We'd love to accept your patches and contributions to this project. There are just a few small guidelines you need to follow.

Propose ideas and get feedback

To help us respect your time as a contributor and maximize the chances of your work landing in the repository, please reach out early by creating a GitHub Issue to talk about the additions or improvements you want to make.

You can also take a look at our roadmap to see what improvements we're most eager to see, and our explicit non-goals for examples of contributions we will not accept.

Some questions or feedback might not make sense as GitHub issues. For those, we've created a public safeside-discuss group.

Code reviews

All submissions, including submissions by project members, require review. We use GitHub pull requests for this purpose. Consult GitHub Help for more information on using pull requests.

Contributor License Agreement

Contributions to this project must be accompanied by a Contributor License Agreement. You (or your employer) retain the copyright to your contribution; this simply gives us permission to use and redistribute your contributions as part of the project. Head over to 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 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.

Code style

We use C++11 with Google's C++ style guide. Please run clang-format on your code before sending a pull request.

Source code headers

Every file containing source code must include a copyright and license header:

Copyright 2019 Google LLC

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Community Guidelines

This project follows Google's Open Source Community Guidelines.