Thank you for contributing. This document defines the expected workflow and quality bar for changes in repositories based on this template.
- Fork the repository.
- Create a branch from the target integration branch.
- Implement one logical change per branch.
- Add or update tests and documentation as needed.
- Open a pull request using
.github/pull_request_template.md.
main: stable production branch.develop: integration branch (default PR target for regular work).feature/*: new features.fix/*: bug fixes.docs/*: documentation-only updates.chore/*: build, CI, tooling, or maintenance.
Hotfixes may target main directly when necessary.
Use concise, imperative messages:
add input validation for config parserfix null pointer check in api handlerupdate ci cache strategy
Use the format:
<type>(scope): short imperative summary
Types:
featfixrefactorperfdocstestbuildchore
Complete all sections from the PR template:
- Summary
- Type of change
- Scope
- Testing evidence
- Breaking changes and migration notes (if any)
- Final checklist
- Follow project formatting rules (
.clang-format). - Keep changes focused and reviewable.
- Avoid unrelated refactors in the same PR.
- Prefer clear naming and low-complexity implementations.
- Document public APIs and non-obvious behavior.
- Use Doxygen-compatible comments where applicable.
- Update README, runbooks, or architecture docs when behavior changes.
- New features require tests.
- Bug fixes require regression coverage where practical.
- Run local verification before opening a PR.
Typical commands:
cmake -S . -B build -DBUILD_TESTING=ON
cmake --build build
ctest --test-dir build --output-on-failure- At least one approval is required.
- Required CI checks must pass.
- No new warnings should be introduced.
- Merge strategy should follow repository policy (
squashorrebase).
By contributing, you agree that your contributions are licensed under the
project license declared in LICENSE.
For clarification, open an issue or start a discussion with maintainers.