Skip to content

Commit

Permalink
Updating Harbor Governance (#121)
Browse files Browse the repository at this point in the history
* Update MAINTAINERS.md

* Update MAINTAINERS.md

* Update GOVERNANCE.md

* Update GOVERNANCE.md

* Update MAINTAINERS.md
  • Loading branch information
michmike authored Dec 12, 2019
1 parent aa6fda2 commit 3414c3f
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 51 deletions.
43 changes: 9 additions & 34 deletions GOVERNANCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,49 +23,25 @@ maintained under the `goharbor` namespace.

* **Users:** Members that engage with the Harbor community via any medium (Slack, WeChat, GitHub, mailing lists, etc.).
* **Contributors:** Regular contributions to projects (documentation, code reviews, responding to issues, participation in proposal discussions, contributing code, etc.).
* **Maintainers**: Two levels of maintainership are defined in the Project Leadership section [below](#total-maintainership).

## Project Leadership

There are two roles that convey project leadership: maintainers and core maintainers.

* **Core Maintainers**: Responsible for the overall health and direction of the project; final reviewers of PRs and responsible for releases.
* **Maintainers**: Responsible for one or more components within a project, and are expected to contribute code and documentation, review PRs including ensuring quality of code, triage issues, proactively fix bugs, and perform maintenance tasks for these components.

### Total Maintainership

Total maintainership is defined as the union of maintainers and core
maintainers.
* **Maintainers**: The Harbor project leaders. They are responsible for the overall health and direction of the project; final reviewers of PRs and responsible for releases. Some Maintainers are responsible for one or more components within a project, acting as technical leads for that component. Maintainers are expected to contribute code and documentation, review PRs including ensuring quality of code, triage issues, proactively fix bugs, and perform maintenance tasks for these components.

### Maintainers

New maintainers must be nominated by an existing maintainer or core maintainer
and must be elected by a supermajority of total maintainership. Likewise,
maintainers can be removed by a supermajority of the total maintainership or
can resign by notifying the core maintainers.

### Core Maintainers

Nomination for core maintainership requires (a) a nomination by an existing
core maintainer, and (b) election by a supermajority of the core maintainer
group. Likewise, maintainers can be removed by a supermajority core maintainer
vote or can resign by notifying the core maintainers.
New maintainers must be nominated by an existing maintainer and must be elected by a supermajority of existing maintainers. Likewise, maintainers can be removed by a supermajority of the existing maintainers or can resign by notifying one of the maintainers.

### Supermajority

A supermajority is defined as two-thirds of members in the group.
A supermajority of [Maintainers](#maintainers), [Core
Maintainers](#core-maintainers), or the union of both is required for certain
decisions as outlined above.
A supermajority of [Maintainers](#maintainers) is required for certain
decisions as outlined above. Voting on decisions can happen on the mailing list, GitHub, Slack, email, or via a voting service, when appropriate. Maintainers can either vote "agree, yes, +1", "disagree, no, -1", or "abstain". A vote passes when supermajority is met. An abstain vote equals not voting at all.

### Decision Making

Ideally, all project decisions are resolved by consensus. If impossible, any
maintainer may call a vote. Unless otherwise specified in this document, any
vote will be decided by a supermajority of the total maintainership, with
a requirement of at least one core maintainer voting.
vote will be decided by a supermajority of maintainers.

Votes by maintainers (either core or non-core) belonging to the same company
Votes by maintainers belonging to the same company
will count as one vote; e.g., 4 maintainers employed by fictional company **Harboretum** will
only have **one** combined vote. If voting members from a given company do not
agree, the company's vote is determined by a supermajority of voters from that
Expand Down Expand Up @@ -111,7 +87,7 @@ status of the proposal:

To maintain velocity in a project as busy as Harbor, the concept of [Lazy
Consensus](http://en.osswiki.info/concepts/lazy_consensus) is practiced. Ideas
and / or proposals should be shared by maintainers (core or non-core) via
and / or proposals should be shared by maintainers via
GitHub with the appropriate maintainer groups (e.g.,
`@goharbor/all-maintainers`) tagged. Out of respect for other contributors,
major changes should also be accompanied by a ping on Slack or a note on the
Expand All @@ -131,9 +107,8 @@ repo that includes proposals and governing documents.

Lazy consensus does _not_ apply to the process of:

* Removing core or non-core maintainers
* Removal of maintainers from Harbor

## Updating Governance

All substantive changes in Governance require a supermajority [Total
Maintainership](#total-maintainership) vote.
All substantive changes in Governance require a supermajority agreement by all maintainers.
48 changes: 31 additions & 17 deletions MAINTAINERS.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,31 +3,45 @@
[GOVERNANCE.md](https://github.com/goharbor/community/blob/master/GOVERNANCE.md)
describes governance guidelines and maintainer responsibilities.

## Core Maintainers

| Core Maintainer | GitHub ID | Affiliation |
| --------------- | --------- | ----------- |
| Daniel Jiang | [reasonerjt](https://github.com/reasonerjt) | [VMware](https://www.github.com/vmware/) |
| Steven Ren | [renmaosheng](https://github.com/renmaosheng) | [VMware](https://www.github.com/vmware/) |
| Steven Zou | [steven-zou](https://github.com/steven-zou) | [VMware](https://www.github.com/vmware/) |
| Michael Michael |[michmike](https://github.com/michmike)| [VMware](https://www.github.com/vmware/) |
| Henry Zhang | [hainingzhang](https://github.com/hainingzhang)| [VMware](https://www.github.com/vmware/) |

## Maintainers

| Maintainer | GitHub ID | Affiliation |
| ---------- | --------- | ----------- |
| Daojun Zhang | [stonezdj](https://github.com/stonezdj) | [VMware](https://www.github.com/vmware/) |
| Wenkai Yin | [ywk253100](https://github.com/ywk253100) | [VMware](https://www.github.com/vmware/) |
| Yan | [wy65701436](https://github.com/wy65701436) | [VMware](https://www.github.com/vmware/) |
| --------------- | --------- | ----------- |
| De Chen | [cd1989](https://github.com/cd1989) | Independent |
| Qian Deng | [ninjadq](https://github.com/ninjadq) | [VMware](https://www.github.com/vmware/) |
| Daniel Pacak | [danielpacak](https://github.com/danielpacak) | [Aqua Security](https://www.github.com/aquasecurity/) |
| Daniel Jiang | [reasonerjt](https://github.com/reasonerjt) | [VMware](https://www.github.com/vmware/) |
| Fanjian Kong | [kofj](https://github.com/kofj) | [Qihoo360](https://github.com/Qihoo360) |
| Nathan Lowe | [nlowe](https://github.com/nlowe) | [Hyland Software](https://github.com/HylandSoftware) |
| De Chen | [cd1989](https://github.com/cd1989) | Independent |
| Michael Michael |[michmike](https://github.com/michmike)| [VMware](https://www.github.com/vmware/) |
| Daniel Pacak | [danielpacak](https://github.com/danielpacak) | [Aqua Security](https://www.github.com/aquasecurity/) |
| Mingming Pei | [mmpei](https://github.com/mmpei) | [Netease](https://github.com/netease) |
| Fanjian Kong | [kofj](https://github.com/kofj) | [Qihoo360](https://github.com/Qihoo360) |
| Steven Ren | [renmaosheng](https://github.com/renmaosheng) | [VMware](https://www.github.com/vmware/) |
| Yan Wang | [wy65701436](https://github.com/wy65701436) | [VMware](https://www.github.com/vmware/) |
| Wenkai Yin | [ywk253100](https://github.com/ywk253100) | [VMware](https://www.github.com/vmware/) |
| Henry Zhang | [hainingzhang](https://github.com/hainingzhang)| [VMware](https://www.github.com/vmware/) |
| Daojun Zhang | [stonezdj](https://github.com/stonezdj) | [VMware](https://www.github.com/vmware/) |
| Steven Zou | [steven-zou](https://github.com/steven-zou) | [VMware](https://www.github.com/vmware/) |

## Emeritus Maintainers

N/A

| Harbor Technical Feature Area | Lead |
| ----------------------------- | :---------------------: |
| Technical Lead | Daniel Jiang (reasonerjt) |
| Chief Architects | Daniel Jiang (reasonerjt), Steven Zou (steven-zou) |
| Harbor Core | Daniel Jiang (reasonerjt) |
| Replication Working Group | Steven Zou (steven-zou), Wenkai Yin (ywk253100) |
| Webhooks | MingMing Pei (mmpei), Yan Wang (wy65701436) |
| Interrogation Service/Pluggable Scanners | Daniel Pacak (danielpacak), Zach Hill (zhill), Steven Zou (steven-zou) |
| Setup, Installation, Upgrade Experience | Daojun Zhang (stonezdj) , Qian Deng (ninjadq) |
| Helm Chart & HA | Wenkai Yin (ywk253100), Daniel Jiang (reasonerjt) |
| Policy Engine | Nathan Lowe (nlowe), Yan Wang (wy65701436), Steven Zou (steven-zou) |
| Scheduling Engine | Steven Zou (steven-zou) |
| Security | Daniel Pacak (danielpacak), Michael Michael (michmike) |
| User Interface/Usability/User Experience | Meina Zhou (zhoumeina) |
| Documentation | Stuart Clements (stuclem) |
| Releases | Yan Wang (wy65701436), Steven Ren (renmaosheng) |
| QA, Test Automation | Danfeng Liu (danfengliu) |
| Community Manager | Jonas Rosland (jonasrosland), Henry Zhang (hainingzhang) |
| Product Management | Michael Michael (michmike), Alex Xu (xaleeks) |

0 comments on commit 3414c3f

Please sign in to comment.