-
Notifications
You must be signed in to change notification settings - Fork 239
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
Support for isolated builds #1393
Support for isolated builds #1393
Conversation
5e78af2
to
611c60c
Compare
One of the experiments might look like:
Alternative way to 5 might look like:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This "skip pull" commit is weird. I do not understand it.
The purpose is to not "podman pull" the image (and fail) if the image is not pushed into any registry. I'm going to document it (or drop the commit), sorry for the confusion. |
37564a9
to
bb24b44
Compare
Updated with a bit more convenient use-case, see below. First we calculate the build-deps:
Then, using the JSON file in result directory, we download the RPMs and prepare
Then, with the local-repo prepared, we can run the isolated build:
|
36aa4f1
to
c038efb
Compare
The last part is now simplified, one just needs to
Warning: this whole PoC only works with bootstrap_image_ready = True. |
The experimental use-case looks like this now (after the recent update):
|
5f9f319
to
f0bf206
Compare
f0bf206
to
456f456
Compare
This change required us to create a new "postdeps" hook with post-%generate_buildrequires timing. Fixes: rpm-software-management#1429 Relates: rpm-software-management#1393
This change required us to create a new "postdeps" hook with post-%generate_buildrequires timing. Fixes: rpm-software-management#1429 Relates: rpm-software-management#1393
This change required us to create a new "postdeps" hook with post-%generate_buildrequires timing. Fixes: rpm-software-management#1429 Relates: rpm-software-management#1393
There are new options, --calculate-build-dependencies and --isolated-build. New buildroot_lock plugin added. Fixes: rpm-software-management#1358 Merges: rpm-software-management#1393 Relates: rpm-software-management#1380
538c135
to
18d6b97
Compare
We can not do isolated builds with centos-stream for now, reported: https://issues.redhat.com/browse/CS-2506 |
There are new options, --calculate-build-dependencies and --isolated-build. New buildroot_lock plugin added. Fixes: rpm-software-management#1358 Merges: rpm-software-management#1393 Relates: rpm-software-management#1380
18d6b97
to
78a0e11
Compare
About json versioning: Should we also store in the config part which mock version created it? I'm more inclined to "no" as mock probably doesn't have enough information about itself (was it e.g. modified in the distribution?) and leave it on other tooling. OTOH, it can be easilly lost which mock should be used for the rebuild - is json version enough to have reliable reproducibility? E.g. json version needn't to change in future twenty mock versions while some other substantial process would be different meanwhile. |
Saving whole (parsed) mock config could be valuable? E.g. what if I run the |
I agree here. When it comes to full reproducibility, it's by far not just about Mock version. We probably want to reproduce on the same kernel, and run Mock-in-container, from the very same container image, with the very same version of container tooling, etc. The "feature-isolated-build" feature page discusses this a bit (the buildroot environment maintained by mock != the environment we run mock in).
The NVR of Mock in use is dumped into logs, and if the situation comes - we should be able to find the right version by git-bisect. Though, ... if you prefer to dump the mock version there, I will not object too much! And I really expect a heavy development here, so we may add it later - this PR is just the starting point.
Yes, my vote goes for "process above". If we have a mock container image ID/sha256 like this one, we know both the Mock version and the set of configuration files. If all of this implicates we should document this more, please say what and where! 👍 |
There are new options, --calculate-build-dependencies and --isolated-build. New buildroot_lock plugin added. Fixes: rpm-software-management#1358 Merges: rpm-software-management#1393 Relates: rpm-software-management#1380
78a0e11
to
c1e47e3
Compare
There are new options, --calculate-build-dependencies and --isolated-build. New buildroot_lock plugin added. Fixes: rpm-software-management#1358 Merges: rpm-software-management#1393 Relates: rpm-software-management#1380
c1e47e3
to
243f73a
Compare
There are new options, --calculate-build-dependencies and --isolated-build. New buildroot_lock plugin added. Fixes: rpm-software-management#1358 Merges: rpm-software-management#1393 Relates: rpm-software-management#1380
243f73a
to
b3c6114
Compare
I think we should just stress it a bit more in "Limitations" section. For some it could look like it is providing reproducible builds without taking in account state of host machine software/hardware stack. Just a one sentence that there is still a big influence of external factors. |
There are new options, --calculate-build-dependencies and --isolated-build. New buildroot_lock plugin added. Fixes: rpm-software-management#1358 Merges: rpm-software-management#1393 Relates: rpm-software-management#1380
b3c6114
to
f9a8260
Compare
I borrowed your wording and updated the Limitation section. Thank you! |
There are new options, --calculate-build-dependencies and --isolated-build. New buildroot_lock plugin added. Fixes: rpm-software-management#1358 Merges: rpm-software-management#1393 Relates: rpm-software-management#1380
f9a8260
to
0ef823f
Compare
Standardize the output JSON formatformat fixed for now, this will take time