Re: repoquery-fu (was Re: Retiring the pcre package from Fedora)

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

 



On Sat, Jul 23, 2022 at 7:47 AM Fabio Valentini <decathorpe@xxxxxxxxx> wrote:
>
> On Sat, Jul 23, 2022 at 12:56 PM Neal Gompa <ngompa13@xxxxxxxxx> wrote:
> >
> > On Sat, Jul 23, 2022 at 4:14 AM Dan Čermák
> > <dan.cermak@xxxxxxxxxxxxxxxxxxx> wrote:
> > >
> > > Richard Shaw <hobbes1069@xxxxxxxxx> writes:
> > >
> > > > Replying in general...
> > > >
> > > > I've asked about a "one script to rule them all" a few times over my 10+
> > > > year Fedora packaging career and it's fallen on deaf ears.
> > > >
> > > > I hope something will happen this time. There should really be only ONE way
> > > > to determine what packages need to be rebuilt, even if it's not perfect, we
> > > > can deal with the corner cases but everyone doing their own thing has
> > > > definitely been worse.
> > >
> > > In a perfect world koji or koschei would figure this out themselves and
> > > perform the rebuilds for us so that we can finally stop thinking about
> > > build orders and dependencies ourselves.
> >
> > The sad part is that Koschei can do it, but the build system folks
> > have so far refused to enhance Koji and Koschei to do this for
> > creating *real builds* that are auto-submitted.
>
> Alright Neal, this is a bit off-topic, but I'll bite.
>
> Auto-submitting real builds is something that I will, except in very
> narrowly defined exceptions, always disagree with.
> Until now, automagic builds have only caused trouble. Just look at the
> mess that's regularly made in the podman/container stack, or by stuff
> that was automatically submitted by packit. It's one of the reasons
> why we now have a policy that requires actual people to be responsible
> for all builds submitted by bots.
>
> Even if we had a mechanism to trigger automatic rebuilds of dependent
> packages (i.e. "I have detected that the sonames of the libraries in
> this package have changed, let me also rebuild dependent packages for
> this!") only works *if* (and that's a big *if*) the ABI change isn't
> accompanied by breaking API changes, as well. What would you want to
> happen then? I'm pretty sure software isn't smart enough yet to
> determine in advance if any breaking API changes affect any dependent
> packages.
>
> So how would the mechanism you want work?
>
> 1. packager submits a build of libfoo version X that contains an
> soname bump to koji
> 2. magic mechanism (TM) detects this ~somehow~ and does ... what? the
> only thing I can think of is ...
> 3. magic mechanism (TM) tags the build into an on-demand side-tag N
> instead of rawhide after it finishes
> 4. magic mechanism (TM) queries dependent packages
> 5. magic mechanism (TM) bumps dependent packages with "Rebuilt for
> libfoo soname bump."

This step wouldn't happen. Bumping packages automatically is dangerous
and creates problems.

> 6. magic mechanism (TM) submits builds of dependent packages to
> on-demand side-tag N
> 7. magic mechanism (TM) requests bodhi to merge the side tag *if and
> only if* all builds succeed and are installable
>

It would also have to pass relevant gating tests. Right now gating
doesn't do much, but that is already changing over time. And ideally
we could run OpenQA tests on all of these in the future.

> That's all well and good so long as everything *just works*, but will
> instantly break the second any part of this will need human
> intervention, or if there are any race conditions:
>
> - dependent packages need patches for breaking API changes
> - dependent packages need a compat package libfooXminus1 because they
> can't be ported

Build failure would cause it to not get merged. But the side tag would
exist for human action to resolve the chain.

> - the sets of dependent packages overlap between concurrently created side tags

So what? If we're not tracking rebuilds in Git anymore, this is no
longer a serious problem. The build system knows every time a commit
is requested and increments the counter accordingly.

> - dependent packages fail to build for unrelated reasons
> - dependent packages fail to install for related (or unrelated) reasons
> - packagers have pushed changes to dist-git that they didn't want to
> get built yet (eugh)

Okay, and? They fail, it doesn't merge, and we deal with it as we do
now. Or if it looks like a fluke, poke it to try to rebuild the failed
ones again.

> I just see so many points of failure in a process like the one you
> want that I just can't ever see this becoming a reality unless we
> enforce much stricter rules around 1) concurrent side tags / using a
> mutex mechanism for packages in koji, 2) forbidding to push changes to
> dist-git that must not be built yet, 3) drastically reducing the
> number of FTBFS / FTI bugs in rawhide ~somehow~.
>
> Unless you have ways to address at least some of those issues and
> failure points with the mechanism that you want (and I cannot see how
> that would be doable), I don't see automagic rebuilds happening.
>

The fundamental difference between your thought and mine is that you
want it to be perfect. I want it to be good enough to eliminate the
*majority* of provenpackager grunt work and stop punishing people so
hard for bringing useful software library packages into the
distribution.

Failure is okay. Human intervention is fine. Design a process that
handles 80% and make it gracefully fail for the remaining 20%.

You seem to think it's unworkable, but I work in a Linux distribution
that operates this way and has for twenty years! I *know* it works.
It's not perfect, and there's certainly going to be some human
intervention and probably some configuration stuff to resolve things
machines can't figure out on their own (like build cycles and things
of that nature), but it is absolutely possible to do this and make the
lives of the majority of packagers easier.



--
真実はいつも一つ!/ Always, there's only one truth!
_______________________________________________
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 on the list, report it: https://pagure.io/fedora-infrastructure




[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