#175 [WIP] Update Bodhi releng sop
Closed a year ago by humaton. Opened a year ago by mattia.
mattia/infra-docs-fpo bodhi-releng  into  master

@@ -50,36 +50,46 @@ 

  

  == Adding a new pending release

  

- Adding and modifying releases is done using the

- _bodhi-manage-releases_ tool.

- 

  You can add a new pending release by running this command:

  

  ....

- bodhi-manage-releases create --name F23 --long-name "Fedora 23" --id-prefix FEDORA --version 23 --branch rawhide --dist-tag f23 --stable-tag f23-updates --testing-tag f23-updates-testing --candidate-tag f23-updates-candidate --pending-stable-tag f23-updates-pending --pending-testing-tag f23-updates-testing-pending --override-tag f23-override --package-manager dnf --testing-repository updates-testing --state pending --not-composed-by-bodhi --create-automatic-updates

+ bodhi releases create --name F39 --long-name "Fedora 39" --id-prefix FEDORA --version 39 --branch rawhide --dist-tag f39 --stable-tag f39-updates --testing-tag f39-updates-testing --candidate-tag f39-updates-candidate --pending-stable-tag f39-updates-pending --pending-testing-tag f39-updates-testing-pending --override-tag f39-override --package-manager dnf --testing-repository updates-testing --state pending --not-composed-by-bodhi --create-automatic-updates

  ....

  

- == Pre-Beta Bodhi config

+ Note that the new Rawhide release uses `--branch rawhide` and not `--branch f39`.

+ 

+ == Branched release

  

- Disable automatic updates creation and enable composes by Bodhi:

+ At the branching point, after the creation of a new Rawhide release, change the git branch:

  

  ....

- bodhi-manage-releases edit --name F23 --composed-by-bodhi --no-create-automatic-updates --branch f23

+ bodhi releases edit --name F39 --branch f39

+ ....

+ 

+ == Bodhi activation point - Pre-Beta freeze

+ 

+ At the Bodhi activation point the release enters in Frozen state:

+ 

+ ....

+ bodhi releases edit --name F39 --composed-by-bodhi --no-create-automatic-updates --state frozen

  ....

  

  Enable pre_beta policy in bodhi config in ansible.::::

    ansible/roles/bodhi2/base/templates/production.ini.j2

  

- Uncomment or add the following lines:

+ Edit and uncomment the following lines:

  

  ....

- #f29.status = pre_beta

- #f29.pre_beta.mandatory_days_in_testing = 3

- #f29.pre_beta.critpath.min_karma = 1

- #f29.pre_beta.critpath.stable_after_days_without_negative_karma = 14

+ #f39.status = pre_beta

+ #f39.pre_beta.mandatory_days_in_testing = 3

+ #f39.pre_beta.critpath.min_karma = 1

+ #f39.pre_beta.critpath.stable_after_days_without_negative_karma = 14

  ....

  

- == Post-Beta Bodhi config

+ The Frozen state ensures that the stable compose will not run on this release. It is however possible

+ to push specific builds or updates (see <<_pushing_updates>>).

+ 

+ == Beta release

  

  Enable post_beta policy in bodhi config in ansible.::::

    ansible/roles/bodhi2/base/templates/production.ini.j2
@@ -87,21 +97,36 @@ 

  Comment or remove the following lines corresponding to pre_beta policy:

  

  ....

- #f29.status = pre_beta

- #f29.pre_beta.mandatory_days_in_testing = 3

- #f29.pre_beta.critpath.min_karma = 1

- #f29.pre_beta.critpath.stable_after_days_without_negative_karma = 14

+ #f39.status = pre_beta

+ #f39.pre_beta.mandatory_days_in_testing = 3

+ #f39.pre_beta.critpath.min_karma = 1

+ #f39.pre_beta.critpath.stable_after_days_without_negative_karma = 14

  ....

  

  Uncomment or add the following lines for post_beta policy

  

  ....

- #f29.status = post_beta

- #f29.post_beta.mandatory_days_in_testing = 7

- #f29.post_beta.critpath.min_karma = 2

- #f29.post_beta.critpath.stable_after_days_without_negative_karma = 14

+ #f39.status = post_beta

+ #f39.post_beta.mandatory_days_in_testing = 7

+ #f39.post_beta.critpath.min_karma = 2

+ #f39.post_beta.critpath.stable_after_days_without_negative_karma = 14

+ ....

+ 

+ Set back the release to Pending state:

+ 

+ ....

+ bodhi releases edit --name F39 --state pending

+ ....

+ 

+ == Final freeze

+ 

+ Set back the release to Frozen state:

+ 

+ ....

+ bodhi releases edit --name F39 --state frozen

  ....

  

+ 

  == 0-day Release Actions

  

  * update atomic config
@@ -112,7 +137,7 @@ 

  Change state from pending to current:

  

  ....

- bodhi-manage-releases edit --name F23 --state current

+ bodhi releases edit --name F39 --state current

  ....

  

  You may also need to disable any pre-beta or post-beta policy defined in
@@ -161,7 +186,8 @@ 

  $ sudo -u apache bodhi-push --releases f23,f22 --request stable

  ....

  

- You can also push specific builds:

+ Note that if a release is frozen, the stable request will do nothing.

+ However, you can push specific builds/updates:

  

  ....

  $ sudo -u apache bodhi-push --builds openssl-1.0.1k-14.fc22,openssl-1.0.1k-14.fc23
@@ -193,8 +219,17 @@ 

  

  == Release EOL

  

+ When the EOL date of a release is finally defined, set the property in Bodhi, so that a useful

+ warning will be displayed to users:

+ 

  ....

- bodhi-manage-releases edit --name F21 --state archived

+ bodhi-manage-releases edit --name F39 --eol 2023-12-31

+ ....

+ 

+ At EOL date, set the release as archived:

+ 

+ ....

+ bodhi-manage-releases edit --name F39 --state archived

  ....

  

  == Adding notices to the front page or new update form
@@ -214,41 +249,34 @@ 

  by hand.

  

  ....

- sudo pshell /etc/bodhi/production.ini

- 

- # Execute a script that sets up the `db` and provides a `delete_update` function.

- # This will eventually be shipped in the bodhi package, but can also be found here.

- # https://raw.githubusercontent.com/fedora-infra/bodhi/develop/tools/shelldb.py

- >>> execfile('shelldb.py')

+ bodhi-shell

  ....

  

- At this point you have access to a _db_ SQLAlchemy Session

- instance, a _t_ _transaction module_, and

- _m_ for the _bodhi.models_.

+ At this point you have access to a _s_ SQLAlchemy Session

+ instance and _m_ for the _bodhi.models_.

  

  ....

  # Fetch an update, and tweak it as necessary.

- >>> up = m.Update.get(u'u'FEDORA-2016-4d226a5f7e', db)

+ >>> up = m.Update.get('FEDORA-2016-4d226a5f7e')

  

  # Commit the transaction

- >>> t.commit()

+ >>> s.commit()

  ....

  

  Here is an example of merging two updates together and deleting the

  original.

  

  ....

- >>> up = m.Update.get(u'FEDORA-2016-4d226a5f7e', db)

+ >>> up = m.Update.get('FEDORA-2016-4d226a5f7e')

  >>> up.builds

  [<Build {'epoch': 0, 'nvr': u'resteasy-3.0.17-2.fc24'}>, <Build {'epoch': 0, 'nvr': u'pki-core-10.3.5-1.fc24'}>]

  >>> b = up.builds[0]

- >>> up2 = m.Update.get(u'FEDORA-2016-5f63a874ca', db)

+ >>> up2 = m.Update.get('FEDORA-2016-5f63a874ca')

  >>> up2.builds

  [<Build {'epoch': 0, 'nvr': u'resteasy-3.0.17-3.fc24'}>]

  >>> up.builds.remove(b)

  >>> up.builds.append(up2.builds[0])

- >>> delete_update(up2)

- >>> t.commit()

+ >>> s.commit()

  ....

  

  == Using the Bodhi shell to fix uniqueness problems with e-mail addresses

This is a WIP, need check from releng about steps between branching and beta release.

Update releng's Bodhi release SOP, which is way outdated. This will reflect changes introduced in Bodhi 7 not yet in prod (support fo frozen release and EOL warnings).

Signed-off-by: Mattia Verga mattia.verga@tiscali.it

rebased onto bb48799

a year ago

Closing since we have already incorporated the changes in releng SOPs

Pull-Request has been closed by humaton

a year ago
Metadata