IRC logs for #buildstream for Monday, 2020-06-08

*** tristan has quit IRC05:35
*** tristan has joined #buildstream05:46
*** ChanServ sets mode: +o tristan05:46
*** benschubert has joined #buildstream07:45
tristanMorning benschubert :)07:51
tristanWould you look at https://gitlab.com/BuildStream/buildstream/-/merge_requests/1956 for me ?07:51
benschubertmorning! Sure, give me a moment and I'll do this07:52
tristanyay \o/07:52
benschubertoh yeah, I'll need coffee there :'D07:52
* tristan has an ever growing stack of changes and would like to incrementally land some things07:52
tristanbenschubert, note that I also have https://gitlab.com/BuildStream/buildstream/-/merge_requests/1957 "in the queue", but I can only finish/land that *after* removing the junction name coalescing stuff07:53
tristanI.e. it might come to mind that we should be able to fix Element.search() with !1956, but it's not true, has to be done after :)07:54
*** tristan has quit IRC08:01
*** santi has joined #buildstream08:39
*** tristan has joined #buildstream09:20
*** ChanServ sets mode: +o tristan09:21
tristanoverrides are tricky11:59
tristanbenschubert, So I've got overrides working again after all the full path support, and now it supports overriding deeply nested junctions with locally defined junctions12:00
tristanAs we said, overriding subprojects using deeply nested junctions could be done with links, but... I was thinking it would be interesting to support full paths in the overrides directly also (override this subproject with that:deep:subproject.bst)12:01
tristanThis presents some difficulty when you want to make the override using another junction in the same branch in the hierarchy12:02
tristanI think we'd also run into trouble with links this way too12:02
* tristan is wondering if we need some kind of subproject relative notation to be possible12:03
tristanlike `overrides: { "subsubproject.bst": ".:othersubsubproject.bst:deepproject.bst" }` (where the "." would represent "here")12:04
tristanOtherwise, expressing something like `overrides: { "subsubproject.bst": "subproject.bst:othersubsubproject.bst:deepproject.bst" }` (where the overriding junction is "subproject.bst") presents a cyclic situation, where subproject.bst needs to be resolved for the purpose of resolving it in the first place12:06
tristanUsing a link to override a junction that is *through* the same junction which is declaring the override, would present the same conflict12:07
tristanOn the other hand, I doubt that this is very important to support12:07
tristanPerhaps the best would be to (A) Support full paths in the overrides dictionary (for both keys _and_ values)... (B) Keep track of junctions which are in the midst of being resolved, and raise an error if it is asked to be resolved in mid-resolution (catching the error gracefully for any offending cases)12:09
tristanWe could consider subproject relative override expressions separately if desired12:09
*** tristan has quit IRC12:19
benschuberttristan: good point, I think that we can indeed ensure the loader does the right thing there, and thus not have problems12:25
*** tristan has joined #buildstream14:40
*** ChanServ sets mode: +o tristan14:40
douglaswinshipin a compose element: if you're listing domains to include, and also domains to exclude, what happens to domains that aren't in either list?15:49
douglaswinshipI'm pretty sure that include-orphans is all about files that aren't in any domain at all, and whether they should be included. But what about files that do have a domain, but the domain wasn't specified?15:50
douglaswinshipI can't see that in the documentation.15:50
coldtomdouglaswinship, my _guess_ is they get excluded, but i'm not sure15:57
douglaswinshipcoldtom: i'll test it out15:58
douglaswinshipbut if anything that doesn't get explicitly mentioned, gets excluded, then that kind of makes the exclude list redundant. (And vice versa for the include list, if they get excluded).15:58
douglaswinshipWill run some tests :)15:59
douglaswinshipBased on a quick check, it looks like when you specify both an include list, and an exclude list, the exclude list is the one that's redundant. Anything that wasn't listed on either list, is excluded by default.16:10
douglaswinshipSo there's presumably no point in ever specifying both an include list, and an exclude list at the same time (unless it helps with readability / clarity)16:12
douglaswinship(But if you only specify an exclude list, then it seems to work the other way. Anything you didn't mention, is kept in. - which makes sense)16:14
douglaswinshipHow does one go about contributing/suggesting changes to the documentation? That seems worth mentioning.16:14
coldtomdouglaswinship: the general docs live here https://gitlab.com/BuildStream/buildstream/-/tree/master/doc/source, plugin-specific docs live in either the $element.yaml or in $source.py, e.g. https://gitlab.com/BuildStream/buildstream/-/blob/master/src/buildstream/plugins/elements/compose.yaml16:21
coldtomto suggest a change, you could always raise an issue!16:21
douglaswinshipThanks!16:26
tristandouglaswinship, domains can overlap in the files they capture, if you only "include", then everything not in those groups is excluded... if you "include" AND "exclude", the files in excluded groups will be subtracted from the files included16:53
tristandouglaswinship, if you only exclude, all files are assumed to be included at the outset IIRC16:54
tristandouglaswinship, will be happy of course to take docs patches :)16:54
douglaswinshiptristan: oooooh. That sounds complex, but in a useful way. :)17:03
douglaswinshipI hadn't thought of domain overlaps17:03
*** santi has quit IRC17:48
*** xjuan has joined #buildstream19:58
*** toscalix has joined #buildstream21:10
*** toscalix has quit IRC21:11
*** benschubert has quit IRC21:21
*** philn has quit IRC23:09

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