Skip to content

Commit b8c29e6

Browse files
authored
chore: add governance doc (#786)
Signed-off-by: Paul S. Schweigert <paul@paulschweigert.com>
1 parent 13a5962 commit b8c29e6

1 file changed

Lines changed: 80 additions & 0 deletions

File tree

GOVERNANCE.md

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# Governance
2+
3+
This document describes how the Mellea project is governed: the roles people hold, how decisions are made, and how code gets reviewed and merged.
4+
5+
For related topics, see:
6+
7+
- [CONTRIBUTING.md](CONTRIBUTING.md) — development setup, coding standards, and PR workflow
8+
- [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) — behavioral norms and enforcement
9+
- [RELEASE.md](RELEASE.md) — release cadence, versioning, and process
10+
11+
## Roles
12+
13+
| Role | Description | Examples |
14+
|------|-------------|----------|
15+
| **Contributor** | Anyone who opens issues, submits pull requests, or participates in discussions. No special access required. | External collaborators, first-time contributors |
16+
| **Committer** | Has merge/write access to the repository. Member of [`@generative-computing/mellea-contributors`](https://github.com/orgs/generative-computing/teams/mellea-contributors). | Team members with commit rights |
17+
| **Code Owner** | Domain expert listed in [`.github/CODEOWNERS`](.github/CODEOWNERS). Automatically requested as a reviewer for PRs touching their area. | Core library owners, intrinsics team |
18+
| **Maintainer** | Overall project stewardship. Holds release authority and can grant committer access. | Project leads |
19+
20+
New committers are added by invitation from existing maintainers, based on sustained, high-quality contributions.
21+
22+
## Code Ownership
23+
24+
[`.github/CODEOWNERS`](.github/CODEOWNERS) defines required reviewers per area of the codebase. GitHub automatically requests reviews from the appropriate owners when a PR touches their files.
25+
26+
Current ownership zones:
27+
28+
| Path | Owners |
29+
|------|--------|
30+
| `mellea/core/` | @nrfulton, @jakelorocco |
31+
| `mellea/formatters/granite/`, `test/formatters/granite/` | @generative-computing/mellea-intrinsics |
32+
| Everything else | @generative-computing/mellea-contributors |
33+
34+
## PR Review & Merge Policy
35+
36+
### What approval means
37+
38+
A GitHub approval is equivalent to an Apache-style **LGTM** and **implies ownership of the change**. By approving, you are vouching that the change is correct and appropriate. Only approve PRs in areas where you have sufficient domain context — for example, core library changes should be approved by someone with core expertise.
39+
40+
### Requesting reviews
41+
42+
If you explicitly tag someone as a reviewer, you are asking for their review specifically. All explicitly requested reviewers should approve before the PR is merged. CODEOWNERS also enforces required reviewers automatically — PRs cannot be merged until all required code-owner reviews are satisfied.
43+
44+
### Reviewing
45+
46+
- **Use "Request Changes" to block** — if you have concerns that must be addressed, use "Request Changes" rather than a comment-only review. This prevents the PR from being merged on another reviewer's approval alone.
47+
- **Respond to all review comments** — authors should resolve or reply to every review thread before merging. Don't let feedback get lost.
48+
- **Re-request review after significant changes** — if you push substantial updates after a review round, re-request review from the same reviewers so they can verify their feedback was addressed.
49+
50+
### Merging
51+
52+
Once a PR has approvals from all requested and required reviewers:
53+
54+
- **Author has commit rights** — the author may merge or enable auto-merge.
55+
- **Author is an external contributor** — the approver is responsible for merging.
56+
57+
### PR scope
58+
59+
Keep PRs focused on one logical change. Smaller, well-scoped PRs are easier to review, faster to merge, and safer to revert if needed.
60+
61+
### Merge queue
62+
63+
All PRs merge through GitHub's [merge queue](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue). After approval, PRs enter the queue, which runs CI against the latest `main` before landing. This ensures that every commit on `main` has passed the full test suite.
64+
65+
## Decision-Making
66+
67+
- **Day-to-day changes** (bug fixes, small features): lazy consensus via PR review. If a PR is approved and CI passes, it can be merged.
68+
- **Significant changes** (new core abstractions, new backends, breaking API changes): open a GitHub issue for discussion before submitting a PR. These changes should receive broader review from maintainers and relevant code owners.
69+
- **Disputes**: escalate to maintainers. If consensus cannot be reached, the project lead makes the final call.
70+
71+
## Releases
72+
73+
Maintainers hold release authority. The full release process — including cadence, versioning, and automation — is documented in [RELEASE.md](RELEASE.md).
74+
75+
## Communication
76+
77+
- **GitHub Issues and Pull Requests** — code-related decisions and technical discussion
78+
- **GitHub Discussions** — broader topics, questions, and ideas
79+
80+
All community interactions are subject to the [Code of Conduct](CODE_OF_CONDUCT.md).

0 commit comments

Comments
 (0)