Skip to content
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

Amend the governance document #10137

Merged
merged 3 commits into from
Jan 14, 2021
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 23 additions & 11 deletions docs/Homebrew-Governance.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,18 @@
- PLC: Project Leadership Committee
- TSC: Technical Steering Committee
- AGM: Annual General Meeting
- An ordinary resolution requires a majority of the votes cast.
- A special resolution requires a two-thirds supermajority of the votes cast.

## 2. Members

1. New members will be admitted by majority vote of the Project Leadership Committee (PLC) and added to the Homebrew organisation on GitHub.
1. New members will be admitted by an ordinary resolution of the PLC and added to the Homebrew organisation on GitHub.

2. Members may vote in all general elections and resolutions, hold office for Homebrew, and participate in all other membership functions.

3. Members are expected to remain active within Homebrew, and are required to affirm their continued interest in Homebrew membership annually.

4. Members may be dismissed by majority vote of the Project Leadership Committee and removed from the Homebrew organisation on GitHub. Removed members may be reinstated by the usual admission process.
4. A member may be removed from Homebrew by an ordinary resolution of the PLC. A removed member may be reinstated by the usual admission process.

5. All members will follow the [Homebrew Code of Conduct](https://github.com/Homebrew/.github/blob/HEAD/CODE_OF_CONDUCT.md#code-of-conduct). Changes to the code of conduct must be approved by the PLC.

Expand All @@ -24,7 +26,7 @@

## 3. General Meetings of Members

1. A general meeting of the members may be called by the PLC with at least three weeks notice.
1. A general meeting of the members may be called by either an ordinary resolution of the PLC or a majority of the entire membership. The membership must be given at least three weeks notice of a general meeting.
Rylan12 marked this conversation as resolved.
Show resolved Hide resolved

2. The quorum to vote on resolutions and elections at a general meeting is 3 voting members or 10% of the voting members, whichever is greater.

Expand All @@ -38,7 +40,7 @@

### 3.1. Amendments to these bylaws

1. These bylaws may be amended by a special resolution at a general meeting of the members. A special resolution requires a two-thirds supermajority.
1. These bylaws may be amended by a special resolution at a general meeting of the members.

2. Any member may propose an amendment via pull request on GitHub against this document.

Expand All @@ -60,6 +62,8 @@

5. No more than two employees of the same employer may serve on the PLC.

6. A member of the PLC may be removed from the PLC by a special resolution of the membership.

## 5. Meetings of the Project Leadership Committee

1. A meeting of the PLC may be called by any two of its members with at least three weeks notice, unless all PLC members agree to a shorter notice period.
Expand All @@ -70,28 +74,36 @@

4. The PLC will meet annually to review the status of all members and remove inactive members and those who have not affirmed a commitment to Homebrew in the past year. Voting in the AGM confirms that a member wishes to remain active with the project. After the AGM, the PLC will ask the members who did not vote whether they wish to remain active with the project. The PLC removes any members who don't respond to this second request after three weeks.

5. The PLC will appoint the members of the Technical Steering Committee (TSC).
5. The PLC will appoint the members of the TSC.

6. Any member may refer any question or dispute to the PLC. All technical matters should first be referred to the TSC. Non-technical matters may be referred directly to the PLC. Members will make a good faith effort to resolve any disputes prior to referral to the PLC.
6. Any member may refer any question or dispute to the PLC. All technical matters should first be referred to the TSC. Non-technical matters may be referred directly to the PLC. Members will make a good faith effort to resolve any disputes with compromise prior to referral to the PLC.

7. The PLC may meet by any mutually agreeable means, such as text chat, voice or video call, and in person. Members of the PLC must meet at least once per quarter. Members of the PLC must meet by video call or in person at least once per year.

## 6. Project Leader

1. The Project Leader will represent Homebrew publicly, and manage all day-to-day technical decisions related to the operation of Homebrew.
1. The Project Leader will represent Homebrew publicly, manage all day-to-day technical decisions, and resolve disputes related to the operation of Homebrew between maintainers, members, other contributors, and users.

2. The Project Leader will be elected annually by a majority vote of Homebrew members. The PLC will nominate at least one candidate for Project Leader. Any member may nominate a candidate, or self-nominate. Nominations must be announced to the membership three weeks before the AGM.

3. Any vacancy of the Project Leader will be filled by appointment of the PLC.

4. After March 1, 2020, the Project Leader may not be a member of the PLC.
4. The Project Leader may not be a member of the PLC.

5. A technical decision of the Project Leader may be overruled by an ordinary resolution of the TSC.

6. A non-technical decision of the Project Leader may be overruled by an ordinary resolution of the PLC.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should there be a definition of what a technical decision/matter/question/dispute is? For instance, what if there were a dispute over whether an issue is technical?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For instance, what if there were a dispute over whether an issue is technical?

That would be a highly specific case, in that it would need to be a decision made by the Project Leader that either the PLC or TSC would want to overrule but the other committee wouldn’t want to (because if both agree, the distinction wouldn’t matter).

That seems unlikely to me, and that if it ever happened we could revert to a vote by all maintainers on if the dispute is of a technical nature or not, at which point we’d be able to use that experience to build a proper definition which fit Homebrew.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That would be a highly specific case

This is true for items 6.5 and 6.6. Note, however, that TSC jurisdiction over technical issues is relevant not only for decisions made by the Project Leader but also for those between members. See 7.1 and 7.3 below.


7. The Project Leader may be removed from the position by a special resolution of the membership.

## 7. Technical Steering Committee

1. The TSC has the authority to decide on any technical matter, including technical disputes between Homebrew members. The TSC will also decide the long-term roadmap of Homebrew, including large features or major changes to the Homebrew software.
1. The TSC has the authority to decide on any technical matter, including technical disputes between Homebrew members.

2. The PLC will appoint between three and five members to the TSC. The Project Leader must be one of these appointees. Appointed TSC members will serve a term of one year or until the member's successor is appointed.
2. The PLC will appoint between three and five members to the TSC. The Project Leader must be one of these appointees. After the 2021 AGM, PLC members should not be any of these appointees. Appointed TSC members will serve a term of one year or until the member's successor is appointed.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I already commented on this before: Given the different tasks of the PLC and TSC, I don't see why one cannot serve on both. If we want to avoid the conflict of interest of PLC members appointing themselves to the TLC, I suggest:

Suggested change
2. The PLC will appoint between three and five members to the TSC. The Project Leader must be one of these appointees. After the 2021 AGM, PLC members should not be any of these appointees. Appointed TSC members will serve a term of one year or until the member's successor is appointed.
2. The TSC consists of five members. Committee members are elected by majority vote of Homebrew members. Each TSC member will serve a term of one year or until the member's successor is elected. Any sudden vacancy in the TSC will be filled by the usual procedure for electing TSC members at the next general meeting, typically the next AGM.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the idea is that the PLC and TSC should be empowered to disagree with each other. That gets kinda awkward if one is on both.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The duties of the PLC and TSC don't overlap so I'm not sure in what scenario they would disagree with each other.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In practice currently, perhaps. But the roles and responsibilities of the PLC and TSC aren't really clearly defined here, so there's no guarantee that they'd stay that way.

That said, I'm not sure non-overlapping duties necessarily preclude disagreement either. Think of, for instance, different branches of government, or, say, management vs the board of directors in a corporation.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This still allows members to be in both groups. It just expresses a preference for this not to be the case. This is why it uses "should" instead of "must".
If there is a good reason for a member to occupy two seats in Homebrew's governance we can still pick that option.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel like there should not be overlap between PLC and TSC because we have enough maintainers to avoid people needing to do both and they are pretty different roles.


3. Any member may refer any technical question or dispute to the TSC. Members will make a good faith effort to resolve any disputes prior to referral to the TSC.
3. Any member may refer any technical question or dispute to the TSC. Members will make a good faith effort to resolve any disputes with compromise prior to referral to the TSC.

4. No more than two employees of the same employer may serve on the TSC.

5. A member of the TSC, except the Project Leader, may be removed from the TSC by an ordinary resolution of the PLC.