From 9c3c11965a022c0144996c717470c3b510ac06bf Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Thu, 13 Feb 2025 12:16:43 -0800 Subject: [PATCH] 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 --- modules/ROOT/nav.adoc | 3 +- modules/release_guide/pages/beta_freeze.adoc | 133 ++++++++---------- modules/release_guide/pages/beta_release.adoc | 27 ++-- modules/release_guide/pages/final_freeze.adoc | 27 ++-- .../release_guide/pages/final_release.adoc | 29 ++-- .../pages/sop_bodhi_activation.adoc | 120 ---------------- .../pages/sop_mass_branching.adoc | 6 +- .../sysadmin_guide/pages/fedora-releases.adoc | 100 ++++++++++++- 8 files changed, 196 insertions(+), 249 deletions(-) delete mode 100644 modules/release_guide/pages/sop_bodhi_activation.adoc diff --git a/modules/ROOT/nav.adoc b/modules/ROOT/nav.adoc index 05617c7..7db8ae4 100644 --- a/modules/ROOT/nav.adoc +++ b/modules/ROOT/nav.adoc @@ -41,8 +41,7 @@ *** xref:release_guide:sop_file_ftbfs.adoc[File FTBFS bugs] *** xref:release_guide:mass_branching_checklist.adoc[Mass Branching Checklist] *** xref:release_guide:sop_mass_branching.adoc[Mass Branching] -*** xref:release_guide:sop_bodhi_activation.adoc[Updates testing activation] -*** xref:release_guide:beta_freeze.adoc[Beta freeze] +*** xref:release_guide:beta_freeze.adoc[Beta freeze and updates-testing activation] *** xref:release_guide:beta_RC_compose.adoc[Beta RC compose] *** xref:release_guide:beta_release.adoc[Beta release] *** xref:release_guide:final_freeze.adoc[Final freeze] diff --git a/modules/release_guide/pages/beta_freeze.adoc b/modules/release_guide/pages/beta_freeze.adoc index 43d6e8d..a841f7d 100644 --- a/modules/release_guide/pages/beta_freeze.adoc +++ b/modules/release_guide/pages/beta_freeze.adoc @@ -1,12 +1,12 @@ include::_partials/attributes.adoc[] -= Beta freeze and Bodhi Activation Point += Beta freeze and updates-testing activation point == Description -Bodhi must be activated after two weeks of -https://docs.pagure.org/releng/sop_mass_branching.html[Mass Branching] -at 14:00 UTC. +This SOP covers two distinct events that happen at the same time. Two weeks after +https://docs.pagure.org/releng/sop_mass_branching.html[Mass Branching], at 14:00 UTC, the Beta freeze is imposed, +and use of updates-testing is enabled for the new release. == Action @@ -27,70 +27,78 @@ $ koji add-tag-inheritance f{branched}-override f{branched}-updates $ koji edit-tag --perm=admin f{branched} .... -=== Update bodhi rpm release - -Set the bodhi rpm to release to not to automatically create the update -and also bodhi knows to compose the updates +=== Bodhi configuration +Configure Bodhi to create composes, not to automatically create updates, and to be frozen. [source,subs="attributes+"] .... $ bodhi releases edit --name "F{branched}" --stable-tag f{branched} --testing-repository updates-testing --package-manager dnf --no-create-automatic-updates --composed-by-bodhi --state frozen .... -[WARNING] -==== -Due to a https://github.com/fedora-infra/bodhi/issues/2177[bug] in -Bodhi, it is critical that Bodhi processes be restarted any time -`bodhi releases create` or `bodhi releases edit` are used. -==== - [NOTE] ==== Add the container and flatpak releases if they weren't already added to bodhi ==== -=== Update vars +=== Update Ansible vars -Update the _FedoraBranchedBodhi_ and _RelEngFrozen_ vars in infra -ansible - -=== Update all relevant projects in ansible -As in https://pagure.io/fedora-infra/ansible/pull-request/1327[this Ansible Pull request] create changes for the {branched} release +Set the infra ansible https://pagure.io/fedora-infra/ansible/blob/main/f/vars/all/FedoraBranchedBodhi.yaml[_FedoraBranchedBodhi_ variable] to `prebeta` +and the https://pagure.io/fedora-infra/ansible/blob/main/f/vars/all/Frozen.yaml[_NextReleaseFrozen_ variable] to `True`. === Run the playbooks .... -$ rbac-playbook openshift-apps/greenwave.yml $ rbac-playbook openshift-apps/bodhi.yml $ rbac-playbook groups/bodhi-backend.yml -$ rbac-playbook groups/releng-compose.yml -$ rbac-playbook manual/autosign.yml -.... - -Greenwave runs in OpenShift (as implied by the playbook paths), and so -the change will not be live right away when the playbook finishes. You -can monitor -https://greenwave-web-greenwave.app.os.fedoraproject.org/api/v1.0/policies -to wait for the new policy to appear (it should take a few minutes). - -==== Restart bodhi services - -Restart bodhi services to understand the bodhi new release on -bodhi-backend01 (Look at warning in -https://docs.pagure.org/releng/sop_bodhi_activation.html#action and the -bug is https://github.com/fedora-infra/bodhi/issues/2177) - -.... -$ sudo systemctl restart bodhi-celery -$ sudo systemctl restart fm-consumer@config -$ sudo systemctl restart koji-sync-listener +$ rbac-playbook groups/koji-hub.yml .... === Send Announcement -Email *devel-announce* and *test-announce* lists about Bodhi Activation. -Please find the body of the email in templates dir in https://pagure.io/releng/blob/main/f/mail-templates/04-beta-freeze.txt[releng repository] +Email *devel-announce* and *test-announce* lists about Beta freeze and updates-testing activation. + +[source,subs="attributes+"] +.... +Hi all, + +Today's an important day on the Fedora Linux {branched} schedule [1], with +several significant cut-offs. First of all, today is the Bodhi +updates-testing activation point [2]. That means that from now all +Fedora Linux {branched} packages must be submitted to updates-testing and pass +the relevant requirements [3] before they will be marked as 'stable' and +moved to the Fedora Repository. + +Today is also the Beta freeze [4]. This means that only packages which +fix accepted blocker or freeze exception bugs [5][6] will be marked as +'stable' and included in the Beta composes. Other builds will remain in +updates-testing until the Beta release is approved, at which point the +Beta freeze is lifted and packages can move to 'stable' as usual until +the Final freeze. + +Today is also the Software String freeze [7], which means that strings +marked for translation in Fedora-translated projects should not now be +changed for Fedora Linux {branched}. + +Finally, today is the 'completion deadline' Change Checkpoint [8], +meaning that Fedora Linux {branched} Changes must now be 'feature complete or +close enough to completion that a majority of its functionality can be +tested'. All tracking bugs should be on ON_QA state or later to reflect +this. + +Regards, +Fedora Release Engineering + +[1] https://fedorapeople.org/groups/schedule/f-{branched}/f-{branched}-key-tasks.html +[2] https://fedoraproject.org/wiki/Updates_Policy#Bodhi_enabling +[3] https://fedoraproject.org/wiki/Updates_Policy#Branched_release +[4] https://fedoraproject.org/wiki/Milestone_freezes +[5] https://fedoraproject.org/wiki/QA:SOP_blocker_bug_process +[6] https://fedoraproject.org/wiki/QA:SOP_freeze_exception_bug_process +[7] https://fedoraproject.org/wiki/ReleaseEngineering/StringFreezePolicy +[8] https://fedoraproject.org/wiki/Changes/Policy + +.... === Verification @@ -111,38 +119,17 @@ $ bodhi releases info {branched} $ bodhi releases info {current} .... -Check for other variants like container and flatpaks +Check for other variants like container and flatpaks. -== Within the beta freeze +== During the Beta freeze === Process stable push requests -During freezes we need to push to stable builds included in the compose. -QA will file a ticket with the nvrs to push. - -[NOTE] -==== -If you are pushing a bodhi update that contains multiple builds, you -need only pass bodhi-push a single build nvr and all the others in that -update will be detected and pushed along with it. However, if you are -pushing multiple disjoint bodhi updates then each build will need to be -listed individually. -==== - -.... -$ sudo -u apache bodhi-push --builds ',,...' --username -.... - -=== Creating fedora-beta.conf - -Everytime we go in beta freeze, we need to generate a `fedora-beta.conf` in order to make the beta, this should be created in the branched f{branched}; For now, this process is done manually by copying refrences from fedora.conf, and making sure below references are updated for the beta. For the references, please check the https://pagure.io/pungi-fedora/pull-request/1243[f40 beta PR]. - -- release-candidate.sh --- Update references for COMPSFILE and RELEASE to point to correct {branched} version. - +During freezes we need to push updates that fix blocker and freeze exception +issues to stable when requested. +QA will file a ticket with the updates to push, which will include the +appropriate command(s). Verify the command(s) and run them. == Consider Before Running -No considerations at this time. The docs git repository is simply a -static html hosting space and we can just re-render the docs and push to -it again if necessary. +FIXME diff --git a/modules/release_guide/pages/beta_release.adoc b/modules/release_guide/pages/beta_release.adoc index f4e6f10..47d5e7c 100644 --- a/modules/release_guide/pages/beta_release.adoc +++ b/modules/release_guide/pages/beta_release.adoc @@ -55,18 +55,19 @@ Replace the RC above with the RC that was 'go' $ bodhi releases edit --name F{branched} --state pending .... -== Lift RelEng freeze +=== Update Ansible vars -Lift the RelEng Freeze so that the updates will be pushed to stable. -This is done by editing -https://infrastructure.fedoraproject.org/cgit/ansible.git/tree/vars/all/RelEngFrozen.yaml[RelEngFrozen -variable] in infra ansible repo. +Set the infra ansible https://pagure.io/fedora-infra/ansible/blob/main/f/vars/all/FedoraBranchedBodhi.yaml[_FedoraBranchedBodhi_ variable] to `postbeta` +and the https://pagure.io/fedora-infra/ansible/blob/main/f/vars/all/Frozen.yaml[_NextReleaseFrozen_ variable] to `False`. -Set also https://infrastructure.fedoraproject.org/cgit/ansible.git/tree/vars/all/FedoraBranchedBodhi.yaml[FedoraBranchedBodhi variable] to postbeta +== Run the playbooks -Then run both bodhi playbooks: -playbooks/groups/bodhi-backend01.yml and playbooks/openshift-apps/bodhi.yml -(One for the backend vm and one for the OpenShift application) +.... +$ sudo rbac-playbook groups/releng-compose.yml +$ sudo rbac-playbook groups/bodhi-backend.yml +$ sudo rbac-playbook openshift-apps/bodhi.yml +$ sudo rbac-playbook groups/koji-hub.yml +.... == Beta Installation and Cleanup @@ -85,11 +86,3 @@ $ rm -rf /pub/fedora/linux/releases/test/{branched}_Beta Note that {branched} should be replaced with the name of the beta release, such as 36_Beta, 37_Beta, etc. By following these steps, one can ensure that older copies of Fedora betas are removed from the servers and that the correct permissions are set on the directories. - -== Run the playbooks - -.... -$ sudo rbac-playbook groups/releng-compose.yml -$ sudo rbac-playbook groups/bodhi-backend.yml -$ sudo rbac-playbook openshift-apps/bodhi.yml -.... diff --git a/modules/release_guide/pages/final_freeze.adoc b/modules/release_guide/pages/final_freeze.adoc index f88394b..edcbd9e 100644 --- a/modules/release_guide/pages/final_freeze.adoc +++ b/modules/release_guide/pages/final_freeze.adoc @@ -34,20 +34,18 @@ Before freezing everything we need to do the last stable push in bodhi. $ sudo -u apache bodhi-push --releases --stable 'f{branched}' .... -== Ansible changes +== Update Ansible vars -Freeze is enabled by editing -https://pagure.io/fedora-infra/ansible/blob/main/f/vars/all/RelEngFrozen.yaml[RelEngFrozen -variable] in infra ansible repo and then run the bodhi playbook. -This playbook should be executed on the 'batcave01' machine. Please note that the 'rbac-playbook' command utilizes role-based access control (RBAC) and verifies that you are in the correct group with the necessary privileges. If you meet these requirements, you can run the playbook without needing root access. +Set the https://pagure.io/fedora-infra/ansible/blob/main/f/vars/all/Frozen.yaml[_NextReleaseFrozen_ variable] to `True`. + +=== Run the playbook -[source,subs="attributes+"] -.... -$ ssh batcave01.iad2.fedoraproject.org -$ sudo rbac-playbook groups/bodhi-backend.yml .... -== Update bodhi release +$ rbac-playbook groups/koji-hub.yml +.... + +== Update Bodhi release [source,subs="attributes+"] .... @@ -91,5 +89,12 @@ Fedora Release Engineering Please ensure that the reminder email is sent once the state becomes frozen. ==== +== During the Final freeze + +=== Process stable push requests + +During freezes we need to push updates that fix blocker and freeze exception +issues to stable when requested. +QA will file a ticket with the updates to push, which will include the +appropriate command(s). Verify the command(s) and run them. -== Process stable push requests diff --git a/modules/release_guide/pages/final_release.adoc b/modules/release_guide/pages/final_release.adoc index 750a35f..18e7ddd 100644 --- a/modules/release_guide/pages/final_release.adoc +++ b/modules/release_guide/pages/final_release.adoc @@ -44,21 +44,6 @@ for the new release rather than being stuck on the GA compose forever. == Ansible Changes -=== Lift RelEng freeze - -Lift the RelEng Freeze so that the updates will be pushed to stable. -This is done by editing -https://pagure.io/fedora-infra/ansible/blob/main/f/vars/all/RelEngFrozen.yaml[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 {rawhide} for all the artifacts that compose location is going to be under /compose/branched/. For the reference https://pagure.io/fork/jnsamyak/fedora-infra/ansible/c/cf05a84bfd652b264dc74eef29a453a55be565c1[pungi.rpm.conf.j2] check. - === Update releng roles updates . Set https://pagure.io/fedora-infra/ansible/blob/main/f/vars/all/00-FedoraCycleNumber.yaml[FedoraCycleNumber] to {branched}. @@ -69,13 +54,23 @@ In pungi.rpm.conf.j2 we need to check that the release.version_int should be now . Set https://pagure.io/fedora-infra/ansible/blob/main/f/vars/all/FedoraBranched.yaml[FedoraBranched] to False. -Now run the releng-compose playbook: +. Set https://pagure.io/fedora-infra/ansible/blob/main/f/vars/all/Frozen.yaml[NextReleaseFrozen] to False. + +Now run the relevant playbooks: .... +$ sudo rbac-playbook groups/koji-hub.yml $ sudo rbac-playbook groups/releng-compose.yml +$ 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 .... -For the references, checkout this https://pagure.io/fork/jnsamyak/fedora-infra/ansible/c/6d1267970e09f412f1f51a2c203ae64e29e2c4c3[PR], +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. == Stage Final Release for Mirrors diff --git a/modules/release_guide/pages/sop_bodhi_activation.adoc b/modules/release_guide/pages/sop_bodhi_activation.adoc deleted file mode 100644 index 3e1c9a6..0000000 --- a/modules/release_guide/pages/sop_bodhi_activation.adoc +++ /dev/null @@ -1,120 +0,0 @@ -include::_partials/attributes.adoc[] - -= Bodhi Activation Point - -== Description - -Bodhi must be activated after two weeks of -https://docs.pagure.org/releng/sop_mass_branching.html[Mass Branching] -at 14:00 UTC. - -== Action - -=== Making koji changes - -Make the following koji tag changes - -[source,subs="attributes+"] -.... -$ koji remove-tag-inheritance f{branched}-updates-candidate f{branched} -$ koji remove-tag-inheritance f{branched}-updates-testing f{branched} -$ koji remove-tag-inheritance f{branched}-updates-pending f{branched} -$ koji remove-tag-inheritance f{branched}-override f{branched} -$ koji add-tag-inheritance f{branched}-updates-candidate f{branched}-updates -$ koji add-tag-inheritance f{branched}-updates-testing f{branched}-updates -$ koji add-tag-inheritance f{branched}-updates-pending f{branched}-updates -$ koji add-tag-inheritance f{branched}-override f{branched}-updates -$ koji edit-tag --perm=admin f{branched} -.... - -=== Update bodhi rpm release - -Set the bodhi rpm to release to not to automatically create the update -and also bodhi knows to compose the updates - -[source,subs="attributes+"] -.... -$ bodhi releases edit --name "F{branched}" --stable-tag f{branched} --testing-repository updates-testing --package-manager dnf --no-create-automatic-updates --composed-by-bodhi --state frozen -.... - -[WARNING] -==== -Due to a https://github.com/fedora-infra/bodhi/issues/2177[bug] in -Bodhi, it is critical that Bodhi processes be restarted any time -`bodhi releases create` or `bodhi releases edit` are used. -==== - -[NOTE] -==== -Add the container and flatpak releases if they weren't already added to -bodhi -==== - -=== Update vars - -Update the _FedoraBranchedBodhi_ and _RelEngFrozen_ vars in infra -ansible - -=== Update all relevant projects in ansible -As in https://pagure.io/fedora-infra/ansible/pull-request/1327[this Ansible Pull request] create changes for the {branched} release - -=== Run the playbooks - -``` -$ rbac-playbook openshift-apps/greenwave.yml -$ rbac-playbook openshift-apps/bodhi.yml -$ rbac-playbook groups/bodhi-backend.yml -$ rbac-playbook groups/releng-compose.yml -$ rbac-playbook manual/autosign.yml -``` - -Greenwave runs in OpenShift (as implied by the playbook paths), and so -the change will not be live right away when the playbook finishes. You -can monitor -https://greenwave-web-greenwave.app.os.fedoraproject.org/api/v1.0/policies -to wait for the new policy to appear (it should take a few minutes). - -=== Restart bodhi services - -Restart bodhi services to understand the bodhi new release on -bodhi-backend01 (Look at warning in -https://docs.pagure.org/releng/sop_bodhi_activation.html#action and the -bug is https://github.com/fedora-infra/bodhi/issues/2177) - -``` -$ sudo systemctl restart bodhi-celery -$ sudo systemctl restart fm-consumer@config -$ sudo systemctl restart koji-sync-listener -``` - -=== Send Announcement - -Email *devel-announce* and *test-announce* lists about Bodhi Activation. -Please find the body of the email in templates dir in https://pagure.io/releng/blob/main/f/mail-templates/04-beta-freeze.txt[releng repository] - - -=== Verification - -Compare koji tagging structure with older release - -[source,subs="attributes+"] -.... -$ koji list-tag-inheritance {branched} --reverse -$ koji list-tag-inheritance {current} --reverse -.... - -Compare the bodhi release with older release - -[source,subs="attributes+"] -.... -$ bodhi releases info {branched} -$ bodhi releases info {current} -.... - -Check for other variants like container and flatpaks - -== Consider Before Running - -No considerations at this time. The docs git repository is simply a -static html hosting space and we can just re-render the docs and push to -it again if necessary. diff --git a/modules/release_guide/pages/sop_mass_branching.adoc b/modules/release_guide/pages/sop_mass_branching.adoc index 9d45007..790bc94 100644 --- a/modules/release_guide/pages/sop_mass_branching.adoc +++ b/modules/release_guide/pages/sop_mass_branching.adoc @@ -223,15 +223,15 @@ Please check the file `roles/robosignatory/templates/robosignatory.toml.j2` from === Push the changes When done editing the files, commit, push and apply them via the corresponding -ansible playbook: +ansible playbooks: ``` $ sudo rbac-playbook groups/koji-hub.yml $ sudo rbac-playbook groups/releng-compose.yml +$ sudo rbac-playbook openshift-apps/bodhi.yml $ sudo rbac-playbook groups/bodhi-backend.yml $ sudo rbac-playbook openshift-apps/greenwave.yml -$ sudo -i ansible-playbook /srv/web/infra/ansible/playbooks/$ groups/proxies.yml -t pkgdb2 -$ sudo rbac-playbook groups/mbs.yml -t mbs +$ sudo -i ansible-playbook /srv/web/infra/ansible/playbooks/groups/proxies.yml -t pkgdb2 ``` Ask someone in fedora infra to run the robosignatory playbook. diff --git a/modules/sysadmin_guide/pages/fedora-releases.adoc b/modules/sysadmin_guide/pages/fedora-releases.adoc index 5bb3166..434bf05 100644 --- a/modules/sysadmin_guide/pages/fedora-releases.adoc +++ b/modules/sysadmin_guide/pages/fedora-releases.adoc @@ -35,7 +35,7 @@ Don't leak. . Communication with Red Hat IS (Give at least 2 months notice, then reminders as the time comes near) (final release only) -. Infrastructure change freeze +. Announce the start of the infrastructure change freeze, update ansible variable . Modify _Template:FedoraVersion_ to reference new version. (Final release only) @@ -45,8 +45,101 @@ only) . Switch release from development/N to normal releases/N/ tree in mirror manager (post final release only) +. Announce the end of the infrastructure change freeze, update ansible variable + == Change Freeze +=== Starting the infrastructure freeze + +The schedule will list the date the infrastructure freezes should be +imposed (three weeks before the early target release date, for Beta; +two weeks before, for Final). On this date, some hours after the +release freeze goes into effect, set the InfraFrozen variable in +https://pagure.io/fedora-infra/ansible/blob/main/f/vars/all/Frozen.yaml[Frozen.yaml] +to True. Then send out an email to the infrastructure list. The subject +should be "Fedora Freeze now in effect!" +(insert release number and delete milestone as appropriate). The body +should read: + +[source,subs="attributes+"] +.... +Greetings. + +we are now in the infrastructure freeze leading up to the Fedora +Final release. This is a release freeze. + +We do this to ensure that our infrastructure is stable and ready to +release Fedora when it's available. + +You can always check if an infrastructure freeze is in place by +checking the value of the InfraFrozen variable at: +https://pagure.io/fedora-infra/ansible/blob/main/f/vars/all/Frozen.yaml + +You can see a list of hosts that do not freeze by checking out the +ansible repo and running the freezelist script: + +git clone +https://infrastructure.fedoraproject.org/infra/ansible.git +ansible/scripts/freezelist -i inventory + +Any host listed as "freezes" is frozen until (or later if +release slips). Frozen hosts should have no changes made to them without +a sign-off on the change from at least 2 sysadmin-main or rel-eng +members, along with (in most cases) a patch of the exact change to be +made to this list and/or a pull-request to the infra/ansible repo. + +Thanks, +Fedora infrastructure team +.... + +You must make manual edits everywhere you see angle brackets `<>`, +depending on whether this is the Beta or Final infra freeze, and to +insert the appropriate date for the freeze to be lifted. This date +should be one day after the earliest target release date on the +schedule. Replace `` with the appropriate release number. + +The exact timing of the freeze is a little flexible to allow for last- +minute changes. Co-ordinate with the rest of the team on this. If +nothing in particular is pending, aim to send the mail four to six +hours after the release freeze is announced. + +=== Ending the infrastructure freeze + +A day after the release happens, the infrastructure freeze should be +lifted. Do this only after making sure there are no important +outstanding tasks related to the release that should be addressed +before the freeze ends. + +Set the InfraFrozen variable in +https://pagure.io/fedora-infra/ansible/blob/main/f/vars/all/Frozen.yaml[Frozen.yaml] +to False. Then send out an email to the infrastructure list. The +subject should be "Fedora Freeze now over!" +(insert release number and delete milestone as appropriate). The body +should read: + +[source,subs="attributes+"] +.... +With the release of Fedora yesterday, infrastructure freeze is now +over. + +You can always check if an infrastructure freeze is in place by +checking the value of the InfraFrozen variable at: +https://pagure.io/fedora-infra/ansible/blob/main/f/vars/all/Frozen.yaml + +Our next freeze is for Fedora , currently scheduled for +. + +Thanks, +Fedora infrastructure team +.... + +You must make manual edits everywhere you see angle brackets `<>`, +depending on whether this is the Beta or Final infra freeze, and to +insert the appropriate date for the next freeze. Replace `` with +the appropriate release number. + +=== Infrastructure freeze rules + The rules are simple: * Hosts with the ansible variable "freezes" "True" are frozen. @@ -63,11 +156,6 @@ sysadmin-main or sysadmin-releng group members before being applied. * Changes to recover from outages are acceptable to frozen hosts if needed. -Change freezes will be sent to the fedora-infrastructure-list and begin -3 weeks before each release and the final release. The freeze will end -one day after the release. Note, if the release slips during a change -freeze, the freeze just extends until the day after a release ships. - You can get a list of frozen/non-frozen hosts by: ....