IRC logs for #buildstream for Friday, 2017-02-17

jjardonI was about to ask for examples and just discovered https://gitlab.com/tristanvb/buildstream-tests/tree/master :)00:21
*** tristan has joined #buildstream05:27
*** ChanServ sets mode: +o tristan08:41
*** csoriano_____ has joined #buildstream10:01
*** csoriano_____ is now known as csoriano10:02
*** csoriano____ has joined #buildstream10:06
*** csoriano has quit IRC10:08
*** ssam2 has joined #buildstream10:11
*** csoriano____ is now known as csoriano10:20
jjardonowen, the gjs maintainer and me spent a couple of ours yesterday trying to fix a build failure in mozjs38 in continuous; then we have to make a patch for jhbuild and now we have to fix the flatpak SDK; can we have this NOW, please? :)10:37
tristanjjardon, soon, I just have to get this other client stuff out of the way so I can focus on this :)10:41
tristanjjardon, is that arm related mozjs failure ?10:42
tristani.e. mozjs builds fine, and then depending gjs packages crash when trying to detect things with gjs in configure scripts ?10:42
tristan(which happens only on arm afair)10:42
jjardontristan: no it was a problem with mozjs creating symlinks11:11
jjardonso it affect all the platforms11:11
tristanmmm, so there is still a legitimate bug in the arm mozjs builds, I had filed a bug against gjs but found it was clearly not their problem so closed it11:13
jjardontristan: oh sorry; yeah it was a problem in mozjs compilation that makes gjs to fail to compile11:15
jjardonone sec11:16
tristanthats not the same one then11:16
tristangjs compiles just fine on arm, even though the mozjs interpretor does not work (yeah, how that happened I cant tell)11:17
jjardontristan: http://build.gnome.org/continuous/buildmaster/builds/2017/02/16/58/build/log-gjs.txt11:17
tristanit's when another component uses a configure macro to invoke gjs, to find out if a dependency exists, that component fails (cause the interpretor is *finally* invoked)11:17
jjardonfix : https://git.gnome.org/browse/gnome-continuous/commit/?id=017520b70ff8c0cbdc65eb5a5930ca51e5a9d70b11:17
tristanjjardon, I presume you will take care of curing the flatpak builds of the same illness ?11:18
tristanwe'll see if that makes any difference11:19
jjardontristan: I used to fix things in one place (jhbuild), now we have to do it in 3 different place, so time is limited :/11:25
* jjardon didnt have time yet to assimilate how changes in the GNOME flatpaks can be tested and pushed11:25
tristanjjardon, the builders just build what is latest, so there is no pre-merge CI if that's what you mean11:28
ironfoottristan: can different variants of a .bst file be used in the same pipeline?11:41
ironfootor there is just one variant type that can be used11:41
ironfoot...per build11:41
tristanironfoot, one per build11:47
tristanyou only build one target at a time, indeed11:47
tristanironfoot, of course that means that there can be many active variants, but one build graph will be resolved with the chosen variants11:49
tristanto try to be more clear, but possibly fail in doing that :)11:49
tristanso yeah a bst project may declare many variants, but only one variant of each chosen dependency will be chosen to form the build graph that we build11:50
ironfootright11:59
ironfootso in the case of looking for dependencies loops, I can ignore the variants, and just look at the files loaded12:00
tristanThe circular dependency check was originally inside variant resolution12:12
tristanI think i moved it out after finishing with variant resolution12:12
tristanSo I think variant resolution is circular reference safe (wont spin)12:12
tristanironfoot, you are embarking on the most tricky part of the code base, code-wise12:13
tristanjust a warning :)12:13
ironfootthis is how you learn, and get invovled :)12:17
tristannod12:21
tristanI wanted to fix that but hands tied :-/12:21
tristanAs I mentioned above, a recursive list accumulation-checking method should work12:22
tristan(so long as each recursion has a new copy of the list)12:22
tristanshould be 0(n) this way but cost a lot of memory12:22
tristanI think12:22
ironfootthat matches my thoughts12:23
ssam2but as long as the memory is freed again, it'll prepare the user for the upcoming C++ compiles :-)12:24
tristanhah12:25
*** csoriano has quit IRC12:27
tristanironfoot, can be done in one list even12:27
tristan o if self in list then raise LoadError()12:28
tristan o add self to list12:28
tristan o recurse dependencies12:28
tristan o remove self from list12:28
tristan?12:28
*** csoriano has joined #buildstream12:29
*** csoriano has quit IRC12:33
ironfooti think i have already implemented it :)12:34
ironfootbut will need reviewing, ofc12:34
tristandoes ./setup.py test pass ?12:34
*** csoriano has joined #buildstream12:35
*** csoriano has quit IRC12:45
ironfooti dont know, given that they don't work in my setup12:45
ironfootwill have a look at it before sending the patch12:46
tristanironfoot, iirc only the sandbox tests fail for you ?12:48
tristanironfoot, if everything else passes, you should be good12:48
tristanparticularly: tests/loader/dependencies.py::test_circular_dependency PASSED12:49
*** csoriano has joined #buildstream12:50
ironfootthat one passes13:06
ironfootbut am worried about "buildstream/_loader.py FAILED"13:07
tristanhmm13:10
tristandoes it come with any other context than that ?13:10
* tristan lets ironfoot fiddle13:10
ironfootyep, I'll get to it13:10
ironfootah, my little friend pep813:11
tristanah, that's easy :)13:12
tristanironfoot, that should not work13:28
tristanironfoot, seems to just reveal that my circular dependency check is broken13:29
tristanI mean s/check/test case13:29
tristanand s/broken/not complete enough13:29
tristanor does it13:29
tristanaha hmmm13:29
ironfootI'm the one learning here :)13:30
tristanI'm still a bit unsure :-/13:30
tristanvariants make this more tricky13:30
ironfootI thought: file being loaded twice, kaboom13:30
ironfootand then i thought: variants?13:30
ironfootbut same thing for variants, given that one variant per build13:30
tristanWell, that's what the following line  "if filename in self.loaded_files" is for13:31
tristanironfoot, right, which led me to think, after resolving variants, when we have a realized dependency graph, that list check would be safe (so long as variant resolution doesnt possibly spin)13:31
ironfootthat is so that if 2 things depend on, say, core, you don't compute core twice13:31
tristanironfoot, the thing to remember is that, a chosen variant dictates the final dependencies of that element13:32
tristanSo, it's possible that in one variant, foo depends on bar, and in another bar depends on foo13:33
ironfootinteresting13:33
ironfootthat case should be added to the test13:33
tristanindeed13:33
ironfoot(if possible, haven't looked at the tests yet)13:33
tristanwell, this approach requires a bit of thought13:42
tristanit's a hard problem :-/13:43
tristanWhen resolving the conflict inside variant resolution (which I suppose could be accomplished with the same approach), it would result in raising a circular dependency error "for a given variant branch"13:44
tristanwhich is questionable13:44
tristanbecause we dont know yet, if that branch is suitable to choose13:44
tristanif we do it at file load time, we're not even sure if it's a dependency13:45
tristanthe best would be if we could do it post-variant-resolution, while ensuring that variant resolution cant spin13:45
tristanI guess13:46
tristanbut that is a guess, not law :)13:46
*** leeming has joined #buildstream14:07
tristanironfoot, in any case, with this approach you are able to resolve the converted baserock ?14:20
tristanI will look further into this, if there is an approach of checking circ-deps *after* variants I will try to find that14:20
tristanironfoot, the script afaics (I tried the repo this morning) still encodes dependencies as "type: build", which will mean it wont build or work14:21
tristanlooks like the depends was corrected only in stacks, but not in the other elements14:22
ironfootsure, the defs2bst script is not finished. I'm dealing  now with some little details, but at least i can get BuildStream to complain14:23
ironfootI haven't thought about the dependencies yet14:23
* tristan notes that as an improvement, build-essential.bst could be split into one which contains tools and another with only the runtime14:23
tristanand core.morph could normal depend on the runtime part only, while build: only depending on the one with tools14:24
tristancausing busybox to disappear once coreutils is there :)14:24
tristandoesnt fall into the purview of an autoconversion14:25
tristanjust noting14:25
* tristan should probably do that with build-essential right away though14:25
*** tristan has quit IRC14:35
*** xjuan has joined #buildstream14:43
*** csoriano has quit IRC14:48
*** csoriano____ has joined #buildstream14:48
ironfootyay! pulling sources :)14:51
*** tristan has joined #buildstream15:07
*** csoriano____ has quit IRC15:09
*** csoriano____ has joined #buildstream15:11
*** ChanServ sets mode: +o tristan15:12
*** csoriano____ is now known as csoriano15:24
ironfoottristan: building core.bst here :)15:25
tristansweet, did you remove the build-only deps too ?15:29
* tristan thinks it wouldnt build without that15:29
ironfooti haven't because I still don't understand the deps types15:31
ironfooti know it will fail15:31
tristanironfoot, for all the auto conversions, dont put any "type", just list em out as filenames15:35
tristanI think the first part I did was to sort out how strata / stack deps are transformed15:35
tristanso that part should be ok15:35
*** csoriano has quit IRC15:36
tristanironfoot, 'build' means: I only need this to build (and needing it, implies it has to run), "run" means, I only need this to run15:36
*** csoriano____ has joined #buildstream15:36
tristanironfoot, the default is both15:36
ironfootright15:37
*** csoriano____ is now known as coriano15:37
*** coriano is now known as csoriano15:46
*** persia has joined #buildstream15:48
ironfootI've updated my forks, (without changing the dependency type yet)15:49
ironfootbut it's something :)15:49
*** ssam2 has quit IRC18:31
*** tiagogomes has quit IRC18:58
*** csoriano has quit IRC20:13
*** xjuan has quit IRC21:11
*** tristan has quit IRC21:34

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