Re: Idea proposal for next mass rebuilds

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

 



On Sat, Jan 18, 2025 at 4:33 PM Miroslav Suchý <msuchy@xxxxxxxxxx> wrote:
> Dne 18. 01. 25 v 11:01 dop. Mattia Verga via devel napsal(a):
> > I think some of the build failures are due to building things out of
> > sequence.
>
> I agree with Fabio in this thread, that it is (should not be) the case.
>
> > The optimal solution would be to have some script that periodically
> > creates a tree of buildrequires dependency for all Fedora packages...
> > but that would require some work. So, I was just thinking, what about to
> > set up a simple repository where we put some text files like:
>
> As one of the Mock developer, I have seen several people trying to create script that build-order packages. All of them
> failed. Including me.
>
> There are lots of traps:
> ...
> ...
> ...
> My $0.02 - if you try to write something, write is simple and dumb. Not general. Based on the data from last rebuild.
> Count with the errors. As it does not be 100% correct. Even if it takes several percent of failures down it will be
> improvement.

An idea:
What instead of guessing the dependencies beforehand, we would just
use the last known set.
We get that generated for free during every build. So if we just
preserve and parse the root.log every time a production build
succeeds,
we have exactly that "based on the data from the last rebuild" you mentioned.

Don't we already preserve the logs of production builds that reach
stable, anyway?

I see only 2 main flaws with this:
- commits added between the last successful build and the mass rebuild
may cause differences
- we usually do mass rebuild for Rawhide. At that time, many packages
had not yet been built even once for Rawhide (that's why we do a mass
rebuild). However there may already be present macros changing the
behaviour specifically in that Fedora release.

In both cases, we expect just minor deviances, so the overall graph
should be mostly correct,
and that sounds like a good value to effort ratio to me.

Michal

--

Michal Schorm
Software Engineer
Databases Team
Red Hat

--

On Sat, Jan 18, 2025 at 4:33 PM Miroslav Suchý <msuchy@xxxxxxxxxx> wrote:
>
> Dne 18. 01. 25 v 11:01 dop. Mattia Verga via devel napsal(a):
> > I think some of the build failures are due to building things out of
> > sequence.
>
> I agree with Fabio in this thread, that it is (should not be) the case.
>
> > The optimal solution would be to have some script that periodically
> > creates a tree of buildrequires dependency for all Fedora packages...
> > but that would require some work. So, I was just thinking, what about to
> > set up a simple repository where we put some text files like:
>
> As one of the Mock developer, I have seen several people trying to create script that build-order packages. All of them
> failed. Including me.
>
> There are lots of traps:
>
> - Some dependencies are generated only during the build E.g., https://fedoraproject.org/wiki/Changes/DynamicBuildRequires
>
> - Some **names** of packages are generated only during the build. E.g. SoftwareCollections (not relevant for Fedora itself).
>
> - It is hard to parse Requires from  SRC.RPM because of %if condition and other macros. Basically you have to that in
> correct build environment only.
>
> - it is hard to evaluate the macros. You have to be in the build enviroment of the target platform with all installed
> macros as SPEC files heavily used various srpm-macros as deps and even including their own macros as SOURCEX.
>
> - did I mention %bootstrap macro?
>
> The only way that works, is what mockchain does: build the packages in random order. if any fails, repeat while at least
> one package in the loop succeed.
>
> My $0.02 - if you try to write something, write is simple and dumb. Not general. Based on the data from last rebuild.
> Count with the errors. As it does not be 100% correct. Even if it takes several percent of failures down it will be
> improvement.
>
> --
> Miroslav Suchy, RHCA
> Red Hat, Manager, Packit and CPT, #brno, #fedora-buildsys
>
> --
> _______________________________________________
> 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

-- 
_______________________________________________
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