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

Initial PR outlining the governance for the project #345

Merged
merged 9 commits into from Apr 30, 2024
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 4 additions & 0 deletions CONTRIBUTING.md
Expand Up @@ -3,6 +3,10 @@ Contributing to Valkey

Welcome and thank you for wanting to contribute!

# Project governance

The Valkey project is led by a Technical Steering Committee, whose responsibilities are laid out in [GOVERNANCE.md](GOVERNANCE.md).

## Get started

* Have a question? Ask it on
Expand Down
66 changes: 66 additions & 0 deletions GOVERNANCE.md
@@ -0,0 +1,66 @@
# Project Governance

The Valkey project is managed by a Technical Steering Committee (TSC) composed of the maintainers of Valkey repository.
madolson marked this conversation as resolved.
Show resolved Hide resolved
The Valkey project includes all of the current and future repositories under the Valkey-io organization.
Copy link
Contributor

Choose a reason for hiding this comment

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

"the Valkey-io organization" just means the github org. It sounds like were defining our project in terms of whats under the github org, but it's rather the other way around. Can we write it in a different way?

Suggested change
The Valkey project includes all of the current and future repositories under the Valkey-io organization.
The Valkey project stores its repositories on GitHub under the valkey-io organization.

Copy link
Member Author

Choose a reason for hiding this comment

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

I didn't want to tie the governance to specifically to github. Maybe I'll word it like:

The Valkey project includes all of the current and future repositories under the Valkey-io GitHub organization or whatever future code hosting platform the project uses.

?

Copy link
Contributor

Choose a reason for hiding this comment

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

Sure. Or just keep it as is. It doesn't matter much.

Copy link
Member

Choose a reason for hiding this comment

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

is it "Valkey" or "Valkey-io" organization?

Copy link
Member Author

Choose a reason for hiding this comment

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

It's currently valkey-io organization. We're working on getting valkey though.

Maintainers are defined as individuals with full commit access to the Valkey repository as well as additional members defined in the MAINTAINERS.md file in a given projects repository.
Maintainers of other repositories within the Valkey project are not members of the TSC unless explicitly added.
Copy link
Member

Choose a reason for hiding this comment

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

I'm a bit confused about the relationship between "maintainers" and "TSC". Although currently all TSC members are maintainers of the valkey core repo, but in the future these two groups may be changed separately. I think it would be better to describe them separately.

For example, we could use MAINTAINERS.md in the valkey repo to specifically detail the maintainers of the valkey repo. Additionally, introducing a TSC.md directly under valkey-io (maybe a new governance or TSC repo) to clarify the composition of the TSC, highlighting their role in overseeing all projects under the valkey-io. This setup ensures that any future additions of maintainers for other clients or modules to the TSC wouldn't impact the list of maintainers for the valkey repo.

Copy link
Member Author

Choose a reason for hiding this comment

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

At least for now, practically maintainers = TSC. I think it makes the most sense to amend the document when that needs to change.


## Technical Steering Committee

The TSC will be responsible for oversight of all technical, project, approval, and policy matters for Valkey.
madolson marked this conversation as resolved.
Show resolved Hide resolved

The TSC members are listed in the [MAINTAINERS.md](MAINTAINERS.md) file in the Valkey repository.
Maintainers (and accordingly, TSC members) may be added or removed by no less than 2/3 affirmative vote of the current TSC.
The TSC will appoint a Chair responsible for organizing TSC meetings.
madolson marked this conversation as resolved.
Show resolved Hide resolved
If the TSC Chair is removed from the TSC (or the Chair steps down from that role), it is the responsibility of the TSC to appoint a new Chair.
The TSC can amend this governance document by no less than a 2/3 affirmative vote.

The TSC may, at its discretion, add or remove members who are not maintainers of the main Valkey repository.
madolson marked this conversation as resolved.
Show resolved Hide resolved
The TSC may, at its discretion, add or remove maintainers from other repositories within the Valkey project.

## Voting

The TSC will strive for all decisions to be made by consensus.
madolson marked this conversation as resolved.
Show resolved Hide resolved
While explicit agreement of the entire TSC is preferred, it is not required for consensus.
Rather, the TSC will determine consensus based on their good faith consideration of a number of factors, including the dominant view of the TSC and nature of support and objections.
madolson marked this conversation as resolved.
Show resolved Hide resolved
The TSC will document evidence of consensus in accordance with these requirements.
madolson marked this conversation as resolved.
Show resolved Hide resolved
If consensus cannot be reached, the TSC will make the decision by a vote.
madolson marked this conversation as resolved.
Show resolved Hide resolved

A vote will also be called when an issue or pull request is marked as a major decision, which are decisions that have significant impact on the Valkey architecture or design.
madolson marked this conversation as resolved.
Show resolved Hide resolved
Examples of major decisions:
madolson marked this conversation as resolved.
Show resolved Hide resolved
* Fundamental changes to the Valkey core datastructures
* Adding a new data structure or API
* Changes that affect backward compatibility
* New user visible fields that need to be maintained
* Modifications to the TSC or other governance documents
* Adding members to other roles within the Valkey project
* Delegation of maintainership for projects to other groups or individuals

Any member of the TSC can call a vote with reasonable notice to the TSC, setting out a discussion period and a separate voting period.
Any discussion may be conducted in person or electronically by text, voice, or video.
The discussion will be open to the public, with the notable exception of discussions involving embargoed security issues or the addition or removal of maintainers, which will be private.
madolson marked this conversation as resolved.
Show resolved Hide resolved
madolson marked this conversation as resolved.
Show resolved Hide resolved
In any vote, each voting TSC member will have one vote.
The TSC will give at least two weeks for all members to submit their vote.
madolson marked this conversation as resolved.
Show resolved Hide resolved
Except as specifically noted elsewhere in this document, decisions by vote require a simple majority vote of all voting members.
zuiderkwast marked this conversation as resolved.
Show resolved Hide resolved
It is the responsibility of the TSC chair to help facilitate the voting process as needed to make sure it completes within the voting period.

## Termination of Membership

A maintainer's access (and accordingly, their position on the TSC) will be removed if any of the following occur:

* Resignation: Written notice of resignation to the TSC.
madolson marked this conversation as resolved.
Show resolved Hide resolved
* TSC Vote: 2/3 affirmative vote of the TSC to remove a member
* Unreachable Member: If a member is unresponsive for more than six months, the remaining active members of the TSC may vote to remove to unreachable member by simple majority.
madolson marked this conversation as resolved.
Show resolved Hide resolved

## Technical direction for other Valkey projects

The TSC may delegate decision making for other projects within the Valkey organization to the maintainers responsible for that project.
madolson marked this conversation as resolved.
Show resolved Hide resolved
madolson marked this conversation as resolved.
Show resolved Hide resolved
Delegation of decision making for a project is considered a major decision, and should happen with an explicit vote.
madolson marked this conversation as resolved.
Show resolved Hide resolved
Projects within the Valkey organization must indicate the individuals with commit permissions by updating the MAINTAINERS.md within their repository.
madolson marked this conversation as resolved.
Show resolved Hide resolved

The TSC may, at its discretion, overrule the decisions made by other projects within the Valkey organization, although they should show restraint in doing so.

## License of this document

This document may be used, modified, and/or distributed under the terms of the
[Creative Commons Attribution 4.0 International (CC-BY) license](https://creativecommons.org/licenses/by/4.0/legalcode).
21 changes: 21 additions & 0 deletions MAINTAINERS.md
@@ -0,0 +1,21 @@
## Overview

This document contains a list of maintainers in this repo.
See [GOVERNANCE.md](GOVERNANCE.md) that explains the function of this file.

## Current Maintainers

madolson marked this conversation as resolved.
Show resolved Hide resolved
| Maintainer | GitHub ID | Affiliation |
madolson marked this conversation as resolved.
Show resolved Hide resolved
| ------------------- | ----------------------------------------------- | ----------- |
| Zhu Binbin | [enjoy-binbin](https://github.com/enjoy-binbin) | Tencent |
| Wen Hui | [hwware](https://github.com/hwware) | Huawei |
| Madelyn Olson | [madolson](https://github.com/madolson) | Amazon |
| Ping Xie | [pingxie](https://github.com/pingxie) | Google |
madolson marked this conversation as resolved.
Show resolved Hide resolved
| Zhao Zhao | [soloestoy](https://github.com/soloestoy) | Alibaba |
| Viktor Söderqvist | [zuiderkwast](https://github.com/zuiderkwast) | Ericsson |
madolson marked this conversation as resolved.
Show resolved Hide resolved


### Former Maintainers

| Maintainer | GitHub ID | Affiliation |
| ------------------- | ----------------------------------------------- | ----------- |