IRC logs for #buildstream for Wednesday, 2019-06-19

*** mohan43u has quit IRC01:46
*** mohan43u has joined #buildstream01:50
*** mohan43u has quit IRC03:02
*** mohan43u has joined #buildstream03:06
*** mohan43u has quit IRC03:11
*** mohan43u has joined #buildstream03:15
*** mohan43u has quit IRC03:31
*** mohan43u has joined #buildstream03:35
*** tristan has quit IRC06:23
*** tristan has joined #buildstream06:27
*** juergbi has quit IRC07:08
*** juergbi has joined #buildstream07:11
*** bochecha has joined #buildstream07:37
*** raoul_ has joined #buildstream08:25
jennisMhmm I'm working on a branch which prohibits junction elements being pulled from / pushed to the parent project's remote. This is going to be configurable on the project level. At first, I had the boolean `push-junction-elements`... Decided against this because we're also trying to pull. Then after a review suggestion, I changed this to "inherit-ju08:29
jennisnction-caches", but now I'm thinking about it, that doesn't make sense either. We're not inheriting the junction's cache, we're just preventing junction elements from communicating with the parent project's cache08:30
gitlab-br-botmarge-bot123 merged MR !1407 (aevri/smallerjobs->master: jobs/job: send ChildJob the context, not scheduler) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/140708:30
jennisWould appreciate if someone could just agree with me here08:30
jennisAlso open to suggestions of better names08:30
*** ChanServ sets mode: +o tristan08:32
tristanjennis, I think already each artifact cache configuration has a boolean `push` attribute08:32
tristanjennis, at least it is like this in the user configuration... so given that a project also provides a recommendation of artifact caches (overridable by user configuration)... and that the project certainly has knowledge of the projects it junctions, why would we not simply mirror the same configuration style at the project level ?08:33
jennisYes, but if my parent project has an artifact cache, configured with `push: True`, BuildStream will try to pull/push junction elements from/to this parent project's cache08:33
tristanWhat is a parent project ?08:33
jennisThe `push` attribute also exists on the project config level08:33
tristanYou mean a project "which junctions this project" ?08:34
jennisThe top level project08:34
tristanRight, so it should be up to *that* project to decide08:34
jennisyep, this is what i've implemented08:34
*** phildawson has quit IRC08:34
jennisBut I don't think the name "inherit-junction-caches" makes sense, because that's not what we're doing, I'm just trying to think of a not so verbose, accurate name08:35
tristanI don't see why we need such a configuration08:35
tristanstill not getting it08:35
tristanthe *user* configuration says... "For each project... here is an artifact cache address... and whether to push or pull to/from it"08:35
tristanIf the project can have the same, then where is the need for even more configurability ?08:36
jennisYes, but say for the top level project, you say "I want to push to this"08:36
jennisWhen you build, BuildStream will build elements in your project, and elements from the junction, and push *both* into the remote08:36
jennisNow, say you control the junction, and the junction's remote, you may not want to duplicate caching, especially if you have a lot of elements and caching is expensive08:37
tristanjennis, What if in the toplevel project.... you configure the *subproject* with your toplevel project's artifact cache... and say "push: false" ?08:37
tristanI mean, that is the same style as we do in user configuration08:37
tristanjennis, i.e. the project.conf has not only *one* artifact cache configuration, but an artifact cache configuration *for every subproject*08:38
tristanmirroring exactly the same configuration style we have at the user configuration level08:38
tristanbut with a lower priority08:38
jennisok, then that still sounds like we'll try and pull subproject elements from the top level project's remote08:38
jenniswhich is a waste of time08:38
jennisEspecially as we pull element by element08:39
tristanUmmm, I'm not sure that is true08:39
tristanYou could just as well also say "pull: false" in the same place right ?08:39
tristaneffectively disabling the pulling/pushing of a specific project's elements from a specific artifact cache08:40
tristanThe parent project's configuration has priority over the child project's configuration... and the user config has priority over everything08:40
tristanfinally you resolve which elements are allowed to push/pull from which artifact server at startup time08:41
tristanand then go :)08:41
tristanjennis, I'm not saying that the code reads *exactly* this way as it stands, but I assume that you are going to change things anyway - so you have some freedom here to make better sense of artifact cache configuration than the current state08:42
jennisOk it sounds like, I've essentially implemented this but with a one line boolean08:42
jennisAlbiet, not as granular as your suggestion08:42
tristanSo then how about "enabled: true/false" as an alias for both "push" and "pull" ?08:42
tristanWe have to assume that there are many projects in the same pipeline, considering the toplevel vs others is certainly not a good idea08:43
tristanthe toplevel is not special08:43
jennismhmm, so if we had a toplevel project, with lets say 5 junctions, we should be able to say "ok I only want to be remotely caching 3 of those"08:45
jennis?08:45
*** tristan has quit IRC08:50
*** jonathanmaw has joined #buildstream08:51
*** tristan has joined #buildstream08:55
*** ChanServ sets mode: +o tristan08:59
tristanjennis, Sure why not ?08:59
* tristan may have missed some part of this08:59
* tristan lost connection for a moment08:59
tristanjennis, More than that even... we can say "I want to be caching 2 of these... and I want to be caching the sub-sub-project of one of those"09:00
tristanAnd more importantly... the day that I create a *new* project and junction this so called "toplevel" (which is not toplevel anymore)... things *still* work in the way that that "no longer toplevel" project decided they would09:01
tristan*unless*09:01
tristan*unless* the new project has overridden that behavior, as it has priority in the new context09:01
tristanjennis, My concerns are the following (A) Historically artifact cache configuration has been very messy, it would be good to clean house and make sure that project configuration mirrors user configuration very well, and not add any *more* semantics if we can avoid it at all...09:03
tristanand (B) That we make sure that we are considering that what is a toplevel project today, might not be a toplevel project tomorrow, and that it's configuration still makes sense in any context; whether it is being built as toplevel or as a sub-project of something else09:04
tristanjennis, Frankly, I'm not concerned with having such fine grained control09:04
tristanIt is more (A) and (B) that are important, and for (A), it seems logical that configuration is a simple/same semantic which can be applied on a per-project/per-artifact-cache level09:05
tristanand that at load time we just resolve those configurations where subprojects and parent projects and user configuration might disagree09:06
tristanso that we have clear priorities of who has the last word on what09:06
tristanjennis, That said... there is one hole in all of this which needs further thought, and that is: Projects actually do *not* have knowledge of their subprojects09:07
tristanthat was a misstep in my logic09:07
tristanWhile a project might know which projects it junctions directly... we should consider that projects regularly run `bst track` on their junctions in CI... and that those subprojects may reorganize themselves and in turn grow new junctions which the calling project may never need to be aware of09:08
tristanAll of that should be considered when designing how to best express configuration of which projects are pushing/pulling from which artifact servers09:09
*** phildawson has joined #buildstream09:12
juergbidoes anyone know what marge means with this? 'I couldn't merge this branch: failed on filter-branch; check my logs!'09:12
tristanheh09:12
tristanI suppose the logs might say09:12
tristanbut a wild guess is that there is some regex or something in her configuration named 'filter-branch', and it doesnt like your branch name ?09:13
tristanheh09:13
tristans/it/she ... sorry for being so insensitive marge...09:14
*** phildawson has quit IRC09:14
*** phildawson has joined #buildstream09:14
juergbiI thought that might be the case but I can't think of what she might dislike about juerg/grpc09:15
jennistristan, I see what you're saying. However, say I make this change in my toplevel project, and then further down the line someone junctions my project. What I've implemented won't change the ability for this "new" top level to be able to cache my (former toplevel) project's elements, and its subproject elements09:16
jennisIt seems to me that the only difference is that I've done a sweeping statement of "no subproject elements can communicate with this project's remotes"09:16
jennisWhereas your suggestion is much more granular09:16
tristanjennis, it doesnt sound bad... I would suggest that it at least be tied to the definition of an artifact cache... i.e. "local-push-only: true" or "local-pull-only: true" (or "local-only" for both ?) be defined for a specific artifact cache declaration in a project.conf09:21
tpollardI like the idea of it being more granular in the sense of pull/pull/'none' approaches, but as it stands having it as a project option doesn't concern me09:21
tpollard*push/pull/none09:22
tristanBecause anyway a project declares a list of artifact caches09:22
tristanAnd limiting one or more of the artifact caches it declares to operate only with it's own elements, has the advantage of not needing to know about it's subprojects09:23
tristanin fact... given that we probably *already* have push:/pull: configurations on artifact cache definitions... it might make sense to allow "local" as an option, in addition to "true" and "false" ?09:25
jennisOk, I'm trying to think about the usecase of local-push-only: True and local-pull-only: False and vice versa. Does this make sense? Why would we want to try pulling subproject elements from a cache we don't want to push them too?09:25
tristanSure09:26
jennisI do like the idea of having this defined under the artifact specs09:26
tpollardyou might have CI setup to feed that cache, and that instance might be the only thing that's designated to populate it09:26
tristanOne example is when working on a feature branch, and you want to try pulling from mainline, but you only want to push to a dedicated artifact cache related to your side branch09:26
tpollardbut you still want to pull from it09:27
jennisOk, it looks like we're all getting on the same page here09:27
tpollardbut there's always going to be 'mights' for any perceived situation09:27
tristanRight, I think it would be better to not limit this by what we predict are valid use cases09:28
jennisFair point09:28
tristanRather, we know that the caches can exist, and things we can do with them are push and pull09:28
tristanAh right... jonathanmaw sent an email and I have to look at a branch...09:33
jonathanmawthanks, tristan09:33
jennisYeah, ok, I will see what I can do about what we've just discussed09:34
jennisI like the `local-push`/`local-pull` option09:34
tristanjennis, I think I like reducing the amount of options possible and allowing "local" as a value for "push" and "pull", if it indeed amounts to the same thing09:35
tristanseems like09:35
*** lachlan has joined #buildstream09:35
*** tristan has quit IRC09:44
*** benschubert has joined #buildstream09:50
gitlab-br-botjuergbi merged MR !1405 (juerg/grpc->master: Guard against gRPC channels in the main process) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/140509:52
*** lachlan has quit IRC10:01
*** tristan has joined #buildstream10:14
*** lachlan has joined #buildstream10:26
*** ChanServ sets mode: +o tristan10:27
tristanjonathanmaw, Is the description up to date on that MR !1409 ?10:27
gitlab-br-botMR !1409: WIP: Separate frontend state handling from core state https://gitlab.com/BuildStream/buildstream/merge_requests/140910:27
tristanLooks like the description is right on target yeah10:27
jonathanmawthe description should be accurate, yeah10:28
*** lachlan has quit IRC10:37
*** lachlan has joined #buildstream10:40
*** lachlan has quit IRC10:52
tristanjonathanmaw, Commented on some details... in general the approach is looking good10:57
tristanstill some untangling to do I think10:57
jonathanmawokie doke, ta10:58
*** lachlan has joined #buildstream11:10
gitlab-br-botraoul.hidalgocharman opened MR !1410 (raoul/915-capabilities-service->master: Capabilities service) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/141011:11
*** bochecha_ has joined #buildstream11:15
*** bochecha has quit IRC11:17
*** bochecha_ is now known as bochecha11:17
*** lachlan has quit IRC11:17
*** bochecha_ has joined #buildstream11:43
*** bochecha has quit IRC11:45
*** bochecha_ is now known as bochecha11:45
jennishaha do it11:49
jenniswhoops11:50
*** rdale has quit IRC12:00
*** benschubert has quit IRC12:06
*** rdale has joined #buildstream12:12
*** ahmed89 has joined #buildstream12:28
*** ahmed89 has quit IRC12:53
*** rdale has quit IRC12:55
gitlab-br-botraoul.hidalgocharman approved MR !1389 (tristan/exit-on-nonblock-terminal-1.2->bst-1.2: _frontend/cli.py: Exit with error if output streams are set to nonblocking) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/138913:11
*** lachlan has joined #buildstream13:18
*** rdale has joined #buildstream13:25
*** lachlan has quit IRC13:29
gitlab-br-bottristanvb opened MR !1411 (tristan/exit-on-nonblock-terminal->master: _frontend/cli.py: Exit with error if output streams are set to nonblocking) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/141113:39
*** lachlan has joined #buildstream13:41
tpollardanyone tried bst on wsl2 yet?13:47
*** lachlan has quit IRC13:49
Kinnisonis wsl2 out?13:50
KinnisonI thought it wasn't due for preview until later this year13:50
tpollardit's in the latest windows insider preview build13:50
KinnisonCoo!13:51
tpollardhttps://blogs.windows.com/windowsexperience/2019/06/12/announcing-windows-10-insider-preview-build-1891713:51
KinnisonIf you have access, please do test.  It *should* be significantly better13:51
tpollardwould be nice to try :)13:53
KinnisonWSL1 has a serious IO problem around locking the FD table13:53
KinnisonWSL2 ought to mitigate that by being a real Linux kernel13:54
samkirkhamI'm getting a weird error when building a compose element13:58
samkirkhamOf some folder that should be there not being in the cache13:58
*** tristan has quit IRC13:58
*** lachlan has joined #buildstream14:07
gitlab-br-botdanielsilverstone-ct closed MR !1386 (danielsilverstone-ct/microopts->master: Just a couple of microoptimisations) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/138614:11
*** lachlan has quit IRC14:18
*** lachlan has joined #buildstream14:22
*** lachlan has quit IRC14:25
*** tristan has joined #buildstream14:26
gitlab-br-botjennis approved MR !1392 (tpollard/shellbuildtree->master: _frontend/cli.py: Tweak 'try' & 'always' bst shell buildtree handling) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/139214:39
* tpollard looks at marge14:56
*** lachlan has joined #buildstream14:57
tpollardah, my bad14:57
*** lachlan has quit IRC15:05
gitlab-br-botmarge-bot123 merged MR !1392 (tpollard/shellbuildtree->master: _frontend/cli.py: Tweak 'try' & 'always' bst shell buildtree handling) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/139215:06
*** lachlan has joined #buildstream15:07
*** Kinnison has left #buildstream15:10
*** lachlan has quit IRC15:11
gitlab-br-botraoul.hidalgocharman approved MR !1411 (tristan/exit-on-nonblock-terminal->master: _frontend/cli.py: Exit with error if output streams are set to nonblocking) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/141115:19
*** bochecha has quit IRC15:49
*** phildawson_ has joined #buildstream15:50
*** lachlan has joined #buildstream15:50
gitlab-br-botjuergbi approved MR !1411 (tristan/exit-on-nonblock-terminal->master: _frontend/cli.py: Exit with error if output streams are set to nonblocking) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/141115:51
*** phildawson has quit IRC15:51
*** lachlan has quit IRC16:10
*** lachlan has joined #buildstream16:19
*** raoul_ has quit IRC16:34
*** jonathanmaw has quit IRC17:05
*** phildawson_ has quit IRC17:16
*** lachlan has quit IRC17:31
*** bethw has quit IRC17:37
*** bethw has joined #buildstream17:38
*** adds68 has quit IRC17:44
*** paulsherwood has quit IRC17:44
*** benbrown has quit IRC17:44
*** ikerperez has quit IRC17:44
*** Becky has quit IRC17:44
*** samkirkham has quit IRC17:44
*** ikerperez has joined #buildstream17:45
*** paulsherwood has joined #buildstream17:45
*** Becky has joined #buildstream17:45
*** samkirkham has joined #buildstream17:45
*** adds68 has joined #buildstream17:45
*** benbrown has joined #buildstream17:45
*** abderrahim has joined #buildstream17:46
*** lachlan has joined #buildstream17:47
*** paulsherwood has quit IRC17:47
*** benbrown has quit IRC17:47
*** jennis has quit IRC17:49
*** valentind has quit IRC17:49
*** laurence has quit IRC17:49
*** WSalmon has quit IRC17:49
*** bethw has quit IRC17:49
*** johnward has quit IRC17:49
*** bethw has joined #buildstream17:50
*** jennis has joined #buildstream17:53
*** laurence has joined #buildstream17:53
*** valentind has joined #buildstream17:53
*** WSalmon has joined #buildstream17:55
*** johnward has joined #buildstream17:55
*** ikerperez has quit IRC17:56
*** samkirkham has quit IRC17:56
*** adds68 has quit IRC17:56
*** Becky has quit IRC17:56
*** lachlan has quit IRC18:26
*** lachlan has joined #buildstream18:31
*** lachlan has quit IRC18:42
*** lachlan has joined #buildstream18:58
*** abderrahim has quit IRC19:09
*** abderrahim has joined #buildstream19:10
*** abderrahim has joined #buildstream19:11
*** abderrahim has quit IRC19:12
*** abderrahim has joined #buildstream19:12
*** abderrahim_ has joined #buildstream19:21
*** abderrahim has quit IRC19:22
*** abderrahim_ is now known as abderrahim19:22
*** abderrahim has quit IRC19:30
*** lachlan has quit IRC19:31
*** lachlan has joined #buildstream19:36
*** lachlan has quit IRC19:38
*** abderrahim has joined #buildstream19:45
*** benschubert has joined #buildstream20:08
*** abderrahim has quit IRC21:25
*** paulsherwood has joined #buildstream22:35
*** benschubert has quit IRC23:58

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