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 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 2020 Google LLC

Licensed under both the 3-Clause BSD License and the GPLv2, found in the
LICENSE and LICENSE.GPL-2.0 files, respectively, in the root directory.

SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0

Community Guidelines

This project follows Google's Open Source Community Guidelines.