Contributing

Thank you for your interest in contributing to AnalysisG!

How to Contribute

There are many ways to contribute to the AnalysisG framework:

  • Report bugs and issues

  • Suggest new features

  • Improve documentation

  • Submit code contributions

  • Share usage examples

Reporting Issues

If you find a bug or have a feature request:

  1. Check if the issue already exists in the GitHub issue tracker

  2. Create a new issue with a clear description

  3. Include relevant information:

    • AnalysisG version

    • Operating system

    • Steps to reproduce (for bugs)

    • Expected vs actual behavior

Code Contributions

Setting Up Development Environment

  1. Fork the repository

  2. Clone your fork:

git clone https://github.com/your-username/AnalysisG.git
cd AnalysisG
  1. Build the project:

mkdir build
cd build
cmake ..
make

Code Style

Follow the existing code style:

  • Use consistent indentation

  • Add comments for complex logic

  • Document public APIs

  • Follow C++17 standards

Documentation

Update documentation when:

  • Adding new features

  • Changing APIs

  • Fixing bugs that affect usage

Documentation is located in:

  • docs/doxygen/ - Doxygen documentation

  • docs/source/ - Sphinx documentation

Testing

Ensure your changes don’t break existing functionality:

  1. Run existing tests

  2. Add tests for new features

  3. Verify documentation builds

Submitting Changes

  1. Create a feature branch:

git checkout -b feature/my-feature
  1. Make your changes

  2. Commit with clear messages:

git commit -m "Add feature: description"
  1. Push to your fork:

git push origin feature/my-feature
  1. Create a pull request on GitHub

Documentation Contributions

Improving Documentation

Documentation improvements are always welcome:

  • Fix typos and grammar

  • Clarify explanations

  • Add examples

  • Improve organization

Building Documentation Locally

To build documentation:

cd docs
doxygen ../Doxyfile
make html

View the result in docs/_build/html/index.html.

Code of Conduct

Be respectful and professional in all interactions. We aim to create a welcoming and inclusive environment for all contributors.

Getting Help

If you need help:

  • Check the documentation

  • Ask in GitHub discussions

  • Open an issue with questions

License

By contributing, you agree that your contributions will be licensed under the same license as the project.

Recognition

Contributors will be acknowledged in the project. Significant contributions may be recognized in release notes and documentation.

Contact

For questions about contributing, please open an issue on GitHub or contact the maintainers.

Thank You

Your contributions help make AnalysisG better for everyone!