Contributing to anira#
We welcome contributions to anira! This document provides guidelines and instructions for contributing to the project.
Ways to Contribute#
There are many ways to contribute to anira:
Bug reports: Report issues you encounter
Feature requests: Suggest new features or improvements
Documentation: Help improve the documentation
Code contributions: Fix bugs or implement new features
Examples: Create example projects that use anira
Testing: Help test on different platforms and configurations
Development Setup#
Prerequisites#
C++17 compatible compiler
CMake 3.14 or higher
Git
Getting the Code#
Fork the anira repository on GitHub
Clone your fork locally:
git clone https://github.com/YOUR-USERNAME/anira.git
cd anira
Add the original repository as an upstream remote:
git remote add upstream https://github.com/anira-project/anira.git
Building for Development#
Build with all features enabled:
cmake . -B build -DCMAKE_BUILD_TYPE=Debug -DANIRA_WITH_TESTS=ON -DANIRA_WITH_BENCHMARK=ON -DANIRA_WITH_EXAMPLES=ON -DANIRA_BUILD_DOCS=ON
cmake --build build
Run tests to verify your setup:
cd build
ctest
Coding Guidelines#
General#
Follow the existing code style
Write clear, readable, and maintainable code
Include appropriate documentation for public API
Add tests for new functionality
Documentation#
Document all public APIs with Doxygen-compatible comments
Keep the documentation in sync with the code
Add examples to illustrate usage
Testing#
Write unit tests for new functionality
Ensure all tests pass before submitting
If fixing a bug, add a test that reproduces the bug
Submitting Changes#
Pull Request Process#
Create a new branch for your changes:
git checkout -b feature/your-feature-name
Make your changes and commit them:
git commit -m "Description of your changes"
Keep your branch updated with upstream:
git fetch upstream
git rebase upstream/main
Push your branch to your fork:
git push origin feature/your-feature-name
Create a pull request from your branch to the main repository
Address any feedback from code reviews
Code Review#
All submissions require review before being merged. We use GitHub pull requests for this purpose. Consult GitHub Help for more information on using pull requests.
Building Documentation#
To build the documentation locally:
cmake . -B build -DCMAKE_BUILD_TYPE=Release -DANIRA_BUILD_DOCS=ON
cmake --build build --target sphinx-docs
The documentation will be built in build/docs/sphinx/html/.
Getting Help#
If you have questions or need help with contributing:
Open an issue on GitHub
Reach out to the maintainers
Check the troubleshooting guide
Thank you for contributing to anira!