Repository Governance
This document defines the intended open-source controls for SBE.
Main Branch Rules
Enable branch protection for main in GitHub:
- Open
Settings.
- Open
Branches.
- Add a branch protection rule for
main.
- Enable
Require a pull request before merging.
- Enable
Require approvals and set at least 1.
- Enable
Require review from Code Owners.
- Enable
Require status checks to pass before merging.
- Select these checks:
- Rust
- Release build checks when available
- Enable
Require branches to be up to date before merging.
- Enable
Restrict who can push to matching branches.
- Disable direct maintainer bypass unless there is an emergency.
GitHub branch protection is not fully enforceable from source files. The repository includes CODEOWNERS, PR templates, issue templates, and CI workflows, but the maintainer must enable branch protection in GitHub settings.
Merge Policy
Use pull requests for all changes.
Recommended merge strategy:
- Squash merge normal PRs.
- Keep release PRs as normal merge or squash merge with
chore(release): vX.Y.Z.
- Do not merge PRs with failing CI.
- Do not merge PRs that change benchmark behavior without test coverage.
Version Policy
SBE uses semantic versioning:
- Patch: bug fixes and documentation that does not change behavior.
- Minor: new commands, new output fields, new parser capability, installer improvements.
- Major: storage format breaking changes, CLI contract breaking changes, incompatible JSON output changes.
Version bumping is automated by the Version PR workflow:
- Normal PR is merged.
- Workflow reads Conventional Commits since the last
vX.Y.Z tag.
- Workflow opens a release PR.
- Maintainer merges release PR.
- Tag workflow creates
vX.Y.Z.
- Release workflow builds installers and archives.
Security And Credentials
- Do not store GitHub tokens inside SBE.
- Do not store user project data outside
.sbe/.
- Do not include
.sbe/ indexes in normal commits.
- Do not publish generated build folders as release assets.
Issue Discipline
Issues should be concrete:
- bug reports include command output and expected behavior
- feature requests include the workflow they improve
- benchmark issues include query, project shape, and token output
For review findings, create one issue per finding so tests and fixes can be tracked independently.