Fedora Final Release
Update FedoraPreviousPrevious.yaml
in ansible repository
Set the variable to True in ansible repository.
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
-
cloud-updates: Remove the commented version and append a new entry for 41.
-
container-updates: Remove the commented version and append a new entry for 41.
-
Update FedoraCycleNumber to 41.
-
Update FedoraBranchedBodhi to current.
-
Set FedoraPreviousPrevious to True.
-
Update The container sync script’s
current_stable
variable. (see Example) -
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:
-
Release Version: This is the numerical version number of the release, for example, 41.
-
ComposeID: The ID associated with the Compose, such as "Fedora-41-20160614.0".
-
Label: The label used for the location in stage, for example, "Compsoe label for the location in stage 39_RC-1.2."
-
Key: The name of the release key, which can be "fedora-41" or "fedora-41-secondary," as examples.
-
Prerelease: Set this to 0 or 1 to determine if the release should be placed in a testing environment or not.
-
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
-
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
Check Bodhi for active releases and set respective EOL date. It’s important to have an EOL date set, because it serves for other scripts to distinguish between stable and branched releases.
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'"
Want to help? Learn how to contribute to Fedora Docs ›