Thanks for contributing.
Requirements:
- CMake
>= 3.31 - C++23 compiler
- Ninja or Visual Studio build tools
- Lua development package
Common local configure:
cmake --preset dev
cmake --build --preset devRun tests before opening PR:
cmake --build --preset dev --target prebyte_tests
ctest --preset devCoverage locally:
cmake --preset coverage
cmake --build --preset coverage --target prebyte_tests
ctest --preset coverage
gcovr --root . --object-directory build-cmake/coverage --filter src/main/cpp --xml-pretty --output build-cmake/coverage/coverage.xml- Keep changes minimal and focused.
- Follow existing code style and naming.
- Add or update tests for behavioral changes.
- Do not mix unrelated refactors with feature or bugfix work.
- Preserve cross-platform behavior where possible.
Before PR:
- Rebase or merge current target branch.
- Ensure CI passes.
- Update docs when behavior, CLI, build, or release flow changes.
PR description should explain:
- what changed
- why it changed
- how it was tested
Tagged releases use GitHub Actions.
- Push tag like
v1.0.0 - CI builds binaries for supported targets
- Release job uploads artifacts to GitHub Releases
- Docker job publishes Linux multi-arch image to GHCR
- Never commit credentials, tokens, or private keys.
- Keep secrets in GitHub Actions secrets or trusted OIDC integrations.
- Coverage upload uses Codecov action; activate repo in Codecov and set
CODECOV_TOKENin repository or organization Actions secrets before expecting badge updates.