blob: d06042004b0792f5489e0edf614bb266ae39d2ca [file] [log] [blame]
<!DOCTYPE html>
<html>
<title>contributing</title>
<xmp theme="united" style="display:none;">
## Contributing
This library is free, and will stay free but needs your support to sustain its development. There are lots of [**new features**](roadmap.html) and maintenance to do. If you work for a company using **doctest** or have the means to do so, please consider financial support.
[![Pledgie](https://pledgie.com/campaigns/31280.png)](https://pledgie.com/campaigns/31280)
[![Patreon](https://cloud.githubusercontent.com/assets/8225057/5990484/70413560-a9ab-11e4-8942-1a63607c0b00.png)](http://www.patreon.com/onqtam)
[![PayPal](https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=3K423Q6TK48BN)
## Pull requests
Consider opening an issue for a discussion before making a pull request to make sure the contribution goes smoothly.
All pull requests should be made against the ```dev``` branch because the ```master``` is the stable one with the latest release.
If you're going to change something in the library itself - make sure you don't modify ```doctest/doctest.h``` because it's generated from ```doctest/parts/doctest_fwd.h``` and ```doctest/parts/doctest_impl.h``` - they get concatenated by CMake - so make sure you do a CMake build after you modify them so the ```assemble_single_header``` target gets built.
This framework has some design goals which must be kept. Make sure you have read the [**features and design goals**](features.html) page.
If your changes also change the output of the library - you should also update the reference output for the tests or otherwise the CI builds (```travis``` and ```appveyor```) will fail when they compare the latest output to the outdated reference output (which is committed in the repository). To do this run CMake with the ```TEST_MODE``` variable set to ```COLLECT``` (making the new reference output) and then run ```ctest``` and commit the changed ```.txt``` files too. The default ```TEST_MODE``` is ```COMPARE```.
Example: ```cmake -DTEST_MODE=COLLECT path/to/sources && ctest```
Code should be formatted with a recent-enough ```clang-format``` using the config file in the root of the repo (or I will do it...)
Testing with compilers different from GCC/Clang/MSVC (and more platforms) is something the project would benefit from.
---------------
[Home](readme.html#reference)
</xmp>
<script src="strapdown.js/strapdown.js"></script>
</html>