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:
Check if the issue already exists in the GitHub issue tracker
Create a new issue with a clear description
Include relevant information:
AnalysisG version
Operating system
Steps to reproduce (for bugs)
Expected vs actual behavior
Code Contributions
Setting Up Development Environment
Fork the repository
Clone your fork:
git clone https://github.com/your-username/AnalysisG.git
cd AnalysisG
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 documentationdocs/source/- Sphinx documentation
Testing
Ensure your changes don’t break existing functionality:
Run existing tests
Add tests for new features
Verify documentation builds
Submitting Changes
Create a feature branch:
git checkout -b feature/my-feature
Make your changes
Commit with clear messages:
git commit -m "Add feature: description"
Push to your fork:
git push origin feature/my-feature
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!