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).