summaryrefslogtreecommitdiff
path: root/README-hacking
blob: 5ee0eda9dea31a5f659f8426bfcab82843533e43 (plain)
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
43
44
Requirements
============
If you use a GIT version of strace source code, please refer to
INSTALL-git.md file for building and installation instructions.


No more ChangeLog file
======================
Do not create or modify the ChangeLog files.  Starting at 2009-07-09, the
policy changed.  Before, we would insert the exact same text (or worse,
sometimes slightly differing) into both the ChangeLog file and the commit
log.  Now we put that information only in the commit log, and generate
the top-level ChangeLog file from logs at "make dist" time.  As such,
there are strict requirements on the form of the commit log messages.


Commit requirements
===================
Each commit message should always start with a one-line summary, the second
line should be blank, and the remaining lines are usually ChangeLog-style
entries for all affected files, except the leading TABs which should
be omitted.

Changes must not introduce whitespace errors in git sense (trailing
whitespace, spaces before tabs, spaces for indentation, blank lines
at the end of file), this can be checked with the following command:

	git -c core.whitespace=space-before-tab,trailing-space diff-index \
		--check 4b825dc642cb6eb9a060e54bf8d69288fbee4904

It is also preferred (but not required) that commit patches pass
scripts/checkpatch.pl script from the Linux kernel[1], as currently established
coding style quite closely resembles the one used in Linux kernel[2], with some
exceptions.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/plain/scripts/checkpatch.pl
[2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/plain/Documentation/process/coding-style.rst


Documentation
=============
All noteworthy changes should be mentioned in NEWS.  All changes in strace
command interface should be reflected in the man page.  New options should
be documented both in -h output and in the man page.