infra-docs-fpo/modules/release_guide/pages/final_release.adoc

137 lines
5.3 KiB
Text
Raw Permalink Normal View History

include::_partials/attributes.adoc[]
2023-08-16 13:13:26 +02:00
= Fedora Final Release
2023-08-16 13:13:26 +02:00
== Koji changes
[source,subs="attributes+"]
....
$ koji edit-tag --lock f{branched}
....
2023-08-16 13:13:26 +02:00
== Bodhi Changes
Set the bodhi release to `current`
[source,subs="attributes+"]
....
$ bodhi releases edit --name F{branched} --state current
$ bodhi releases edit --name F{branched}F --state current
....
Set the bodhi stable tag to point to updates instead of base repo
[source,subs="attributes+"]
....
$ bodhi releases edit --name F{branched} --stable-tag f{branched}-updates
....
Set EOL of oldest release to correct date: four weeks after the official release date of {branched}.
[source,subs="attributes+"]
....
$ bodhi releases edit --name F{old_release} --eol YYYY-MM-DD
$ bodhi releases edit --name F{old_release}C --eol YYYY-MM-DD
$ bodhi releases edit --name F{old_release}F --eol YYYY-MM-DD
....
If this date is different from the one in the https://fedorapeople.org/groups/schedule/f-{old_release}/f-{old_release}-key-tasks.html[Fedora schedule],
ask the program manager to update the date in the schedule.
If it is different from the one in F{old_release}'s `/etc/os-release`, https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&format&component=fedora-release&version=40[file a bug against fedora-release] asking for it to be updated.
You may also wish to check the current EOL estimates for other releases on Bodhi, the schedule, and fedora-release,
and make sure they are in sync and sensible.
== Atomic desktops changes
Run the releng scripts/update_ostree_refs.sh on a compose machine with /mnt/koji/ mounted.
$ scripts/update_ostree_refs.sh {branched}
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
=== Update releng roles updates
. Set https://pagure.io/fedora-infra/ansible/blob/main/f/vars/all/00-FedoraCycleNumber.yaml[FedoraCycleNumber] to {branched}.
. Set https://pagure.io/fedora-infra/ansible/blob/main/f/vars/all/FedoraBranchedBodhi.yaml[FedoraBranchedBodhi] to current.
. Set https://pagure.io/fedora-infra/ansible/blob/main/f/vars/all/FedoraPreviousPrevious.yaml[FedoraPreviousPrevious] to True.
. Set https://pagure.io/fedora-infra/ansible/blob/main/f/vars/all/FedoraBranched.yaml[FedoraBranched] to False.
Updates and cleanups for release process docs This started out as a small change to drop references to RelEngFrozen and clean up references to Frozen, but it got... bigger. We drop the sop_bodhi_activation page entirely (it is redundant with the beta_freeze page, but worse). We change the variable updated at freeze and release points to always be `NextReleaseFrozen`, which is introduced in https://pagure.io/fedora-infra/ansible/pull-request/2481 and meant to have the same meaning as `RelEngFrozen` but be more accurately named (as it's only one release that freezes, not all of releng). We extend the Fedora Release Infrastructure SOP page to document starting and ending the infra freeze, and updating the appropriate ansible variable. beta_freeze page changes: * General style/grammar cleanups * s/Bodhi activation point/updates-testing activation point/g * Clarify that freeze and u-t activation are distinct events * Drop an obsolete warning and steps related to a now-fixed Bodhi bug * Clarify and standardize ansible variable changes * Correct the list of playbooks to be run (koji-hub is needed as it depends on `Frozen`, the removed ones are not needed) * Move the body of the email announcement into the SOP so the release number can be templated (this is now consistent with final_freeze) * Simplify stable push instructions * Drop fedora-beta.conf creation - duplicated with beta_RC_compose * Drop incorrect text from Consider Before Running section beta_release page changes: * General style/grammar cleanups * Clarify and standardize ansible variable changes * Correct playbooks (add koji-hub), move to logical place in order final_freeze page changes: * Clarify and standardize ansible variable changes * Fix empty 'Process stable push requests' section final_release page changes: * Clarify and standardize ansible variable changes * Drop pungi.rpm.conf.j2 changes - depends on: https://pagure.io/fedora-infra/ansible/pull-request/2471 * Add multiple missing playbook executions * Update the reference PR to F41 sop_mass_branching changes: * Correct the list of playbooks to be run - both Bodhi playbooks are needed, MBS is gone, and there's a stray $ sign in one Signed-off-by: Adam Williamson <awilliam@redhat.com>
2025-02-13 12:16:43 -08:00
. Set https://pagure.io/fedora-infra/ansible/blob/main/f/vars/all/Frozen.yaml[NextReleaseFrozen] to False.
Now run the relevant playbooks:
....
Updates and cleanups for release process docs This started out as a small change to drop references to RelEngFrozen and clean up references to Frozen, but it got... bigger. We drop the sop_bodhi_activation page entirely (it is redundant with the beta_freeze page, but worse). We change the variable updated at freeze and release points to always be `NextReleaseFrozen`, which is introduced in https://pagure.io/fedora-infra/ansible/pull-request/2481 and meant to have the same meaning as `RelEngFrozen` but be more accurately named (as it's only one release that freezes, not all of releng). We extend the Fedora Release Infrastructure SOP page to document starting and ending the infra freeze, and updating the appropriate ansible variable. beta_freeze page changes: * General style/grammar cleanups * s/Bodhi activation point/updates-testing activation point/g * Clarify that freeze and u-t activation are distinct events * Drop an obsolete warning and steps related to a now-fixed Bodhi bug * Clarify and standardize ansible variable changes * Correct the list of playbooks to be run (koji-hub is needed as it depends on `Frozen`, the removed ones are not needed) * Move the body of the email announcement into the SOP so the release number can be templated (this is now consistent with final_freeze) * Simplify stable push instructions * Drop fedora-beta.conf creation - duplicated with beta_RC_compose * Drop incorrect text from Consider Before Running section beta_release page changes: * General style/grammar cleanups * Clarify and standardize ansible variable changes * Correct playbooks (add koji-hub), move to logical place in order final_freeze page changes: * Clarify and standardize ansible variable changes * Fix empty 'Process stable push requests' section final_release page changes: * Clarify and standardize ansible variable changes * Drop pungi.rpm.conf.j2 changes - depends on: https://pagure.io/fedora-infra/ansible/pull-request/2471 * Add multiple missing playbook executions * Update the reference PR to F41 sop_mass_branching changes: * Correct the list of playbooks to be run - both Bodhi playbooks are needed, MBS is gone, and there's a stray $ sign in one Signed-off-by: Adam Williamson <awilliam@redhat.com>
2025-02-13 12:16:43 -08:00
$ sudo rbac-playbook groups/koji-hub.yml
$ sudo rbac-playbook groups/releng-compose.yml
Updates and cleanups for release process docs This started out as a small change to drop references to RelEngFrozen and clean up references to Frozen, but it got... bigger. We drop the sop_bodhi_activation page entirely (it is redundant with the beta_freeze page, but worse). We change the variable updated at freeze and release points to always be `NextReleaseFrozen`, which is introduced in https://pagure.io/fedora-infra/ansible/pull-request/2481 and meant to have the same meaning as `RelEngFrozen` but be more accurately named (as it's only one release that freezes, not all of releng). We extend the Fedora Release Infrastructure SOP page to document starting and ending the infra freeze, and updating the appropriate ansible variable. beta_freeze page changes: * General style/grammar cleanups * s/Bodhi activation point/updates-testing activation point/g * Clarify that freeze and u-t activation are distinct events * Drop an obsolete warning and steps related to a now-fixed Bodhi bug * Clarify and standardize ansible variable changes * Correct the list of playbooks to be run (koji-hub is needed as it depends on `Frozen`, the removed ones are not needed) * Move the body of the email announcement into the SOP so the release number can be templated (this is now consistent with final_freeze) * Simplify stable push instructions * Drop fedora-beta.conf creation - duplicated with beta_RC_compose * Drop incorrect text from Consider Before Running section beta_release page changes: * General style/grammar cleanups * Clarify and standardize ansible variable changes * Correct playbooks (add koji-hub), move to logical place in order final_freeze page changes: * Clarify and standardize ansible variable changes * Fix empty 'Process stable push requests' section final_release page changes: * Clarify and standardize ansible variable changes * Drop pungi.rpm.conf.j2 changes - depends on: https://pagure.io/fedora-infra/ansible/pull-request/2471 * Add multiple missing playbook executions * Update the reference PR to F41 sop_mass_branching changes: * Correct the list of playbooks to be run - both Bodhi playbooks are needed, MBS is gone, and there's a stray $ sign in one Signed-off-by: Adam Williamson <awilliam@redhat.com>
2025-02-13 12:16:43 -08:00
$ sudo rbac-playbook openshift-apps/bodhi.yml
$ sudo rbac-playbook groups/bodhi-backend.yml
$ sudo rbac-playbook openshift-apps/greenwave.yml
$ sudo rbac-playbook groups/openqa.yml -t testcase_stats
....
Updates and cleanups for release process docs This started out as a small change to drop references to RelEngFrozen and clean up references to Frozen, but it got... bigger. We drop the sop_bodhi_activation page entirely (it is redundant with the beta_freeze page, but worse). We change the variable updated at freeze and release points to always be `NextReleaseFrozen`, which is introduced in https://pagure.io/fedora-infra/ansible/pull-request/2481 and meant to have the same meaning as `RelEngFrozen` but be more accurately named (as it's only one release that freezes, not all of releng). We extend the Fedora Release Infrastructure SOP page to document starting and ending the infra freeze, and updating the appropriate ansible variable. beta_freeze page changes: * General style/grammar cleanups * s/Bodhi activation point/updates-testing activation point/g * Clarify that freeze and u-t activation are distinct events * Drop an obsolete warning and steps related to a now-fixed Bodhi bug * Clarify and standardize ansible variable changes * Correct the list of playbooks to be run (koji-hub is needed as it depends on `Frozen`, the removed ones are not needed) * Move the body of the email announcement into the SOP so the release number can be templated (this is now consistent with final_freeze) * Simplify stable push instructions * Drop fedora-beta.conf creation - duplicated with beta_RC_compose * Drop incorrect text from Consider Before Running section beta_release page changes: * General style/grammar cleanups * Clarify and standardize ansible variable changes * Correct playbooks (add koji-hub), move to logical place in order final_freeze page changes: * Clarify and standardize ansible variable changes * Fix empty 'Process stable push requests' section final_release page changes: * Clarify and standardize ansible variable changes * Drop pungi.rpm.conf.j2 changes - depends on: https://pagure.io/fedora-infra/ansible/pull-request/2471 * Add multiple missing playbook executions * Update the reference PR to F41 sop_mass_branching changes: * Correct the list of playbooks to be run - both Bodhi playbooks are needed, MBS is gone, and there's a stray $ sign in one Signed-off-by: Adam Williamson <awilliam@redhat.com>
2025-02-13 12:16:43 -08:00
If you do not have permissions to run a playbook, ask a sysadmin-main member for help.
A sysadmin-qa member can run the openQA playbook.
For reference, see the https://pagure.io/fedora-infra/ansible/c/7e501dcb9432885c9ef10e78c0418b0d40c85061[Fedora 41 release PR],
though note it is somewhat old and includes some things that are no longer needed, and leaves out some that should be done.
2023-08-16 13:13:26 +02:00
== 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, {branched}.
. ComposeID: The ID associated with the Compose, such as "Fedora-{branched}-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-{branched}" or "fedora-{branched}-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.
+
[source,subs="attributes+"]
....
$ scripts/stage-release.sh {branched} Fedora-{branched}-20160614.0 {branched}_RC-1.2 fedora-{branched} 0
....
. Sync the release to the Red Hat internal archive following internally
documented
[NOTE]
====
Make sure to grab the directory size usage numbers which is used to send
an email to [.title-ref]#mirror-admin@lists.fedoraproject.org# list.
====
== 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)
2023-08-16 13:13:26 +02:00
== 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.
Some things to check for:
. are the CHECKSUM files signed?
. are the spins/labs present?
== 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:
[source,subs="attributes+"]
....
$ rbac-playbook -v /srv/web/infra/ansible/playbooks/manual/mirrormanager/move-devel-to-release.yml --extra-vars="version='42'"
....