-
Notifications
You must be signed in to change notification settings - Fork 16
Update Editorial Process #103
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
p0fi
wants to merge
4
commits into
main
Choose a base branch
from
update-editoral-process
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 2 commits
Commits
Show all changes
4 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,102 @@ | ||
| ## Contributing to the Matter Handbook | ||
|
|
||
| Welcome - thanks for taking the time to improve the Matter Handbook. | ||
|
|
||
| > [!NOTE] | ||
| > For questions, clarifications, or early ideas, start a Discussion instead of opening an Issue; | ||
| > Issues are reserved for concrete, actionable work items. | ||
|
|
||
| --- | ||
|
|
||
| ### Summary | ||
|
|
||
| The contribution process is intentionally lightweight and entirely pull‑request (PR) based: | ||
| every change - large or small, including typo fixes - comes in as a PR so it can be reviewed, validated by automation, | ||
| and merged transparently. | ||
|
|
||
| Classify the change with the most specific label (`editorial`, `tooling`, or one or more domain labels; | ||
| add `do not merge` only when you deliberately want to block). Every PR requires at least one maintainer approval. | ||
| When a domain label is present, the external `sme-aproval` check must also succeed, confirming that the appropriate | ||
| subject‑matter experts have signed off. All mandatory automated checks (including Vale) must be green, | ||
| there must be zero unresolved review threads and no active “changes requested” reviews, | ||
| the PR cannot be in draft state or have merge conflicts, and the blocking `do not merge` label must be absent. | ||
| Once these conditions are satisfied, the merge is performed automatically—no further manual action is needed. | ||
| If you are new to GitHub: a PR is simply a proposed set of changes that others can comment on before it is merged. | ||
|
|
||
| --- | ||
|
|
||
| All changes flow through this PR pipeline (there is no direct push to main, even for small editorial tweaks); | ||
| this ensures consistency, traceability, and required approvals without extra ceremony for contributors | ||
| who are less familiar with GitHub. | ||
|
|
||
| ### Git Workflow | ||
|
|
||
| | Contributor type | Branch location | How to create | After merge | Rationale | | ||
| |------------------|-----------------|---------------|-------------|-----------| | ||
| | Frequent (granted write access) | Branch in this repository | `git switch -c feature-short-description` (from up-to-date `main`) | Auto-deleted by settings / cleanup | Faster feedback, no fork sync overhead | | ||
| | Infrequent / first-time | Fork (user namespace) | Fork on GitHub UI, clone fork, branch there | Branch stays in fork; can be deleted manually | Keeps main repository branch list focused | | ||
|
|
||
| Guidelines: | ||
| - Keep branches short-lived and narrowly scoped; open earlier rather than accumulating a large diff. | ||
| - Update your local copy of `main` before branching (fetch and integrate the latest changes) to reduce conflicts. | ||
| - Do not force-push over reviewed commits. | ||
| - Name branches descriptively and succinctly (e.g. `certification-diagram`, `tooling-ci-cache`, `editorial-typos`). | ||
| - One logical change per PR—open multiple PRs instead of a “grab bag”. | ||
| - Frequent contributors should still fork when experimenting in a way that may not merge. | ||
| - Delete local and remote branches after merge (the repository auto-deletes remote branches; you can prune locally with `git fetch --prune`). | ||
|
|
||
| If you become a frequent contributor, maintainers may grant write access so you can use the streamlined in-repo branching workflow. This is a trust signal, maintain clear commit hygiene and respond promptly to review. | ||
p0fi marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| ### Labels | ||
|
|
||
| | If your change… | Use this label | Extra gate | | ||
| |-----------------|---------------|------------| | ||
| | Pure wording / typos / formatting (no meaning change) | `editorial` | Maintainer approval | | ||
| | CI, workflows, devcontainer, build infra | `tooling` | Maintainer approval | | ||
| | Semantic/content change in a domain (e.g. certification) | Domain label (e.g. `certification`) | Maintainer approval + `sme-aproval` | | ||
p0fi marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| | Needs a temporary hold | `do not merge` | Blocks merge | | ||
|
|
||
| Rules: | ||
| - Any semantic impact then use a domain label (not `editorial`). | ||
p0fi marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| - Multiple domain labels allowed; external check enforces SME coverage. | ||
| - Don’t remove a domain label to bypass review. | ||
p0fi marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| --- | ||
|
|
||
| ### Merge Conditions | ||
|
|
||
| All must be true for auto‑merge: | ||
| - Maintainer approval present. | ||
| - If domain label: `sme-aproval` succeeded. | ||
p0fi marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| - Vale success. | ||
| - No unresolved review threads (`#review-threads-unresolved=0`). | ||
| - No “changes requested” reviews. | ||
| - Not draft; no merge conflicts. | ||
| - No `do not merge` label. | ||
|
|
||
| --- | ||
|
|
||
| ### Roles | ||
|
|
||
| | Role | Responsibility | | ||
| |------|----------------| | ||
| | Author | Correct labels, clear scope, address feedback | | ||
| | Maintainer | Process, risk, coherence | | ||
| | SME (external) | Domain accuracy (per domain label) | | ||
|
|
||
| --- | ||
|
|
||
| ### Review Discipline | ||
|
|
||
| - Resolve threads only after action or explicit agreement. | ||
| - Keep scope tight; split unrelated chunks. | ||
| - Avoid large force-pushes mid-review (cleanup near the end is fine). | ||
| - Don’t game the process by dropping needed labels. | ||
p0fi marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| --- | ||
|
|
||
| ### Escalation | ||
|
|
||
| If blocked >5 business days: | ||
| - Comment and mention `@project-chip/handbook-maintainers`. | ||
| - Open a Discussion for structural or multi-domain proposals. | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.