Re: [BuildStream] Summary of the 'Staging multiple elements in bst shell' discussion at the gathering
- From: Tristan Van Berkom <tristan vanberkom codethink co uk>
- To: James Ennis <james ennis codethink com>
- Cc: BuildStream-list <buildstream-list gnome org>
- Subject: Re: [BuildStream] Summary of the 'Staging multiple elements in bst shell' discussion at the gathering
- Date: Mon, 11 Feb 2019 15:09:19 +0200
Hi James,
Thanks for clarifying, for me and for posterity :)
On Mon, 2019-02-11 at 12:03 +0000, James Ennis wrote:
Hi Tristan,
[...]
Yes, and as mentioned above, this is the element for which we stage the
sources. However, for the additional elements, which will be staged as
extra runtime dependencies, it was discussed at the gathering that we
would stage these separately by 'merging the extra runtime tree'.
I see, I guess this means to extract any non-overlapping dependencies
from the extra elements and stage them "on top" so to speak ?
It could alternatively be to stage everything as if there were one
virtual top-level target which depends on all targets which need
staging (which might be slightly more straight forward for our
codebase), but I don't currently have any preference or opinion on what
this "merge" semantics should do either way (of course this should be
clear in any documenting materials).
[...]
Further, we should recognize that this is not specific to build shells,
the environment variables specified by a given target element will also
be the ones used for a regular `bst shell` which you might use to
launch and test a graphical application on your laptop.
Ahh, this was not really discussed at the gathering. However, for a
'normal' shell, the current implementation (in !909 [0]) is to merge
environment variables from all specified elements. Which may not be the
best idea due to possible conflicts. Perhaps there needs to be further
discussion as to what the right behaviour is here.
To give my opinion on the issue, regarding the build shell, we're in
agreement that the build shell can only specify one target element, and
from what we've discussed, it does not look like we want to merge any of
the 'extra' environment variables from the additional runtimes here.
So perhaps, for the runtime shell, we should try to be consistent and go
for a main target element, of which, we only merge its environment
variables.
I tend to also think that merging of environment variable dictionaries
depending on staging order etc is quite a bad idea and will probably
just lead to undesired surprises, and tend to agree we should probably
have a consistent CLI to select the primary target separately from any
additional dependencies for this purpose, regardless of whether the
`--build` option was specified.
[...]
The use of the `--directory` option was not discussed at this gathering
but I agree that this could be a useful alternative.
Sure, it came up on list along with some ideas of supporting direct
staging of docker images or tarballs etc, but I think we can safely
consider this as an entirely separate feature (even if it may satisfy
similar requirements).
Cheers,
-Tristan
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]