New Ansible Releases¶
Preamble¶
Releasing new Ansible major versions and frozen releases requires some special handling. For information about the general release process, see Ansible Release Process.
Setting up for a new major release¶
After the release of X.0.0, it is necessary to create the directory
structure for Ansible X+1.
-
Determine the current major version and next major version:
-
Create the major version directory:
-
Copy over the
ansible.inandcollection-meta.yamlfiles: -
Symlink
${CURRENT_MAJOR_VERSION}.0.0's deps file to${NEXT_MAJOR_VERSION}/ancestor.deps: -
Create a stub
changelog.yamlfile: -
Create a blank
validate-tags-ignoresfile: -
Create a blank
ansible-${NEXT_MAJOR_VERSION}.constraintsfile:You might need to fill this with some initial data.
-
Add the next major version to ansible-build-data's CI:
Open
.github/workflows/antsibull-build.ymland add the following block to the matrix: -
Update
collection-meta.yamlandansible.in:-
Find all collection entries from
collectionsincollections-meta.yamlthat have aremovalentry withmajor_versionequal to${NEXT_MAJOR_VERSION}.-
If the
removalentry has anupdatesand the last entry is about keeping them (readded_versionorcancelled_version), remove theremovalentry completely. -
Otherwise, cut out the collection's entry and paste it into a temporary buffer / file.
-
-
For every cut out metadata entry, remove the corresponding entry in
ansible.in. -
For every cut out metadata entry, find the correct place in
removed_collectionsincollections-meta.yamlto insert the removed part fromcollections-meta.yamland paste the entry there. Modify the entry as follows:-
Replace
major_version: ${NEXT_MAJOR_VERSION}byversion: ${NEXT_MAJOR_VERSION}.0.0a1. -
Remove
announce_versionif present. -
Remove
updatesif present.
-
-
-
Validate build data:
-
Commit the changes:
-
Submit a PR against the ansible-build-data repository.