Support for isolated builds#1393
Conversation
5e78af2 to
611c60c
Compare
|
One of the experiments might look like: Alternative way to 5 might look like: |
xsuchy
left a comment
There was a problem hiding this comment.
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
|
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! 👍 |
Add support for isolated builds 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
Add support for isolated builds 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! |
Add support for isolated builds 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
Read the info directly from the lock file that has been created for this purpose: rpm-software-management/mock#1393 Fixes: konflux-ci/rpmbuild-pipeline#52
Standardize the output JSON formatformat fixed for now, this will take time