Fedora Final Release

Update FedoraPreviousPrevious.yaml in ansible repository

Set the variable to True in ansible repository.

Koji changes

$ koji edit-tag --lock f41

Bodhi Changes

Set the bodhi release to current

$ bodhi releases edit --name F41 --state current

Set the bodhi stable tag to point to updates instead of base repo

$ bodhi releases edit --name F41 --stable-tag f41-updates

Set EOL of oldest release to corret date

$ bodhi releases edit --name F39 --eol YYYY-MM-DD
$ bodhi releases edit --name F39C --eol YYYY-MM-DD
$ bodhi releases edit --name F39F --eol YYYY-MM-DD
$ bodhi releases edit --name F39M --eol YYYY-MM-DD

Atomic desktops changes

Run the releng scripts/update_ostree_refs.sh on a compose machine with /mnt/koji/ mounted.

$ scripts/update_ostree_refs.sh 41

This updates the refs for Atomic desktops to have users follow updates for the new release rather than being stuck on the GA compose forever.

Ansible Changes

Disable Branched Compose

Now that we have a final GOLD compose, we dont need nightly branched composes anymore. This is disabled in releng role in infra ansible repo and then running the playbook.

$ sudo rbac-playbook groups/releng-compose.yml

Lift RelEng freeze

Lift the RelEng Freeze so that the updates will be pushed to stable. This is done by editing RelEngFrozen variable in infra ansible repo and then run the bodhi playbook.

$ sudo rbac-playbook groups/bodhi-backend.yml

Update Release Versions

In pungi.rpm.conf.j2 we need to check that the release.version_int should be now pointing to 42 for all the artifacts that compose location is going to be under /compose/branched/. For the reference pungi.rpm.conf.j2 check.

Update releng roles updates

  1. cloud-updates: Remove the commented version and append a new entry for 41.

  2. container-updates: Remove the commented version and append a new entry for 41.

  3. Update FedoraCycleNumber to 41.

  4. Update FedoraBranchedBodhi to current.

  5. Set FedoraPreviousPrevious to True.

  6. Update The container sync script’s current_stable variable. (see Example)

  7. Update The ostree container sync script’s current_stable variable. (see Example)

For the references, checkout this PR.

Final Container Release

On the GA date run the sync-latest-container-base-image.sh and sync-ostree-base-containers.sh

$ scripts/sync-latest-container-base-image.sh 41
$ scripts/sync-ostree-base-containers.sh 41

Stage Final Release for Mirrors

To prepare for running the staging script, make sure you have the following information:

  1. Release Version: This is the numerical version number of the release, for example, 41.

  2. ComposeID: The ID associated with the Compose, such as "Fedora-41-20160614.0".

  3. Label: The label used for the location in stage, for example, "Compsoe label for the location in stage 39_RC-1.2."

  4. Key: The name of the release key, which can be "fedora-41" or "fedora-41-secondary," as examples.

  5. Prerelease: Set this to 0 or 1 to determine if the release should be placed in a testing environment or not.

  6. Arch (Optional): For secondary architectures, this parameter can be used to make changes to some internal locations.

    $ scripts/stage-release.sh 41 Fedora-41-20160614.0 41_RC-1.2 fedora-41 0
  7. Sync the release to the Red Hat internal archive following internally documented

Make sure to grab the directory size usage numbers which is used to send an email to mirror-admin@lists.fedoraproject.org list.

Check and set EOL on previous releases to reflect reality

  1. check PDC for active releases and respective EOL date

  2. if needed run the adjust-eol-all.py script from releng repository to correct any mistakes

Make sure there are no tagging leftovers from bodhi

Sometimes builds are not properly tagged during the freeze process. Make sure all builds are properly tagged, for more info about the [issue](https://pagure.io/releng/issue/11775)

Verification

Verification is somewhat difficult as one cannot look at the content via the web server due to permissions. Typically we ask somebody from the Infrastructure team to give the tree a second set of eyes.

Post Release

One Week After the Release

In the first week after the release MirrorManager still uses the files at fedora/linux/development/<version> and not at fedora/linux/releases/<version>

Once enough mirrors have picked up the files in the release directory, run the following playbook from batcave to change the paths in MirrorManager:

$ rbac-playbook -v /srv/web/infra/ansible/playbooks/manual/mirrormanager/move-devel-to-release.yml --extra-vars="version='42'"