2017-10-28 20:15:46 +00:00
# Contributing
Thanks for considering to contribute to FluidSynth. Before implementing
any huge new feature, consider bringing up your ideas on our mailing list:
https://lists.nongnu.org/mailman/listinfo/fluid-dev
2017-10-28 20:48:42 +00:00
Contributing can be done by
* submitting pull requests on Github:
2017-10-28 20:15:46 +00:00
https://help.github.com/articles/proposing-changes-to-your-work-with-pull-requests/
2017-10-28 20:48:42 +00:00
* submitting patches to the mailing list.
2017-10-28 20:15:46 +00:00
2017-10-28 20:48:42 +00:00
Patches should be created with `git format-patch` , so in every case you should be familiar with the basics of git.
2017-10-28 20:15:46 +00:00
Some things that will increase the chance that your pull request or patch is accepted:
2017-10-29 09:41:11 +00:00
* Give a reasoning / motivation for any changes or proposals you make.
2017-10-28 20:15:46 +00:00
* Follow our style guide.
* Keep your commits "atomic".
* Write a meaningful commit messages.
2017-10-28 20:36:04 +00:00
## Style Guide
Find FluidSynth's style guide below. Most of the syntax issues can be automatically applied with `clang-format` and `clang-tidy` using the config files in the repository root.
#### General
* Every function should have a short comment explaining it's purpose
* Every public API function **must** be documented with purpose, params and return value
2017-10-28 20:58:53 +00:00
* Prefer signed integer types to unsigned ones
2017-10-28 20:36:04 +00:00
* Use spaces rather than tabs
* Avoid macros
#### Naming Conventions
* Words separated by underscores
* Macros always UPPER_CASE
* Function and Variable names always lower_case, (e.g. `fluid_componentname_purpose()` )
#### Bracing
* Every block after an if, else, while or for should be enclosed in braces
* **Allman-Style** braces everywhere