Repository navigation
docs: establish maintainer and release governance (#252) #464
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
codeforester
wants to merge
3
commits into
main
Choose a base branch
from
documentation/252-20261023-project-governance
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 all commits
Commits
Show all changes
3 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
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
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,87 @@ | ||
| # Project governance | ||
|
|
||
| This document describes how `base-cli` makes API, compatibility, security, and | ||
| release decisions. It is deliberately lightweight: the project is maintained | ||
| in the open through issues, pull requests, required checks, and dated release | ||
| artifacts. | ||
|
|
||
| ## Current responsibilities | ||
|
|
||
| | Role | GitHub identity | Responsibility | | ||
| | --- | --- | --- | | ||
| | Project maintainer | [`codeforester`](https://github.com/codeforester) | Roadmap, issue triage, merge decisions, release preparation, and continuity planning | | ||
| | Independent release/security reviewer | [`rameshulugar`](https://github.com/rameshulugar) | Review protected release and security-source changes independently of the last pusher | | ||
|
|
||
| The maintainer is accountable for keeping this table current. A role is not a | ||
| claim that a person has reviewed a particular change; the pull request and | ||
| release records remain authoritative. | ||
|
|
||
| ## Review and decision rules | ||
|
|
||
| - Every implementation starts from a GitHub issue with a stated scope and | ||
| acceptance criteria. | ||
| - A pull request must identify the issue, describe compatibility impact, and | ||
| report the authoritative validation gates. | ||
| - Public API, JSON schema, command-protocol, dependency-window, security, and | ||
| release-workflow changes require explicit documentation and regression | ||
| evidence in the same change train. | ||
| - The last pusher must not be the sole reviewer for a protected release. | ||
| - A disagreement is recorded in the issue or pull-request thread; the | ||
| maintainer records the final decision and its rationale in the changelog or | ||
| relevant contract document. | ||
| - Security reports follow `SECURITY.md` and are never disclosed through a | ||
| public implementation issue before coordinated remediation. | ||
|
|
||
| ## Release ownership and continuity | ||
|
|
||
| The release owner prepares the version/changelog change, candidate artifact, | ||
| TestPyPI rehearsal, downstream wheel validation, and release evidence. The | ||
| independent reviewer checks the exact commit, required gates, artifact | ||
| checksums, SBOM/provenance attestations, and PyPI/GitHub metadata before the | ||
| protected environment is approved. | ||
|
|
||
| If the maintainer is unavailable, the independent reviewer may coordinate an | ||
| already-approved release or security response, but may not silently change the | ||
| public API or bypass required checks. A temporary exception must be time-bound, | ||
| name an owner and expiry, and be recorded in the relevant issue. | ||
|
|
||
| ## Reviewer onboarding checklist | ||
|
|
||
| An additional reviewer is considered trained after completing and recording: | ||
|
|
||
| 1. a clean checkout and `./tests/full_validate.sh` run; | ||
| 2. the public API, JSON-contract, compatibility, and security review guides; | ||
| 3. a TestPyPI candidate install and downstream consumer smoke test; | ||
| 4. checksum, SBOM, provenance, and attestation verification for a release | ||
| artifact; and | ||
| 5. a supervised review of one release-source or security pull request. | ||
|
|
||
| The training record belongs in the linked governance issue or release checklist | ||
| and must not be inferred solely from repository write access. | ||
|
|
||
| ## Project health | ||
|
|
||
| Maintainers review these indicators at least once per release cycle: | ||
|
|
||
| - open P1 issues and their dependency graph; | ||
| - time to first response and time to review for pull requests; | ||
| - green required checks on the default branch; | ||
| - release-candidate and downstream-consumer evidence; | ||
| - security-alert age and remediation status; and | ||
| - independent adopter pilots and permissioned outcomes. | ||
|
|
||
| The current `v1.0.0` plan targets a stable core release after the documented | ||
| release-candidate, downstream, and independent-review evidence is complete; | ||
| the milestone and linked issues are the source of truth for scheduling. The | ||
| broader language-neutral platform and catalog work remains explicitly deferred | ||
| unless a separate roadmap decision brings it into scope. | ||
|
|
||
| ## Becoming a maintainer | ||
|
|
||
| Regular contributors can be nominated through a public issue after they have | ||
| demonstrated sustained, high-quality reviews and familiarity with the full | ||
| validation and release gates. The maintainer records the nomination, conflict | ||
| disclosures, granted repository permissions, and a succession handoff plan. | ||
|
|
||
| See [`CONTRIBUTING.md`](CONTRIBUTING.md), [`SECURITY.md`](SECURITY.md), and | ||
| [`docs/releasing.md`](docs/releasing.md) for the operational procedures. |
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
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
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
Oops, something went wrong.
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.