LibNat20 0.0.1
|
Thank you for your interest in libnat20: a C DICE 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 libnat20, 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!
See our README to get started with building and testing the code and documentation!
Libnat20 loosely follows the Google C++ Style Guide. However, there are clear distinctions between the core library, which is written in pure C and supporting code such as the test suite which may use C++ code and library dependencies that would not be allowed in the core library.
In matters of formatting, readability and consistency takes precedence over all other considerations. The .clang-format
file is authoritative, but exceptions are permitted at the discretion of the maintainers if readability is significantly impaired otherwise.
Also, prefix cv qualifiers are an abomination and are disallowed, no exceptions!
The core library is written in pure C11. However, it must comply with MISRA C++ 2023, and it must be accepted by a C++17 compiler, so beware of using C++ key words of identifiers.
The following rules take precedence of the Google C++ Style Guide.
.clang-format
file in the repository supersedes the Google style guide in all matters of code formatting.#pragma once
instead of #define
guards.lower_snake_case
.n20_
.UPPER_SNAKE_CASE
.N20_
._t
._e
._s
.The test suite allows for using C++ and some library dependencies which would not be allowed in the core library.
Coverage and best practice usage of the APIs takes precedence. Still, the code base shall be kept readable and consistent in style. The .clang-format
files is authoritative in questions of formatting and the C++ Style Guide shall be used as a tie breaker if discussions around style shall arise.
The following rules take precedence though:
.clang-format
file in the repository supersedes the Google style guide in all matters of code formatting.#pragma once
instead of #define
guards.