Re: Proposal for vendoring/bundling golang packages by default

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jan 21, 2025 at 09:22:37AM -0500, Neal Gompa wrote:
> On Tue, Jan 21, 2025 at 9:14 AM Zbigniew Jędrzejewski-Szmek
> <zbyszek@xxxxxxxxx> wrote:
> >
> > On Tue, Jan 21, 2025 at 02:09:51PM +0100, Fabio Valentini wrote:
> > > Workflow with non-vendored dependencies:
> > > - update library or backport fix
> > > - submit rebuilds of dependent applications (with rpmautospec, those
> > > are no-change commits)
> > >
> > > Workflow with vendored dependencies:
> > > - check out application and vendored sources
> > > - patch vendored sources
> > > - repeat checkout / patching for *every affected application*
> > >
> > > Yes, Neal, making changes so that no-change rebuilds don't require git
> > > commits would make workflow 1 even more streamlined. Waiting for your
> > > proposal on how to achieve this ;)
> >
> > At the fundamental level, such automation would effectively do two
> > steps:
> > 1. create a no-change commit like we do now,
> > 2. push the commit and fire off a build.
> >
> > (I think we want to keep 1. unchanged. We need to store the information
> > why did the rebuild and why _somewhere_. Either we keep the current
> > mechanism which works well and is easy for humans to interact with,
> > or we store this information in some external database and create new
> > tools to query this. I don't think we want to do this.)
> >
> 
> I think this is the fundamental disagreement we're going to have. I
> think no-change rebuilds should be happening with such frequency that
> the reasons just stop mattering. Git commits for no-change rebuilds
> are the fundamental reason why we have so many provenpackagers. They
> need to do it for the most banal things, the most common being
> rebuilds when a dependency is upgraded and has a soname bump.

Yes. In my worldview, this "no-change rebuild" is actually not a "no
change" rebuild. We're talking about rebuilds after _important_
changes happened in the dependencies. In fact, we're doing the rebuild
because *their API changed in an incompatible way*.
But this also means that since the dependency we're rebuilding against
had important changes, this potentially has important effect on the
package being rebuilt. Maybe it FTBFS, or maybe it doesn't work
anymore, or maybe its own API changes, causing the need for cascading
rebuilds.

In general, the correct solution to such things is to avoid them.
People keep breaking compatibility and changing SONAMES and doing
other things like it made them feel better. If we have the choice, we
should pick higher-quality dependencies which are stable and don't
require constant pointless churn. But if we are unlucky and depend on
something that does require rebuilds, I want to have a name and
an explanation attached to the rebuild.

> And this causes us real workflow problems, such as update collisions.
> Just recently, we had a problem reconciling GStreamer and Qt updates
> because an intersection of packages had to be manually rebuild for
> each update in a particular order. But that would not have been
> necessary if no-change rebuilds were just automatically added to side
> tags (also for single build updates to automatically be converted to
> side tags updates for this purpose).
> 
> If our buildsystem is doing the right thing, we will always have a
> record of that information in Koji, regardless of Git. We can trace
> through historical builds fairly easily. But I have never felt that
> requiring commits for no-change rebuilds is worth the cost of making
> everyone have to do manual toil.

I think we must move in different areas of the distro. For me, the
occasional cost of doing an empty commit and pushing that to a branch
is unimportant compared to, for example, the problems of figuring out
what to rebuild or dealing with constant stream of failed builds and
flaky CI.

Zbyszek
-- 
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux