diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9560597..fed3ca7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,36 +1,44 @@ # Contributing -## Pull requests +## Propose changes -Prefer pull requests against `develop`. The repository default is `master` -or `main`; `develop` exists for ongoing integration. +Open a pull request against `develop`. Keep the default branch for releases and +stable tips; land work on `develop` first. + +Point at an existing issue when one fits. Prefer a short issue that states the +symptom or request before a large PR. ## Commits -Subject form (kernel-style): +Subject form: - area: Imperative summary +``` +area: Imperative summary +``` -- Imperative mood after the colon (`Add`, `Fix`, `Remove`, …). -- No trailing period on the subject. Aim for about 75 characters total. -- Body states the problem and why the change is right. -- One logical change per commit. Skip the body only when the subject alone - is obvious to a reviewer. +- **Area** is a real package, directory, or subsystem token (`ci:`, `docs:`, + Go package name). Not a lone filename. +- **Imperative** mood: Fix, Add, Remove — not "Fixed" or "This patch…". +- No trailing period. Aim ≤ ~70–75 characters for the whole subject. +- Not conventional-commits (`feat:` / `fix:` / `chore:` as types). -## Pull request description +Body explains **why**. Establish the problem, then say what you are doing. +One logical change per commit; split fix and cleanup. -- **What** — what changed -- **Why** — problem and impact -- **Test** — concrete steps a reviewer can run +## Pull requests -Do not leave the description as “see commits”. +Title matches the primary commit subject. -## Issues +- **What** changed +- **Why** (problem and impact) +- **Test** (concrete steps; "CI green" alone is weak) -Gitea closes issues when a bare issue reference appears in merge text. -Cite leftover issues by full URL. Only close an issue when the merge -actually finishes that work. +## Issues and closing + +Cite leftover issues by **full URL**. Gitea closes issues when `#N` appears in +merge text, so do not put `#N` in the merge message unless that issue is actually +done. Use `Fixes #N` / `Closes #N` only when the leftover work is finished. ## License -License: see LICENSE if present; otherwise TBD by owner. +License TBD by owner.