Proposal: Eliminate buildroot overrides

This discussion was started on Proposal: Eliminate buildroot overrides - devel - Fedora Mailing-Lists but I’m copying it here for more eyes.

tl;dr: Buildroot overrides should be restricted to releng members and
packagers should use on-demand side-tags instead.

I’d like to ascertain whether there are any remaining use-cases for
which buildroot overrides are preferable to (or necessary instead of)
on-demand side-tags. We’ve had support for side-tags for some years
now (my history-spelunking suggests 2020, but it might be longer).

Some of the advantages of side-tags over the old buildroot override approach:

  1. The common buildroot for packages is not polluted.
    Historically, one would build a new library package, tag it into a
    buildroot override, then build the packages that depend upon it.
    During this time, the (possibly backwards-incompatible) package would
    remain in the common buildroot, potentially impacting other packages’
    builds. With side-tags, the updated libraries don’t affect other
    builds until the side tag has completed and been merged into the main
    release. This action also ensures that the contents of the side-tag go
    through Bodhi and are properly reviewed, which helps avoid cases where
    the packager may not have been aware of other potential breakage.

  2. Side tags are easy to abandon.
    If, in the middle of a large update, a major issue occurs (the change
    needs to be backed out or priorities shift and it cannot be completed
    in time), the side-tag can be either aborted or ignored until later.
    It doesn’t require going through any effort to revert changes the way
    that buildroot overrides would.

  3. Side tags make it much easier to submit multiple, related package
    updates together.
    Prior to side-tag support, including multiple packages in a single
    Bodhi update was a highly manual effort. Now, as long as they were
    built together in the side tag, they can be easily submitted together
    as a single update.

I am unaware of any remaining use cases for buildroot overrides that
are not covered by side tags. If you know of any, please speak up.
Otherwise, my proposal that I plan to take to FESCo is to disallow the
general use of buildroot overrides in favor of side tags. Buildroot
overrides themselves wouldn’t go away, but they’d be restricted to
members of Fedora Release Engineering in exceptional situations.

Thank you in advance for your input.

Documentation on side-tags and multiple-package updates:

2 Likes