From 0a0c77ea3611b73930d1e72f2308990121839459 Mon Sep 17 00:00:00 2001 From: Sergio Moya <1083296+smoya@users.noreply.github.com> Date: Wed, 24 Apr 2024 15:58:18 +0200 Subject: [PATCH 1/2] chore: allow multiple chairpersons in WORKING_GROUPS.yaml (#1187) --- WORKING_GROUPS.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/WORKING_GROUPS.yaml b/WORKING_GROUPS.yaml index ad621309e..d2e992db5 100644 --- a/WORKING_GROUPS.yaml +++ b/WORKING_GROUPS.yaml @@ -5,11 +5,11 @@ working_groups: # - name: Required. The name of the working group. # description: Required. Describe what this working group is about. - # chairperson: - # name: Fran Méndez # Required. Name of the chairperson. + # chairpersons: # Required to have at least 1 chairperson. In case of multiple, and unless specified, the first one is the primary chairperson. + # - name: Fran Méndez # Required. Name of the chairperson. # github: fmvilas # Required. GitHub handle of the chairperson without the @. # slack: U34F2JRRS # Required. Slack user ID of the chairperson. - # members: # Required to have at least 2 members who are not the same as the chairperson. + # members: # Required to have at least 2 members who are not the same as the chairperson(s). # - name: Sergio Moya # Required. Name of the member. # github: smoya # Required. GitHub handle of the member without the @. # slack: UN22ZTLHG # Required. Slack user ID of the member. @@ -28,8 +28,8 @@ working_groups: # github_team: # Recommended. The GitHub team handle to tag all the working group members at once. Example: maintainers_growth_wg, without @asyncapi/ prefix. - name: Essential Building Blocks description: The goal of the Essential Building Blocks Working Group is to provide fundamental building blocks that enable a similar developer experience across languages. - chairperson: - name: Jonas Lagoni + chairpersons: + - name: Jonas Lagoni github: jonaslagoni slack: UQ2ANBG1E members: @@ -62,8 +62,8 @@ working_groups: - https://github.com/orgs/asyncapi/projects/44 - name: Developer Experience description: The goal of this group is to empower AsyncAPI user journey trough intuitive onboarding, tools, and a frictionless experience. - chairperson: - name: Samir Amzani + chairpersons: + - name: Samir Amzani github: amzani slack: U01N6AW5V5G members: From 64a043af497ad67f5c6a9fe46574b2e9fc16a8e3 Mon Sep 17 00:00:00 2001 From: Zack_Aayush <60972989+AayushSaini101@users.noreply.github.com> Date: Thu, 25 Apr 2024 12:56:31 +0530 Subject: [PATCH 2/2] docs: add instruction how voting automation works (#1155) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Sergio Moya <1083296+smoya@users.noreply.github.com> Co-authored-by: Fran Méndez Co-authored-by: Quetzalli Co-authored-by: Lukasz Gornicki Co-authored-by: V Thulisile Sibanda <66913810+thulieblack@users.noreply.github.com> --- voting.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 voting.md diff --git a/voting.md b/voting.md new file mode 100644 index 000000000..b2d3e71e0 --- /dev/null +++ b/voting.md @@ -0,0 +1,52 @@ +## Overview + +In the [search for the right governance model](https://www.asyncapi.com/blog/governance-motivation), we ended up defining a Technical Steering Committee (TSC) that can help make decisions related to the entire AsyncAPI Initiative and not only a specific repository. TSC voting is described in the official [Charter](https://github.com/asyncapi/community/blob/master/CHARTER.md#4-tsc-voting). + +To make the voting process easier with proper automation, we use [**Git Vote**](https://github.com/cncf/gitvote) bot. + +### Voting Location + +- Voting must only take place in the [community](https://github.com/asyncapi/community) repository. +- Voting automation works only with GitHub Issues and Pull Requests. + +The Discussions should only be used for initial discussion, brainstorming ideas, or seeking initial support. + +In the majority of cases, topics we vote on introduce new rules or ways of doing things. This implies that proper community documentation is needed for these topics. We recommend using Pull Requests instead of Issues to conduct voting on a topic, as it allows you to provide context and finalize documentation. + +### Voting Rules + +* Only votes from [TSC members](https://www.asyncapi.com/community/tsc) are counted. You are still encouraged to participate in voting, even if your vote is not binding. +* TSC members have at least 7 calendar days to vote. As a community, we did not set an exact voting deadline and only have a rule that you can translate into: "Just be nice and give people at least 7 days to get familiar with the topic so they can vote." Our automation is set for 4 weeks to take into account all possible limitations related to holidays and other events. +* TSC members can skip some votes, although, if you do not have an opinion, please participate with 👀 to indicate that you saw a vote but you have no opinion and abstain. There is one strict rule, though: if you do not participate in voting within three months, you will stop being a TSC member. It has nothing to do, though, with your maintainer responsibilities. +* The vote is completed when more than 50% of the voting is in favor. + +### Voting Process + +#### Start Voting + +1. The TSC member adds a `/vote` comment to an Issue or a Pull Request. +2. The Git Vote bot creates a comment with instructions on how the voting should be done. It is based on 👍🏼 , 👎🏼 and 👀 emojis. You can still put comments or suggestions. +3. The AsyncAPI bot adds a `vote` label, making it easier to extract information about voted topics and participation. + +#### Check Status + +1. Anyone can add a `/check-vote` comment to an Issue or a Pull Request. +2. The Git Vote bot creates a comment with an update on how many binding votes were provided. And how much the percentage is required to finish the voting process. + +### Cancel Voting + +1. The TSC member adds `/cancel-vote` comment to an Issue or a Pull Request. +2. The Git Vote bot creates a comment. +3. The AsyncAPI bot removes the `vote` label. + +### Finish Voting + +Voting cannot be concluded with a comment; it ends when more than half of the users with binding votes say yes or when the deadline passes. + +The Git Vote bot adds a comment that voting is completed. + +### Note + +* As per the [Charter](./CHARTER.md), a quorum is not needed. However, Git Vote has technical limitations, and a quorum should be reached. That's why we allocate 4 weeks for voting, and it's important to actively encourage participation to ensure that the quorum (where votes cast exceed 50% of eligible voters) is met. +* The abstain votes are included in the total number of votes; they are not removed. +* At present, Git Vote is enabled in the community repo only, and the Git Vote bot handles all voting processes. We will add Git Vote to other projects in the future.