-
Notifications
You must be signed in to change notification settings - Fork 158
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
docs: add definition and voting rules of -contrib
repositories
#707
docs: add definition and voting rules of -contrib
repositories
#707
Conversation
ACTION NEEDED Substrait follows the Conventional Commits The PR title and description are used as the merge commit message. Please update your PR title and description to match the specification. |
51610ac
to
eb307a7
Compare
-contrib
repositories-contrib
repositories
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.
(sending comments corresponding to some offline clarification questions asked)
site/docs/governance.md
Outdated
|
||
### Committer | ||
|
||
A committer is a developer who has write access to the code repositories and has a signed [Contributor License Agreement (CLA)](https://cla-assistant.io/substrait-io/substrait) on file. Not needing to depend on other people to make patches to the code or documentation, they are actually making short-term decisions for the project. The SMC can (even tacitly) agree and approve the changes into permanency, or they can reject them. Remember that the SMC makes the decisions, not the individual committers. | ||
A committer is a developer who has write access to the core (i.e., non `-contrib`) repositories and has a signed [Contributor License Agreement (CLA)](https://cla-assistant.io/substrait-io/substrait) on file. Not needing to depend on other people to make patches to the code or documentation, they are actually making short-term decisions for the project. The SMC can (even tacitly) agree and approve the changes into permanency, or they can reject them. Remember that the SMC makes the decisions, not the individual committers. |
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.
Would a committer by default also have write access to contrib repos?
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.
I think the answer is yes. This should be clarified.
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.
yes, agreed. committers and smc should have same or greater rights in -contrib.
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.
Addressed in latest commit.
site/docs/governance.md
Outdated
@@ -27,11 +27,11 @@ A user is someone who uses Substrait. They may contribute to Substrait by provid | |||
|
|||
### Contributors | |||
|
|||
A contributor is a user who contributes to the project in the form of code or documentation. They take extra steps to participate in the project (loosely defined as the set of repositories under the github substrait-io organization) , are active on the developer mailing list, participate in discussions, and provide patches, documentation, suggestions, and criticism. | |||
A contributor is a user who contributes to the project in the form of code or documentation. They take extra steps to participate in the project (loosely defined as the set of repositories under the github substrait-io organization), are active on the developer mailing list, participate in discussions, and provide patches, documentation, suggestions, and criticism. Contributers may be given write access to `-contrib` repositories. |
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.
Would write access would also require signing CLA?
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.
I think the answer is yes. This should be clarified.
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.
A contributor is a user who contributes to the project in the form of code or documentation. They take extra steps to participate in the project (loosely defined as the set of repositories under the github substrait-io organization), are active on the developer mailing list, participate in discussions, and provide patches, documentation, suggestions, and criticism. Contributers may be given write access to `-contrib` repositories. | |
Contributers may be given write access to `-contrib` repositories. |
A contributor is a user who contributes to the project in the form of code or documentation. They take extra steps to participate in the project (loosely defined as the set of repositories under the github substrait-io organization), are active on the developer mailing list, participate in discussions, and provide patches, documentation, suggestions, and criticism. Contributers may be given write access to `-contrib` repositories. | |
Contributors are given write access to specific `-contrib` repositories by an SMC consensus vote per repository. The vote should be open for a week to allow adequate time for other SMC members to voice any concerns prior to providing write access. |
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.
Applied in latest commit.
Thanks, @jpienaar! Let me add another question that we may or may not want to address in the guidelines: How does one get the Github permissions to submit a contrib proeject. |
I think that's fine, and a good minimum to have. I guess my question is really still, for a particular contrib project X, who has write access to it? In particular, because we don't yet have a "contributor role" in github it is somewhat under defined as "anyone who has submitted code before can call themselves a contributor". Here's a few examples we could take (feel free to propose more): Approach A: Committers (or maybe just the SMC) can give any contributor (really just "github account" in this case) write access to a contrib project as a judgement call (based on discussion with other contributors in the project, past history of positive open source interaction, etc.). This is a more narrow, selective approach that requires a little bit more up-front work to get access to a contrib project. Approach B: We create a Github role for contributors. Anyone may ask to have the role and SMC should hand it out freely. As long as they have it they can be given write access to all contrib repos. This is a much broader approach and could potentially let in bad actors. We could make sure to put in rules like "no force push, etc." so that hopefully any malicious behavior is reversible. Approach C: Every contrib project has an owner, determined by the committer/SMC that creates the contrib project. That owner has not just write access but also admin access to the repo and can grant others write / admin privileges to the repo as well (need to confirm this kind of role is possible in Github). This is more individualized, letting each contrib project owner have a lot more control over who can access the project. |
Yeah, this question needs clarification. I think all of the three proposals are valid. I don't think we should tailer this too the concrete case of the MLIR dialect, though, so my opinion is only one of many to consider. Independent of these options, I do get the feeling that there is a certain hierarchy within a I wait a bit more to give others the time to chime in and propose formulation based on that... |
Do we want to clarify admin rights as well? Presumably the ability to transfer the project would remain under the control of SMC members but is there some amount of control that we want to cede to allow for project management? I lean towards keeping all of the projects the same in this regard. |
site/docs/governance.md
Outdated
|
||
### Committer | ||
|
||
A committer is a developer who has write access to the code repositories and has a signed [Contributor License Agreement (CLA)](https://cla-assistant.io/substrait-io/substrait) on file. Not needing to depend on other people to make patches to the code or documentation, they are actually making short-term decisions for the project. The SMC can (even tacitly) agree and approve the changes into permanency, or they can reject them. Remember that the SMC makes the decisions, not the individual committers. | ||
A committer is a developer who has write access to the core (i.e., non `-contrib`) repositories and has a signed [Contributor License Agreement (CLA)](https://cla-assistant.io/substrait-io/substrait) on file. Not needing to depend on other people to make patches to the code or documentation, they are actually making short-term decisions for the project. The SMC can (even tacitly) agree and approve the changes into permanency, or they can reject them. Remember that the SMC makes the decisions, not the individual committers. |
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.
yes, agreed. committers and smc should have same or greater rights in -contrib.
site/docs/governance.md
Outdated
@@ -64,6 +64,7 @@ The rules require that a community member registering a negative vote must inclu | |||
| Non-breaking function introductions | 1 (not including proposer) | Committers | Github PR | | |||
| Non-breaking extension additions & non-format code modifications | 1 (not including proposer) | Committers | Github PR | | |||
| Changes (non-breaking or breaking) to a Substrait *library* (i.e. substrait-java, substrait-validator) | 1 (not including proposer) | Committers | Github PR | | |||
| Changes to a Substrait `-contrib` repository | 1 (not including proposer) | Contributers | Github PR | |
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.
Here and above... should be "Contributors" not "Contributers"
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.
Fixed in latest commit -- thanks!
site/docs/governance.md
Outdated
@@ -27,11 +27,11 @@ A user is someone who uses Substrait. They may contribute to Substrait by provid | |||
|
|||
### Contributors | |||
|
|||
A contributor is a user who contributes to the project in the form of code or documentation. They take extra steps to participate in the project (loosely defined as the set of repositories under the github substrait-io organization) , are active on the developer mailing list, participate in discussions, and provide patches, documentation, suggestions, and criticism. | |||
A contributor is a user who contributes to the project in the form of code or documentation. They take extra steps to participate in the project (loosely defined as the set of repositories under the github substrait-io organization), are active on the developer mailing list, participate in discussions, and provide patches, documentation, suggestions, and criticism. Contributers may be given write access to `-contrib` repositories. |
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.
A contributor is a user who contributes to the project in the form of code or documentation. They take extra steps to participate in the project (loosely defined as the set of repositories under the github substrait-io organization), are active on the developer mailing list, participate in discussions, and provide patches, documentation, suggestions, and criticism. Contributers may be given write access to `-contrib` repositories. | |
Contributers may be given write access to `-contrib` repositories. |
A contributor is a user who contributes to the project in the form of code or documentation. They take extra steps to participate in the project (loosely defined as the set of repositories under the github substrait-io organization), are active on the developer mailing list, participate in discussions, and provide patches, documentation, suggestions, and criticism. Contributers may be given write access to `-contrib` repositories. | |
Contributors are given write access to specific `-contrib` repositories by an SMC consensus vote per repository. The vote should be open for a week to allow adequate time for other SMC members to voice any concerns prior to providing write access. |
site/docs/governance.md
Outdated
@@ -64,6 +64,7 @@ The rules require that a community member registering a negative vote must inclu | |||
| Non-breaking function introductions | 1 (not including proposer) | Committers | Github PR | | |||
| Non-breaking extension additions & non-format code modifications | 1 (not including proposer) | Committers | Github PR | | |||
| Changes (non-breaking or breaking) to a Substrait *library* (i.e. substrait-java, substrait-validator) | 1 (not including proposer) | Committers | Github PR | | |||
| Changes to a Substrait `-contrib` repository | 1 (not including proposer) | Contributers | Github PR | |
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.
Let's add an additional line for adding a contributor to a -contrib repo.
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.
Done in latest commit.
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.
Those a good suggestions -- thanks @jacques-n! All applied/addressed/fixed in the latest commit.
site/docs/governance.md
Outdated
@@ -27,11 +27,11 @@ A user is someone who uses Substrait. They may contribute to Substrait by provid | |||
|
|||
### Contributors | |||
|
|||
A contributor is a user who contributes to the project in the form of code or documentation. They take extra steps to participate in the project (loosely defined as the set of repositories under the github substrait-io organization) , are active on the developer mailing list, participate in discussions, and provide patches, documentation, suggestions, and criticism. | |||
A contributor is a user who contributes to the project in the form of code or documentation. They take extra steps to participate in the project (loosely defined as the set of repositories under the github substrait-io organization), are active on the developer mailing list, participate in discussions, and provide patches, documentation, suggestions, and criticism. Contributers may be given write access to `-contrib` repositories. |
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.
Applied in latest commit.
site/docs/governance.md
Outdated
|
||
### Committer | ||
|
||
A committer is a developer who has write access to the code repositories and has a signed [Contributor License Agreement (CLA)](https://cla-assistant.io/substrait-io/substrait) on file. Not needing to depend on other people to make patches to the code or documentation, they are actually making short-term decisions for the project. The SMC can (even tacitly) agree and approve the changes into permanency, or they can reject them. Remember that the SMC makes the decisions, not the individual committers. | ||
A committer is a developer who has write access to the core (i.e., non `-contrib`) repositories and has a signed [Contributor License Agreement (CLA)](https://cla-assistant.io/substrait-io/substrait) on file. Not needing to depend on other people to make patches to the code or documentation, they are actually making short-term decisions for the project. The SMC can (even tacitly) agree and approve the changes into permanency, or they can reject them. Remember that the SMC makes the decisions, not the individual committers. |
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.
Addressed in latest commit.
site/docs/governance.md
Outdated
@@ -64,6 +64,7 @@ The rules require that a community member registering a negative vote must inclu | |||
| Non-breaking function introductions | 1 (not including proposer) | Committers | Github PR | | |||
| Non-breaking extension additions & non-format code modifications | 1 (not including proposer) | Committers | Github PR | | |||
| Changes (non-breaking or breaking) to a Substrait *library* (i.e. substrait-java, substrait-validator) | 1 (not including proposer) | Committers | Github PR | | |||
| Changes to a Substrait `-contrib` repository | 1 (not including proposer) | Contributers | Github PR | |
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.
Fixed in latest commit -- thanks!
site/docs/governance.md
Outdated
@@ -64,6 +64,7 @@ The rules require that a community member registering a negative vote must inclu | |||
| Non-breaking function introductions | 1 (not including proposer) | Committers | Github PR | | |||
| Non-breaking extension additions & non-format code modifications | 1 (not including proposer) | Committers | Github PR | | |||
| Changes (non-breaking or breaking) to a Substrait *library* (i.e. substrait-java, substrait-validator) | 1 (not including proposer) | Committers | Github PR | | |||
| Changes to a Substrait `-contrib` repository | 1 (not including proposer) | Contributers | Github PR | |
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.
Done in latest commit.
I have just pushed a new commit and updated the commit message. I hope it addresses all issues raised until now. @westonpace said:
The current version says that the SMC creates repos and gives write access. After that, anyone who declares themselves as a contributor can +1 a change from someone with write access, who can then merge it. That bar is still low but I haven't heard explicit opposition to that. @EpsilonPrime said:
I agree. I think that the latest commit (essentially proposed by @jacques-n) lets the SMC keep control on project management and minimizes the differences between the two kind of repos, except that some contributors can be given write access to the Let me know what you think. |
This PR adds the concept of `-contrib` repositories to the governance rules of Substrait. To that aim, the following changes are made: * Mention that there is a distinction between "core" and `-contrib` repositories in the introduction of the Substrait project. Those definitions are used in what follows. * Say that contributors can have write access to `-contrib` repositories. This allows people to make changes to those repositories without being promoted to committers. * Clarify that committers are people who have write access to "core" repositories. This makes clear that having write access to a `-contrib` repository doesn't make someone a committer. * Add a voting rule for `-contrib` repositories: Any contributor other than the proposer can vote. This is a pretty low bar but it ensures that one other human being with some relationship to the project approves the change. Signed-off-by: Ingo Müller <[email protected]>
* Apply @jacques-n's suggestion on how to give write access to `-contrib` repositories. * Apply @jacques-n's suggestion on committer rights in `-contrib` repositories. * Apply @jacques-n's suggestion on voting rules related to `-contrib` repositories. * Fix typo in "contributor."
4e5f05c
to
a41b3c1
Compare
1f5e092
Co-authored-by: Weston Pace <[email protected]>
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.
Associated email vote: https://groups.google.com/g/substrait/c/vtznmLDowTw
Given the succesful vote, merging. |
Awesome! Thank you all for the support in this process! |
This PR adds the concept of
-contrib
repositories to the governance rules of Substrait. To that aim, the following changes are made:-contrib
repositories in the introduction of the Substrait project. Those definitions are used in what follows.-contrib
repositories by the SMC. This allows people to make changes to those repositories without being promoted to committers.-contrib
repositories. This makes clear that having write access to a-contrib
repository doesn't make someone a committer.-contrib
repositories:-contrib
repos and to give write access to them.