Project

General

Profile

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
Add picture from clipboard (Maximum size: 48.8 MB)