xref: /aosp_15_r20/external/AFLplusplus/CONTRIBUTING.md (revision 08b48e0b10e97b33e7b60c5b6e2243bd915777f2)
1# Contributing to AFL++
2
3## How to submit a pull request
4
5All contributions (pull requests) must be made against our `dev` branch.
6
7Each modified source file, before merging, must be formatted.
8
9```
10make code-format
11```
12
13This should be fine if you modified one of the files already present in the
14project, or added a file in a directory we already format, otherwise run:
15
16```
17./.custom-format.py -i file-that-you-have-created.c
18```
19
20Regarding the coding style, please follow the AFL style. No camel case at all
21and use AFL's macros wherever possible (e.g., WARNF, FATAL, MAP_SIZE, ...).
22
23Remember that AFL++ has to build and run on many platforms, so generalize your
24Makefiles/GNUmakefile (or your patches to our pre-existing Makefiles) to be as
25generic as possible.
26
27## How to contribute to the docs
28
29We welcome contributions to our docs.
30
31Before creating a new file, please check if your content matches an existing
32file in one the following folders:
33
34* [docs/](docs/) (this is where you can find most of our docs content)
35* [frida_mode/](frida_mode/)
36* [instrumentation/](instrumentation/)
37* [qemu_mode/](qemu_mode/)
38* [unicorn_mode/](unicorn_mode/)
39
40When working on the docs, please keep the following guidelines in mind:
41
42* Edit or create Markdown files and use Markdown markup.
43  * Do: fuzzing_gui_program.md
44  * Don't: fuzzing_gui_program.txt
45* Use underscore in file names.
46  * Do: fuzzing_network_service.md
47  * Don't: fuzzing-network-service.md
48* Use a maximum of 80 characters per line to make reading in a console easier.
49* Make all pull requests against `dev`, see
50  [#how-to-submit-a-pull-request-to-afl](#how-to-submit-a-pull-request-to-afl).
51
52And finally, here are some best practices for writing docs content:
53
54* Use clear and simple language.
55* Structure your content with headings and paragraphs.
56* Use bulleted lists to present similar content in a way that makes it easy to
57  scan.
58* Use numbered lists for procedures or prioritizing.
59* Link to related content, for example, prerequisites or in-depth discussions.