Introduction to Contributing¶
There are many ways to contribute to libMariaS3. Simply using it and creating an issue report when you found a bug or have a suggestion is a great contribution. Documentation and code contribituions are also greatly appreciated.
Layout¶
The code for libMariaS3 in several parts:
Directory | Contents |
---|---|
/src |
The API source code |
/libmarias3 |
The public API headers |
/tests |
Unit tests for the public API |
In each case if any files are added or removed the include.am
file in that directory will require updating to reflect the change.
Submitting to Github¶
The main hub for the code is GitHub. The main tree is the libMariaS3 GitHub tree. Anyone is welcome to submit pull requests or issues. All requests will be considered and appropriate feedback given.
Modifying the Build System¶
The build system is an m4 template system called DDM4. If any changes are made to the scripts in m4
directory the serial line will need incrementing in that file. You should look for a line near the top that looks like:
#serial 7
API Version¶
API versioning is stored in the VERSION.txt
file which is used by the build system to version the API and docs. The versioning scheme follows the Semantic Versioning Rules.
Function Visibility¶
The code and build system only exposes public API functions as usable symbols in the finished binary. This cuts down on binary size quite significantly and also discourages use of undocumented functionality that was not designed for public use.
When adding a new API function to /libmarias3
always add MS3_API
on its own on the line above the function definition in the header. This tells the build system this is an API function to be included.
License Headers¶
Please make sure before committing that all new files have appropriate license headers in. Only add to the copyright of older headers if you have made a significant contribution to that file (25 - 50 lines is typically classed as significant for Open Souce projects).