Draft for SC voting process on the forum

gotmax23
Wed, 04 Oct 2023 18:45:43 +0000
Project Discussions

The @SteeringCommittee is discussing changing its voting process to use the forum instead of the current Github Discussions approach in [associated vote ended on 2023-11-08] Proposal: allow votes to be conducted in the forum · Issue #273 · ansible-community/community-topics · GitHub. We are using this wiki post to collaboratively edit our current policy to reflect the way the process will look in the forum. See Lets try a vote in the SC style for our previous trial run of the new voting process.

The current text of our voting policy from community-topics/community_topics_workflow.md at main · ansible-community/community-topics · GitHub follows:

Ansible Community Topics Workflow

Overview

Warning: Subject to frequent updates. This is a “living document”, expect it to change as we progress with the Community Topics workflow over the next few months.

This document describes the Ansible Community Steering Committee Topics workflow (hereinafter Workflow) to provide guidance on successful resolving topics in the asynchronous way.

The Workflow is a set of actions that need to be done successively within the corresponding time frames.

Note: If you have any ideas on how the Workflow can be improved, please create an issue in this repository or pull request against this document.

Creating a topic

Any user can created a topic tagged with steering-committee under Project Discussions in the Ansible Forum. A steering committee member can tag the forum post with community-meeting to put it on the meeting agenda.

Workflow

Note: This is a rough scenario and it can vary depending on a topic’s complexity and other nuances, for example, when there is a mass agreement up-front.

Preparation stage

A Committee person checks the topic’s content, asks the author / other persons to provide additional information if needed (adds the waiting label in this case).

Discussion stage

If the topic is ready to be discussed, the Committee person:

Opens the discussion by adding a comment asking the Community and the Committee to take part in it.

No synchronous discussion is needed (there are no blockers, complications, confusion, or impasses).

Voting stage

Depending on the topic’s complexity, 1-2 weeks after the discussion was opened, the Committee person formulates vote options based on the prior discussion and gives participants reasonable amount of time to propose changes to the options (no longer than a week). The person summarizes the options in a comment and also establishes a date when the vote begins if there are no objections about the options / vote date.

In the vote date, the vote starts with the comment of a Committee person which opens the vote and establishes a date when the vote ends ($CURRENT_DATE + no longer than 21 days; usually it should not exceed 14 days, 21 days should only be used if it is known that a lot of interested persons will likely not have time to vote in a 14 days period).

The Committee person labels the topic with the active-vote label and moves the topic to the Active Vote column on the Board.

The Committee person adds [Vote ends on $YYYY-MM-DD] to the beginning of the topic’s description.

A vote is actually 2 polls, one for the SC, one for everyone else. To create a vote in a topic:

Create a new post in the topic

Click the button in the composer and select Build Poll

Click the in the Poll Builder for advanced mode

Set up the options (generally this will be Single Choice but other poll types can be used)

Title it “Steering Committee vote” and “Limit voting” to the SC

Set the closing date of the poll (N.B. this cannot be changed later, do not set it if you need flexibility in the close date)

Results should be “Always Visible” unless there is some good reason for the SC votes not to be public

Submit the poll (the BBcode will appear in the post) and then repeat the above for the second poll

Title should be “Community vote”

No group limitation

Results “Staff only” (i.e. an anonymous vote, but admins can check if there are concerns)

Voting result stage

The next day after the last day of the vote, the Committee person:

Removes the active-vote label.

Add a comment that the vote ended.

Changes the beginning of the topic’s description to [Vote ended].

Counts the votes separating ones made by Community and made by Committee and creates a summary comment containing the result.

Asks another Committee person to count the votes and provide the summary.

At least two Steering Committee members count the votes and summarize the result in comments.

The vote’s result and the final decision are announced via the Bullhorn.

Implementation stage

If the topic implies some actions (if it does not, just mark this as complete), the Committee person:

Assigns the topic to a person responsible for performing the actions.

Add the being_implemented label to the topic.

After the topic is implemented, the assignee:

Comments on the topic that the work is done.

Removes the being_implemented label.

Add the implemented label.

If the topic implies actions related to the future Ansible Community package releases (for example, a collection exclusion), the Committee person:

Adds the scheduled_for_future_release label to the topic.

Checks if there’s a corresponding milestone in the ansible-build-data repository. If there’s no milestone, the person creates it.

Creates an issue in ansible-build-data that references the topic in community-topics, and adds it to the milestone.

A Committee person moves the topic to the Resolved column on the Board and closes the topic.

Tools

We have some scripts that can be used to create Ansible community announcements on Bullhorn and similar.

13 posts - 3 participants