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

removal_from_ansible.rst: add paragraph about removal collections violating the requirements #217

Merged
merged 9 commits into from
Nov 8, 2022
62 changes: 59 additions & 3 deletions removal_from_ansible.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ General processes

The general process of removing a collection follows these steps:

#. announcing an upcoming removal of a collection
#. removing the collection
#. when appropriate, re-adding the collection
#. Announcing an upcoming removal of a collection.
#. Removing the collection.
#. When appropriate, re-adding the collection.


.. _announce_removal:
Expand Down Expand Up @@ -165,3 +165,59 @@ Re-adding collection to Ansible
-------------------------------

There is no simplified process. Once the collection has been removed from Ansible Y.0.0, it needs to go through the full inclusion process to be re-added to the Ansible package. Exceptions are only possible if the Steering Committee votes on them. The Steering Committee can approve or deny a fast re-entry without going through the full review process.

Collections not satisfying the Collection Requirements
======================================================

A collection can be removed from the package if it violates one or more of the `Collection Requirements <https://github.com/ansible-collections/overview/blob/main/collection_requirements.rst>`_ without resolving the violations within the time allowed.

This section is not applicable to cases of broken or unmaintained collections. Instead, see the corresponding paragraphs of this document.

Identifying and removing a collection
-------------------------------------

Conditions for removal
~~~~~~~~~~~~~~~~~~~~~~

#. A collection violates one or more of the `Collection Requirements <https://github.com/ansible-collections/overview/blob/main/collection_requirements.rst>`_.
#. Collection maintainers have not fixed the violations and have not released a fixed version of the collection within the time period established by this document.

Process
~~~~~~~

#. Any community member who finds a collection that violates one or more of the `Collection Requirements <https://github.com/ansible-collections/overview/blob/main/collection_requirements.rst>`_ may file an issue against said collection's repository. If the reporter is unsure whether something constitutes a violation or believes that the apparently violated guideline is unclear, they should consult with the steering committee by filing a `community topic <https://github.com/ansible-community/community-topics/issues>`_ before proceeding.
#. The issue filed against the collection's repository should include the following information:

* References to the corresponding `Collection Requirements <https://github.com/ansible-collections/overview/blob/main/collection_requirements.rst>`_ the collection violates.
* Actions collection maintainers need to do to make the collection comply with the requirements.
#. A default term for the collection to solve the issue is four weeks since the issue was created. It can vary depending on a requirement violated, SC opinions or other circumstances.
#. If the violation is not fixed or there is a disagreement between the reporter and the maintainers, the reporter or another person creates a `community topic <https://github.com/ansible-community/community-topics/issues>`_.
#. Two SC members check the reported circumstances and confirm in the topic that the violation is present from their point of view, and is one that must be fixed.
#. The Community and SC vote on considering the collection violating the requirements and removing it from the package. The vote must be open for at least one week.
#. If SC votes that the collection does NOT violate the requirements, the process is stopped. The issue needs to be updated accordingly.
#. If X.0.0 will be released next, set Y=X+1. If X.0.0 has already been released, but (X+1).0.0 has not yet been released, set Y=X+2.
#. Announce upcoming removal from Ansible Y in the original issue in the collection's repository.
#. `Announce upcoming removal from Ansible Y <announce_removal_>`_.
#. `Remove collection from Ansible Y <remove_collection_>`_.

Cancelling removal
------------------

Conditions
~~~~~~~~~~

#. Ansible Y has not yet been released.
#. All the requirements violations have been fixed.

Process
~~~~~~~

#. SC votes on whether the result is acceptable.
#. A negative vote must come with a good explanation why the actions done by collection maintainers have not been sufficient.
#. If SC does not vote against the removal of the collection (this includes the case that the vote did not reach quorum), the removal will continue.
#. If SC votes to cancel the removal, `re-add collection to Ansible Y <readd_collection_>`_.

Re-adding collection to Ansible
-------------------------------

There is no simplified process. Once the collection has been removed from Ansible Y.0.0, it needs to go through the full inclusion process to be re-added to the Ansible package. Exceptions are only possible if SC votes on them. SC can approve or deny a fast re-entry without going through the full review process.