[opensuse-buildservice] Rebuild trigger algorithm change
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: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
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_s... good morning adrian -- Adrian Schroeter email: adrian@suse.de 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: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
participants (2)
-
Adrian Schröter
-
p.kopyl