infra-docs-fpo/modules/release_guide/pages/final_release.adoc
Samyak Jain 472457f2a9 Move post release docs at correct place
Signed-off-by: Samyak Jain <samyak.jn11@gmail.com>
2024-04-29 14:59:21 +05:30

152 lines
6 KiB
Text

include::_partials/attributes.adoc[]
= Fedora Final Release
== Update `FedoraPreviousPrevious.yaml` in ansible repository
Set the https://pagure.io/fedora-infra/ansible/blob/main/f/vars/all[variable] to True in ansible repository.
== Koji changes
[source,subs="attributes+"]
....
$ koji edit-tag --lock f{branched}
....
== Bodhi Changes
Set the bodhi release to `current`
[source,subs="attributes+"]
....
$ bodhi releases edit --name F{branched} --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 corret date
[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
$ bodhi releases edit --name F{old_release}M --eol YYYY-MM-DD
....
== Ansible Changes
=== Disable Branched Compose
Now that we have a final GOLD compose, we dont need nightly branched
composes anymore. This is disabled in
https://pagure.io/fedora-infra/ansible/blob/main/f/roles/releng/files/branched[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
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
. https://pagure.io/fedora-infra/ansible/blob/main/f/roles/releng/files/cloud-updates[cloud-updates]: Remove the commented version and append a new entry for {branched}.
. https://pagure.io/fedora-infra/ansible/blob/main/f/roles/releng/files/container-updates[container-updates]: Remove the commented version and append a new entry for {branched}.
. Update https://pagure.io/fedora-infra/ansible/blob/main/f/vars/all/00-FedoraCycleNumber.yaml[FedoraCycleNumber] to {branched}.
. Update 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.
. Update https://pagure.io/releng/blob/main/f/scripts/sync-latest-container-base-image.sh[The container sync script's] `current_stable` variable. (see https://pagure.io/releng/c/697a12fb07bc2afbd3a1c057f65e41e1cf6ebf24[Example])
. Update https://pagure.io/releng/blob/main/f/scripts/sync-ostree-base-containers.sh[The ostree container sync script's] `current_stable` variable. (see https://pagure.io/releng/c/15de8fc77d5c7fb3be0762b6bf56ad023908d144[Example])
For the references, checkout this https://pagure.io/fork/jnsamyak/fedora-infra/ansible/c/6d1267970e09f412f1f51a2c203ae64e29e2c4c3[PR].
== Final Container Release
On the GA date run the `sync-latest-container-base-image.sh` and `sync-ostree-base-containers.sh`
[source,subs="attributes+"]
....
$ scripts/sync-latest-container-base-image.sh {branched}
$ scripts/sync-ostree-base-containers.sh {branched}
....
== 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.
====
== Check and set EOL on previous releases to reflect reality
. check PDC for active releases and respective EOL date
. 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
following script (on _mm-backend01_) can be used to change the paths in
MirrorManager:
[source,subs="attributes+"]
....
sudo -u mirrormanager mm2_move-devel-to-release --version={branched} --category="Fedora Linux"
sudo -u mirrormanager mm2_move-devel-to-release --version={branched} --category="Fedora Secondary Arches"
....