Skip to content
This repository was archived by the owner on Sep 23, 2024. It is now read-only.

Release Process

Carl George edited this page May 31, 2022 · 2 revisions

Testing Repository

Once a build is complete, the next steps take place on the origin server. Once logged in to the origin server, switch to the rpmdev user. This user has all the permissions, configurations, and helper scripts that you need.

sudo -iu rpmdev

Use this script to download the RPMs from the most recent Cirrus build for a package.

cirrus-get <PACKAGE NAME>

Sign the RPMs.

rpmsign --define '_gpg_name IUS (7) <dev@ius.io>' --addsign *.rpm

We use the uvalde tool to make repository curation easier. Import the signed RPMs to the testing repository.

uvalde add --repo ius-testing-7 *.rpm

Invalidate the cache of repodata of the testing repository on the CDN.

cdn-invalidate-repodata-testing

Main Repository

Packages typically stay in the testing repository for one week before being promoted to the main repository. We don't have a karma system like Fedora, but packages can be promoted earlier or later depending on the circumstance. In particular, we try to publish to main after just a few days if the update contains an important bug or security fix. We'll also promote early if users provide feedback that the update works as expected. Many of these steps will be similar to publishing to the testing repository.

Once again we will perform these tasks as the rpmdev user on one of the origin servers.

sudo -iu rpmdev

Uvalde allows us to move all packages from a build between repositories by referencing the NVR (name-version-release) of the SRPM. Before starting, list the current NVRs either by package name or by repository (or both).

uvalde list --name <PACKAGE NAME>
uvalde list --repo ius-testing-7
uvalde list --repo ius-testing-7 --name <PACKAGE NAME>

Move the NVRs you desire from the testing repository to the main repository.

uvalde move --from ius-testing-7 --to ius-7 <NVR>...

Invalidate the cache of repodata of the main and testing repositories on the CDN. Due to how the API works, the second command will not be able to execute immediately, but the helper script has a built in retry with delay.

cdn-invalidate-repodata-main
cdn-invalidate-repodata-testing

Archive Repository

Packages move from the main repository to the archive repository after they have been retired or once newer versions of the package are published to the main repository. It is not necessary to immediately move the previous package to the archive repository once a new package is available. In fact, it's advantageous to keep a prior version of the package in the repository to support easier downgrades. That said, we should carry no more than three versions of a package in the main repository to avoid making the repository unnecessarily large.

Once again we will perform these tasks as the rpmdev user on one of the origin servers.

sudo -iu rpmdev

Uvalde allows us to move all packages from a build between repositories by referencing the NVR (name-version-release) of the SRPM. Before starting, list the current NVRs either by package name or by repository (or both).

uvalde list --name <PACKAGE NAME>
uvalde list --repo ius-7
uvalde list --repo ius-7 --name <PACKAGE NAME>

Move the NVRs you desire from the main repository to the archive repository.

uvalde move --from ius-7 --to ius-archive-7 <NVR>...

Invalidate the cache of repodata of the main and archive repositories on the CDN. Due to how the API works, the second command will not be able to execute immediately, but the helper script has a built in retry with delay.

cdn-invalidate-repodata-main
cdn-invalidate-repodata-archive

Clone this wiki locally