Thank you for your interest in Au: a C++ units library, by Aurora. We welcome your contributions! Here are some guidelines to help.
Contributions to this project must be accompanied by a signed CLA. You (or your employer) retain the copyright to your contribution; the CLA merely gives us permission to use and redistribute your contribution as part of the project. You'll automatically be prompted to sign the CLA the first time you create a pull request. You only need to sign it once.
NOTE: If you're planning to make contributions on behalf of your employer or another entity, please sign the corporate CLA. Your employer's GitHub organization will be allowlisted after you do.
We also have an issues page for tracking problems and future work. If you have a bug report or feature request, check the existing issues to see if it’s been posted, and file a new one if it hasn’t. While we can’t promise timely resolution, we will do our best to respond quickly so you know you’ve been heard, and where we stand on the issue.
By contributing to Au, you agree to be bound by the terms of the applicable CLA and that your contributions will be licensed under the LICENSE file in the root directory of this source tree.
Pull requests (PRs) can involve a significant amount of work, both to write and to review. Follow these guidelines to minimize the chance of wasting that work, and maximize the chance of delivering its value!
-
First, check the issues. If your change isn't covered by any existing issue, it's a good idea to file a new one, so you can make sure the change would be welcomed.
-
Make small PRs. Each PR should address one idea only. This means some issues may take multiple PRs to resolve; this is normal and expected.
-
Each PR becomes one single commit when it lands to main, so follow the rules for good commit messages! In particular, note that the PR title becomes the commit title, and the PR summary becomes the commit body.
-
All remote builds must pass before any PR is landed.
See our development setup guide to get started with building and testing the code and documentation!
Au follows the Google C++ Style Guide, apart from the explicit exceptions we enumerate below. Please make sure your PR conforms to this modified style guide before landing.
Here are the modifications we've made to the Google C++ Style Guide for Au:
-
The
.clang-format
file in the repository supersedes the Google style guide in all matters of code formatting. -
Our header files use the
.hh
extension, not.h
. -
Use
#pragma once
instead of#define
guards. -
We permit implicit conversions that perform unit conversions we expect to be safe.
-
We do not use the
kConstantName
convention for our constants. Instead, we use theUPPER_SNAKE_CASE
convention. This also applies to enumerator names.