Holds generated but persistent results from building ansible. This information may be referred to by other projects and scripts.
::
ansible-build-data
└── 3
    ├── ansible-3.0.0.deps
    ├── ansible-3.1.0.deps
    ├── ansible-3.build
    └── ansible.in
- 
Each major release of Ansible gets a subdirectory of the repository named according to the X.Y version number of Ansible. (ex: 3)
- 
Within each version directory, there is an ansible.infile which lists the collections that are in this release of Ansible. The file consists of onenamespace.collectionper line. This file is constructed by the person building Ansible for that release.
- 
There will also be a file, ansible-X.build. This file contains lines which consist ofnamespace.collectionfollowed by a version range like::awx.awx: >=11.0.0,<12.0.0The version range specifies potential versions of the collection that are backwards compatible with what was available when the initial Ansible-X.Y.0 release was frozen. Only versions of the collections within those ranges will be considered for Ansible minor releases. This file will be created by the antsibull-build new-ansiblecommand.
- 
Lastly, there will be multiple, ansible-X.Y.Z.depsfiles. Those files contain lines which consist ofnamespace.collectionfollowed by a single version like::awx.awx: 11.2.5The version specifies the exact version of the collection that appeared in that release of Ansible. This file will be created by the antsibull-build singlecommand.
To add a collection to the next Ansible major release that has not reached feature freeze:
- Add the collection to the ansible.infile in a sub-directory named with a corresponding number.
- In the same sub-directory, add the collection to the collection-meta.yamlfile.- The maintainer's GitHub user names need to be listed there.
- If the collection does not provide a changelog in changelogs/changelog.yaml, the URL to the actual changelog needs to be added.
 
To add a collection to the next minor release of the current Ansible major version:
- Add the collection to the ansible.infile in a sub-directory named with a corresponding number.
- In the same sub-directory, add the collection and its version range to the ansible-X.buildfile.
- In the same sub-directory, add the collection to the collection-meta.yamlfile.- The maintainer's GitHub user names need to be listed there.
- If the collection does not provide a changelog in changelogs/changelog.yaml, the URL to the actual changelog needs to be added.
 
In some situations, a collection included in Ansible is renamed with its content basically unchanged (up to renaming, adjusting documentation, and potentially other very small changes). In that case, the new collection can be included and the old collection removed if the following procedure is followed.
For simplicity, assume that the next minor Ansible release is X.Y.0, and that collection foo.bar with latest release a.b.c has been renamed to baz.bam with latest release A.B.C.
- baz.bamA.B.C must be compatible to- foo.bara.b.c up to renaming plugins. No options must be renamed without backwards compatible aliases, and no defaults or semantics changed.
- baz.bamA.B.C can be added to Ansible X.Y.0.
- A deprecation warning is added to Ansible X.Y.0's changelog (deprecated_features) thatfoo.barhas been renamed tobaz.bam, that Ansible (X+1).0.0 will start having deprecated redirects fromfoo.bartobaz.bam, and thatfoo.barwill be removed from a later major release of Ansible.
- A new release foo.bar(a+1).0.0 is made which contains no more content, but only deprecated redirects tobaz.bam. Ideally it will have a dependency onbaz.bamso that users that installfoo.barwill have working deprecated redirects.
- Ansible (X+1).0.0 contains both foo.bar(a+1).0.0, and either abaz.bamA.B'.C' release or a later major release that is still compatible withfoo.bara.b.c as specified in 1.
- foo.barwill be dropped from Ansible (X+2).0.0 (needs to be announced in its changelog as- removed_features).