-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
f1c81cd
commit ab79c9f
Showing
2 changed files
with
33 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,32 @@ | ||
# WORK IN PROGRESS, NOT READY FOR USE | ||
# LibUDPard contribution guidelines | ||
|
||
While this is a work in progress, contribute via the forums at [https://forum.opencyphal.org/](https://forum.opencyphal.org/) | ||
## Standards | ||
|
||
The library shall be implemented in ISO C99/C11 following MISRA C:2012. | ||
The MISRA compliance is enforced by Clang-Tidy and SonarQube. | ||
Deviations are documented directly in the source code as follows: | ||
|
||
```c | ||
// Intentional violation of MISRA: <some valid reason> | ||
<... deviant construct ...> | ||
``` | ||
|
||
The full list of deviations with the accompanying explanation can be found by grepping the sources. | ||
|
||
Do not suppress compliance warnings using the means provided by static analysis tools because such deviations | ||
are impossible to track at the source code level. | ||
An exception applies for the case of false-positive (invalid) warnings -- those should not be mentioned in the codebase. | ||
|
||
Unfortunately, some rules are hard or impractical to enforce automatically, | ||
so code reviewers shall be aware of MISRA and general high-reliability coding practices | ||
to prevent non-compliant code from being accepted into upstream. | ||
|
||
## Build & test | ||
|
||
Consult with the CI workflow files for the required tools and build & test instructions. | ||
You may want to use the [toolshed](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/toolshed) | ||
container for this. | ||
|
||
## Releasing | ||
|
||
Simply create a new release & tag on GitHub. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters