IRC logs for #buildstream for Friday, 2019-06-28

*** persia has quit IRC01:05
*** persia has joined #buildstream01:05
*** tristan has quit IRC06:13
*** tristan has joined #buildstream06:26
*** benschubert has joined #buildstream07:23
*** toscalix has joined #buildstream07:26
*** ChanServ sets mode: +o tristan07:34
tristanbenschubert, About provenance... you bring to mind a corner case which I think we still don't handle well07:34
benschuberttristan: oh?07:34
*** bochecha has joined #buildstream07:34
tristanI think relevant issues are https://gitlab.com/BuildStream/buildstream/issues/591 and https://gitlab.com/BuildStream/buildstream/issues/253, which were "fixed" but still leave a gap iirc07:34
tristanWhen the user is required to specify something in the yaml (i.e. no default was provided to node_get(), implying that a missing value is an error)... and that has no default value inherited from other composited yaml07:36
benschubertI see, I'll make sure those work07:36
tristanWe end up getting the provenance of the dictionary where it is expected to be added, either the plugin's .yaml file or the default project configuration07:36
tristanI think there is no concept currently to make those "work"07:36
benschubertI'll probably ping you in a few hours about node_sanitize stuff btw :)07:37
benschuberttristan: yeah, ensuring it's the user-facing file07:37
benschubertI'll add tests and ensure I cover this07:37
tristanyeah, I wonder if it requires some API :-/07:37
benschubertI'll see :)07:37
tristanregarding your specific question from last night... there may be some unhandled cases which arise specifically because of the possibility of compositing YAML with raw dictionaries07:38
tristancrafted in code07:38
tristanor that is the origin of why synthetic provenances exist at all07:38
tristanbenschubert, perhaps the entire use case can be eliminated, or... we need to consider "What is the provenance of something that was set in code" and make that somehow valid07:39
tristanone thing I can think of is calls to Element.set_public_data()07:39
tristanif another plugin reads public data which was dynamically set... and asserts some expectation on that data... then what should the error message say ?07:40
benschubertyep, agreed, I would really like to not have to show users 'oh you have an error line 123 in element.bst, it should be a string', and 'yeah that's a string... '07:41
benschubertI think this should say that it's coming from a synthetic node, which means a programing mistake07:41
tristanprovenance might be the project & plugin.py file (so the user can know that the code in such and such plugin loaded by such and such project wrote out incorrect yaml)07:41
tristaninterestingly, we have enough context at Element.set_public_data() time to fabricate more sensible provenance07:42
tristanbut then, causing that to be preserved through artifact metadata is tricky07:42
benschubertyeah, I'm not sure I really like the idea07:42
tristanIt's certainly something I would like as a feature07:43
tristanI mean... if we have say the debian packaging plugin read some invalid key that should be an int but is not... then I would like to know the element name, project and plugin which caused that node to be generated for later consumption by the reading plugin07:44
tristanrather than "This public data member is not what I expected... go figure out where it came from yourself" :)07:44
benschubertagreed07:45
benschubertis it only in public data?07:45
tristanOf course... this is quite advanced error handling territory, fixing it would be a vast improvement, but not fixing it now is probably okay :)07:45
benschubertI'll make sure I don't prevent fixing it later07:46
tristanI believe that is the only valid place where code generates data that gets into the nodes yes07:46
tristanbenschubert, there is another case we should not care too much about07:46
tristanbenschubert, I suspect we have various test cases which composite YAML nodes, and that is rather fine that the synthetic provenances are just dummies07:46
benschubertright, yeah I'm not too worried about those07:48
benschubertBtw, if you want to have a look, I have 3 more PRs to the new-node-api branch: https://gitlab.com/BuildStream/buildstream/merge_requests?scope=all&utf8=%E2%9C%93&state=opened&target_branch=bschubert%2Fnew-node-api It's starting to take shape07:48
tristanyeah I noticed, they look easy to review, I'll jump on them now and try to get them out of the way07:48
benschubertthanks!07:49
*** alexandrufazakas has joined #buildstream08:00
tristanbenschubert, while reviewing your patch I spot a couple of other exceptions where we manually modify the nodes08:32
tristanbenschubert, those are basically the "automatic variables", one of which is obviously `max-jobs`08:32
tristanof course it's quite unrealistic that we would raise an error on these automatic variables, so their provenance is probably not important... just pointing out that these exist :)08:33
valentindWas the bastion restarted?08:34
benschuberttristan: good catch!08:34
benschubertthanks for the reviews08:34
valentindI see there are issues with selinux08:34
valentindjjardon, or lchlan ?08:35
valentindNo, it is a Debian, it should be some other issue.08:36
*** raoul has joined #buildstream08:37
valentindIt might be on the docker machines.08:39
valentindSwitching to coreos to see.08:39
alexandrufazakasWhat do I need to do to set the default directory for bst as None, instead of os.getcwd()?08:45
alexandrufazakasI changed the click.option to `default=None`08:45
alexandrufazakasBut printing the kwargs in the cli constructor still has 'directory' to CWD :/08:45
gitlab-br-botBenjaminSchubert opened issue #1058 (Rework node provenance for synthetic nodes) on buildstream https://gitlab.com/BuildStream/buildstream/issues/105808:57
*** rdale has quit IRC09:01
*** phildawson has joined #buildstream09:03
*** jonathanmaw has joined #buildstream09:06
tpollardalexandrufazakas: how did you install buildstream?09:13
alexandrufazakasuhh09:13
alexandrufazakasthe recommended way on the wiki09:13
alexandrufazakastpollard: So I think using pip309:15
gitlab-br-botBenjaminSchubert merged MR !1426 (bschubert/node-api-keys->bschubert/new-node-api: Cleanup `MappingNode` key/values/items accessor) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/142609:16
gitlab-br-botjennis opened issue #1059 (Regression: Unhelpful error message on missing variables) on buildstream https://gitlab.com/BuildStream/buildstream/issues/105909:19
jennistristan, benschubert ^ related to your discussion this morning09:20
benschubertthat's a lot of things to fix, thanks!09:20
jennisI went back to pre-yaml-rework and the bug still existed09:21
*** rdale has joined #buildstream09:21
valentindFinally the builders work.09:27
tristanjennis, yeah it's been forever, thanks for summarizing !09:28
tristanjennis, some cases were "fixed" but indeed mostly workarounds for the underlying issue09:28
jennisYou're welcome09:29
tristaninteresting that it happens with 'url', I guess that is set nowhere at all09:29
benschubertyeah :/09:30
benschubertI'll ensure my branch fixes those things before merging09:30
tlater[m]alexandrufazakas: The reason tpollard asked is because you probably need to install it with -e for it to use your updated version09:33
alexandrufazakastlater: Makes sense, but thing is I'm running a test09:33
tpollardyes sorry, thanks tlater[m] got distracted09:33
tlater[m]alexandrufazakas: Fair enough, changing the click default argument should work though. Maybe you're in the wrong directory or something?09:34
alexandrufazakastlater: not sure what you mean by beig in the wrong directory09:35
alexandrufazakasI'll check out a new branch and try on that from scratch09:35
* alexandrufazakas shrughs09:35
tlater[m]Just a random guess, in case you have multiple buildstream directories09:35
tlater[m]I have a whole collection, quite a number named "temp"09:35
tlater[m]I even have a buildstream directory called alexandrufazakas09:36
alexandrufazakasAh, yeah, I was thinking that might be what you meant. I only have one09:36
alexandrufazakashaha09:36
alexandrufazakashttps://pastebin.com/udpWtejR09:40
alexandrufazakasSo this is what I have, nothing else, and this is the output of that print09:40
alexandrufazakashttps://pastebin.com/x0CgR6Vj09:41
alexandrufazakasShouldn't directory be None? :/09:41
tristanjennis, not exactly the same issue I think09:41
tristanjennis, just commented, interesting find though with `url` :-/09:41
tristanjennis, I suspect that your `url` issue must be some kind of regression, but it's possible that it went unnoticed for this long09:44
tristanmaybe not a recent regression09:44
tlater[m]Ah, alexandrufazakas, the Cli fixture sets the project directory by default09:45
alexandrufazakastlater: Uhh, cli fixture?09:46
tlater[m]Find runcli.py and look in there - there's a way to disable that.09:46
tlater[m]cli.run() :)09:46
tlater[m]You'll want to use cli.configure()09:47
jennistristan, thanks for looking further into it09:52
*** lachlan has joined #buildstream09:52
jennisSo it sounds like you're saying if I commented out another (I'm not sure which) variable, I could have received the appropriate error message?09:53
jennisOr am I misinterpreting this?09:53
valentindtristan, bst-1.2 fails09:53
valentindtests/artifactcache/expiry.py::test_expiry_order09:54
valentindI need to renew the certificate for the documentation pages. And for that I need the build to work.09:56
valentindCould I just disable this test?09:57
tristanvalentind, sounds like a spurious error09:58
tristanvalentind, try running again at least09:58
valentindIt fails all the time on the builders09:58
tristan:-/09:58
tristanThat is bad09:58
valentindThey are all red.09:58
tristanAnd since when did this start happening ?09:58
valentindLooks like something to do with disk space or something.09:58
valentindI do not know.09:58
tristanI see, seems not related to any commit09:58
valentindFor some time. Seems the documentation did not get updated for a while.09:59
tristanvalentind, is there a way in pytest we can not disable it but turn the failure into a warning ?09:59
valentindWell if the test fails in some condition, it sounds to me the test is wrong.09:59
tristanmight be better09:59
tristanvalentind, maybe the test needs to be fixed, not sure - but there are of course some minimal requirements of the system10:00
tristanvalentind, I think at some point we changed those tests to virtualize the size of the cache10:00
tristanwith unittest.mock()10:00
tristannot sure if that is in bst-1.210:00
valentindI do not see any straight forward way to make it a warning.10:02
valentindI would really like to update the certificate.10:02
valentindAnd it is Friday.10:02
valentindI will make a merge request with skip.10:02
valentindWe can make something better another time.10:02
tristanvalentind, do what you have to10:03
tristanvalentind, agreed10:03
tristanjennis, I do suspect you are misinterpreting that... I think10:03
tristanjennis, which part of my comment are you talking about ?10:04
jennistristan, sorry, that was a response to your IRC comments, I said that before I read the issue10:04
jennisThe issue has made things clearer10:04
tristanoh10:04
jennisissue comment*10:04
jennisThanks10:04
gitlab-br-botvalentindavid opened MR !1436 (valentindavid/disable-test_expiry_order->bst-1.2: tests/artifactcache/expiry.py: Disable test failing on builders) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/143610:06
tristanjennis, I think the lack of line/column information might mean that it is the toplevel provenance of the file autotools.yaml10:06
tristanjennis, it's a similar error I get if I comment out the `name:` from a project.conf10:06
tristanjennis, Note that if I comment out `name:` from a project.conf, the reason why it reports the correct project.conf... iirc, is that that call to node_get() happens on the project.conf *before* compositing it against the defaults10:07
tristanif we were to composite first and ask for the name later, then we would get the wrong file provenance10:07
jennisYes, the fact that its reporting an error in autotools.yaml instead of hello.bst makes it clear that composition is the problem10:08
tristanUmmmm10:08
gitlab-br-botvalentindavid opened issue #1060 (Fix tests/artifactcache/expiry.py::test_expiry_order on bst-1.2) on buildstream https://gitlab.com/BuildStream/buildstream/issues/106010:08
benschuberttristan: then I think we are not doing the provenance business correctly if we need to check before composition :)10:09
tristanjennis, right so that is the issue with url... somewhere in composition, the provenance of the dictionary is not being preserved10:09
tristanbenschubert, I think that is indeed a workaround for this specific issue10:09
tristanjennis, clearly the dictionary comes from hello.bst, and that dictionary did not exist at all in the underlying autotools.yaml... but somewhere in composition that provenance got lost10:10
tristanoddly, there is a lot of strict tests on provenance and composition10:11
tristanbut even with that, we obviously havent got everything covered :-/10:11
tristanMaybe the most checking we do is with list append/prepend, need more provenance asserting in there10:12
jennisYes the dictionary exists, but it'll get composited without url10:13
jennisThen we have this big composited node where we say "give me the url", which doesn't exist in this node10:14
jennisSo we should be checking before composition, otherwise, we need to be clever and try to link back and figure out where url should have been10:14
benschubertjennis: or reverse the composition (use composite_and_move) and when compositing not adding empty values10:15
benschubertthat might work10:15
gitlab-br-botvalentindavid merged MR !1436 (valentindavid/disable-test_expiry_order->bst-1.2: tests/artifactcache/expiry.py: Disable test failing on builders) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/143610:42
*** lachlan has quit IRC10:44
tlater[m]Becky:10:52
tlater[m]Argh10:52
tlater[m]Becky: For reference, I think we'll want to end up doing something like this with your patch: https://pythonprogramminglanguage.com/multiple-inheritance/10:52
tlater[m]Because really, what we're looking at is a form of multiple inheritance10:52
tlater[m]Our tar plugin wants to simultaneously be a downloadable file, but also a local file, that does tar things10:52
tlater[m]But for now, let's try overriding `__new__` and see whether that works :)10:53
Beckytlater[m] okay thankyou I'll have a look into that :)10:53
*** bochecha has quit IRC10:56
*** lachlan has joined #buildstream10:56
alexandrufazakasFrom what I've gathered the cli.run() sets the directory to project, but if -C is passed that is overwritten with the -C argument?10:59
alexandrufazakasAnd uhh, what's the difference between the cli in _frontend/cli.py and testing/runcli.py?11:02
tlater[m]alexandrufazakas: testing/runcli.py is set of functions that allow you to invoke buildstream11:04
tlater[m]cli.py defines the command line interface of buildstream11:04
tlater[m]runcli.py is essentially a library to call cli.py :)11:04
tlater[m]alexandrufazakas: You've got the -C thing wrong, I think11:05
tlater[m]Look at line 341 in runcli.py11:05
alexandrufazakasYeah, that's why I was asking11:05
alexandrufazakasI actually commented that out11:05
tlater[m]If you run something like `cli.run(project=project, bla bla bla)`, it will set -C to project11:05
alexandrufazakasTo see what happens11:05
alexandrufazakasYeah11:05
alexandrufazakasso if you do11:06
tlater[m]In that case --directory should be set to the default11:06
alexandrufazakas`cli.run(project=project, '-C', '/tmp/foo')11:06
tlater[m]Which is None in your patch, I think?11:06
alexandrufazakassomewhere you set the --directory to project11:06
alexandrufazakasand then you set it to /tmp/foo11:06
alexandrufazakastlater: Yes, that's what I did11:06
tlater[m]That should work, actually, yes11:06
alexandrufazakasI would set the --directory to None by default11:06
alexandrufazakasAnd I commented that line out11:06
tlater[m]And what happens?11:07
alexandrufazakasBut then the first test doesn't work,s ince I do something like os.getcwd() and it creates project.conf in my directory11:07
alexandrufazakasWhich is something like ~/Documents/buildstream/11:07
alexandrufazakasInstead, it should use the temporary directory that is passed to the project parameter11:07
tlater[m]Yeah, you're going to be need a bit more crafty11:07
alexandrufazakasWhich I no longer use11:08
alexandrufazakasOh, okay11:08
alexandrufazakasIf it all makes sense, it's alright11:08
alexandrufazakasI kinda wanted to make sure it isn't me who's going some wrong way11:08
tlater[m]What I'd suggest is writing a test that does `cli.run(project=None, args=["init", os.path.join(tmpdir, "foo")])`11:08
tlater[m]Also, I think that cli.run is just a little broken atm, because str(None) returns 'None'11:09
tlater[m]So you'll need to fix that :)11:09
alexandrufazakasisn't that a python thing?11:09
alexandrufazakasI just did that in python3 too11:09
tlater[m]What do you mean?11:09
alexandrufazakasIsn't str(None) supposed to be 'None'?11:10
tlater[m]Yep, it definitely is11:10
alexandrufazakasOh11:10
alexandrufazakasYou're just saying I just be careful about it11:10
tlater[m]But we unconditionally turn None into 'None'11:10
tlater[m]And use that as the project dir11:10
alexandrufazakasWell, that could be worked around11:10
alexandrufazakasby defaulting --directory to ''11:11
alexandrufazakasThat works fine with os.path.join()11:11
tlater[m]alexandrufazakas: Look at line 325 in runcli.py11:11
alexandrufazakasAnd it still gets the job done. I think11:11
tlater[m]I'd dislike that11:11
tlater[m]There's a very distinct difference between no argument, and an argument11:12
tlater[m]This way you'd test whether giving bst -C '' would give you a reasonable result11:12
tlater[m]You would not test whether just bst works11:12
alexandrufazakasTrue11:12
tlater[m]And anyway, we've found a bug in our test fixture, you should fix it! x)11:13
alexandrufazakasThat should be fairly easy if I understood that right11:13
alexandrufazakasSo sure11:13
alexandrufazakastlater: Should we just set project to '' in that case, or raise an exception?11:18
gitlab-br-botAlexFazakas opened MR !1437 (AlexFazakas/str-none-runcli->master: runcli: Don't set project to 'None' on no input) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/143711:22
tlater[m]alexandrufazakas: Neither of those things11:22
tlater[m]You should leave it None :p11:23
tlater[m]So that we get buildstream's default path11:23
*** lachlan has quit IRC11:34
tpollard'instead of leaving this poor class confused about its very essence'11:36
tpollardthis made me chuckle tlater[m]11:36
benschubert jennis , tristan do you see any danger in removing 'node_sanitize' for cache keys? if all call sites are updated to set the value and not the node11:37
tristanbenschubert, The keys need to be ordered when dumped for sure11:41
tristanbenschubert, can't have any random in there... otherwise originally I think it was just sorting/ordering the dict keys and removing the internal __bst_provenance members11:42
benschuberttristan: ujson already takes care of ordering11:42
tristansorted ?11:43
benschubertyep11:43
tristanWe don't require plugins to provide OrderedDicts so... yeah they need sorting11:43
tristanUmmm, asides from thaaaaat... is it okay to be reliant on this third party thing for the format of cache keys ?11:44
*** lachlan has joined #buildstream11:44
benschuberttristan: https://github.com/esnme/ultrajson/blob/master/python/objToJSON.c#L432 this is sorting it, and we pass sort_keys=True11:44
tristanbenschubert, I guess it should be fine as long as it's well commented where we use ujson, and that we should be able to swap implementations if desirable without breaking cache keys ?11:45
benschubertwell, we are still using it to dump the values (and re-sort everything again)11:45
benschubertand we have tests for the cache keys11:45
benschubert(also, to ensure we don't ever try to add a Node in a cache key, i can add a "__json__" method on Nodes, that throws a ValueError11:46
tristanyeah, why... are we able to remove the santize thing and *still* pass the cache key tests ?11:46
tristanthat would probably be good :)11:47
tristanbenschubert, also the __json__ thing would be good11:47
benschubertyep, I currently have the json thing that just returns the internal value jsonified, and it's passing while removing the node_sanitize, but I think we can go one step further, and speed things up :D11:48
benschubertok! I'll have a shot at it11:48
benschubertI actually believe we should be able to get rid of node_sanitize entirely11:49
tristansec11:49
tristanbenschubert, there may be other places we still need node_sanitize11:49
tristanbenschubert, For instance... when dumping YAML formatted things to stdout for scripting purposes11:49
benschubertfor this we can add custom encoders that encode the internal value11:50
benschubertand rely on yaml to dump things sensibly11:50
benschubertand finally we are using it in workspaces to generate a dict and pass it to the constructor as kwargs11:50
benschubertand for this, I actually believe we should be checking it, because even though it is a private format, things become interesting if someone changes that file11:51
tristanbenschubert, right - just saying that it's best we dont dump randomly sorted YAML dicts to stdout11:51
tristanwhatever takes care of it is fine :)11:51
benschuberttristan: we can sort dicts in the parser itself yep11:52
*** lachlan has quit IRC11:52
tristanright, `bst workspace list` is public... and things like `bst show --format '%{vars}'` also11:52
benschubertwon't be broken if we craft the yaml dumper correctly (we also have tests covering this)11:53
tristansure, I mean it might not be technically broken if unsorted... but I think it's better if we do keep them sorted :)11:54
tristanit's definitely nice to have variables alphabetically sorted when debugging/viewing what vars are resolved for a given element11:54
* tristan uses that fairly frequently11:54
*** lachlan has joined #buildstream11:57
*** lachlan has quit IRC12:01
jonathanmawtristan: when you've got time, can you look at !1409 again? I've reworked it so that all the frontend stuff get passed objects to register callbacks with12:12
gitlab-br-botMR !1409: Separate frontend state handling from core state https://gitlab.com/BuildStream/buildstream/merge_requests/140912:12
tristanjonathanmaw, awesome sauce... going to dinner now :)12:16
benschubertAm I the only one seeing the test 'no_needless_overwrites' fails from time to time?12:19
benschubertfrom tests/frontend/track.py12:20
*** tristan has quit IRC12:22
gitlab-br-botAlexFazakas closed MR !1437 (AlexFazakas/str-none-runcli->master: runcli: Don't set project to 'None' on no input) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/143712:58
gitlab-br-botAlexFazakas reopened MR !1437 (AlexFazakas/str-none-runcli->master: runcli: Don't set project to 'None' on no input) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/143713:11
benschubertDo we have an exception to signal a bug in a plugin?13:22
*** lachlan has joined #buildstream13:39
*** lachlan has quit IRC13:44
alexandrufazakastlater: hey, sorry to ask this again, but how should we avoid the thing on line 342 in runcli.py? We can't just set project to None since we need to run the command in a certain directory, right?13:55
tlater[m]alexandrufazakas: For your test it's enough to prove that we can create a project in that directory, so we don't need to set -C to the temporary directory.13:57
tlater[m]You can just do `bst init <tempdir>/foo/bar`13:57
*** lachlan has joined #buildstream13:57
tlater[m]Instead of `bst -C <tempdir> init foo/bar`13:57
alexandrufazakasYeah, but for that test to work I need that if to fail13:57
tlater[m]Ah, for the failing test you can just go `bst -C <tempdir> init foo/bar`, and ask pytest to assert that fails13:58
alexandrufazakasBut then other tests won't work since they do cli.run(project=project, args-[..]) and here I need to use that project since it contains th eproject's location13:58
tlater[m]Yes, that's why for the test where you do want a project you go project=project13:59
tlater[m]But for the test where you don't want a project you go project=None13:59
alexandrufazakasYeah but I mean, using project=project, basically means using -C, which is what all of the tests in init.py do13:59
tlater[m]Yes, and those tests stay the same14:00
tlater[m]The only test that is slightly different is the one that uses `bst init <tempdir>/foo/bar`14:00
tlater[m]It specifies project=None14:00
tlater[m]Every other test specifies project=project14:00
tlater[m]Does that make sense?14:00
alexandrufazakasI get what you're saying, but I'm not sure how to implement it so that we abort whenever '-C' is used with init14:01
alexandrufazakasAnd still run tests using cli.run(project=project)14:01
tlater[m]Ok14:01
tlater[m]How does one affect the other?14:01
tlater[m]Oh!14:01
tlater[m]Nevermind14:02
tlater[m]I just caught on14:02
tlater[m]Right, yes, you'll need to change the other tests14:02
tlater[m]All tests will need to run with `project=None`, and instead specify `project` as an argument14:02
alexandrufazakasYep14:02
alexandrufazakasThat's what I was thinking14:02
alexandrufazakasMakes sense then14:03
tlater[m]So you'll change all the tests to run with `cli.run(project=None, args=["init" project])`14:03
alexandrufazakasExactly14:03
tlater[m]Yep, that's fine14:03
alexandrufazakasI think it's only the tests in init.py? tlater14:03
tlater[m]Should be for the most part. If there are other tests you'll see them fail :)14:04
alexandrufazakasRight. Thanks :)14:04
*** lachlan has quit IRC14:05
*** lachlan has joined #buildstream14:08
gitlab-br-botBenjaminSchubert merged MR !1425 (bschubert/node-api-noset->bschubert/new-node-api: Remove 'node_set'. Now use MappingNode[key] = value) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/142514:11
*** tristan has joined #buildstream14:13
*** lachlan has quit IRC14:17
*** CTtpollard has joined #buildstream14:23
*** tpollard has quit IRC14:24
alexandrufazakastlater: how would you feel about changing runcli.py? I'm thinking instead of adding `'--directory' + project`, we could just add `project` to the list of arguments, so everything tests the new functionality :D14:34
benschubertalexandrufazakas: One problem with this is that then the old behavior wouldn't be tested anymore :)14:41
alexandrufazakasbenschubert: yeah, that's true haha14:41
*** lachlan has joined #buildstream14:44
alexandrufazakasWe can always make all tests use both options ¯\_(ツ)_/¯14:44
benschubertThat would be a possibility, however, keep in mind that a full run of the tests is roughly 20 to 40 minutes, doubling that might not fly with developers :) It would be good however to have at least one test of each use the new option14:46
tlater[m]alexandrufazakas: Yeah, I'd be hestitant to change the test API14:46
alexandrufazakasbenschubert: Yeah, I really don't think that's doable14:47
tlater[m]Note that you're only changing the functionality of `bst init`14:47
tlater[m]So *only* the tests in `init.py` need to adopt the new functionality14:47
alexandrufazakasor, rather, trying to haha14:47
tlater[m]Which is like, 1014:48
tlater[m]Whereas we have like 1000 in total14:48
benschubert^ then running with both for all init tests makes sense to me :)14:48
tlater[m]So please don't modify the API to make just one test slightly more comfortable :D14:48
tlater[m](Although, by all means, write helper functions and use @pytest.mark.parametrize)14:49
*** toscalix has quit IRC15:02
alexandrufazakastlater: Okay, I'm kind of back to step 1 with this issue rn, how should we look for -C if we pretty much always inject it in runcli.run()?15:10
tlater[m]alexandrufazakas: This sounds like you're really confused between what the tests are and what the actual code is15:12
tlater[m]Unless I'm completely misunderstanding you again15:12
WSalmonIs the CI broken? i have https://gitlab.com/BuildStream/buildstream/-/jobs/242078969 and https://gitlab.com/BuildStream/buildstream/-/jobs/242104423 are reruns of the exact same job but one has 2 failures and the other has 3 failures15:13
benschubertWSalmon: those are tests that seem super flaky15:21
benschubertI had to run a pipeline 5-6 times before it would go through15:21
*** CTtpollard is now known as tpollard15:22
gitlab-br-botraoul.hidalgocharman approved MR !1431 (tar-target-renaming->master: tar.py: Make link target renaming work between base-dirs) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/143115:41
*** lachlan has quit IRC15:41
*** MarkShuttleworth has joined #buildstream15:41
*** adi has joined #buildstream15:42
*** adi has quit IRC15:42
*** MarkShuttleworth has quit IRC15:42
*** MarkShuttleworth has joined #buildstream15:43
*** adi has joined #buildstream15:43
*** MarkShuttleworth has quit IRC15:44
*** MarkShuttleworth has joined #buildstream15:45
*** lachlan has joined #buildstream15:46
*** MarkShuttleworth has quit IRC15:46
*** phildawson_ has joined #buildstream15:50
*** phildawson has quit IRC15:52
tlater[m]Grmbl, magit-forge can't marge :|15:56
*** tpollard has quit IRC15:58
*** lachlan has quit IRC15:59
*** tristan has quit IRC15:59
*** raoul has quit IRC15:59
*** paulsherwood has quit IRC15:59
*** Becky has quit IRC15:59
*** adds68 has quit IRC15:59
*** ikerperez has quit IRC15:59
*** samkirkham has quit IRC15:59
*** valentind has quit IRC15:59
*** Trevinho has quit IRC15:59
*** swick has quit IRC15:59
*** lantw44 has quit IRC15:59
*** SotK has quit IRC15:59
*** SotK_ has quit IRC15:59
*** SotK_ has joined #buildstream15:59
*** paulsherwood has joined #buildstream15:59
*** swick has joined #buildstream15:59
*** tristan has joined #buildstream15:59
*** valentind has joined #buildstream16:01
*** raoul has joined #buildstream16:01
*** lachlan has joined #buildstream16:01
*** samkirkham has joined #buildstream16:02
*** ikerperez has joined #buildstream16:02
*** adds68 has joined #buildstream16:02
*** Becky has joined #buildstream16:02
*** lantw44 has joined #buildstream16:02
*** Trevinho has joined #buildstream16:02
WSalmonbenschubert, looking at those mtimes being to the nearist second i wonder if something has changed with the runners so there files systems only run to the nearist second, i wonder if something has changed with the runners, we fixed this in the past by adding sleeps16:02
*** SotK has joined #buildstream16:03
benschubertWSalmon: so those tests are old? I haven't look at when they were added to the codebase16:03
benschubertI know that in my perf-optimisations branches, I get them more often, so that would be consistent16:03
WSalmoni have not had erros like that before today for my branch and i dont get them locally on my "normal" file system16:04
WSalmonjjardon, ironfoot valentind do any of you know if gnome have changed anything about the gnome provided runners?16:05
WSalmonwe used to have very similar issues on the gitlab free tear digital ocean runners16:06
WSalmonthis was how we fixed all issues for the free runners but i dont know if any one has been checking if we have kept new tests to the same standard https://gitlab.com/BuildStream/buildstream/merge_requests/59516:08
*** adi has joined #buildstream16:14
*** jonathanmaw has quit IRC16:14
WSalmonjust looking throught these, people have been adding m_time tests without adding wait_for_cache_granularity16:14
WSalmon:'(16:14
WSalmon(venvbuildstream) [will@localhost buildstream]$ git grep test_artifact_expires16:16
WSalmontests/artifactcache/expiry.py:def test_artifact_expires(cli, datafiles):16:16
WSalmontests/frontend/push.py:def test_artifact_expires(cli, datafiles, tmpdir):16:16
WSalmonalso i thought the lint was now going to complain if we had two tests with the same name?16:16
WSalmonis this not a issue16:17
benschubertWSalmon: they are not in the same file, that's not a problem for a linter16:17
WSalmonoh ok, but is it ok in general?16:18
benschubertyep16:18
WSalmonok16:18
WSalmonta16:18
WSalmonright i will put up a mr adding wait_for_cache_granularity() were it has been missed in a miniute16:21
gitlab-br-bottlater opened issue #1061 (Allow specifying element-plugin-wise default dependencies) on buildstream https://gitlab.com/BuildStream/buildstream/issues/106116:23
alexandrufazakastlater: I think I'm getting pretty close to wrapping this up, I've just pushed my changes. There's 2 init.py tests that fail for some reason right now and I'm not sure what the issue is. Let me know how it looks when you've some time16:29
tlater[m]Sure16:30
* tlater[m] will probably do so right now, not that much energy left... ;p16:30
alexandrufazakasOh, I think I know why they fail16:31
alexandrufazakastlater: let me update them real quick, sorry about that :/16:31
alexandrufazakasOkay, I fixed them16:32
alexandrufazakasI uhh forgot to update project=None somewhere by mistake :D16:32
WSalmonbenschubert, i have pushed up willsalmon/hotfix-cache-tests for testing have you had any other tests be really flaky on you i might be able to fix?16:35
benschubertright now, I don't think so :)16:45
benschubertthanks WSalmon16:45
tlater[m]alexandrufazakas: Awesome, so for the most part this is good16:47
tlater[m]You should rebase on top of your other branch once that lands, though.16:47
tlater[m]Comments are up, mostly nitpicking at this point16:47
tlater[m]No fundamental changes anymore :)16:47
gitlab-br-botBenjaminSchubert opened MR !1438 (bschubert/node-api-nosanitize->bschubert/new-node-api: Remove the need for 'node_sanitize') on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/143816:48
benschuberttristan: ^ might be of interest to you ;)16:49
alexandrufazakastlater: thanks a lot for the review and all the help :)16:50
alexandrufazakasOne more thing: https://gitlab.com/BuildStream/buildstream/merge_requests/1430#note_186580606 not sure this is right though16:50
alexandrufazakasIn that case, main_options['directory'] is literally the string 'None'16:50
alexandrufazakasif i check using `if main_options['directory']`, this is evaluated to true, which is something we don't want16:51
tlater[m]Wait, why is it literally the string 'None'?16:51
alexandrufazakasHeh16:51
tlater[m]That'd mean you can't name your project 'None'16:52
tlater[m]That's stupid16:52
alexandrufazakasTrue16:52
alexandrufazakasI'm not sure why that's the case16:52
tlater[m]It's set to None here: https://gitlab.com/BuildStream/buildstream/merge_requests/1430/diffs#48a5425791d6d9d502dfdb9fad1e14e38ec05629_220_22016:52
alexandrufazakasI think I do something like str()16:52
tlater[m]No, nevermind16:53
tlater[m]It's the bug in the test suite16:53
tlater[m]That's why I said land your other patch first16:53
tlater[m](This is exactly why I told you to fix that this afternoon ;p)16:53
alexandrufazakasoh, alright16:53
alexandrufazakasI *did* open an MR on that16:54
alexandrufazakasBut some tests failed there for some reason16:54
tlater[m]Yeah, CI broke16:54
alexandrufazakasYep16:54
tlater[m]We have intermittent test failures today16:54
tlater[m]We occasionally have those16:54
alexandrufazakasIt's alright16:54
alexandrufazakasI'll just rebase on top of that once it's in16:54
tlater[m]They're like "friends" who come over every couple of weeks and you just really want them to go again16:54
alexandrufazakasrofl16:55
tlater[m]Although they can be pretty fun sometimes, you don't want them there right now16:55
tlater[m]Hang, lemme restart your pipeline, we'll get that merged16:55
alexandrufazakastlater: I manually restarted the ones that failed16:55
alexandrufazakasMaybe there is something wrong with that patch haha16:56
alexandrufazakastlater: I'll get going, I'll fix everything on !1430 on Monday. o/16:58
gitlab-br-botMR !1430: Add bst init argument https://gitlab.com/BuildStream/buildstream/merge_requests/143016:58
*** alexandrufazakas has quit IRC16:58
tlater[m]o/16:58
*** phildawson_ has quit IRC17:12
*** lachlan has quit IRC17:33
WSalmonbenschubert, tristan juergbi tlater[m] https://gitlab.com/BuildStream/buildstream/merge_requests/143918:11
*** bochecha has joined #buildstream18:23
*** WSalmon has quit IRC18:34
*** WSalmon has joined #buildstream18:34
*** brlogger has joined #buildstream22:39
*** paulsherwood has joined #buildstream22:41
*** benbrown has joined #buildstream22:41
*** rafaelff[m] has joined #buildstream22:47
*** bochecha has quit IRC23:03
*** dineshdb[m] has joined #buildstream23:07
*** reuben640[m] has joined #buildstream23:21
*** Demos[m] has joined #buildstream23:24
*** pro[m] has joined #buildstream23:32
jjardonWSalmon: no, are you seeing any errors in the gnome runners? Do you have a link to a fail job?23:34
*** doras[m] has joined #buildstream23:36
*** cgmcintyre[m] has joined #buildstream23:40

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