-
Notifications
You must be signed in to change notification settings - Fork 197
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
WIP: composetree: Allow url in manifest package list #1762
Conversation
This allows URLs to be used in the manifest file when doing a treecompose only in unified-core mode. This is a convenient way of adding one off packages for testing purposes but should not be the preferred method of composing a tree. Closes: coreos#1572
I'm looking for some feedback since there are a lot of parts involved in the tree compose and I don't want to inadvertently break other functionality. Once feedback is addressed I'll add tests and update documentation and remove the WIP. |
thanks @mike-nguyen |
This is quite tricky as it crosses several of the internal layers. One of the problematic things here is the implementation needs to be different between We also need to carefully think about change detection. IMO this is a really valuable aspect of rpm-ostree. It may be simplest to download the packages into a subdir of the tmpdir, run |
Should we consider removing non
+1. Even though I think of this feature as mostly being useful for development work, We definitely still want change detection to work. |
That's #1739 |
Haven't gotten around to reviewing this more in-depth yet, but just quickly:
|
@cgwalters Is this okay if this feature is only enabled unified-core mode if the eventual plan is to remove non-unified-core mode? With this implementation, non-unified core mode will error out if the manifest file contains any URL packages. If we want this feature in both modes, then the
URL packages are downloaded are added to the sack using The URL packages are downloaded every time compose is run because package validation can't happen until it is on the filesystem. We could keep a list of URLs we have already download and added somewhere and cross reference that with the manifest if we didn't want to download the packages. The targeted use case was for testing a build of a package. Ideally users would not compose using all URLs and we would document this. I've tested the following scenarios with result underneath:
Let me know if this addresses any of the concerns or raises any other concerns. I am open to going the |
OK, looking at this patch now in more details now. (First, thanks for working on this! 👍) I think what'd be nice here is to reuse the core's ability to automatically fetch packages from the OSTree repo. See the path used on the client side for e.g. The idea here is that we keep the core simple by using existing paths and keeping the logic that deals with invalidating these RPMs separate. Ideally,
I think that'd work to begin with, though it's something we'd want to fix eventually. A URL might not change yet point to a different RPM version. Likely not very common, but a gotcha I can imagine being frustrating to debug. That said, I'd be totally fine with an initial approach that just redownloads everytime for now. And then we can iterate on making that smarter afterwards. |
So roughly, it'd look something like:
|
@jlebon Thanks for the feedback! I feel like we've had this conversation before 😏 I'll take another look at using |
Hum really? Oh wait I see...right, |
☔ The latest upstream changes (presumably 79dfcea) made this pull request unmergeable. Please resolve the merge conflicts. |
Is this superseded by #1847 then? |
Yes abandoning this. |
This allows URLs to be used in the manifest file when doing a
treecompose only in unified-core mode. This is a convenient way of
adding one off packages for testing purposes but should not be the
preferred method of composing a tree.
Closes: #1572