-
Notifications
You must be signed in to change notification settings - Fork 13
Contributing
Contributions to this repository are very welcome. If you are interested in contributing, feel free to contact me or create an issue in the issue tracking system. Alternatively, you may fork the project and submit a pull request. All contributions must be made under the same license as the rest of the project: GNU Public License v3. Ideally new code should be accompanied with appropriate test cases and documented.
Remember to add your @author at the top of each modified source file. New files should include a GPLv3 license at the top.
Each data structure and function should be documented with Doxygen comments. Please try to follow the general style of existing code by using const-correctness and avoid typedefs to aid comprehension. Python code should be linted with pylint; a perfect score is not necessary, but try to clean up as much as is reasonable. Python code should also be type checked with mypy and an XCSF stub is provided for this purpose, generated with pybind11-stubgen. Yaml files should also be linted with yamllint.
A pre-commit configuration file is provided to automatically format:
- C/C++ with clang-format;
- Python with black;
- CMakeLists with cmake-format.
Pre-commit hooks can be setup as follows:
$ pip install pre-commit
$ pre-commit install
To check it's setup correctly run:
$ pre-commit run --all-files
Version number format: MAJOR.MINOR.BUILD - specified in xcsf.h and CMakeLists.txt (PROJECT_VERSION)
and setup.py.
- Increment
BUILDnumber for minor bug fixes and changes that do not break compatability with file saving/loading. - Increment
MINORnumber for major bug fixes and changes that break compatability with file saving/loading. - Criteria for incrementing the
MAJORnumber to be determined later.
This project is released under the terms of the GNU General Public License v3.0 (GPLv3).