== Update Critpath

[NOTE]
.Note
====
Critpath = "Critical Path"

This is a collection of packages deemed "critical" to Fedora
====

=== Description

Bodhi has information about which packages are critpath and which are not.
A script that reads the dnf repodata (critpath groups in comps, and the
package dependencies) is used to generate this. In the normal course of
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

. The release engineering script for updating critpath lives in the
https://pagure.io/releng[releng git repository]. Check this out.
. Run the script. If run with `all`, it will generate the info for
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.
+
....
./critpath.py --srpm all
./critpath.py --srpm -j f38.json 38
....
. Place the generated files in the directory where Bodhi will look
for them. This is specified by the `critpath.jsonpath` config setting,
the default is `/etc/bodhi/critpath`. With a monolithic Bodhi server,
server, this is quite easy. In the current containerized OpenShift
deployment, we keep this data in a persistent volume and mount it
at `/etc/bodhi/critpath` in the webUI pod, the consumers pod, and the
celery pod (which runs the cron job that updates it).
