1 # Contribution guidelines
3 Thanks for taking the time to contribute to the [collectd
4 project](https://collectd.org/)! This document tries to give some guidance to
5 make the process of contributing to *collectd* as pleasant and possible.
9 Please report bugs as [GitHub
10 Issues](https://github.com/collectd/collectd/issues). Try to answer the
13 * Which version of *collectd* are you using?
14 * How can we reproduce the problem you're having?
15 * What is the expected behavior / output?
16 * What is the actual (observed) behavior / output?
17 * If *collectd* crashes, try to get a
18 [stack trace](https://collectd.org/wiki/index.php/Core_file).
20 Please monitor your issue for a couple of days and reply to questions. To keep
21 the project manageable have to do some housekeeping, meaning we will close
22 issues that have become stale.
26 Please open a [GitHub Pull Request](https://github.com/collectd/collectd/pulls)
27 (PR) to contribute bug fixes, features, cleanups, new plugins, … Patches sent to
28 the mailing list have a tendency to fall through the cracks.
30 * *Focus:* Fix *one thing* in your PR. The smaller your change, the faster it
31 will be reviewed and merged.
32 * *Coding style:* Please run `clang-format -style=file -i $FILE` on new files.
33 For existing files, please blend into surrounding code, i.e. mimic the
34 coding style of the code around your changes.
35 * *Documentation:* New config options need to be documented in two places: the
36 manpage (`src/collectd.conf.pod`) and the example config
37 (`src/collectd.conf.in`).
38 * *Continuous integration:* Once your PR is created, our continuous
39 integration environment will try to build it on a number of platforms. If
40 this reports a failure, please investigate and fix the problem. We will at
41 best do a very casual review for failing PRs.
42 * *Don't rebase:* Rebasing our branch destroys the review history. If a review
43 takes a long time, we may ask you to rebase on a more recent *master*, but
44 please don't do it without being asked.
45 * *types.db:* One of the most common mistakes done by new contributors is the
46 addition of (many) new *types* in the file `src/types.db`. The majority of
47 usecases can be met with one of the existing entries. If you plan to add new
48 entries to `src/types.db`, you should talk to us early in the design
53 * [Mailing list](http://mailman.verplant.org/listinfo/collectd)
54 * [#collectd IRC channel](https://webchat.freenode.net/?channels=#collectd)
56 * [Old patch submission guideline](https://collectd.org/wiki/index.php/Submitting_patches)