IRC logs for #buildstream for Monday, 2019-10-21

*** narispo has quit IRC04:44
*** narispo has joined #buildstream04:44
benschubert3482 of 3481 subtasks processed ... I knew Buildstream did too much work but that... :D08:01
KinnisonOh dear :D08:02
*** tpollard has joined #buildstream08:26
gitlab-br-botaevri opened (was WIP) MR !1652 (aevri/enable_spawn_ci_2->master: jobpickler: also pickle Digest protos) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/165208:29
*** traveltissues has joined #buildstream08:34
*** tiagogomes has joined #buildstream08:42
*** santi has joined #buildstream08:47
*** jonathanmaw has joined #buildstream09:01
*** bochecha has joined #buildstream09:30
*** lachlan has joined #buildstream09:35
*** bochecha has quit IRC09:42
*** bochecha has joined #buildstream09:42
*** narispo has quit IRC09:55
gitlab-br-bottraveltissues opened MR !1659 (traveltissues/1176->master: workspace.py: close open GRPC channels after import) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/165909:56
traveltissueswill you please check this juergbi09:56
*** narispo has joined #buildstream09:56
juergbiwill do09:56
traveltissuesty09:56
benschuberto/ thanks traveltissues !10:07
juergbitraveltissues: I'll take a quick stab at the CASCacheUsageMonitor fix, or do you want to?10:16
traveltissuesi can do that10:16
juergbiok, ta, I'll leave it then. let me know if anything is unclear10:16
ikerperezHey, someone knows why buildstream might be struggling to clone the buildstream-abi-checker for a freedesktop-sdk junction? what could be causing that? https://paste.gnome.org/pc5bosuct10:16
juergbiikerperez: can you paste the .bst file?10:17
cs-shadowthe `../buildstream-abi-checker`  seem suspect10:19
juergbiindeed10:20
benschubertgit relative submodules?10:20
coldtomyes, relative submodules don't play well with the git plugin10:20
benschuberthttps://gitlab.com/BuildStream/buildstream/issues/113810:21
coldtomi think there was recently a patch to git_tag that fixes it10:21
coldtomso try updating bst-external10:21
*** bochecha has quit IRC10:46
*** bochecha has joined #buildstream10:47
ikerperezUpdating bst-external didn't work10:49
tlater[m]ikerperez: Usually when I run into these things it's the BuildStream version10:50
ikerperezjuergbi https://paste.gnome.org/phff5aqze10:50
tlater[m]Are you building with master? Are you building freedesktop-sdk master?10:50
ikerperezI will try the builstream version10:50
coldtomi would have thought https://gitlab.com/BuildStream/bst-external/merge_requests/103 would have fixed it10:51
tlater[m]ikerperez: For reference, freedesktop-sdk should only be built with bst-1.410:52
ikerpereztlater[m] I am building freedesktop 19.08, I didn't know that it has to be build with bst-1.4. I will check if that is the error10:53
tlater[m]ikerperez: bst-1.4 is current stable, freedesktop-sdk to my knowledge is developed with stable.10:54
ikerperezI am on 1.4.1, I guest that version i wrong. I will try to roll back10:56
coldtomikerperez: 1.4.1 is correct10:56
ikerperezmm10:56
tlater[m]ikerperez: When updating `bst-external`, did you update a pip package or somesuch?11:12
ikerperezno, as far as I know11:12
ikerperezI installed again bs-external, I used pip3 instead of pip, I don't know if that makes any difference11:13
* tlater[m] is a bit lost then... Maybe check if the patch coldtom suggested is actually in your local files?11:13
tlater[m]Hopefully should be in ~/.local/lib/python3.{something}/site-packages/bst-external11:14
tlater[m]If it's not, I'd recommend uninstalling your verison of bst-external and installing the git repository directly (can do something like `pip install git://gitlab.com/buildstream/bst-external.git`, I think)11:15
tlater[m]Oh, it was git+https://<that link>11:15
ikerperezI think it might have something to do with freedesktop, because it happens to be when I update the ref to the latest11:27
ikerperezindeed that is11:36
gitlab-br-botjuergbi opened issue #1177 (Support buildbox-run as sandboxing backend) on buildstream https://gitlab.com/BuildStream/buildstream/issues/117711:42
ikerperezthis patch is not included in 1.4.1 so I guess that master need to be used11:53
cs-shadowbuildstream on python3.8 seems to be failing very consistently to do anything, and I always seem to get `RuntimeError: no running event loop`. Full traceback at: RuntimeError: no running event loop.  Any ideas?11:57
tpollardsomething scheduler related12:00
tpollarddoes bst show work?12:01
cs-shadowyeah, show/init seems to work12:01
tpollardthey don't require the scheduler12:01
tpollardwhich is where we set our global event loop12:02
tlater[m]cs-shadow: That's an asyncio error12:02
tlater[m]3.8 introduced changes to that, so...12:02
cs-shadowyeah, I quickly grepped for asyncio in https://docs.python.org/3/whatsnew/changelog.html#id48, didn't see anything immediately obvious. Will continue looking12:04
tpollardsomething is happening before or after we start/close the loop in scheduler I would suspect12:05
tlater[m]I do remember some hacking around with multiple event loops, I wonder how much of that is still in place12:06
gitlab-br-bottraveltissues opened (was WIP) MR !1651 (traveltissues/1161->master: extend source api and remove private use from workspace plugin) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/165112:13
*** santi has quit IRC12:30
cs-shadowah! Seems like `asyncio.get_child_watcher()` is returning a `ThreadedChildWatcher` object in 3.8, whereas a `SafeChildWatcher` in 3.7. Seems like the difference between the two is what's kiiling bst12:31
tlater[m]That's interestingly subtle12:33
tlater[m]Any idea why we mind the exact class name?12:34
juergbioh, is SafeChildWatcher still available?12:34
juergbiwe generally don't want background threads as we use fork without exec12:34
tlater[m](Assuming the classes didn't change significantly)12:34
gitlab-br-bottraveltissues opened (was WIP) MR !1659 (traveltissues/1176->master: create usage monitor early) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/165912:34
tlater[m]Oh, right, they are completely different12:35
tlater[m]:|12:35
cs-shadowSafeChildWatcher is still available12:39
gitlab-br-bottraveltissues approved MR !1652 (aevri/enable_spawn_ci_2->master: jobpickler: also pickle Digest protos) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/165212:46
traveltissuesjuergbi, will you please take a look at !165112:55
*** santi has joined #buildstream12:59
gitlab-br-botmarge-bot123 merged MR !1652 (aevri/enable_spawn_ci_2->master: jobpickler: also pickle Digest protos) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/165213:15
traveltissuesbenschubert, i've responded to your requests13:16
gitlab-br-botBenjaminSchubert approved MR !1659 (traveltissues/1176->master: create usage monitor early) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/165913:22
benschuberttraveltissues: awesome, thanks!13:22
traveltissuesty13:22
* tpollard hopes to stop status() creating the cache just to render a worthless widget before execution13:25
benschuberttraveltissues: uh actually, shouldn't we remove the other part were the monitor is created?13:27
benschubertnamely https://gitlab.com/BuildStream/buildstream/blob/master/src/buildstream/_cas/cascache.py#L104713:27
benschubertwe should not need the if-else anymore :)13:27
traveltissueswe could remove it13:28
gitlab-br-botBenjaminSchubert approved MR !1659 (traveltissues/1176->master: create usage monitor early) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/165913:31
*** akvilebirgelyte has joined #buildstream13:43
*** narispo has quit IRC14:05
*** narispo has joined #buildstream14:06
gitlab-br-botjuergbi approved MR !1659 (traveltissues/1176->master: create usage monitor early) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/165914:06
juergbitraveltissues: I've taken a look at !1651 but am still thinking about it. will comment in a bit14:08
gitlab-br-botMR !1651: extend source api and remove private use from workspace plugin https://gitlab.com/BuildStream/buildstream/merge_requests/165114:08
persiaInteresting use case I heard about today.  Someone is working on a project that depends on projects A and B.  Projects A and B both depend on project C, but the junctions are to *different* snapshots of C.  For most stuff, it just works, but in the case where something needs be changed on the local project that depends on something in C, is there a good way to specify *which* snapshot of C is preferred?14:09
* tpollard has mentioned wanting something similar to this before 14:10
* coldtom has hit this before 14:11
tpollardin bitbake world, PREFERRED_PROVIDER/PREFERRED_VERSION can be used for similar scenarios14:11
persiaIs there an issue open for it?14:12
tpollardbut adding preferences kinda goes against declarative/repeatable to some extent14:13
persiatpollard: Right, but I think "preferred" as a term being assigned to "preferences" is tripping up your analogic brain :)14:13
persiaWe ought be able to declaratively select a particular resolution to a specific ref for a specific project even through junctions.14:14
tpollardpersia: I was referencing it to yocto's implementation of the flag14:14
tpollardwhich provides a similar utility to what I think we want just not in same implementation14:15
persiatpollard: Yep.  My point was that it the word was the issue.  If the bitbake implementation were "selected_provider/selected_version", it would look more declarative without significantly affecting the implementation.14:15
persiaAnyway, did anyone open an issue in gitlab for this already?14:16
benschubertpersia: could you do it with a junction 'target' ? Targeting the version you want for your code?14:16
benschubertin your project have a 'junction-c.bst' that reaches the junction through either A or B14:17
persiabenschubert: Not quite, because inheritance is confusing.  In the local project, you can target specific refs for A and B, but that gives you duplicate refs for things in C (because A and B both junction into C at different refs).14:17
persiabenschubert: So the trick is to identify, in the local project, which resolution for a repo/ref you want for a given element in C.14:17
benschubertfor a given element or for all elements?14:17
persiaOh, hrm.  Yes, I suppose you can directly junction C into the local project to define the answer.14:18
persiaBut if A and B selected different C because of some incompatibility that doesn't matter in your local project, it gets more complicated.14:18
coldtomthat only really becomes an issue when A and B depend on incompatible versions of C14:18
coldtomsnap14:18
persiacoldtom: incompatible versions of C that generate artifacts that can be compatible in the local project even (e.g. lots of static compilation or strict adherence to specific ABIs in other ways).14:19
coldtompersia: i meant at element-resolution time14:19
benschubertwhat I would do in that case is have a 'patch' on one of them that allows me to choose exactlu what I want. Granted it's not an ideal way14:19
* persia suspects that most wildly dynamic projects will end up being forced to have common C anyway14:19
persiabenschubert: That might work.  I'll share that idea, but yeah, not ideal.14:20
* coldtom would like a less hacky way to modify things cross junction14:21
benschubertcoldtom: it's not that hacky, it's like what debian does for source code. They have a series of patch they apply on sources. I see my junctions as sources and patch them when I'm not happy about it :)14:21
juergbipersia: buildstream doesn't allow such conflicting junctions (if they use the same name)14:22
coldtombenschubert: i agree that they should be viewed as sources, but I'd prefer some way to do this in the `junction` element14:22
juergbipersia: bst will error out and you have to resolve it by having a junction to project C in the top-level project14:22
benschubertcoldtom: that's what I would do, is have the repo as the first source then a local 'quilt' as a second source :)14:23
persiajuergbi: THat was my fear.  Thanks for the clear statement.14:23
juergbipersia: if you really want different versions of project C, you can use unique junction names, so there isn't an actual conflict14:24
coldtombenschubert: ah, i've never worked with quilt, i suppose that might reduce the burden of a growing pile of patch files14:24
persiajuergbi: How does that affect the junction declarations in A and B, which may not be unique?14:24
juergbipersia: this only works in cooperation with A and/or B14:25
juergbi(or by patching those)14:25
juergbii.e., the C junctions in A and B need to have different names14:25
juergbiI have a long-standing item on my todo list: make name-based junction coalescing optional, support 'content-based' coalescing14:26
juergbian idea I had to make this more flexible14:26
persiaAnd that actually addresses everything.  When this happens, either convince A and B to junction C with different names, or patch A and/or B to do that locally, and then C doesn't appear as common in the local project.14:26
juergbibut I haven't heard anyone else mention it before so far14:26
benschubertpersia: correct!14:26
persiaConceptually simple, syntactically simple, tricky to document.14:26
juergbipatching could be somewhat painful, though14:27
juergbias you'd have to update all references to the junction to its new name14:27
persiaYes, especially of A or B represents a particularly active development team.14:27
juergbibtw: it is documented, although it might not be clear enough: https://docs.buildstream.build/master/elements/junction.html#nested-junctions14:28
persiajuergbi: The incompatible-C case isn't documented, but yes, the documentation is clear on how to do the regular thing, and highlights how to reach into nested juctions for the equivalent of  PREFERRED_PROVIDER, which is probably about as far as it makes sense to take that doc.14:30
juergbiright, the possibility to use different junction names is not mentioned14:31
*** narispo has quit IRC14:54
*** narispo has joined #buildstream14:55
gitlab-br-botaevri opened (was WIP) MR !1654 (aevri/enable_spawn_ci_3->master: pickle `first_pass_config` factories) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/165415:00
*** bochecha has quit IRC15:21
*** santi has quit IRC15:43
*** santi has joined #buildstream15:58
*** narispo has quit IRC16:08
*** narispo has joined #buildstream16:08
*** jonathanmaw has quit IRC16:24
*** jonathanmaw has joined #buildstream16:24
*** akvilebirgelyte has quit IRC16:27
*** narispo has quit IRC16:42
*** narispo has joined #buildstream16:44
*** traveltissues has quit IRC16:48
*** santi has quit IRC17:04
*** narispo has quit IRC17:14
*** narispo has joined #buildstream17:14
*** jonathanmaw has quit IRC17:19
*** tiagogomes has quit IRC17:28
*** narispo has quit IRC18:40
*** narispo has joined #buildstream18:40
*** lachlan has quit IRC19:03
*** lachlan has joined #buildstream19:04
*** lachlan has quit IRC19:42
*** narispo has quit IRC19:42
*** narispo has joined #buildstream19:42
*** lachlan has joined #buildstream19:48
*** lachlan has quit IRC20:07
*** benschubert has quit IRC23:28

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