We are closing in on the point of doing our first EPEL 10 mass branching event. We have been modeling this after the Fedora mass branching. Similar to how Fedora just created f42
branches for every package with a rawhide
branch, we are going to create epel10.0
branches for every package with an epel10
branch. However, while discussing this an interesting problem was noticed.
During the mass branching process, we’ll be creating the epel10.1
tag in koji by cloning the epel10.0
tag. As part of the tag cloning process, the latest build of each package tagged with epel10.0
will get the new epel10.1
tag added. This is similar to what happens in Fedora branching. However, in Fedora this process captures nearly all packages. For EPEL we’ll need to decide how to handle packages that are in pending or testing status in bodhi, which won’t yet have the epel10.0
tag.
One possible route would be to add the epel10.1
tag to all builds with the epel10.0-testing-pending
, epel10.0-testing
, or epel10.0-pending
tags. This would have the effect of cutting short the testing period for these updates for CentOS users as the epel/10
repo is retargeted from 10.0 to 10.1. Even worse, we may end up tagging in builds that have negative karma in bodhi and do not work. This may still be the easiest option, and we can always go back and manually untag builds that are later discovered to not work.
Another possibility would be to force pending/testing updates to process through to stable if they have no negative karma, or unpush them if they do have negative karma. This would still have the timing short cut problem, but at least pending/testing updates with negative karma wouldn’t be included in the stable 10.1 composes. I also kinda like the idea of a periodic six-month cleanup of negative karma updates rather than letting them sit in testing forever.
We could also just do nothing, and leave it up to packagers to ensure a proper upgrade path. Affected packagers would just need to create new builds from the epel10
branch after the mass branching, which will use the EPEL 10.1 release instead of EPEL 10.0 release in bodhi. This would pretty straightforward for simple packages, but could be messy for multi-build updates from sidetags. We could address these on a case by case basis by manually tagging these builds for epel10.1
upon request.
What would EPEL packagers prefer? One of these options, or something else entirely I haven’t thought of? No matter how we handle this, we will likely need to have some form of a freeze period for new builds while we process the existing builds and create branches. The notice period for this will unfortunately be somewhat short, as we need to execute the mass branching relatively soon to ensure no EPEL 10.0 packages unintentionally build against RHEL 10.1 libraries that are landing in CentOS 10.