For a couple of months, part of the Community Platform Engineering (CPE) team has been focusing on making the changes needed in Bodhi to enable the rawhide gating change proposal.

Automation Automation

In order to keep the user experience that packagers currently have with rawhide, we need to automate some part of the update life cycle.

Creation of an update

Bodhi will be able to automatically create an update coming from a rawhide build. This is done by a fedora-messaging consumer listening to Koji build tag events. Every time that a build will be tagged with the rawhide candidate tag (for example f31-updates-candidate) a Bodhi update will be created.

If you are interested in this feature implementation, you can check the GitHub Pull-Request.

Pushing to stable

Bodhi is gaining the possibility to automatically push an update to stable based on the time this update has spent in testing. This feature is similar to the current automatic push to stable based on a karma threshold.

This will allow rawhide to automatically push updates to stable based on the tests results. Indeed rawhide will be configured to have a 0 day required in testing threshold, meaning that if the update tests results are valid Bodhi will mark the update to be pushed to the stable repository.

This is where the Gating happens, for more details on the implementation, you can check the GitHub Pull-Request

Tests results improvements

We also are working on improving the experience around tests results and waiving the tests if needed. Bodhi queries the Greenwave service in order to get the tests results related to an update.

In order to have more up to date information in Bodhi we are adding a fedora-messaging consumer that will listen to Greenwave message and refresh the tests results of an update (See Pull-Request).

We also are working on improving the experience around tests results and waiving the tests if needed. Bodhi queries the Greenwave service in order to get the tests results related to an update. In order to have more up to date information in Bodhi we are adding a fedora-messaging consumer that will listen to Greenwave message and refresh the tests results of an update (See Pull-Request).

What’s next

While the above changes should make it to the next version of Bodhi (version 4.1), we have started to work on enabling rawhide gating for updates that contains more than a single build.

We currently are working on giving Bodhi an asynchronous tasks system (Celery) to improve Bodhi’s performance.

We have also started to work on adding the possibility to create Bodhi updates using a koji side tag (see Pull-Request)

Following the work

If you want to follow the work happening in Bodhi related to rawhide gating you can look at our GitHub board. If you want to get involve and help us with making or testing these improvements feel free to contact us on -apps or IRC channel (freenode network).


Photo by Lewis Ngugi on Unsplash