Add more guidelines

2026-01-21 02:40:32 +01:00
parent d542a1ef37
commit 01ca4b2fa8

@@ -7,3 +7,59 @@ recommendations.
## Git Master Branch ## Git Master Branch
The master branch will always be called `master`. This is final. The master branch will always be called `master`. This is final.
## Versioning
Most Art projects are implemented in C++ and use the build2 build-system. See
https://build2.org/build2/doc/build2-build-system-manual.xhtml#module-version
for information about versioning.
## Feature Branches
Feature branches are prefixed with `feature/`.
## Release Branches
Release branches are prefixed with `release/v`.
## Release Tags
Release tags are prefixed with `v`.
# C++ Guidelines
## Namespaces
Namespaces shall be named using PascalCase, for example `namespace Art::Seafire`.
## Classes
Classes shall be named according to the Stroustrup PPP-style. For example
`class Temperature_reading`.
## Functions
Functions, both member functions and free functions, shall be named using snake
case. For example: `void register_user()`.
## Enumerations
Enumerations shall be named like classes. Members of an enumeration shall
be named using PascalCase, with a lower-case `k`-prefix. For example:
```c++
enum class Enumeration
{
kEnum1,
kEnum2
};
```
## Include Guards
Include guards shall consist of the complete path of the header file, relative
to the project root. With `__` used as a directory separator.
For example, for `art/seafire/version.hxx`, the include guard should be:
`#ifndef art__seafire__version_hxx_`.