Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TASK: Do not run composes if nothing changed from the previous compose #203

Open
Conan-Kudo opened this issue Sep 29, 2024 · 4 comments
Open
Assignees

Comments

@Conan-Kudo
Copy link
Member

What does the ELN SIG need to do?

Composes are expensive and time-consuming, and running a compose when literally nothing has changed is wasteful. Some kind of mechanism should be developed to determine whether any content changed from the previous compose to the pending one and cleanly stop going any further if it is determined there is no content change.

@sgallagher
Copy link
Member

I don't think this is practically possible.

The compose is made up of a number of different inputs, any one of which can result in different output: the set of packages in the eln tag, the contents of the eln branch of pungi-fedora, the contents of the ELN comps.xml definition, the contents of fedora-kiwi-definitions and more. Just because the set of packages hasn't changed doesn't necessarily mean that nothing about the compose changed.

Furthermore, we can't easily discover which packages have changed until we've at least done the first half of the compose: gathering the packages and turning them into a repository and install tree. At that point, we've already done quite a bit of the work.

So, at best I think we could have the reporting script just elect not to send the email to the devel list if the set of packages and images is unchanged, but I'm not sure that's even worth it, given that it's a rare occurrence.

@Conan-Kudo
Copy link
Member Author

We don't need to produce the repository or install tree to determine that we don't need to do anything. The package gathering should be sufficient enough to know whether the set of inputs has changed. We also can check for a new head commit for all the other things too.

@yselkowitz
Copy link
Member

Does rawhide do any of that?

@sgallagher
Copy link
Member

Does rawhide do any of that?

No, because I don't think there's ever been a day where nothing changed in Rawhide.

We don't need to produce the repository or install tree to determine that we don't need to do anything. The package gathering should be sufficient enough to know whether the set of inputs has changed. We also can check for a new head commit for all the other things too.

I don't think the gain is worth the effort, since it's quite rare for nothing to change between two composes. If someone wants to contribute code to do it, I'll happily review it, but I don't think it's worth prioritizing effort on at this time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants