Completely rewrite the releng "Update Critpath" SOP

This kinda isn't even an SOP any more, because no manual action
is needed in the ordinary course of events any more. We could,
I guess, just remove it. But this instead rewrites it to kinda
explain the process in case manual intervention is needed. The
current information is entirely outdated.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
This commit is contained in:
Adam Williamson 2023-07-20 14:05:40 -07:00
parent e5334de240
commit 2bb2853ec5

View file

@ -10,46 +10,33 @@ This is a collection of packages deemed "critical" to Fedora
=== Description === Description
PDC has information about which packages are critpath and which are not. Bodhi has information about which packages are critpath and which are not.
A script that reads the yum repodata (critpath group in comps, and the A script that reads the dnf repodata (critpath groups in comps, and the
package dependencies) is used to generate this. Since package package dependencies) is used to generate this. In the normal course of
dependencies change, this list should be updated periodically. events, an OpenShift cron job (called fedora-bodhi-critpathcron) updates
this information daily, and no manual intervention is needed, but the
steps to update it manually are documented here in case of need.
=== Action === Action
. Release engineering scripts for updating critpath live in the . The release engineering script for updating critpath lives in the
https://pagure.io/releng[releng git repository]. https://pagure.io/releng[releng git repository]. Check this out.
. Check the critpath.py script to see if the list of releases needs to . Run the script. If run with `all`, it will generate the info for
be updated: all current releases, and name the output files as Bodhi expects.
Otherwise you can specify the release to generate info for, and the
output filename. For stable releases, use the release number. For
Branched and Rawhide, you can use the release number, or "branched" or
"rawhide". Using `--srpm` is important as Bodhi expects to get the
names of SRPMs in the critical path, not binary RPMs.
+ +
.... ....
for r in ['12', '13', '14', '15', '16', '17']: # 13, 14, ... ./critpath.py --srpm all
releasepath[r] = 'releases/%s/Everything/$basearch/os/' % r ./critpath.py --srpm -j f38.json 38
updatepath[r] = 'updates/%s/$basearch/' % r
# Branched Fedora goes here
branched = '18'
.... ....
+ . Place the generated files in the directory where Bodhi will look
The for loop has the version numbers for releases that have gone past for them. This is specified by the `critpath.jsonpath` config setting,
final. branched has the release that's been branched from rawhide but the default is `/etc/bodhi/critpath`. With a monolithic Bodhi server,
not yet hit final. (These have different paths in the repository and may server, this is quite easy. In the current containerized OpenShift
not have an updates directory, thus they're in separate sections). deployment, we keep this data in a persistent volume and mount it
. Run the script with the release to generate info for (for a release at `/etc/bodhi/critpath` in the webUI pod, the consumers pod, and the
that's hit final, this is the release number example: "17". For celery pod (which runs the cron job that updates it).
branched, it's "branched").
+
....
./critpath.py --srpm -o critpath.txt branched
....
. Run the update script to add that to PDC:
+
....
./update-critpath --user toshio f18 critpath.txt
....
+
The username is your fas username. You must be in cvsadmin to be able to
change this. The branch is the name of the dist-git branch. critpath.txt
is the file that the output of critpath.py went into. The script needs a
PDC token to talk to the server, configured in /etc/pdc.d/. See the PDC
SOP for more info.