Rebuild trigger algorithm change

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Rebuild trigger algorithm change

Kopyl Pavel
Hello,

Currently we have huge load on our OBS farm and I'm investigating ways of
decreasing number of rebuilds. My idea was to use libabigail with custom script
to trigger dependency rebuilding only when package ABI changes.

The initial assumption was that the `build-compare' package is used to detect
whether package differs or not. Now after investigation I found that the
decision is made inside the scheduler and `build-compare' is only used to make
delta-rpm packages if they are used.

As far as I understand, to reduce the number of rebuilds I'll need to introduce
kind of libabigail support into scheduler and create the `recent rpm mirror' of
repository, since I need previous and current version of rpms to compare
ABIs. And I'll also need to introduce some state into current hashmap with
project status inside the scheduler.

So the easy way to make scheduler run rebuilds depending on my custom logic
based on running script inside the buildroot does not exist, does it?

Is it possible at all to implement this feature in current OBS? And if yes,
where should I start?

Best Regards,
Pavel Kopyl

--
To unsubscribe, e-mail: [hidden email]
To contact the owner, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Rebuild trigger algorithm change

Adrian Schröter
On Freitag, 7. April 2017, 00:11:36 CEST wrote p.kopyl:

> Hello,
>
> Currently we have huge load on our OBS farm and I'm investigating ways of
> decreasing number of rebuilds. My idea was to use libabigail with custom script
> to trigger dependency rebuilding only when package ABI changes.
>
> The initial assumption was that the `build-compare' package is used to detect
> whether package differs or not. Now after investigation I found that the
> decision is made inside the scheduler and `build-compare' is only used to make
> delta-rpm packages if they are used.

there seems to be a misunderstanding, build-compare decides if a build considered
to be the same. It is a different result state for the scheduler.

However, there might be a misunderstanding of the consequences of "the same" build
here. When you have a depedency chain like A->B->C and A is changing and
B is considered to be the same, C will be triggered anyway, _if_ A is used inside
of C's build environement. This is at least true for the default (transient) scheduling
mode.

> As far as I understand, to reduce the number of rebuilds I'll need to introduce
> kind of libabigail support into scheduler and create the `recent rpm mirror' of
> repository, since I need previous and current version of rpms to compare
> ABIs. And I'll also need to introduce some state into current hashmap with
> project status inside the scheduler.
>
> So the easy way to make scheduler run rebuilds depending on my custom logic
> based on running script inside the buildroot does not exist, does it?

hm, you are aware of the different scheduling strategies? Maybe rebuild="trigger" is what
you look for:

  http://openbuildservice.org/help/manuals/obs-reference-guide/cha.obs.build_scheduling_and_dispatching.html#idm140381846803760

good morning
adrian

--

Adrian Schroeter
email: [hidden email]

SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg)
 
Maxfeldstraße 5                        
90409 Nürnberg
Germany


--
To unsubscribe, e-mail: [hidden email]
To contact the owner, e-mail: [hidden email]

Loading...