Skip to content
This repository has been archived by the owner on Apr 8, 2024. It is now read-only.

Update Steering committee guidelines #49

Merged
merged 16 commits into from
Mar 21, 2022
Merged
Show file tree
Hide file tree
Changes from 13 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 35 additions & 1 deletion ansible_community_steering_committee.rst
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ New Policy/Proposals & Inclusion Requests
* Community collection best practices and requirements
* Community collection inclusion policy
* The Community governance
* Other proposals of importance that need the Committee's attention
* Other proposals of importance that need the Committee's or overall Ansible community attention

* Changes to the inclusion policy and collection requirements are submitted through a new pull request to the `ansible-collections/overview <https://github.com/ansible-collections/overview>`_ repository and a corresponding issue containing their rationale is created in the `community-topics repository <https://github.com/ansible-community/community-topics/issues>`_ repository.

Expand All @@ -70,6 +70,40 @@ Depending on a topic you want to discuss with the Community and the Committee, a
* `Ansible Collection Requirements <https://github.com/ansible-collections/overview/blob/main/collection_requirements.rst>`_.
* `Ansible Collection Inclusion Checklist <https://github.com/ansible-collections/overview/blob/main/collection_checklist.md>`_.

Community Topics Workflow
-------------------------

The Committee uses the `Community-topics workflow <https://github.com/ansible-community/community-topics/blob/main/community_topics_workflow.md>`_ to asynchronously discuss and vote on the `community-topics <https://github.com/ansible-community/community-topics/issues>`_.

The quorum, the minimum number of Committee members who must vote on a topic in order for a decision to be officially made, is half of the whole number of the Committee members. If the quorum number contains a fractional part, it is rounded up to the next whole number. For example, if there are thirteen members currently in the committee, the quorum will be seven.

Votes must always have "no change" as an option.

In case of equal numbers of votes for and against a topic, the chairperson's vote will be used as a casting vote to resolve the deadlock. For example, if there are six votes for and six votes against a topic, and the chairperson's vote is among those six which are for the topic, the final decision will be positive. If the chairperson has not voted yet, other members ask them to vote.
Andersson007 marked this conversation as resolved.
Show resolved Hide resolved
Andersson007 marked this conversation as resolved.
Show resolved Hide resolved
Andersson007 marked this conversation as resolved.
Show resolved Hide resolved

For votes with more than two options, one choice must have at least half of the votes. If two choices happen to both have half of the votes, the chairperson's vote will be used as a casting vote. If no choice has at least half of the votes, the vote choices have to be adjusted so that a majority can be found for a choice in a new vote.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If no choice has at least half of the votes, the vote choices have to be adjusted so that a majority can be found for a choice in a new vote.

I'm fine with leaving this as is because it's probably rare, but it is somewhat ambiguous as to how that adjustment happens.

We could do a runoff type of thing, and just eliminate the choice with fewest votes (but instead of automatically reallocating we have a new vote like already suggested).

Anyway this is totally non-blocking, it can even be decided per vote how to handle the situation, since again I think it's probably going to be rare.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it is not necessary to specify how to exactly proceed, since it will depend a lot on the situation (what the choices are). Maybe a new compromise can be found and voted on. In any case, the new selection is voted on again, and keeping status quo is still an option in it, so if a popular choice was kicked off, people will vote against it. So if you actually want the vote to eventually pass, you better leave away options that weren't too popular, or try to find a compromise.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, we'll leave it as is or someone has other suggestions?:) I'm personally fine with this as is.

Andersson007 marked this conversation as resolved.
Show resolved Hide resolved

Collection Inclusion Requests Workflow
--------------------------------------

When reviewing community collection `inclusion requests <https://github.com/ansible-collections/ansible-inclusion/discussions>`_, the Committee members check if a collection adheres to the `Community collection requirements <https://github.com/ansible-collections/overview/blob/main/collection_requirements.rst>`_.

#. A Committee member who conducts the inclusion review copies the `Ansible community collection checklist <https://github.com/ansible-collections/overview/blob/main/collection_checklist.md>`_ into a corresponding `discussion <https://github.com/ansible-collections/ansible-inclusion/discussions>`_.

#. In the course of the review, the Committee member marks items as completed or leaves a comment saying whether the reviewer expects an issue to be addressed or whether it is optional (for example, it could be **MUST FIX:** <what> or **SHOULD FIX:** <what> under an item).

#. For a collection to be included in the Ansible community package, the collection must be reviewed and approved by, at least, two Committee members.

#. After the collection gets two or more Committee member approvals, a Committee member creates a `community topic <https://github.com/ansible-community/community-topics/issues>`_ linked to the corresponding inclusion request. The issue's description says that the collection has been approved by two or more Committee members and establishes a date (a week by default) when the inclusion decision will be considered made. This time period can be used to raise concerns.

#. If no objections are raised up to the established date, the inclusion request is considered successfully resolved. In this case, a Committee member:

#. Declares the decision in the topic and in the inclusion request.
#. Moves the request to the ``Resolved reviews`` category.
#. Adds the collection to the ``ansible.in`` file in a corresponding directory of the `ansible-build-data repository <https://github.com/ansible-community/ansible-build-data>`_.
#. Announces the inclusion through the `Bullhorn newsletter <https://github.com/ansible/community/wiki/News#the-bullhorn>`_.
#. Closes the topic.

Meetings
========

Expand Down
4 changes: 4 additions & 0 deletions steering_committee_membership_guidelines.rst
Original file line number Diff line number Diff line change
Expand Up @@ -132,3 +132,7 @@ The process of the election consist of the following steps:
person responsible for arranging the election about that.
#. Conduct anonymous voting somewhere.
#. Internally and publicly announce the elected candidate.

The chairperson has the following powers unlike regular members:

* The chairperson has a casting vote when vote deadlocks in `community topics <https://github.com/ansible-community/community-topics/issues>`_ happen (equal numbers of votes for and against a topic).
Andersson007 marked this conversation as resolved.
Show resolved Hide resolved