diff --git a/TODO.md b/TODO.md index 8bd754e..15933ed 100644 --- a/TODO.md +++ b/TODO.md @@ -21,8 +21,8 @@ TODO - [ ] Optional: add CODEOWNERS - Protections & settings (in Gitea UI) - - [ ] Protect main and integration with required checks - - [ ] Enable auto-merge on green for feature→integration + - [ ] Protect main and release/* with required checks + - [ ] Leave integration unprotected; allow auto-merge on green - [ ] Require 1 approval for integration→main - [ ] Revisit enabling CI and protections after runners are ready (target: 2025-09-24) diff --git a/instructions/git-workflow.md b/instructions/git-workflow.md index 8edd3cb..127a92f 100644 --- a/instructions/git-workflow.md +++ b/instructions/git-workflow.md @@ -4,16 +4,16 @@ Scope - Applies to this repo. Users typically consume tagged releases; contributors work via branches/PRs. CI/CD config is Gitea‑native; no GitHub/GitLab. Branches -- main: production; default branch. -- integration: development. Equivalent to develop. -- Working branches: feature/, fix/, chore/ from integration. -- Hotfix: hotfix/ from main; PR back to main, then forward-merge into integration. -- Release branch: not long‑lived. Optionally maintain a lightweight release branch fast‑forwarded to the latest tag via CI. +- main: production; default branch. Protected. +- integration: development (unprotected; merges auto on green). +- Working branches: `feature/`, `fix/`, `chore/` from integration. +- Hotfix: `hotfix/` from main; PR back to main, then forward-merge into integration. +- Release branch: ephemeral or lightweight `release/*`. Protect when present; optionally fast‑forward to latest tag via CI. Merges & Approvals -- Feature → integration: squash merge; bot auto‑merge on green (no human approval). Self‑merge allowed. +- Feature → integration: squash merge; auto‑merge on green (no human approval). Self‑merge allowed. - integration → main: squash merge; require 1 approval; self‑merge not allowed. -- Force pushes disabled on protected branches; PRs required. +- Force pushes disabled on protected branches (`main`, `release/*`); PRs required. Commit Style - Conventional Commits for PR titles and commit messages. @@ -27,11 +27,10 @@ Release Flow 3) Optional: CI fast‑forwards a release branch pointer to the new tag. Protected Checks (to enable when runners are ready) -- ci / lint, ci / build, ci / commitlint. Add ci / test and ci / security if/when introduced. +- On protected branches (`main`, `release/*`): ci / lint, ci / build, ci / commitlint. Add ci / test and ci / security if/when introduced. CODEOWNERS - Keep minimal; require your review for integration → main. Notes - No secrets required for this repo. Future repos should integrate Vault for secrets. -