New Ansible Releases and Freezes¶
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 -
Add the next major version to ansible-build-data's CI
Open
.github/workflows/antsibull-build.ymland the following block to the matrix: -
Commit the changes
-
Submit a PR against ansible-build-data
Freeze release¶
Beyond the regular Ansible Release Process, X.Y.0 releases require special handling before running the release playbook.
-
Determine the previous and the current releases
-
Set up your Git clones and release venv as outlined in the Ansible Release Process document.
-
Copy over the previous release's deps and galaxy files.
-
Edit the current ansible version in the deps file
-
Add a changelog entry for the new release
Open
${MAJOR_VERSION}/changelog.yamland the following block to the releases table:${VERSION}: changes: release_summary: 'Release Date: ${RELEASE_DATE} `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`_' release_date: '${RELEASE_DATE}'The release date should be formatted as
YYYY-MM-DD. -
Manually update specific collection versions if needed.
In some cases, it may be necessary to update certain collections if, for example, a serious bug is found is one of the collections. In that case, open up the deps and galaxy files copied over in the step 2 and change the versions for the collections in question. Make sure that the versions in both files are consistent.
-
Generate the tags data file
-
Run the the release playbook as outlined in Ansible Release Process. Make sure to use pass
-e antsibull_data_reset=falseto preserve the ansible-build-data modifications.