From 503ee6ea8e4eecb4ef8871d2f3d2301bbcf6d4b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ingo=20M=C3=BCller?= Date: Fri, 13 Sep 2024 13:21:54 +0000 Subject: [PATCH 1/4] docs: add definition and voting rules of `-contrib` repositories MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- site/docs/governance.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/site/docs/governance.md b/site/docs/governance.md index 1fe541e25..69fc37060 100644 --- a/site/docs/governance.md +++ b/site/docs/governance.md @@ -15,7 +15,7 @@ More details about concrete things Substrait looks to avoid can be found below. ## The Substrait Project -The Substrait project consists of the code and repositories that reside in the [substrait-io GitHub organization](https://github.com/substrait-io), the [Substrait.io website](https://substrait.io), the [Substrait mailing list](https://groups.google.com/g/substrait), MS-hosted teams community calls and the [Substrait Slack workspace]({{versions.slackinvitelink}}). (All are open to everyone and recordings/transcripts are made where technology supports it.) +The Substrait project consists of the code and repositories that reside in the [substrait-io GitHub organization](https://github.com/substrait-io) (consisting of core repositories and `-contrib` repositories, which have relaxed requirements), the [Substrait.io website](https://substrait.io), the [Substrait mailing list](https://groups.google.com/g/substrait), MS-hosted teams community calls and the [Substrait Slack workspace]({{versions.slackinvitelink}}). (All are open to everyone and recordings/transcripts are made where technology supports it.) ## Substrait Volunteers @@ -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. ### 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. ### SMC Member @@ -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 | ### Review-Then-Commit From c6f345cad2438fd205b5476d42b4be584d314cde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ingo=20M=C3=BCller?= Date: Mon, 16 Sep 2024 08:13:02 +0000 Subject: [PATCH 2/4] Fix unrelated white space error. --- site/docs/governance.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/governance.md b/site/docs/governance.md index 69fc37060..974c60587 100644 --- a/site/docs/governance.md +++ b/site/docs/governance.md @@ -35,7 +35,7 @@ A committer is a developer who has write access to the core (i.e., non `-contrib ### SMC Member -A SMC member is a committer who was elected due to merit for the evolution of the project. They have write access to the code repository, the right to cast binding votes on all proposals on community-related decisions,the right to propose other active contributors for committership, and the right to invite active committers to the SMC. The SMC as a whole is the entity that controls the project, nobody else. They are responsible for the continued shaping of this governance model. +A SMC member is a committer who was elected due to merit for the evolution of the project. They have write access to the code repository, the right to cast binding votes on all proposals on community-related decisions, the right to propose other active contributors for committership, and the right to invite active committers to the SMC. The SMC as a whole is the entity that controls the project, nobody else. They are responsible for the continued shaping of this governance model. ## Substrait Management and Collaboration From a41b3c1893b0b636b62e4694ec51db7876458611 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ingo=20M=C3=BCller?= Date: Tue, 24 Sep 2024 07:58:42 +0000 Subject: [PATCH 3/4] Apply changes suggested by @jacques-n and others. * 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." --- site/docs/governance.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/site/docs/governance.md b/site/docs/governance.md index 974c60587..7a47fbd88 100644 --- a/site/docs/governance.md +++ b/site/docs/governance.md @@ -27,11 +27,13 @@ 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. 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. + +Contributors may be 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. ### Committer -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. +A committer is a developer who has write access to the all (i.e., core and `-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. ### SMC Member @@ -58,13 +60,14 @@ The rules require that a community member registering a negative vote must inclu | | +1 votes required | Binding voters | Voting Location | | --------------------------------------------------------------------------------------------------------- | -------------------------- | -------------- | --------------- | | Process/Governance modifications & actions. This includes promoting new contributors to committer or SMC. | 3 | SMC | Mailing List | +| Management of `-contrib` repositories including adding repositories and giving write access to them | 3 | SMC | Mailing List | | Format/Specification Modifications (including breaking extension changes) | 2 | SMC | Github PR | | Documentation Updates (formatting, moves) | 1 | SMC | Github PR | | Typos | 1 | Committers | Github PR | | 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 | +| Changes to a Substrait `-contrib` repository | 1 (not including proposer) | Contributors | Github PR | ### Review-Then-Commit From 1f5e092010cd8f168b6bc681a05bc084e5a63b47 Mon Sep 17 00:00:00 2001 From: Jacques Nadeau Date: Thu, 26 Sep 2024 16:07:18 -1000 Subject: [PATCH 4/4] Update site/docs/governance.md Co-authored-by: Weston Pace --- site/docs/governance.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/governance.md b/site/docs/governance.md index 7a47fbd88..acb22bfd8 100644 --- a/site/docs/governance.md +++ b/site/docs/governance.md @@ -33,7 +33,7 @@ Contributors may be given write access to specific `-contrib` repositories by an ### Committer -A committer is a developer who has write access to the all (i.e., core and `-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. +A committer is a developer who has write access to all (i.e., core and `-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. ### SMC Member