For details about the following points, refer to the Collection Requirements.
Every comment should say whether the reviewer expects it to be addressed, or whether it's optional.
Public availability and communication:
- published on Ansible Galaxy with version 1.0.0 or later
- has a policy of releasing, versioning and deprecation announced to contributors and users in some way
- have a Code of Conduct (CoC) compatible with the Ansible Code of Conduct (CoC)
- have a publicly available issue tracker that does not require a paid level of service to create an account or view issues
- have a public SCM repository, releases of the collection are tagged in this repository
Standards and documentation:
- adheres to semantic versioning
- follows licensing rules
- follows the Ansible documentation standards and the style guide
- follows development conventions; as well as these other requirements:
- modules that only gather information are named
<something>_info
- modules that return
ansible_facts
are named<something>_facts
and do not return non-facts - other modules must not allow querying information using specific
state
option values, or similar mechanisms (likestate=get
orstate=query
). These features should be moved to<something>_info
or<something>_fact
modules. -
check_mode
is supported in all_info
and_facts
modules
- modules that only gather information are named
- supports Python 2.6 or greater and Python 3.5 or greater. If it does not, read the full guidelines to see if you qualify for an exception and document the unsupported Python versions in the collection
README.md
and in every module and plugin (or in doc fragments) - only uses the allowed plugin types in the
plugins/
directory - has
README.md
- documentation, examples, and return sections use FQCNs for the
M(..)
format macros when referring to modules - modules (or plugins) from ansible-core use
ansible.builtin.
as a FQCN prefix - documentation and return sections use
version_added:
containing the collection version for which an option, module or plugin was added - FQCNs are used for
extends_documentation_fragment:
, unless you are referring to doc_fragments from ansible-core
Collection management:
-
galaxy.yml
havingtags
field set - collection dependencies must have a lower bound on the version which is at least 1.0.0, and are all part of the
ansible
package -
meta/runtime.yml
defines the minimal version of Ansible which the collection works with - has changelog, preferably with
changelogs/changelog.yaml
Tests:
- passed
ansible-test sanity
- if
test/sanity/ignore*.txt
exists, it does not contain error codes listed here - has CI tests up and running against each of the "major versions" of
ansible-base
/ansible-core
that the collection supports - all CI tests run against every pull request
- all CI tests run against a commit that releases the collection; if they don't pass, the collection won't be released
- all CI tests run regularly (nightly, or at least once per week)