-
Notifications
You must be signed in to change notification settings - Fork 0
GOVERNANCE.md, and the written policies a reader has to be able to point at #182
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
Merged
Merged
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,49 @@ | ||
| # Governance | ||
|
|
||
| How this project makes decisions, who holds which role, and how it continues if one person | ||
| disappears. The rules for a change itself are in [CONTRIBUTING.md](CONTRIBUTING.md); the | ||
| rules for a security report are in [SECURITY.md](SECURITY.md). | ||
|
|
||
| ## Decisions | ||
|
|
||
| CTRLRun is maintainer-led. The maintainer has the final say on scope, on what a | ||
| specification says, and on whether a change merges or a release ships. A decision that | ||
| changes a shipped guarantee is written into the specification and the changelog with its | ||
| reason, never settled in a review comment. Disagreement is argued in public, in the issue or | ||
| the pull request, and the written specification is the record of what was decided. Anyone may | ||
| fork under Apache-2.0; that is the check on the maintainer. | ||
|
|
||
| ## Roles | ||
|
|
||
| | Role | Who | Responsibilities | | ||
| |---|---|---| | ||
| | Maintainer | Arpan Ghoshal ([@arpanghoshal](https://github.com/arpanghoshal)) | Owns the specifications and the roadmap. Final say on merges and releases. Answers security reports per SECURITY.md. Administers the `CTRLRun` GitHub organization, the `ctrlrun` project on PyPI, and ctrlrun.dev. | | ||
| | Committer | Rohan Kamath ([@rohanrkamath](https://github.com/rohanrkamath)) | Reviews and merges pull requests, the maintainer's included. Can cut a release by pushing a tag. Triages issues. Holds write access to every repository in the organization. | | ||
| | Contributor | anyone | Opens issues and pull requests under the rules in CONTRIBUTING.md, with every commit signed off under the DCO. | | ||
|
|
||
| A role is granted and withdrawn by the maintainer, and this file is the record of who holds | ||
| which. Nobody merges their own pull request: every change to `main` is reviewed and merged by | ||
| a person who did not write it (CONTRIBUTING.md, *Code review*). | ||
|
|
||
| ## Continuity | ||
|
|
||
| If any one person is unavailable, the project continues within a week, and this is what | ||
| makes that true: | ||
|
|
||
| - **Two people can merge and release.** The maintainer and the committer both hold write | ||
| access. A release is a tag: `publish.yml` publishes to PyPI through trusted publishing and | ||
| `release.yml` signs the provenance against the workflow's own identity, so no release | ||
| depends on a key or a password that one person holds alone. | ||
| - **Two people own the organization.** Both are owners of the `CTRLRun` GitHub organization, | ||
| so either can grant access, change a workflow, or answer a private vulnerability report. | ||
| - **Two people own the package.** Both are owners of `ctrlrun` on PyPI, so the trusted | ||
| publisher can be repaired by either. | ||
| - **Two people can reach the site.** Both have access to the DNS zone for ctrlrun.dev and to | ||
| the documentation host, so the site and the docs keep publishing. | ||
|
|
||
| Nothing about the project lives only on one person's machine: the specifications, the | ||
| build, the locks and the release process are all in the repositories. | ||
|
|
||
| ## Changing this document | ||
|
|
||
| By pull request, like anything else, reviewed by the other role holder. |
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Allow the committer to acknowledge reports during maintainer absence.
The required acknowledgement must come “from the maintainer.” This conflicts with
GOVERNANCE.md, which assigns either role holder the ability to answer a private vulnerability report. If the maintainer is unavailable, the committer cannot satisfy this response process within 72 hours. Change the role wording to include the committer or another defined backup role.🤖 Prompt for AI Agents