Contributing to helios
This guide provides an overview of the contribution process and links to detailed documentation.
Quick Links
- Contributing Guide – Complete guide for getting started, commit conventions, pull requests, and testing
- Issue Submission Guide – Guidelines for bug reports, feature requests, and refactoring proposals
- Code Style – C++23 modules, naming conventions, formatting, and logging
- Doxygen Style – API documentation guidelines
- Changelog Guide – How to maintain the CHANGELOG
Getting Started
Prerequisites
- C++23 compatible compiler (MSVC 19.38+, GCC 13.2+, or Clang 17+)
- CMake 4.0 or higher
- Git for version control
- Familiarity with C++ modules
Quick Setup
# Fork and clone the repository
git clone https://github.com/YOUR_USERNAME/helios.git
cd helios
# Add upstream remote
git remote add upstream https://github.com/thorstensuckow/helios.git
# Create a feature branch
git checkout -b feature/your-feature-name
# Build the project
cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug
cmake --build build --config Debug
# Run tests
cd build
ctest -C Debug --output-on-failure
Contribution Workflow
- Choose an issue or create a new one describing your proposed change
- Fork the repository and create a feature branch
- Make your changes following the code style guide
- Write tests for your changes
- Update documentation if you modify public APIs
- Commit using conventional commit format
- Push to your fork and open a pull request
Commit Message Format
helios follows Conventional Commits:
<type>[optional scope]: <description>
[optional body]
[optional footer]
Common types:
feat:– New featurefix:– Bug fixrefactor:– Code restructuringdocs:– Documentation changestest:– Test additions/changesperf:– Performance improvements
Example:
feat(rendering): add HDR rendering support
Implements tone mapping and exposure controls for HDR pipeline.
Fixes #123
See the Contributing Guide for detailed commit conventions.
Code Quality Standards
Before submitting a PR, ensure:
- Code compiles in both Debug and Release modes
- All tests pass (
ctest -C Debug --output-on-failure) - Code is formatted (
clang-format -i <files>) - No new warnings introduced
- Public APIs documented with Doxygen comments
- CHANGELOG updated (if applicable)
Automated Checks
GitHub Actions automatically runs build and test workflows on all pull requests. You can view the CI status in your PR.
Continuous Integration
helios uses GitHub Actions for automated testing and deployment:
- Tests – Multi-platform testing on Windows, Linux (GCC 13, Clang 17), and macOS
- Deploy helios Documentation – Automatically deploys website on changes to
main - Custom Workflows – Manual triggers for:
- Rebuild website on demand
- Generate Doxygen API documentation
- Update changelog from GitHub milestones
- Run performance benchmarks
See .github/workflows/README.md for detailed workflow documentation.
Review Process
- At least one maintainer approval required
- Address feedback by adding new commits (don't force-push during review)
- Maintainers may squash commits during merge for a clean history
Resources
▸ Documentation – Full project documentation
▸ Issue Tracker – Report bugs or request features
▸ Discussions – Ask questions
▸ License – MIT License
Questions?
If you have questions or need help:
- Check the Contributing Guide for detailed instructions
- Browse existing issues
- Start a discussion
Thank you for contributing to helios! 🕹️