1.5 KiB
1.5 KiB
Branch Strategy
We use short-lived topic branches, Conventional Commits, and PRs into main.
Branch prefixes
Create branches using one of:
feat/<scope>-<short-desc>– new features (e.g.,feat/runner-do-timeouts)fix/<scope>-<short-desc>– bug fixesdocs/<scope>-<short-desc>– docs onlychore/<scope>-<short-desc>– tooling, config, non-product changesrefactor/<scope>-<short-desc>– no behavior changetest/<scope>-<short-desc>– test-only changes
Examples
git checkout -b feat/ssh-timeout-handler
git checkout -b fix/scoring-edge-case
git checkout -b docs/adr-durable-objects
git checkout -b chore/update-deps
Commit messages
Follow Conventional Commits:
<type>(<scope>): <subject>
<body>
<footer>
Required:
<type>: feat, fix, docs, chore, refactor, test<subject>: imperative mood, lowercase, no period
Optional:
<scope>: module or area affected (e.g., runner, scoring, ui)<body>: detailed explanation<footer>: references (e.g.,Fixes #123,BREAKING CHANGE: ...)
Pull Request flow
- Create feature branch from
main - Make changes with conventional commits
- Push to origin
- Open PR with filled template
- Address review feedback
- Squash-merge to
main(title must follow convention)
Code Quality
Before opening a PR:
cd bandit-runner-app
pnpm install
pnpm lint # ESLint
npx tsc --noEmit # TypeScript check
pnpm build # Verify builds