include::_partials/attributes.adoc[]

= Fedora Beta Release

Based on the GO/NOGO meeting if the currnet compose is GO. The following steps need to be taken.

== Wait for branched compose that matches the beta rc

QE will typically request a stable push of all the updates that were in the Beta RC that
was signed off on. After that stable push we need to wait for a branched compose with them.
This ensures that the nightly branched has the same content as the beta we are about to release.
This is to allow us to make sure and tag all the right packages and have a common point.

== Koji changes

[source,subs="attributes+"]
....
$ koji clone-tag --all --latest-only f{branched} f{branched}-Beta
....

== Stage release to mirrors

[source,subs="attributes+"]
....
$ sh scripts/stage-release.sh {branched}_Beta Fedora-{branched}-YYYYMMDD.0 _Beta-1.2 fedora-{branched} 1
....

Please update YYYYMMDD in the above command accordingly.

[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.
====

== Sync the signed checksums to stage

We need to sync the signed checksums to /pub/alt/stage/ by running the
following command

[source,subs="attributes+"]
....
$ for dir in Cloud Container Everything Kinoite Labs Sericea Server Silverblue Spins Workstation metadata; do sudo -u ftpsync rsync -avhH /mnt/koji/compose/{branched}/Fedora-{branched}-20221105.0/compose/$dir/ /pub/alt/stage/{branched}_RC-1.7/$dir/ --link-dest=/pub/fedora/linux/releases/{branched}/Everything/ --link-dest=/pub/alt/stage/{branched}_RC-1.2/Everything/ --link-dest=/pub/alt/stage/{branched}_RC-1.3/Everything --link-dest=/pub/alt/stage/{branched}_RC-1.4/Everything --link-dest=/pub/alt/stage/{branched}_RC-1.5/Everything --link-dest=/pub/alt/stage/{branched}_RC-1.6/Everything --link-dest=/pub/alt/stage/{branched}_RC-1.7/Everything; done
....

[NOTE]
====
Replace the RC above with the RC that was 'go'
====

== Set release in Bodhi to pending

[source,subs="attributes+"]
....
$ bodhi releases edit --name F{branched} --state pending
....

=== Update Ansible vars

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`.

== Run the playbooks

....
$ 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

This section outlines the steps that should be followed to ensure that older copies of Fedora betas are removed from the servers and that the correct permissions are set on the directories.

=== Remove older betas

This cleanup step is to remove the older betas from the `/pub/fedora-secondary/releases/test` and `/pub/fedora/linux/releases/test/` directories. This can be done using the rm command:

[source,subs="attributes+"]
....
$ rm -rf /pub/fedora-secondary/releases/test/{branched}_Beta
$ 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.
