From f62567a6cce64adb1f9e15c9f823a7d80a4d22ea Mon Sep 17 00:00:00 2001 From: Felix Fontein Date: Sat, 16 Nov 2024 22:04:44 +0100 Subject: [PATCH] Remove manual freeze instructions. Use the automated build process instead, which handles this already. --- docs/automated-process.md | 2 +- docs/new-ansible-and-freezes.md | 165 -------------------------------- docs/new-ansible.md | 86 +++++++++++++++++ mkdocs.yml | 2 +- 4 files changed, 88 insertions(+), 167 deletions(-) delete mode 100644 docs/new-ansible-and-freezes.md create mode 100644 docs/new-ansible.md diff --git a/docs/automated-process.md b/docs/automated-process.md index 266ada4c8c..f46c7bfbbd 100644 --- a/docs/automated-process.md +++ b/docs/automated-process.md @@ -155,4 +155,4 @@ next to the release version: When the new major release has been done, remember to prepare the directory for the next major Ansible release. How to do this is described in [Setting up for a -new major release](new-ansible-and-freezes.md#setting-up-for-a-new-major-release). +new major release](new-ansible.md#setting-up-for-a-new-major-release). diff --git a/docs/new-ansible-and-freezes.md b/docs/new-ansible-and-freezes.md deleted file mode 100644 index a50dca7f40..0000000000 --- a/docs/new-ansible-and-freezes.md +++ /dev/null @@ -1,165 +0,0 @@ -# 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](release-process.md). - -## 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`. - -1. Determine the current major version and next major version - - ``` sh - CURRENT_MAJOR_VERSION=9 - NEXT_MAJOR_VERSION=10 - ``` - -2. Create the major version directory - - ``` sh - mkdir "${NEXT_MAJOR_VERSION}/" - ``` - -3. Copy over the `ansible.in` and `collection-meta.yaml` files - - ``` sh - cp "${CURRENT_MAJOR_VERSION}/ansible.in" "${CURRENT_MAJOR_VERSION}/collection-meta.yaml" \ - "${NEXT_MAJOR_VERSION}/" - ``` - -4. Symlink `${CURRENT_MAJOR_VERSION}.0.0`'s deps file to - `${NEXT_MAJOR_VERSION}/ancestor.deps` - - ``` sh - ln -sr "${CURRENT_MAJOR_VERSION}/ansible-${CURRENT_MAJOR_VERSION}.0.0.deps" \ - "${NEXT_MAJOR_VERSION}/ancestor.deps" - ``` - -5. Create a stub `changelog.yaml` file - - ``` sh - cat <${NEXT_MAJOR_VERSION}/changelog.yaml - --- - ancestor: ${CURRENT_MAJOR_VERSION}.0.0 - releases: {} - EOF - ``` - -6. Create a blank `validate-tags-ignores` file - - ``` sh - touch "${NEXT_MAJOR_VERSION}/validate-tags-ignores" - ``` - -7. Create a blank `ansible-${NEXT_MAJOR_VERSION}.constraints` file - - ``` sh - touch "${NEXT_MAJOR_VERSION}/ansible-${NEXT_MAJOR_VERSION}.constraints" - ``` - - You might need to fill this with some initial data. - -8. Add the next major version to ansible-build-data's CI - - Open `.github/workflows/antsibull-build.yml` and the following block to the - matrix: - - ``` yaml - - name: Ansible ${NEXT_MAJOR_VERSION} - ansible_version: ${NEXT_MAJOR_VERSION}.99.0 - ansible_major_version: ${NEXT_MAJOR_VERSION} - ``` - -9. Commit the changes - - ``` sh - git add "${NEXT_MAJOR_VERSION}" .github/workflows/antsibull-build.yml - ``` - -10. Submit a PR against ansible-build-data - - -## Freeze release - - - -Beyond the regular [Ansible Release Process](release-process.md), X.Y.0 -releases require special handling before running the release playbook. - -!!! note - This can be done in a simpler fashion when using the [automated release - process](automated-process.md). See the regular automated workflow for - versions up to rc1, and the [Special builds](automated-process.md#special-builds) - section for further release candidates and for the final major release. - -1. Determine the previous and the current releases - - ``` sh - MAJOR_VERSION=9 - VERSION=9.0.0 - PREVIOUS_VERSION=9.0.0rc1 - ``` - -2. Set up your Git clones and release venv as outlined in the [Ansible Release Process](release-process.md) document. - -3. Copy over the previous release's deps and galaxy files. - - ``` sh - cp "ansible-${PREVIOUS_VERSION}.yaml" "ansible-${VERSION}.yaml" - cp "ansible-${PREVIOUS_VERSION}.deps" "ansible-${VERSION}.deps" - ``` - -4. Edit the current ansible version in the deps file - - ``` sh - sed -i "s|^_ansible_version:.*$|_ansible_version: ${VERSION}|" \ - "ansible-${VERSION}.deps" - ``` - -5. Add a changelog entry for the new release - - Open `${MAJOR_VERSION}/changelog.yaml` and the following block to the - releases table: - - ``` yaml - ${VERSION}: - changes: - release_summary: 'Release Date: ${RELEASE_DATE} - - - `Porting Guide `_' - release_date: '${RELEASE_DATE}' - ``` - - The release date should be formatted as `YYYY-MM-DD`. - -6. 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. - -7. Generate the tags data file - - ``` sh - antsibull-build validate-tags \ - --data-dir . \ - --ignores-file validate-tags-ignores \ - --output "ansible-${VERSION}-tags.yaml" \ - "${VERSION}" - ``` - -8. Run the the release playbook as outlined in [Ansible Release Process](release-process.md). - Make sure to use pass `-e antsibull_data_reset=false` to preserve the - ansible-build-data modifications. diff --git a/docs/new-ansible.md b/docs/new-ansible.md new file mode 100644 index 0000000000..26db36a776 --- /dev/null +++ b/docs/new-ansible.md @@ -0,0 +1,86 @@ +# 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](release-process.md). + +## 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`. + +1. Determine the current major version and next major version + + ``` sh + CURRENT_MAJOR_VERSION=9 + NEXT_MAJOR_VERSION=10 + ``` + +2. Create the major version directory + + ``` sh + mkdir "${NEXT_MAJOR_VERSION}/" + ``` + +3. Copy over the `ansible.in` and `collection-meta.yaml` files + + ``` sh + cp "${CURRENT_MAJOR_VERSION}/ansible.in" "${CURRENT_MAJOR_VERSION}/collection-meta.yaml" \ + "${NEXT_MAJOR_VERSION}/" + ``` + +4. Symlink `${CURRENT_MAJOR_VERSION}.0.0`'s deps file to + `${NEXT_MAJOR_VERSION}/ancestor.deps` + + ``` sh + ln -sr "${CURRENT_MAJOR_VERSION}/ansible-${CURRENT_MAJOR_VERSION}.0.0.deps" \ + "${NEXT_MAJOR_VERSION}/ancestor.deps" + ``` + +5. Create a stub `changelog.yaml` file + + ``` sh + cat <${NEXT_MAJOR_VERSION}/changelog.yaml + --- + ancestor: ${CURRENT_MAJOR_VERSION}.0.0 + releases: {} + EOF + ``` + +6. Create a blank `validate-tags-ignores` file + + ``` sh + touch "${NEXT_MAJOR_VERSION}/validate-tags-ignores" + ``` + +7. Create a blank `ansible-${NEXT_MAJOR_VERSION}.constraints` file + + ``` sh + touch "${NEXT_MAJOR_VERSION}/ansible-${NEXT_MAJOR_VERSION}.constraints" + ``` + + You might need to fill this with some initial data. + +8. Add the next major version to ansible-build-data's CI + + Open `.github/workflows/antsibull-build.yml` and the following block to the + matrix: + + ``` yaml + - name: Ansible ${NEXT_MAJOR_VERSION} + ansible_version: ${NEXT_MAJOR_VERSION}.99.0 + ansible_major_version: ${NEXT_MAJOR_VERSION} + ``` + +9. Commit the changes + + ``` sh + git add "${NEXT_MAJOR_VERSION}" .github/workflows/antsibull-build.yml + ``` + +10. Submit a PR against ansible-build-data diff --git a/mkdocs.yml b/mkdocs.yml index 3f99966300..eb874ead51 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -30,4 +30,4 @@ nav: - Automated Ansible Release Process: automated-process.md - Manual Ansible Release Process: release-process.md - policies.md - - new-ansible-and-freezes.md + - new-ansible.md