Linting » History » Version 1
osmith, 06/16/2021 02:37 PM
1 | 1 | osmith | h1. Linting |
---|---|---|---|
2 | |||
3 | Patches submitted to [[Gerrit]] are automatically linted to ensure patches follow our [[coding standards]] and to catch common spelling errors. Jenkins runs @checkpatch.pl@ from the Linux kernel (with an Osmocom specific configuration) against the diff of the current patch. |
||
4 | |||
5 | h2. pre-commit hook |
||
6 | |||
7 | The linting script is very fast, it makes sense to configure it locally as pre-commit hook. Then it will run whenever attempting to @git commit@. |
||
8 | |||
9 | Go to the directory above your Osmocom sources, then run the following. Replace libosmocore with any checked out Osmocom project. |
||
10 | <pre> |
||
11 | $ git clone https://git.osmocom.org/osmo-ci |
||
12 | $ ln -sv $PWD/osmo-ci/lint/lint_diff.sh libosmocore/.git/hooks/pre-commit |
||
13 | </pre> |
||
14 | |||
15 | h2. Osmocom specific configuration |
||
16 | |||
17 | Find the Osmocom specific configuration in @osmo-ci/lint/checkpatch/checkpatch_osmo.sh@. |
||
18 | |||
19 | If you see the script generating errors with checks that don't apply for Osmocom code (see the ignores and excludes already in the script), please submit a patch against osmo-ci.git that disables this specific check. |
||
20 | |||
21 | h2. Testing |
||
22 | |||
23 | Run @osmo-ci/lint/lint_all.sh@ in a git repository to run the script against all files in that repository and to report the total amount of errors. It is also possible to run only a specific check of @checkpatch.pl@ by passing it as argument. For example: |
||
24 | |||
25 | <pre> |
||
26 | $ cd libosmocore |
||
27 | $ ../osmo-ci/lint/lint_all.sh CODE_INDENT |
||
28 | </pre> |
||
29 | |||
30 | h2. See also |
||
31 | |||
32 | * #5087 |