The @SteeringCommittee is discussing changing its voting process to use the forum instead of the current Github Discussions approach in 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 https://github.com/ansible-community/community-topics/blob/main/community_topics_workflow.md follows:
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.
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.
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.
- A Committee person checks the topic’s content, asks the author / other persons to provide additional information if needed (adds the
waitinglabel in this case).
- 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).
- 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-votelabel and moves the topic to the
Active Votecolumn 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)
The next day after the last day of the vote, the Committee person:
- Removes the
- Add a comment that the vote ended.
- Changes the beginning of the topic’s description to
- 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.
- Removes the
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.
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_implementedlabel to the topic.
After the topic is implemented, the assignee:
- Comments on the topic that the work is done.
- Removes the
- Add the
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_releaselabel 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.
- Adds the
A Committee person moves the topic to the
Resolvedcolumn on the Board and closes the topic.
We have some scripts that can be used to create Ansible community announcements on Bullhorn and similar.