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.