-
Notifications
You must be signed in to change notification settings - Fork 92
Add subproject governance #290
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
bupd
wants to merge
6
commits into
goharbor:main
Choose a base branch
from
bupd:subproject-governance-ladder
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
6 commits
Select commit
Hold shift + click to select a range
1440c44
Add subproject governance
bupd e8592f7
Format subproject maintainers as list
bupd 4138f48
Align subproject maintainer table
bupd 62b8292
Fix subproject maintainer table row
bupd 7022829
Refine subproject governance
bupd 7952a0a
Add Terraform/Opentofu provider subproject
bupd 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 |
|---|---|---|
|
|
@@ -2,6 +2,8 @@ | |
|
|
||
| [GOVERNANCE.md](https://github.com/goharbor/community/blob/master/GOVERNANCE.md) | ||
| describes governance guidelines and maintainer responsibilities. | ||
| [SUBPROJECT_GOVERNANCE.md](SUBPROJECT_GOVERNANCE.md) describes scoped | ||
| subproject reviewers and maintainers. | ||
|
|
||
| ## Maintainers | ||
|
|
||
|
|
@@ -32,6 +34,28 @@ describes governance guidelines and maintainer responsibilities. | |
| | --------------- | --------- | ----------- | | ||
| | ? | [?](https://github.com/?) | [?](https://www.github.com/?) | | ||
|
|
||
| ## Subprojects | ||
|
|
||
| Subproject maintainers and reviewers are scoped roles. They own review, triage, | ||
| release, and contributor growth responsibilities for the listed subproject, but | ||
| do not automatically become Harbor Maintainers. | ||
|
|
||
| When a subproject has its own `MAINTAINERS.md`, that file is the source of truth | ||
| for the scoped subproject roles and this section mirrors it. | ||
|
|
||
| Subproject maintainers and reviewers should be listed alphabetically by name. | ||
|
|
||
| Recognized Harbor subproject maintainer groups should be mirrored in the CNCF | ||
| `project-maintainers.csv` record using names such as `Harbor: <Subproject>`. | ||
|
|
||
| | Subproject | Scope | Status | Maintainers | Reviewers | | ||
| | ---------- | ----- | ------ | ----------- | --------- | | ||
| | Harbor CLI | Official Harbor CLI: [goharbor/harbor-cli](https://github.com/goharbor/harbor-cli) | active | Lakshit Singh ([NucleoFusion](https://github.com/NucleoFusion)) | - | | ||
| | | | | Patrick Eschenbach ([qcserestipy](https://github.com/qcserestipy)) | | | ||
| | | | | Prasanth Baskar ([bupd](https://github.com/bupd)) | | | ||
| | | | | Vadim Bauer ([Vad1mo](https://github.com/Vad1mo)) | | | ||
| | Terraform/Opentofu Provider | Official Terraform/Opentofu provider : [goharbor/terraform-provider-harbor](https://github.com/goharbor/terraform-provider-harbor) | active | Florian Blampey ([flbla](https://github.com/flbla)) | - | | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. https://github.com/goharbor/acceleration-service the acceleration-service can also be added, thanks. |
||
|
|
||
| ## Harbor Core Contributors & Stakeholders | ||
|
|
||
| | Harbor Feature Area | Lead | | ||
|
|
@@ -62,4 +86,3 @@ describes governance guidelines and maintainer responsibilities. | |
| * Alex Xu, [xaleeks](https://github.com/xaleeks) | ||
| * Tianon Gravi, [tianon](https://github.com/tianon) | ||
| * Daniel Pacak, [danielpacak](https://github.com/danielpacak) | ||
|
|
||
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,101 @@ | ||
| # Harbor Subproject Governance | ||
|
|
||
| This document defines governance for Harbor subprojects, reviewers, | ||
| and subproject maintainers. | ||
|
|
||
| ## Roles | ||
|
|
||
| ### Contributor | ||
|
|
||
| A contributor helps Harbor through code, documentation, testing, issue triage, | ||
| release work, packaging, community support, design review, or mentoring. | ||
|
|
||
| ### Subproject Reviewer | ||
|
|
||
| A subproject reviewer is trusted to review and triage changes in a defined | ||
| subproject. Reviewers help contributors get work ready, but do not own the | ||
| subproject direction. Reviewers are listed in `MAINTAINERS.md`. | ||
|
|
||
| ### Subproject Maintainer | ||
|
|
||
| A subproject maintainer owns the health of a defined Harbor subproject. | ||
|
|
||
| Responsibilities: | ||
|
|
||
| * Review, approve, and help merge changes in the subproject. | ||
| * Triage issues and pull requests. | ||
| * Keep documentation, tests, release notes, and ownership metadata current. | ||
| * Mentor contributors and reviewers. | ||
| * Coordinate releases or packaging when the subproject publishes artifacts. | ||
| * Escalate cross-project, security, or disputed decisions to Harbor Maintainers. | ||
|
|
||
| Subproject maintainership is scoped. It does not automatically grant Harbor | ||
| Maintainer status or project-wide decision authority. | ||
|
|
||
| ## Subprojects | ||
|
|
||
| A Harbor subproject is a long-lived area of responsibility under the Harbor | ||
| community. It may own a repository, multiple repositories, or a clear area | ||
| inside a repository. | ||
|
|
||
| Active subprojects may maintain their own `MAINTAINERS.md`. That file is the | ||
| source of truth for the subproject's scoped maintainers and reviewers, and the | ||
| Harbor community `MAINTAINERS.md` should mirror it. | ||
|
|
||
| Each subproject entry in `MAINTAINERS.md` should include: | ||
|
|
||
| * Name and scope. | ||
| * Owned repositories or paths. | ||
| * Subproject maintainers. | ||
| * Subproject reviewers, if any. | ||
| * Status: `active`, `maintenance`, or `archived`. | ||
|
|
||
| Subproject maintainers and reviewers should be listed alphabetically by name. | ||
|
|
||
| ## Role Changes | ||
|
|
||
| Reviewer: | ||
|
|
||
| * May be nominated by any contributor, including self-nomination. | ||
| * Requires approval from at least one subproject maintainer. | ||
| * If the subproject has no maintainer, approval comes from a Harbor Maintainer. | ||
|
|
||
| Subproject maintainer: | ||
|
|
||
| * May be nominated by a subproject maintainer or Harbor Maintainer. | ||
| * If the subproject has no active maintainer, a Harbor Maintainer may nominate. | ||
| * Active subprojects choose their own maintainers within their documented | ||
| subproject process. | ||
| * The nominee must confirm willingness to take the role. | ||
| * Approval requires consensus from active subproject maintainers, or Harbor | ||
| Maintainer approval when bootstrapping or resolving a deadlock. | ||
|
|
||
| ## Inactivity | ||
|
|
||
| Anyone may step down from a reviewer or subproject maintainer role. | ||
|
|
||
| Inactive reviewers and subproject maintainers may be moved to emeritus status | ||
| by PR after reasonable contact attempts. The purpose is to keep ownership | ||
| accurate and make room for active contributors. | ||
|
|
||
| ## Records | ||
|
|
||
| `MAINTAINERS.md` is Harbor's source of truth for Harbor Maintainers, | ||
| subproject maintainers, reviewers, and emeritus roles. | ||
|
|
||
| The CNCF `project-maintainers.csv` record should include Harbor Maintainers and | ||
| recognized Harbor subproject maintainer groups, using names such as | ||
| `Harbor: <Subproject>`. | ||
|
|
||
| Repository permissions, CODEOWNERS, and release access should match the roles | ||
| documented in `MAINTAINERS.md`. | ||
|
|
||
| ## References | ||
|
|
||
| This model takes inspiration from: | ||
|
|
||
| * Kubernetes governance: https://github.com/kubernetes/community/blob/main/governance.md | ||
| * Kubernetes community membership: https://github.com/kubernetes/community/blob/main/community-membership.md | ||
| * CNCF subproject governance template: https://github.com/cncf/project-template/blob/main/GOVERNANCE-subprojects.md | ||
| * OpenTelemetry membership roles: https://github.com/open-telemetry/community/blob/main/guides/contributor/membership.md | ||
| * Prometheus governance: https://prometheus.io/governance/ |
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.