Thank you for considering contributing to this project! This document provides guidelines for contributions.
- Be respectful and inclusive
- Provide constructive feedback
- Focus on what is best for the community
- Check if the bug has already been reported in Issues
- If not, create a new issue with:
- Clear title and description
- Steps to reproduce
- Expected vs actual behavior
- Environment details (OS, compiler, etc.)
- Open an issue with the
enhancementlabel - Describe the feature and its use case
- Explain why it would be valuable
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes:
- Follow the coding style (see below)
- Add tests for new functionality
- Update documentation as needed
- Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- CMake 3.25+
- Conan 2.x
- C++26 compatible compiler:
- GCC 14+
- Clang 18+
- MSVC 17.9+
# Clone the repository
git clone https://github.com/yourusername/conch-cpp.git
cd conch-cpp
# Build
./build.sh # Linux/macOS
scripts\build_vs2022.bat # Windows./scripts/run_tests.sh # Linux/macOS
scripts\run_tests.bat # Windows- Use C++26 features where appropriate
- Follow Google C++ Style Guide
- Use
clang-formatwith the provided.clang-formatfile - Prefer
constandconstexprwhere possible - Use smart pointers (
std::unique_ptr,std::shared_ptr) - Avoid raw
new/delete
- Classes/Structs:
PascalCase - Functions/Methods:
snake_case - Variables:
snake_case - Constants:
UPPER_SNAKE_CASE - Namespaces:
lowercase
- Use Doxygen-style comments for public APIs:
/**
* @brief Brief description
* @param param_name Parameter description
* @return Return value description
*/
int my_function(int param_name);- Write unit tests for all new functionality
- Ensure all tests pass before submitting PR
- Aim for >80% code coverage
- Use Google Test framework
Follow Conventional Commits:
feat: Add new trading algorithm
fix: Resolve memory leak in network module
docs: Update API documentation
test: Add benchmark tests for quant_core
refactor: Simplify media_core signaling logic
- All PRs require at least one approval
- CI/CD must pass (builds, tests, linting)
- Code coverage should not decrease
- Documentation must be updated
By contributing, you agree that your contributions will be licensed under the project's license.
Feel free to open an issue or contact the maintainers.
Thank you for contributing! 🎉