Draft for SC voting process on the forum

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:


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 :gear: button in the composer and select Build Poll
    • Click the :gear: 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.

2 Likes

Commit log

2 Likes

FYI we have MermaidJS support, so if you want to attempt a flowchart, go for it… :slight_smile:

1 Like

@gotmax23 LGTM, thanks!
I see no objections here.
Let’s tern it into a PR and start the vote maybe?:slight_smile:

Not yet :slightly_smiling_face:. It’s still missing important details about the forum.

@gotmax23 which details?:slight_smile: l’m eager to start governing on the forum:)
UPDATE: Details are just details, even if they are important.

It doesn’t actually say how to create votes on the forum, and there are multiple parts that refer to old process in Github that are inapplicable to the forum. I’ve been busy this past week, so I haven’t been able to finish this. I’d welcome help to finish this up.

Me too!

Can I help here @gotmax23? Is this video sufficient? Do I need to write up something here, or in the forum-tips tag?

Yes! I would add a section Creating a vote to the text above that briefly explains the process.

I’ve updated the voting section with some notes. Let me know if that reads OK, and maybe give it a try?

One thing we should decide (we can always change it of course) is that the votes have two modes…

  • Create it with a closing date pre-set
    • Pro: don’t have to remember to close the vote
    • Con: closing date can’t be modified if we need to extend it
  • Don’t give a closing date. Inverse of the above, we have to remember to close but we can choose when.

I’ve worded it around option 1, but if we keep hitting situations where we want to extend votes, then 2 is the way to go, and we should update the docs.

@gwmngilfen if we decide to proceed with vote auto closing, will participants get notifications when it happens?
If there’s a feature that allows people get notifications without closing votes it’d be ideal, i.e. “the vote will end today, please take a look” or something.

The issue is that we sometimes ping missing people in the last day or a day before when the quorum is not reached…
But if there’s no such a feature, OK, we could imo proceed with option 1 but update the policy saying something like “If the vote gets closed and there’s no quorum, the vote can be re-opened”.

The question about the notifications (at least after auto closing) is relevant anyway.

EDITED: oh, now i see Con: closing date can’t be modified if we need to extend it. So it’s an issue as per the above, let’s proceed with “w/o closing date”?

Yep, you also can’t re-open a poll with a closing date, it’s fixed. You’d need a new poll.

However, I think the idea of a ping is not a bad one, so I will research it. To my knowledge, there is no automatic feature for this, so I will raise it with CDCK. However, we have a couple of other ways to achieve it - there’s a plugin called Discourse-Automation which can do many things, and if that doesn’t work, we can always script it via the API. I already have this page which lists open polls, extending it to post back wouldn’t be hard.

1 Like

@gwmngilfen thanks!

Folks look:

1 Like