IRC logs for #buildstream for Tuesday, 2017-05-30

*** juergbi has quit IRC02:39
*** juergbi has joined #buildstream02:41
*** tristan has quit IRC06:20
*** tristan has joined #buildstream06:40
*** ChanServ sets mode: +o tristan06:40
*** jonathanmaw has joined #buildstream08:31
jonathanmawmorning tristan, I've run into a problem with how to run the integration commands when setting up the staging area. When you install contents into a subdir, integration commands can't be reliably executed. My solution was to extend the sandbox class to be able to create a sub-sandbox, which I can run the commands from08:42
tristanjonathanmaw, I was hoping to talk to you about that yeah08:44
tristanjonathanmaw, I came to the opposite conclusion actually08:45
tristanI thought, there is an expense of making the sandbox API more complex08:45
tristanAnd there is a discomfort of not allowing integration commands in sandbox "sub stages"08:45
tristanjonathanmaw, the thing is, the user can always stage the output of a "compose" element into a script subdir, if they want to stage something pre-integrated08:46
tristanSo I feel like, probably it's not worth adding more complexity to the sandbox to satisfy that08:46
jonathanmawOk, works for me!08:46
tristanand just say that "Only elements staged in / will have integration commands run"08:47
*** tiagogomes has joined #buildstream09:11
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 3 commits (last: _signals.py: Added blocked() context manager) https://gitlab.com/BuildStream/buildstream/commit/304a35e8a53e50903fb4d1d06c19827dcef9cd7d09:31
jonathanmawdoes get_unique_key need to pull in all the variables for an element, too?09:44
tristanjonathanmaw, no09:45
tristanwell wait a sec...09:45
tristanit does not but....09:45
* jonathanmaw had a peek at element._get_cache_key09:45
jonathanmawah, those were environment variables, not Variables09:46
tristanjonathanmaw, basically, what is expected is that any self.node_subst_member() be used in configure()09:47
tristanSo once you have loaded your configuration, you have loaded it with variables substituted09:47
tristanIf any variables have been used to compose the configuration09:47
tristanthe values of only those variables will effect the cache key09:47
jonathanmawok, so variables include cwd, and the element should pull that out in configure and store it locally, to set get_unique_key09:48
tristanjonathanmaw, exactly, basically all configuration should be loaded in at self.configure() time09:50
* paulsher1ood hopes folks don't accidentally do anything that defeats the possibility of bit-for-bit reproducible builds09:50
tristanpaulsher1ood, I suppose a measure we can take against that is to raise an exception if ever variable substitutions are attempted outside of configure()09:50
tristanBut, there is no way to to make it entirely bullet proof09:51
tristanimproving documentation where possible should be a priority09:51
paulsher1oodakc... but at some point, once we have bst definitions that are in themselves b4b, we can put that in as a ci test09:51
tristanYes, but that does not mean that third parties can never make a mistake in their own custom plugins09:52
tristanWe can only police the plugins we maintain09:52
paulsher1oodack09:52
tristanbasically though, the only obvious opportunity I can see for messing up is rudely interrogating the host environment (os.environ dictionary)09:53
paulsher1ood:)09:54
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 1 commit (last: element.py: Fixed dumb mistake bad bitwise operation) https://gitlab.com/BuildStream/buildstream/commit/276d544bd9190b3faaa3b968d7aab3f23dfdc4fc10:05
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 1 commit (last: _sandboxbwrap.py: Fix issue #31, handle keyboard interrupts) https://gitlab.com/BuildStream/buildstream/commit/a0b0de9a2351d2fb47b325fdc0cc07e0058b7b5010:12
gitlab-br-botbuildstream: issue #31 ("Hitting ^C inside the shell causes stack trace in the frontend and orphaned tasks") changed state ("closed") https://gitlab.com/BuildStream/buildstream/issues/3110:12
jonathanmawhrm, I think when I was originally setting this out, I was assuming read-only sandboxing was set some other way.10:14
jonathanmawtristan: Should I extend sandbox.run to understand a list of read-only dirs?10:15
tristannah10:15
tristanreadonlyness is only a feature for /10:15
jonathanmawok10:16
tristananything under staged under the special '/buildstream' directory (if it exists), is readwrite10:16
tristanjonathanmaw, there is a critical bug related to this which must be handled... but there is no way out anyway10:16
tristanthere is always a case where read-write is required on a staged artifact10:17
tristan(like when running integration commands)10:17
jonathanmawok, so it sounds like read-only root would be better passed in as config or a variable, rather than being part of layout.10:17
jonathanmawunless we're leaving space for it to be extended to provide that functionality later.10:18
tristanjonathanmaw, sure, outside of layout sounds suitable10:18
tristannote that bug I was referring to is: https://gitlab.com/BuildStream/buildstream/issues/1910:18
tristanI hope to fix that with fusepy to provide a "copy-on-write hardlink" experience for anything read-write10:19
tristanor anything read-write which "comes from an artifact"10:19
tristannot needed for anything that comes from Sources10:19
jonathanmawtristan: I'm not sure on how to decide whether to put "readonly-root" in variables or config.10:20
jonathanmawIs it "whether it would conceivably be used in scripts"?10:20
jonathanmawor "Is it simple enough to be expressed as a string"?10:20
*** tiagogomes has quit IRC10:28
*** tiagogomes has joined #buildstream10:29
tristanjonathanmaw, good question10:30
tristannot sure I know the answer, but my intuition would be to put it in config10:31
tristanI think the former is a decent criteria10:31
jonathanmawok10:32
paulsher1oodtristan: s/criteria/criterion/10:43
*** tristan has quit IRC11:41
*** tristan has joined #buildstream13:11
*** ChanServ sets mode: +o tristan13:11
gitlab-br-botbuildstream: issue #35 ("End of session reports") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/3513:45
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 1 commit (last: element.py: Protect against variable substitutions outside of Element.configure()) https://gitlab.com/BuildStream/buildstream/commit/ad48cee1171c465bad966d2cb1c8f120fca6717613:52
*** tristan has quit IRC14:03
*** tristan has joined #buildstream14:11
*** ChanServ sets mode: +o tristan14:58
*** jude has quit IRC16:09
jonathanmaw\o/ I'm through enough of the bugs in my code that it's started building!16:22
jonathanmawI don't think I'm going to see the result of this build until tomorrow, though :¬|16:22
*** jude has joined #buildstream16:28
jonathanmawturns out I did see the result. It failed :P16:30
*** jonathanmaw has quit IRC17:04
*** jude has quit IRC17:11
*** jude has joined #buildstream17:19
*** Chris has quit IRC17:22
*** Chris has joined #buildstream17:23
*** jude has quit IRC17:53
*** jude has joined #buildstream20:24
*** tristan has quit IRC20:40
*** jude has quit IRC21:01
*** violeta_ has quit IRC21:21
*** paulsher1ood has quit IRC22:34

Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!