2.9 KiB
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
Shared Library Version
If any of the source code has changed please see
LIBMARIAS3_LIBRARY_VERSION
in configure.ac
.
This gives rules on bumping the shared library versioning, not to be
confused with the API public version which follows similar rules as
described in the next section.
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).