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.in
andcollection-meta.yaml
files -
Symlink
${CURRENT_MAJOR_VERSION}.0.0
's deps file to${NEXT_MAJOR_VERSION}/ancestor.deps
-
Create a stub
changelog.yaml
file -
Create a blank
validate-tags-ignores
file -
Add the next major version to ansible-build-data's CI
Open
.github/workflows/antsibull-build.yml
and 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.yaml
and 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=false
to preserve the ansible-build-data modifications.