Thank you for your interest in contributing to testcoe!
- CMake 3.14+
- C++17 compatible compiler
- Git
git clone https://github.com/nircoe/testcoe.git
cd testcoe
mkdir build && cd build
cmake -DBUILD_EXAMPLES=ON -DBUILD_TESTS=ON ..
cmake --build .# Run unit tests
./tests/testcoe_tests
# Run examples
./examples/basic/basic_example
./examples/crash/crash_example
./examples/filter/filter_exampletestcoe/
├── include/testcoe/ # Public headers
├── src/ # Implementation files
├── examples/ # Example programs
├── tests/ # Integration and unit tests
└── .github/workflows/ # CI configuration
All pull requests are automatically tested on:
- Windows: MSVC and MinGW
- Linux: GCC and Clang
- macOS: Apple Clang
The CI runs the following checks:
- Build the library
- Build all examples
- Run integration tests
- Verify examples execute correctly
- Follow existing naming conventions
- Keep lines under 120 characters
- Add comments for complex logic
- Add tests for new features
- Ensure all tests pass locally
- Test on multiple platforms if possible
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests locally
- Commit with clear messages
- Push to your fork
- Open a Pull Request from your fork to the main repository
- Use prefix for PR title
[Subject]: <PR title> - PR description should describe the major changes in bullet-points
- Sqaushed commit title should be the PR title, and the message should be PR description
When adding features:
- Update the public API in
include/testcoe/testcoe.hppif needed - Add implementation in appropriate source file
- Create example demonstrating the feature
- Add tests covering the new functionality
- Update documentation
Feel free to reach out at nircoe@gmail.com
I'm here to help make contributing to logcoe as smooth as possible!
Please open an issue for:
- Bug reports
- Feature requests
- Questions about the codebase
- Discussion about implementation