Beta Release candidate
When Quality Engineering (QE) requests a Release Candidate (RC) they do so by opening an issue in the releng repository on pagure. Release candidate composes are not currently automated.
Compose Name | Configuration File | Compose Script |
---|---|---|
Beta |
fedora-beta.conf |
release-candidate.sh |
GA |
fedora-final.conf |
release-candidate.sh |
Action
Make pungi config changes
Create fedora-beta.conf on the branched release branch, For inspiration look at This PR
Review Compose Tags
-
List any pre-existing builds in the current compose tag
$ koji list-tagged f38-compose
-
Verify pre-existing builds are in compose tags
The tagged builds from the previous composes should all be present in the output from the previous step. Consult the request ticket for the list of builds expected in this output.
NoteThe very first run of an Beta, or GA compose should have no builds listed under the compose tag. It is important to clear pre-existing builds from the compose tag when moving between the Beta and RC composes. Verify that these builds were removed.
$ koji list-tagged f38-compose $ koji untag-build --all f38-compose [build1 build2 ...]
NoteThe order in which packages are added into the f38-compose tag matter. If the builds are untagged erroneously then special attention should be given to adding them back correctly.
-
Add builds specified by QE to the current compose tag
$ koji tag-build f38-compose [build1 build2 ...]
NoteThese steps may be completed on a local machine as long as the user has appropriate permissions in the koji tool.
Running the Compose
-
Update the pungi-fedora config file Composes use a configuration file to construct the compose. Each compose uses its own configuration. The
global_release
variable should start from 1.1 and the second number should increment each time a new compose is created.-
Beta -
fedora-beta.conf
-
-
Log into the compose backend
$ ssh compose-x86-01.phx2.fedoraproject.org
-
Open a screen session
$ screen
-
Obtain the pungi-fedora branch for the current compose
The first time any user account executes a compose the pungi-fedora git repository must be cloned. The compose candidate script that invokes pungi should be run from
compose-x86-01.iad2.fedoraproject.org
.$ git clone ssh://git@pagure.io/pungi-fedora.git
Enter the pungi-fedora directory.
$ cd pungi-fedora
If the clone step above was not required then fully update the existing repository checkout from pagure.
$ git fetch origin $ git checkout f38 $ git pull origin f38
-
Run the compose
$ sudo ./release-candidate.sh Beta-#.#
The numbering scheme begins with 1.1 and the second number is incremented after each compose.
NotePungi requires numbers in the format . as an argument. It is because of this that composes always start with the number 1 and the second number is incremented with each compose.
NoteIf the compose fails with a directory missing error, then create the compose directory with
mkdir /mnt/koji/compose/38
Syncing the Compose
We sync the compose to /pub/alt/stage
to enable faster access to new
content for QA and the larger Fedora community.
-
Log into the compose backend
$ ssh compose-x86-01.iad2.fedoraproject.org
-
Open a screen session
$ screen
-
Check the status of the compose
$ cat /mnt/koji/compose/38/[compose_id]/STATUS
Do not continue with any further steps if the output above is
DOOMED
. -
Create the directory targeted for the copy :
$ sudo -u ftpsync mkdir -m 750 -p /pub/alt/stage/38_[release_label]-[#.#]
-
Locate the compose directory that will be the copy source :
$ ls /mnt/koji/compose/38/[compose_id]
NoteTake care executing the synchronization if the next compose is already running. Be sure to grab the correct directory.
If in doubt, check /mnt/koji/compose/38/[compose_id]/STATUS to be sure it is finished.
-
Run the synchronization one-liner
The synchronization of the completed compose to the public domain is currently a one-liner shell script. Pay close attention to what needs replaced in the example below.
$ sudo -u ftpsync sh -c 'for dir in Everything Cloud Container Kinoite Labs Modular Server Silverblue Spins Workstation metadata; do rsync -avhH /mnt/koji/compose/38/Fedora-38-20190911.0/compose/$dir/ /pub/alt/stage/38_Beta-1.1/$dir/ --link-dest=/pub/fedora/linux/development/38/Everything/ --link-dest=/pub/alt/stage/38_Beta-1.1/Everything/; done'
NoteIf multiple composes are run like 1.2, 1.3, add multiple --link-dest arguments above with multiple composes
-
Set the permissions of the synced compose :
$ sudo -u ftpsync chmod 755 /pub/alt/stage/38_[release_label]-[#.#]
-
Update the issue in the releng pagure repository
Once the compose and sync is complete the issue in pagure should be updated and closed.
Want to help? Learn how to contribute to Fedora Docs ›