Branches follow this pattern: //
<type> is one of:
feat/— new featurefix/— bug fixchore/— maintenance, tooling, dependenciesdocs/— documentation onlyrefactor/— code change that isn't a fix or a featuretest/— adding or fixing tests
If your branch addresses one or more issues, include the issue number(s) in the description: feat/issues-986-987-988-frontend-accessibility
fix/issue-966-fee-calculation-overflow
Commits follow Conventional Commits: ():
<type> must be one of:
feat— new featurefix— bug fixdocs— documentation onlystyle— formatting, no code meaning changerefactor— code change that isn't a fix or a featureperf— performance improvementtest— adding or fixing testsbuild— build system or dependenciesci— CI configurationchore— anything else maintenance-relatedsecurity— security fix
<scope> is optional and usually the area touched, e.g. frontend, contract.
Reference issue numbers in the description when relevant: feat(frontend): add CSV export button to AuditTable
fix(contract): integer overflow in fee calculation for large deposits #966
docs: add CONTRIBUTING.md with branch and commit conventions
A breaking change is marked with ! after the type/scope:
feat(contract)!: change withdrawal function signature
Before opening a PR:
- Branch name follows the format above
- Commit messages follow the format above
- PR description links the issue(s) it closes (
Closes #123) -
npx lint-stagedruns clean (this also runs automatically on commit) - Tests pass locally
- No unrelated files included in the diff