#294 Update SOPs for creation of release candidate composes
Merged 19 days ago by ryanlerch. Opened a month ago by patrikp.
patrikp/infra-docs-fpo release-candidate  into  master

@@ -15,13 +15,14 @@ 

  

  == Action

  

- === Make pungi config changes

+ === Create the fedora-beta.conf configuration file using the script

+ The script can be found https://pagure.io/pungi-fedora/blob/main/f/create-candidate-configs.py[here].

  

- Create fedora-beta.conf on the branched release branch, For inspiration look at https://pagure.io/pungi-fedora/pull-request/1148[This PR]

+ There is a mandatory argument to specify the milestone to generate (beta or final)

+ and optional arguments for the major and minor versions for the label.

  

- make sure to set runroot_tag in general.conf to current branched

- make sure all ostree releases have config_branch set to the branched release

- use grep to find any references to rawhide.

+ Example usage:

+ `./create-candidate-configs.py --minor=5 beta`

  

  === Review Compose Tags

  
@@ -31,7 +32,7 @@ 

  ....

  $ koji list-tagged f{branched}-compose

  ....

- . Verify pre-existing builds are in compose tags

+ . Verify preexisting 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
@@ -39,8 +40,8 @@ 

  +

  [NOTE]

  ====

- The 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

+ The very first run of a Beta or GA compose should have no builds

+ listed under the compose tag. It is important to clear preexisting

  builds from the compose tag when moving between the Beta and RC

  composes. Verify that these builds were removed.

  
@@ -73,9 +74,9 @@ 

  

  === 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

+ . 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`
@@ -117,7 +118,7 @@ 

  . Run the compose

  +

  ....

- $ sudo ./release-candidate.sh Beta-#.#

+ $ sudo ./release-candidate.sh 41_Beta-#.#

  ....

  +

  The numbering scheme begins with 1.1 and the second number is
@@ -125,8 +126,8 @@ 

  +

  [NOTE]

  ====

- Pungi requires numbers in the format #.# as an argument. It is because

- of this that composes always start with the number 1 and the second

+ Pungi requires numbers in the format `major.minor` as an argument (e.g. `1.4`).

+ It is because of this that composes always start with the number 1 and the second

  number is incremented with each compose.

  ====

  +
@@ -136,79 +137,6 @@ 

  compose directory with `mkdir /mnt/koji/compose/{branched}`

  ====

  

- === 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

- +

- [source,subs="attributes+"]

- ....

- $  cat /mnt/koji/compose/{branched}/[compose_id]/STATUS

- ....

- +

- Do not continue with any further steps if the output above is `DOOMED`.

- . Create the directory targeted for the copy :

- +

- [source,subs="attributes+"]

- ....

- $ sudo -u ftpsync mkdir -m 750 -p /pub/alt/stage/{branched}_[release_label]-[#.#]

- ....

- . Locate the compose directory that will be the copy source :

- +

- [source,subs="attributes+"]

- ....

- $ ls /mnt/koji/compose/{branched}/[compose_id]

- ....

- +

- [NOTE]

- ====

- Take 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/{branched}/[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.

- +

- [source,subs="attributes+"]

- ....

- $ 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/{branched}/Fedora-{branched}-20190911.0/compose/$dir/ /pub/alt/stage/{branched}_Beta-1.1/$dir/ --link-dest=/pub/fedora/linux/development/{branched}/Everything/ --link-dest=/pub/alt/stage/{branched}_Beta-1.1/Everything/; done'

- ....

- +

- [NOTE]

- ====

- If 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 :

- +

- [source,subs="attributes+"]

- ....

- $ sudo -u ftpsync chmod 755 /pub/alt/stage/{branched}_[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.

- 

  === Verification

  

  The method for verifying a compose has completed is checking

@@ -14,14 +14,15 @@ 

  

  == Action

  

- === Make pungi config changes

+ === Create the fedora-final.conf configuration file using the script

  

- Create fedora-final.conf on the branched release branch, For inspiration look at https://pagure.io/pungi-fedora/pull-request/1148[This PR]

+ The script can be found https://pagure.io/pungi-fedora/blob/main/f/create-candidate-configs.py[here].

  

- make sure to set runroot_tag in general.conf to current branched

- make sure all ostree releases have config_branch set to the branched release

- make sure that if new artifacts are introduced in the release, they are part of the final config.

- use grep to find any references to rawhide.

+ There is a mandatory argument to specify the milestone to generate (beta or final)

+ and optional arguments for the major and minor versions for the label.

+ 

+ Example usage:

+ `./create-candidate-configs.py --minor=5 final`

  

  === Review Compose Tags

  
@@ -31,7 +32,7 @@ 

  ....

  $ koji list-tagged f{branched}-compose

  ....

- . Verify pre-existing builds are in compose tags

+ . Verify preexisting 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
@@ -39,8 +40,8 @@ 

  +

  [NOTE]

  ====

- The very first run of an GA compose should have no builds

- listed under the compose tag. It is important to clear pre-existing

+ The very first run of a GA compose should have no builds

+ listed under the compose tag. It is important to clear preexisting

  builds from the compose tag when moving between the Beta and RC

  composes. Verify that these builds were removed.

  
@@ -73,9 +74,9 @@ 

  

  === 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

+ . 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.

  

  * GA - `fedora-final.conf`
@@ -117,7 +118,7 @@ 

  . Run the compose

  +

  ....

- $ sudo ./release-candidate.sh RC-#.#

+ $ sudo ./release-candidate.sh 41_RC-#.#

  ....

  +

  The numbering scheme begins with 1.1 and the second number is
@@ -125,8 +126,8 @@ 

  +

  [NOTE]

  ====

- Pungi requires numbers in the format #.# as an argument. It is because

- of this that composes always start with the number 1 and the second

+ Pungi requires numbers in the format `major.minor` as an argument (e.g. `1.4`).

+ It is because of this that composes always start with the number 1 and the second

  number is incremented with each compose.

  ====

  +
@@ -136,79 +137,6 @@ 

  compose directory with `mkdir /mnt/koji/compose/{branched}`

  ====

  

- === 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

- +

- [source,subs="attributes+"]

- ....

- $  cat /mnt/koji/compose/{branched}/[compose_id]/STATUS

- ....

- +

- Do not continue with any further steps if the output above is `DOOMED`.

- . Create the directory targeted for the copy :

- +

- [source,subs="attributes+"]

- ....

- $ sudo -u ftpsync mkdir -m 750 -p /pub/alt/stage/{branched}_RC-[#.#]

- ....

- . Locate the compose directory that will be the copy source :

- +

- [source,subs="attributes+"]

- ....

- $ ls /mnt/koji/compose/{branched}/[compose_id]

- ....

- +

- [NOTE]

- ====

- Take 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/{branched}/[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.

- +

- [source,subs="attributes+"]

- ....

- $ 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/{branched}/Fedora-{branched}-20190911.0/compose/$dir/ /pub/alt/stage/{branched}_RC-1.1/$dir/ --link-dest=/pub/fedora/linux/development/{branched}/Everything/ --link-dest=/pub/alt/stage/{branched}_RC-1.1/Everything/; done'

- ....

- +

- [NOTE]

- ====

- If 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 :

- +

- [source,subs="attributes+"]

- ....

- $ sudo -u ftpsync chmod 755 /pub/alt/stage/{branched}_RC-[#.#]

- ....

- . Update the issue in the releng pagure repository

- +

- Once the compose and sync is complete the issue in pagure should be

- updated and closed.

- 

  === Verification

  

  The method for verifying a compose has completed is checking

One minor note, otherwise looks good to me!

rebased onto b6df73c

a month ago

Fixed. Good catch, thanks!

rebased onto b8dbc37

19 days ago

Pull-Request has been merged by ryanlerch

19 days ago