IRC logs for #buildstream for Monday, 2019-03-18

*** nimish2711 has joined #buildstream00:15
*** nimish2711 has quit IRC00:21
*** nimish2711 has joined #buildstream00:41
*** nimish2711 has quit IRC01:10
*** nimish2711 has joined #buildstream01:26
*** nimish2711 has quit IRC03:06
*** swick has joined #buildstream04:59
*** mark has joined #buildstream05:39
*** mark has quit IRC05:40
*** mohan43u has joined #buildstream06:46
*** toscalix has joined #buildstream07:42
*** toscalix has quit IRC07:44
*** swick has quit IRC08:14
*** mohan43u has quit IRC08:43
*** rdale has joined #buildstream09:02
*** toscalix has joined #buildstream09:09
benschubertjuergbi: !1070 should address all points raised. Would you have time to review? I would say it is ready now09:12
juergbibenschubert: great, on my list for review today09:13
benschubertthanks!09:14
*** alatiera has joined #buildstream09:22
valentinddoras[m], I am not sure why "script" plugin forces to have something in /. But it does unfortunately. Maybe because it expects some commands.09:33
valentinddoras[m], The way we use "script" in the bootstrap of freedesktop SDK is probably not a use case that was thought of originally.09:34
valentinddoras[m], So for the moment just put something in /09:34
valentindEventually you can put something in /, then add your stuff in /newroot, and then set variable "install-root" to be /newroot, so you do not get any file from what was in /.09:35
*** raoul has joined #buildstream09:37
gitlab-br-botwillsalmon opened issue #963 (Improve workspace docs) on buildstream https://gitlab.com/BuildStream/buildstream/issues/96309:48
*** jonathanmaw has joined #buildstream09:58
gitlab-br-botwillsalmon closed issue #904 (Wrong suggestion for opening non tracked workspaces) on buildstream https://gitlab.com/BuildStream/buildstream/issues/90410:05
juergbibenschubert: interesting that it's slightly slower with 4 builders10:17
*** alatiera has quit IRC10:18
*** alatiera has joined #buildstream10:19
benschubertjuergbi: it is also with 8 actually on my new benchmark (by 1 sec)10:20
benschubertjuergbi: we are doing more work at the start and that is enough10:20
benschubertjuergbi: however refactoring update_state to only update what is needed at each step is possible now and we should gain performance with a subsequent refactor :)10:21
benschubertjuergbi: actually, I could have a "if element.__cache_key is not None" at the start of `update_state_recursively`. That could give us a bit of performance back10:22
benschubertjuergbi: I mean just before https://gitlab.com/BuildStream/buildstream/merge_requests/1070/diffs#ecad1ef0b2d7e0597dd3d592a7617f7c23465911_2918_2989. Does that make sense?10:23
juergbibenschubert: only execute _udpate_state if cache key is not None? eh, how could that work?10:26
juergbior do you mean the inverse?10:26
juergbithat would also not be correct as e.g. we have to check 'cached' state after pull_done10:26
benschubertjuergbi: have a "if element.__cache_key is not NOne: continue" at that place10:26
benschubertjuergbi: ah ok10:26
benschubertso I guess, better to keep it like that now and fix everything after by splitting update_state10:27
juergbiyes, I think so10:27
benschubertok!10:27
benschubertSo small users will indeed have a small hit until we have this in (small being 8 builders or less)10:27
juergbibenschubert: the MR description still shows a small improvement for 8+10:28
juergbiif you have updated benchmarks, can you please update the description?10:28
benschubertjuergbi: sure, Will need to wait tonight, my results are at home10:29
juergbita10:29
benschubertadded a warning that I'll update this10:30
doras[m]valentind: I put the thing I wanted to move under %{install-root}/some/path, and it worked. I just needed to create a filter element that removed the runtime dependencies off of the element I wanted to move.10:30
doras[m]After the fix for the filter element in 1.2.4, it doesn't stage its "parent's" runtime dependencies like every other element.10:31
doras[m]I ended up having to create symlinks, so I did need bootstrap-import staged at "/".10:32
doras[m]juergbi: do you know why script elements can't have runtime dependencies? I have a few use cases for it.10:37
juergbidoras[m]: I can't really think of a reason why it's forbidden except that it might be unlikely to be needed with the original use case for script elements10:40
juergbimaybe jonathanmaw remember why he added this but it was a very long time ago10:40
juergbi*remembers10:40
juergbihttps://gitlab.com/BuildStream/buildstream/merge_requests/2210:42
*** lachlan has joined #buildstream10:43
jonathanmawjuergbi: same, I think it was just that we couldn't think of any reason why it'd be wanted, and the original use-case resembled an x86image10:45
doras[m]I see. The output of my script element can run. It can also perform integration commands. However, without runtime dependencies, it can't to either of those on its own.10:47
doras[m]My current workaround is to include the script's runtime dependencies in the compose element that runs its integration commands. It's not ideal, because it makes me compose elements that I don't really want to include in the composition.10:51
raouljuergbi (or anyone else), any thoughts and naming the queue for pushing sources, the send queue? Realised naming it push messed up the pipeline summary, but I'm unsure if send is specific enough. Though fetch and pull are similarly used to specify source pulling and artifact pulling11:08
benschubertMy take on that would be that it might be nicer to have "artifact-push, artifact-pull, source-push, source-pull" but that's bigger. Otherwise not really opinionated about it11:12
raoulYeah that's definitely clearer, but keeping everything aligned does mean we'll take a lot more space per line11:14
juergbinot sure, don't have another idea right now11:15
raoulI'll do an asciinema of artifact-push etc. to get an idea if it's alright11:16
benschubertraoul: using "apush, apull, spush, spull" would be shorted but might be harder to grasp11:19
raoulyeah I did spush and didn't hugely like the look of it11:24
juergbia middle way could be src-push but not sure11:29
raoulhere's with long names https://asciinema.org/a/iDny5v7Q7IEvsMIUPPrAlOWdW11:33
raoulsrc-push could work, though would we want a short name for artifacts too? We could just leave them as push and pull11:34
*** lachlan has quit IRC11:56
*** lachlan has joined #buildstream11:57
*** raoul has quit IRC12:02
benschubertart-push ?12:05
benschubertbut yeah that long is too long :)12:05
*** lachlan has quit IRC12:24
*** nimish2711 has joined #buildstream12:32
*** raoul has joined #buildstream12:55
raoulhere's how src-push etc. looks for reference https://asciinema.org/a/mHrvF8F8nFExHYDpUq74xvTvp, I'll push current remote source cache and point out in !1214 that what to call pipelines is still up for debate13:18
gitlab-br-botMR !1214: Remote source cache https://gitlab.com/BuildStream/buildstream/merge_requests/121413:18
raoulactually this one has src-push https://asciinema.org/a/OIObuXAhwhYi39nXQWkXAJkUW, forgot to rebase --continue13:20
*** nimish2711 has quit IRC13:44
*** nimish2711 has joined #buildstream13:48
*** lachlan has joined #buildstream14:27
benschubertjuergbi: for an element, if the last source declared is cached, does that means all the sources are cached?14:54
raoulAtm the source cache cache all the sources together so yes14:56
raoulwhat's the context though? sounds like it should potentially be clearer14:56
benschubertraoul: I was looking at https://gitlab.com/BuildStream/buildstream/commit/8998788de605fd5e1f558cae505b7bb66d254994#ecad1ef0b2d7e0597dd3d592a7617f7c23465911_2095_213614:57
benschubertraoul: then why the last one? Would it be correct if I take the first one too?14:58
raoulNo, the sources key is built of it's unique key and the keys of all the previous sources, because they need to be staged and cached together because of sources like patch that don't make sense on their own14:59
benschubertok14:59
benschubertthanks!14:59
raoulThere was discussion that we might want to add a flag in sources for requiring previous sources, similar to the track and fetching flags, such that sources are stored separately where possible, but for now it's all together under the last source of an element15:01
*** lachlan has quit IRC15:05
*** lachlan has joined #buildstream15:06
WSalmonso before  raoul's big change, get_unique_key was as far as i can tell always called after preflight. as per the other plug-ins i set host_tool = util.get_host_tool() in the preflight. but i use the host tool to get my unic key this worked well until it broke, was i just taking advantage of a happy coincidence or has this change broken a contract?15:06
WSalmonjuergbi, tristan ^15:07
raoulwhat do you mean by using the host tool to get the unique key?15:11
WSalmonhttps://docs.buildstream.build/buildstream.plugin.html?highlight=preflight#buildstream.plugin.Plugin.preflight says i should be working this way but https://docs.buildstream.build/buildstream.plugin.html?highlight=preflight#buildstream.plugin.Plugin.get_unique_key dose not explisitly say if i can use host_tool15:11
WSalmonso i run the host tool, eg svn to get info that i want to create the unique key15:11
WSalmonraoul, i want the repo's UUID for the unique key, and i get it by running `svn info`15:12
juergbioh, that indeed doesn't sounds correct15:17
juergbipreflight() should be called first15:18
raoulhmm yeah the keys are generated when the sources are created from meta, but I guess they should be somewhere after preflight15:21
raouldidn't realise that preflight was ever needed for generating the unique keys15:21
raoulCould just move the sources _generate_key call, to immediately after the source._preflight in the elements preflight?15:23
WSalmonit cant be for any of the core plug-ins or the tests would not be passing, hence my question as to if i was taking advantage of convention or contract. i would like it that way round but i think this is one for juergbi / tristan as i think they have clear ideas as to how it should work.15:25
WSalmonif we agree how this is contract it might be nice to write it down some were15:27
juergbiWSalmon: can you elaborate what you use `svn info` for in `get_unique_key()`? you can't rely on the source already being local there15:28
juergbi(and there should also be no remote access in that method)15:28
juergbii.e., while I'd still say preflight() should be called first, there might still be a bug in the svn plugin15:30
WSalmonjuergbi, i might well be braking the remote access bit then, i was including the repo UUID, in the unique key, which i get from `svn info`15:32
juergbiWSalmon: maybe that should rather retrieved at track time and stored in the 'ref'?15:34
juergbihaven't used svn in a long time, so don't remember the details of what the UUID is for15:34
raoulyeah that's what I thought, though I'm even more unfamiliar with svn15:35
WSalmonjuergbi, i do put it in to the ref as a hash so i cant currently get it back, maybe i should change that15:36
juergbior just use the hash in get_unique_key()?15:36
juergbiif you have a bst project with sources tracked/resolved, the strict cache keys should be fully defined (at least for a given buildstream/plugin version)15:37
juergbii.e., nothing remote/external should have any influence anymore15:37
juergbialso, after 'source fetch' the expectation is that you can even build the whole thing offline15:37
WSalmonthats true, i think i have build this back to front as i had taken bits from local but that is a bad example15:38
WSalmoni had been using get_unique_key to build my ref but it should be the other way round15:39
juergbiyes15:41
juergbiraoul: hm, we're calling get_unique_key() even when the source is not resolved?15:41
raoulhmm yeah I think we are, though we definitely shouldn't15:45
*** alatiera has quit IRC15:51
*** lachlan has quit IRC15:52
*** swick has joined #buildstream15:52
juergbiI'm surprised this didn't break any tests15:53
*** alatiera has joined #buildstream15:53
juergbiraoul: can you please look into this (and preflight). would be good to have additional tests15:54
raoulyeah I'm having a look at where the keys should be generated15:59
raoulI'll try and get an MR for this soonish15:59
juergbita16:04
*** lachlan has joined #buildstream16:11
raouloh wait, I've got it called in _tracking_done() so update the key if necessary, is that sufficient?16:12
raouls/so/to/16:12
juergbiraoul: we shouldn't attempt to generate a key beforehand at all, though16:32
juergbimight cause errors in plugins and we don't need the key earlier anyway, right?16:32
raoulNo that's true, should it be called at the beginning of the fetch stage then, as the track stage might not be called16:33
juergbiraoul: the key is needed in the main process before fetching16:34
juergbiat least to determine whether the sources are already in CAS16:36
juergbiraoul: maybe we should just do it on the first call to get_source_name?16:38
juergbior possibly in the _key property16:39
raoulThough we'll need previous sources to generate the key16:40
raoulI guess we could have the sources remember previous sources but that doesn't sound ideal16:41
*** toscalix has quit IRC16:43
raoulmaybe in __ensure_previous_sources? that way it's generated when we know it's resolved16:47
raoulwait, no that's only used when require previous flags are set16:49
*** lachlan has quit IRC16:49
doras[m]What would be the meaning of a runtime dependency in an element whose output is a library?17:01
doras[m]Is it that when this library is dynamically loaded during runtime, which other libraries it depends upon?17:02
juergbidoras[m]: yes, or if the library spawns an executable, that executable would also be a runtime dependency17:33
juergbiraoul: I've commented on !1214. Overall it looks good to me. Just some small things besides the queue/job naming (and scheduling) question17:35
gitlab-br-botMR !1214: Remote source cache https://gitlab.com/BuildStream/buildstream/merge_requests/121417:35
raoulSweet, thanks juergbi, not sure if I have an answer for those bits unfortunately so maybe some more eyes would be good17:36
raoulI've put the generating keys into the Element._source_cached() method which seems to work well. Means it generates the key for the final source when it needs it, which will be after tracking17:37
juergbiraoul: have you tested / do we have tests that workspaces work fine with configured remote source cache?17:37
*** lachlan has joined #buildstream17:38
raoulNot the remote side, a quick check seems to work, but I'll add a proper test17:40
*** nimish2711 has quit IRC17:42
*** nimish2711 has joined #buildstream17:42
*** lachlan has quit IRC17:44
*** lachlan has joined #buildstream17:59
raouljuergbi, I've put a commit for generating source keys later here, will think of some additional test(s) and create an MR tomorrow: https://gitlab.com/BuildStream/buildstream/tree/raoul/source-key-fix18:04
*** jonathanmaw has quit IRC18:28
*** raoul has quit IRC18:28
*** nimish2711 has quit IRC18:30
*** nimish2711 has joined #buildstream18:30
*** nimish2711 has quit IRC18:39
*** lachlan has quit IRC18:42
*** rdale has quit IRC18:52
*** lachlan has joined #buildstream18:57
*** lachlan has quit IRC19:07
*** lachlan has joined #buildstream19:14
*** lachlan has quit IRC19:18
*** lachlan has joined #buildstream19:20
*** lachlan has quit IRC19:25
*** kapil___ has quit IRC19:31
*** lachlan has joined #buildstream19:35
*** csoriano has joined #buildstream20:29
csorianohey all, I'm trying to build and generate a tarball for a gnome library called gnome-autoar20:30
csorianofor that, I did bst build, then entered a shell20:30
csorianoa build shell with bst shell --build core-deps/gnome-autoar.bst20:30
csorianohere, I expect make and make install to work as expected20:30
csorianohowever with make install I get a "read-only" file system20:30
csorianowhat's the expected workflow there?20:31
*** lachlan has quit IRC20:39
*** gokcennurlu has quit IRC21:22
gitlab-br-botmbodmer opened issue #964 (UX: Development process, using IDE, index code) on buildstream https://gitlab.com/BuildStream/buildstream/issues/96421:57
*** alatiera has quit IRC23:14
*** nimish2711 has joined #buildstream23:17

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