@@ -37,13 +37,48 @@ non-negotiable:
3737 change the algorithms, re-run a byte-for-byte comparison against the reference.
3838- New behaviour needs new tests.
3939
40- ## Commits and pull requests
40+ ## Git workflow: Trunk-Based Development with tbdflow
4141
42- - Write clear, imperative commit messages.
43- - Commits and tags in this repository are ** SSH-signed** ; please sign your
44- commits and include a sign-off (` git commit -s ` ) certifying the
45- [ DCO] ( https://developercertificate.org/ ) .
46- - Keep pull requests focused.
42+ This project uses [ Trunk-Based Development] ( https://trunkbaseddevelopment.com/ ) :
43+ small, frequent changes integrated into ` main ` (the trunk) rather than
44+ long-lived branches. We use the [ ` tbdflow ` ] ( https://github.com/cladam/tbdflow )
45+ CLI (` cargo install tbdflow ` ) so the safe path is the easy path.
46+
47+ ` tbdflow commit ` pulls ` main ` , creates a Conventional Commit, and pushes:
48+
49+ ``` console
50+ tbdflow commit --type fix --scope framing -m "guard against oversized frames"
51+ ```
52+
53+ For a change that needs review, use a short-lived branch and merge it back
54+ quickly: ` tbdflow branch --type feat --name my-change ` , then ` tbdflow complete ` .
55+ Other helpers: ` tbdflow sync ` , ` tbdflow radar ` , ` tbdflow changelog ` ,
56+ ` tbdflow undo ` .
57+
58+ Two committed files drive this workflow:
59+
60+ - ** ` .tbdflow.yml ` ** -- workflow + commit-message lint rules (trunk branch,
61+ allowed Conventional Commit types, lowercase scope/subject, 72-char subject).
62+ - ** ` .dod.yml ` ** -- the Definition of Done checklist shown before each commit
63+ (unit tests, ` .aar ` build, conformance). Bypass for a trivial change with
64+ ` --no-verify ` .
65+
66+ Commits and tags are ** SSH-signed** (` tbdflow commit ` respects the repo's
67+ signing config); include a sign-off (` -s ` ) certifying the
68+ [ DCO] ( https://developercertificate.org/ ) . Keep pull requests focused.
69+
70+ ## Conventional Commits
71+
72+ Every commit message follows
73+ [ Conventional Commits] ( https://www.conventionalcommits.org ) :
74+ ` type(scope): short imperative subject ` . Allowed ** types** : ` build ` , ` chore ` ,
75+ ` ci ` , ` docs ` , ` feat ` , ` fix ` , ` perf ` , ` refactor ` , ` revert ` , ` style ` , ` test ` . The
76+ subject is lowercase, imperative, and has no trailing period; breaking changes
77+ use ` ! ` (` feat!: ` ) or a ` BREAKING CHANGE: ` footer.
78+
79+ This is enforced locally by ` tbdflow commit ` and in CI by the ** Commit lint**
80+ workflow (` .github/workflows/commit-lint.yml ` ), which checks every commit in a
81+ pull request.
4782
4883## Releasing
4984
0 commit comments