File: Readme.md

package info (click to toggle)
iceoryx 2.0.3%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 11,260 kB
  • sloc: cpp: 94,127; ansic: 1,443; sh: 1,436; python: 1,377; xml: 80; makefile: 61
file content (42 lines) | stat: -rw-r--r-- 2,027 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# Git Hooks for iceoryx

When developing on iceoryx, git-hooks are doing some sanity checks and can execute linters/formatters when you commit code.
In the current state the git hooks do the following job:

- checking that commit messages follow the format `[iox-#<Github issue number>]` and auto-format them if necessary
- check that the commit messages subject and body follow six of the [seven rules of a great commit message](https://chris.beams.io/posts/git-commit/)
- remove trailing whitespace from all modified files
- run `clang-format` on all files to commit
- run `clang-tidy` on all files to commit, modified files will drop warnings,
newly added files treat warnings as errors when the linter detects a warning.

You can install them with the following command:

```bash
sudo apt install clang-format clang-tidy
```

It is recommended to use the latest stable version for both tools.
The scripts currently don't accept any major version lower than `12` for both tools.

## Installation

The hooks are active when you add the `git-hooks` directory as hooks folder to your local project git config:

```bash
cd iceoryx
git config core.hooksPath tools/git-hooks/
```

With that you will also receive the updates of the git hooks in the future.
We recommend doing this in every new clone you did on iceoryx.

## Seven Rules for a good commit message

1. [Separate subject from body with a blank line](https://chris.beams.io/posts/git-commit/#separate)
2. [Limit the subject line to 50 characters](https://chris.beams.io/posts/git-commit/#limit-50) (excluding GitHub issue number)
3. [Capitalize the subject line](https://chris.beams.io/posts/git-commit/#capitalize)
4. [Do not end the subject line with a period](https://chris.beams.io/posts/git-commit/#end)
5. [Use the imperative mood in the subject line](https://chris.beams.io/posts/git-commit/#imperative)
6. [Wrap the body at 72 characters](https://chris.beams.io/posts/git-commit/#wrap-72)
7. Use the body to explain what and why vs. how (not checked in hooks)