Contribute¶
If you've got a code change that fixes something or adds a feature, we'd love to see it. Go on and fork libavg and send us a pull request (PR) with your changes.
The PR should apply cleanly to the current master.
Coding Conventions¶
Please follow the Coding Conventions.
Running the Tests¶
libavg contains a number of tests that run automatically and alert the user if anything doesn't work as expected. The tests are actually pretty comprehensive and find a lot of issues that would otherwise slip through the cracks. To run the tests, do a make check
. The tests that have to do with images will save images for the failing tests in a resultimages/
subdirectory. For each failed test, there will be three images: the current result, the expected result, and a diference image - giving you a good clue about what's happening.
If you add a feature, please add a test (or several) that make sure the feature works. If you fix a bug, then there should often have been a test that finds the bug ;-), and it's appreciated if you add an appropriate test as well. (That also makes the bug reproducible, thus making your fix more likely to be applied).
Adding Documentation¶
If the patch changes the interface of libavg, we need an update to the reference documentation in libavg/sphinxdoc. To build the documentation, you need Sphinx installed:
1$ sudo easy_install -U Sphinx
The docs can be rebuilt by calling
1$ cd libavg
2$ ./makedocs.sh
Note that documentation is ordered alphabetically. This is not enforced by sphinx, so new entries must be inserted in order.
Checkin Granularity¶
Please make sure to create one PR per feature/bugfix. Commit messages should be concise and meaningful, usually written in imperative form.
For instance
Fix spelling mistake in player documentation
rather then
Fixed stuff in doc
Patches¶
You have created an awsome bugfix or feature to libavg but don't want to create a github account?
Open a topic in the forum and attach your patch to it.