IRC logs for #buildstream for Thursday, 2017-11-16

*** semanticdesign has quit IRC01:54
*** mcatanzaro has quit IRC03:06
*** tristan has quit IRC07:50
*** tristan has joined #buildstream08:13
*** jude has joined #buildstream08:22
gitlab-br-botbuildstream: merge request (130-interactive-prompt-prefix->master: WIP: Accept the first characters as shortcut on interruption prompts) #151 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/15108:58
gitlab-br-botbuildstream: issue #97 ("Apply pep 3102 to all public API surfaces") changed state ("closed") https://gitlab.com/BuildStream/buildstream/issues/9709:24
gitlab-br-botbuildstream: merge request (97-apply-pep-3102-to-all-public-api-surfaces->master: Resolve "Apply pep 3102 to all public API surfaces") #127 changed state ("merged"): https://gitlab.com/BuildStream/buildstream/merge_requests/12709:24
gitlab-br-botbuildstream: Tristan Van Berkom deleted branch 97-apply-pep-3102-to-all-public-api-surfaces09:24
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 13 commits (last: Apply pep 3102 to element's stage_artifact and stage_dependency_artifacts) https://gitlab.com/BuildStream/buildstream/commit/e3135b91fbc97ae4ddee05362299dcbdfe6e811009:24
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 1 commit (last: element.py: Fixed manual signature override in docstring) https://gitlab.com/BuildStream/buildstream/commit/0c8b7b49eca1488e9dfd923275dff3b74a1d538309:27
*** givascu has joined #buildstream09:31
*** jonathanmaw has joined #buildstream09:33
*** valentind has joined #buildstream09:33
*** tiagogomes has quit IRC09:41
*** tiagogomes has joined #buildstream09:43
*** bethw has joined #buildstream09:51
*** anahuelamo has joined #buildstream09:57
*** tpollard has joined #buildstream10:02
*** ssam2 has joined #buildstream10:13
ssam2in _pipeline.py we output a warning with self.message() if we fail to access the remote cache10:58
ssam2however the warning isn't getting displayed, because I think it's too early in the init process for warnings to show up ?10:59
ssam2this is in Pipeline.__init__()10:59
ssam2should self.message() work at that point ? or should we be using some other method of outputting a warning in the constructor ?10:59
tristanThat needs some additional fixing... is it MessageType.WARN ?11:01
ssam2yeah11:01
ssam2it's https://gitlab.com/BuildStream/buildstream/blob/master/buildstream/_pipeline.py#L17511:01
tristanssam2, I did some changes recently that make the frontend save the unconditional messages and print them after resolving the pipeline and immediately when starting logging11:01
ssam2right11:01
tristanbut maybe it doesnt get as far as starting with logging ?11:01
ssam2indeed11:01
ssam2I'm running `bst push`, and i had the wrong pull URL11:02
ssam2so my push failed with `not configured for pushing`, which was confusing11:02
tristanthere are a few reasons this approach needs to change11:02
tristanOne of them is juergbi's recursive pipelines branch; I presume it might change some things in that area; because it needs to preload a few projects at startup11:02
ssam2i guess i'm about to change how pushing works anyway though for canonical pull URLs :-)11:02
tristanAnother one is benchmarking, if you read up on my last reply to Angelos on that thread11:03
tristanI think that enabling the logger right away will allow us to do benchmarking almost entirely via parsing of our already generated logs11:04
ssam2sounds good11:04
*** valentind has quit IRC11:04
tristanThe problem with enabling the logger right away though... is that we get a lot of undesirable messages in preflight, or especially during initial cache key calculations11:04
ssam2perhaps we need a `with logging.mute():` kind of thing ?11:05
tristanThat, might be interesting though to pass through the scheduler in null logs, and message back the results11:05
tristanlike, we might or might not optimize load time of large pipelines by interrogating disk caches in parallel11:06
tristanand then redirecting those to /dev/null and ignoring that (except for errors and warnings)11:06
tristanmostly stuff like checking if we need to fetch (git cat-file commands and such as STATUS messages)11:07
tristanssam2, maybe something like that yeah11:07
tristanssam2, with a mask/list of which message types to mask, but we already have a constant `unconditional_messages` in _messages.py11:07
tristanwhich is pretty much the set of messages we want to have at all times11:08
tristanit's not a hugely important detail, that could be turned into a literal list used by the frontend11:08
tristanbut it's used in a few places11:08
tristanOr11:08
tristanssam2, or a frontend timed_activity() with silent_nested=True for the load proceedure11:09
tristanI think silent_nested mutes all messages except for the unconditional ones11:09
ssam2ok11:09
tristanBut it needs an implementation on the pipeline (because it's currently only plugin facing, and the pipeline isnt an element)11:10
tristanThen maybe we want to time the separate load activities separately and remove all those "tickers"11:10
jonathanmawhrm, looking at https://gitlab.com/BuildStream/buildstream/issues/132 (loading plugins without project.conf allowing them), my current implementation is to add "plugin-whitelist" to the project.conf dict. I added all of the built-in plugins to the default project.conf's file, but it looks like it doesn't merge it with new files.11:11
tristanssam2, Removing the "tickers" will greatly improve readability of frontend <--> pipeline interactions11:11
jonathanmawwhat's a good approach for having a big default list of stuff, and having users add individual stuff?11:11
jonathanmawshould I assume users would never want to remove built-in plugins from their whitelist?11:11
tristanErrrm11:12
tristanjonathanmaw, First; I think we want to assume that pip is not going to be the only means of plugin discovery11:12
tristanjonathanmaw, Next, I think that we need to be explicit about where the plugin is coming from11:12
tristanjonathanmaw, For built-in plugins that are distributed with BuildStream, I dont think we need to whitelist them at all11:13
tristanjonathanmaw, also; if it can fit logically into the format for versioning requirements, I think that is the most ergonomic11:14
jonathanmawtristan: hrm, I hadn't looked into the versioning requirements logic11:14
tristanI.e. where you declare the minimum API versions you assert for a given plugin, should be the same place where you mention where the plugin comes from (if it's not built-in)11:14
tristanAnd then basically; the discovery / load should be made a bit more explicit, so if the user did not specify that "the plugin comes from a pip install", the pip discovery method is never exercised for a lookup of that plugin11:16
*** bethw has quit IRC11:32
ssam2seems my attempt to make the gitlab bot notify on the buildstream-docker-images repo was a failure11:42
*** semanticdesign has joined #buildstream11:44
ssam2the config is there though ... i have no idea why it would not work11:45
ssam2anyway, in the absense of the bot: here's a docker image for setting up an artifact cache: https://gitlab.com/BuildStream/buildstream-docker-images/merge_requests/511:45
tlater\o/11:46
jonathanmawtristan: okay, does that mean that elements that aren't built-in should be prefixed by how they're loaded? Loading via pip is formatted as "$python_dist:$plugin_name", I could extend that to "pip:$python_dist:$plugin_name". Similarly, I could make plugins loaded via the plugin paths take a prefix.11:47
jonathanmawor since those plugins are already only available if you add them in project.conf, is that sufficient?11:48
tristanjonathanmaw, I think it's fine if it's only specified in the project.conf; the point is that nothing unexpected happens, and no plugins are accidentally discovered from external sources11:58
*** tristan has quit IRC12:02
tlaterDoes pycoverage perhaps crash when I define a function-local function that has the same name as another one?12:03
* tlater heavily suspects that this may be the case12:04
*** tristan has joined #buildstream12:05
*** bethw has joined #buildstream12:46
*** cs_shadow has quit IRC13:24
*** cs_shadow has joined #buildstream13:27
tlaterSo this function causes pycoverage to segfault whenever it is defined: https://gitlab.com/BuildStream/buildstream/blob/except_intersections/buildstream/_pipeline.py#L75213:37
tlaterIt does so no matter where it is defined, or what its name is13:37
tlaterExcept when its outer function is not defined at all - it still breaks if the outer function is defined in the same scope (as in, when re-defining it as a normal instance method).13:38
tlaterBut it does not break if it is defined and remove_elements isn't13:38
tlaterIt also doesn't break if the only statement in it is 'pass'13:38
* tlater is very confused 13:38
ssam2wow14:01
ssam2is that enough to produce a test case ?14:01
ssam2also, is it simple to try with git master of coverage.py ?14:01
ssam2what happens if it's named something other than 'traverse' ?14:01
tlaterssam2: it segfaults no matter what the name is14:03
tlaterNot sure, I'll try and make a test case - I don't think this happens anywhere but on the gitlab runners, but then I haven't tried from a completely clean slate.14:03
ssam2super weird14:04
tlaterI think it might be whenever I reference a variable from within remove_elements14:04
tlaterBut that still doesn't explain anything14:04
tlaterIt also *only* happens in specifically the cmake test case :|14:05
gitlab-br-botpush on buildstream@132-loading-external-plugins-works-without-explicit-requirement-in-project-conf (by Jonathan Maw): 20 commits (last: Remove DummyElement hack) https://gitlab.com/BuildStream/buildstream/commit/58ca697cc250c1862977a6c4c9bbf82e62317d0214:22
gitlab-br-botbuildstream: merge request (132-loading-external-plugins-works-without-explicit-requirement-in-project-conf->master: WIP: Resolve "Loading external plugins works without explicit requirement in project.conf") #125 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/12514:22
*** noah has joined #buildstream14:38
* tlater can't seem to find a test case that works, unsurprisingly15:05
gitlab-br-botbuildstream: merge request (incremental-build->master: Add support for doing incremental builds) #126 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/12615:08
tlaterAaand pycoverage's current master also has this issue15:14
*** tpollard has quit IRC15:18
gitlab-br-botbuildstream: merge request (incremental-build->master: Add support for doing incremental builds) #126 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/12615:20
*** mcatanzaro has joined #buildstream15:23
tlaterWell, as a workaround I'm just not going to use a recursive function. Removing that definition seems to fix the issue...15:28
* tlater hopes he didn't screw up a nonrecursive tree traversal15:29
*** mcatanzaro has quit IRC15:31
*** jude has quit IRC15:31
tlaterNow gitlab's API is down so that I can't actually push my fix...15:36
tlaterIf there's any more of this I'm going to start considering this branch haunted15:36
*** tpollard has joined #buildstream15:48
gitlab-br-botbuildstream: merge request (131-behavior-of-except-argument-is-frustrating-and-confusing->131-behavior-of-except-argument-is-frustrating-and-confusing: Fix the pycoverage segfault) #152 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/15215:48
*** hergertme has quit IRC16:07
*** hergertme has joined #buildstream16:07
jonathanmawis gitlab accessible over git to anyone else? When I try to push I get "GitLab: API is not accessible"16:19
tlaterjonathanmaw: Same issue here, but only on the buildstream repo16:20
gitlab-br-botbuildstream: merge request (131-behavior-of-except-argument-is-frustrating-and-confusing->131-behavior-of-except-argument-is-frustrating-and-confusing: Fix the pycoverage segfault) #152 changed state ("closed"): https://gitlab.com/BuildStream/buildstream/merge_requests/15216:21
gitlab-br-botbuildstream: merge request (benchmark->master: WIP: Benchmark) #136 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/13616:33
gitlab-br-botbuildstream: merge request (benchmark->master: WIP: Benchmark) #136 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/13616:35
*** anahuelamo has quit IRC16:36
*** givascu has quit IRC17:19
*** bethw has quit IRC17:19
*** mcatanzaro has joined #buildstream17:26
*** jonathanmaw has quit IRC17:45
*** tpollard has quit IRC17:47
*** ssam2 has quit IRC18:26
*** tristan has quit IRC18:38
*** valentind has joined #buildstream19:30
*** tristan has joined #buildstream19:50
*** mcatanzaro has quit IRC20:28
*** semanticdesign has quit IRC20:44
*** mcatanzaro has joined #buildstream20:47
*** jude has joined #buildstream20:59
*** jude has quit IRC21:22
*** bethw has joined #buildstream21:32
*** mcatanzaro has quit IRC22:29
*** mcatanzaro has joined #buildstream22:30
*** valentind has quit IRC22:31
*** mcatanzaro has quit IRC22:34
*** mcatanzaro has joined #buildstream22:34
*** bethw has quit IRC22:37
*** bethw has joined #buildstream22:37
*** bethw has quit IRC22:43
*** cs_shadow has quit IRC22:54
*** tristan has quit IRC23:38
*** noah has quit IRC23:40

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