IRC logs for #buildstream for Friday, 2017-09-15

*** tristan has joined #buildstream01:16
*** ChanServ sets mode: +o tristan01:47
*** jonathanmaw has joined #buildstream08:16
*** jude has joined #buildstream08:27
*** tlater has joined #buildstream08:35
gitlab-br-botbuildstream: merge request (artifacts-config->master: WIP: Artifacts config) #88 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/8808:36
gitlab-br-botbuildstream: merge request (artifacts-config->master: WIP: Artifacts config) #88 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/8808:41
*** ssam2 has joined #buildstream09:12
bochecha_I hadn't planned for that yaml validation when I rebased my branch, Ci is all red :]09:14
gitlab-br-botbuildstream: merge request (artifacts-config->master: WIP: Artifacts config) #88 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/8809:14
gitlab-br-botbuildstream: merge request (artifacts-config->master: WIP: Artifacts config) #88 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/8809:26
*** adds68 has joined #buildstream09:28
*** adds68 has quit IRC09:32
*** adds68 has joined #buildstream09:48
*** bochecha_ has quit IRC10:03
*** bochecha_ has joined #buildstream10:03
*** bochecha_ has quit IRC10:08
*** bochecha_ has joined #buildstream10:08
tlaterssam2: Do you know what tristan meant by this on issue #74 (Prevent artifacts from containing files in `/buildstream/build`): either warn or error out when attempting to stage artifacts in the sandbox when they shadow existing directory?10:13
ssam2yeah10:20
ssam2if I have an artifact that contains files in the path `/buildstream/install`, for example10:20
ssam2then BuildStream will usually have precreated those directories10:21
ssam2so when staging the artifact it can say "hang on, I created those directories but now this artifact is trying to install stuff in there"10:21
tlaterssam2: But *not* for files staged by other dependencies?10:22
ssam2no10:24
ssam2just for things BuildStream itself created10:24
ssam2i.e. the "special" dirs /buildstream/install and /buildstream/build10:24
tlaterCool, ta :)10:24
* tlater thought it made little sense, since any write would cause a warning otherwise10:24
*** uajain has quit IRC11:17
*** uajain has joined #buildstream11:20
*** tlater has quit IRC11:37
*** tlater has joined #buildstream12:08
*** adds68 has quit IRC12:50
tristan:)14:12
* tristan has fun with lots of email14:12
* ssam2 about to send more :-)14:19
*** adds68 has joined #buildstream14:24
gitlab-br-botpush on buildstream@74-prevent-artifacts-from-containing-files-in-buildstream-build (by Tristan Maat): 1 commit (last: Add warnings when staging to /buildstream/build) https://gitlab.com/BuildStream/buildstream/commit/76fcba1357685f7557a13e849cdf99a5a22c787514:30
tlatertristan: Could you explain this comment in more detail: https://gitlab.com/BuildStream/buildstream/merge_requests/81#note_40405848 ?14:47
tlaterI'm not sure what you are referring to there14:48
* tristan opens14:57
tristantlater, set_offline() ?14:57
tristanthe artifact cache ?14:57
tristanSo this offline state appeared in the codebase14:57
tlaterIirc it existed before14:57
tristanand the frontend does a little dance and decides to say "you're offline artifact cache !"14:58
tristannot forever no14:58
tristananyway14:58
tlaterHmm14:59
* tristan is waiting for gitlab sorry14:59
tristantlater, so it's not implemented in the abstract class, it's implemented on the ostree cache and not on the tar cache15:00
tristanneed I say more ?15:00
tlaterWell, it's not something that I added for cross-platform support, if it is my code. Currently only the old cache supports anything regarding this in the first place. It can probably removed15:00
tristanNo no no wait a sec15:01
tristanIf you abstract the artifact cache, then that is certainly part of what needs to be considered15:01
tristanJust to be clear: We dont implement abstractions so that code has to conditionally know that a method exists on it before calling it15:02
tristanit has to abstract it :)15:02
tristanso an artifact cache always just quacks like an artifact cache15:02
tlaterRight, yeah, but I'm still trying to figure out this things purpose - presumably there's a better way than having the frontend figure out whether things are online.15:03
tristanI believe the frontend cooperates with the artifact cache to determine it's online or offline state, but needs an opportunity to control when or if that happens15:04
tristanjuergbi, curiously - when we update the local artifact cache with the remote summary; is it somehow automatically locally cached for that remote ?15:05
tristanI.e. if we were online and ran `bst show` we'll find things `downloadable`15:06
tristanNext time we run `bst show` on the airplane, it also says `downloadable` but the artifact cache was never online ?15:06
tristanif this is all at the ostree level then perhaps yeah15:07
juergbithere is no caching at the buildstream level but yes, ostree does support storing remote refs, similar to git (except that the objects might not necessarily be local)15:08
tristananyway tlater; I think that code path is a nuisance as well; but dont bother rewriting it all, just make sure it's wired through the abstraction15:08
tlaterAlright, will do. Can always clean that later, I suppose.15:09
tristanyeah I suspect there is going to be more attention needed to these spurious contacting the artifact cache on startup annoyances (funny thing, when it works I guess it's great, when your wifi is off and `bst show` hangs while trying to shake hands, you just want to slap this steaming pile of python)15:10
tlaterRegarding the two mount classes, perhaps we should rename one of them. The one in the bwrap sandbox is black magic and has very little to do with mounting.15:12
tlaterThe one in the chroot class is a wrapper around the actual `mount` command, because solaris/AIX/Linux have wildly different ideas of what a mount command should do15:12
tlaterIt would be hard to merge them.15:13
tristantlater, sure then dont mind; I thought that while they were *doing* something different, their code flow was the same15:47
tristanbut I was obviously wrong, just had a hunch :)15:47
tristancause dealing with the mount map and stuff is a bit tricky15:47
bochecha_so I'm having problems with my branch for artifacts config15:59
bochecha_somehow, `project.name` is None, even though the name is defined in my project.conf :-/15:59
bochecha_seems that the project.name is set in Project._resolve()... which isn't called anywhere? o_O16:01
bochecha_tristan: seems in commit 68748a1f9cf8f91c60bca5b53ea7946bb1d9bb50 you split Project._load into Project._load_first_half and Project._resolve16:07
bochecha_tristan: but unless I'm missing something, Project._resolve is never actually called :)16:07
tristanOh test cases16:25
tristanbochecha_, yeah it's called by the pipeline I guess16:25
bochecha_oh16:26
bochecha_the leading underscore made me think it was private (as that's the Python convention)16:26
bochecha_ok, so the problem is that the artifacts cache object is created before resovling the project16:26
bochecha_which means we don't have the project name at that point yet16:26
bochecha_fixed :)16:27
bochecha_so I've got the artifacts cache working, with the three levels we discussed in the MR16:28
bochecha_1. user config fallback, 2. project config, 3. per-project override in the user config16:28
gitlab-br-botbuildstream: merge request (artifacts-config->master: WIP: Artifacts config) #88 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/8816:31
gitlab-br-botbuildstream: merge request (artifacts-config->master: Artifacts config) #88 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/8816:32
* tristan has been deep in his email sorry16:43
tristanbochecha_, it's private16:45
tristanbochecha_, if Project.load() is public, that's a bug hehe :)16:45
bochecha_tristan: the pipeline calls project._resolve()16:45
tristanright yes16:45
bochecha_usually, private functions aren't called by other objects :)16:46
tristanOhhh yeah we have a different view of that16:46
tristanbochecha_, I dont like too many underscores, we would have them everywhere16:46
tristanSo I just say, if the module is _ostree.py, then everything inside it is assumed private anyway16:46
tristanAnd public is only stuff that element/source plugin authors can access16:47
tristan(or frontend authors perhaps if we open up that API surface)16:47
tristanso yeah I guess we have some things that are underscored on public API surfaces which internals call16:48
bochecha_I'm not sure I follow16:51
tristanTwo things; A.) if it's already in private scope, no need for underscore to communicate it's privateness... B.) If its not public API (i.e. used *outside of buildstream*), then it's private16:52
tristanI'm relatively new to python so maybe I made a huge mess with that policy :)16:53
bochecha_oh, ok16:54
bochecha_so what you consider "private" is at the level of BuildStream, not at the level of the class16:54
tristanyes16:54
bochecha_which is fine, just not what I expected :)16:54
tristanthats what I care about :)16:54
bochecha_at the same time, is the Project really something that should be public API for the outside to use? (since the Pipeline isn't)16:55
gitlab-br-botpush on buildstream@cross_platform (by Tristan Maat): 2 commits (last: platform.py: Remove abc dependency) https://gitlab.com/BuildStream/buildstream/commit/af836a41287d2ec9e10ca598cadbe15f00de1d7d16:55
gitlab-br-botbuildstream: merge request (cross_platform->master: WIP: Cross platform) #81 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/8116:56
tristanits needed for a few things I believe16:56
bochecha_anyway, I'm quite happy with the MR now, I'd appreciate a review whenever you have time :)16:56
tristanbochecha_, project and context are around for read-only purposes of the element16:56
tristanbut maybe we can eliminate some of that16:56
tristanokay thanks ! :D16:56
* tlater was also confused by the slightly different convention on this project at first16:56
*** jonathanmaw has quit IRC16:59
gitlab-br-botpush on buildstream@cross_platform (by Tristan Maat): 1 commit (last: Rename platform implementations) https://gitlab.com/BuildStream/buildstream/commit/7938450614e6a28ac696faf2c943e704974a2ca117:00
gitlab-br-botbuildstream: merge request (cross_platform->master: WIP: Cross platform) #81 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/8117:00
*** jude has quit IRC17:10
tlatertristan: I'll finish the comments on the cross_platform branch next week, there are two more that I'd just like to ask you about first, but as I'm leaving in 10 minutes that won't happen tonight17:15
tlaterWell, leaving now, busy in 10 minutes ;)17:15
tlatero/17:15
*** tristan has quit IRC17:15
*** jonathanmaw has joined #buildstream17:16
*** tlater has quit IRC17:18
*** ssam2 has quit IRC17:19
*** jonathanmaw has quit IRC17:23
*** tristan has joined #buildstream17:29
*** tristan has quit IRC17:37
*** tristan has joined #buildstream17:37
tristanpersia, damn internet crap !17:38
*** tristan has quit IRC17:38
*** tristan has joined #buildstream17:46
*** tristan has quit IRC18:39
*** tristan has joined #buildstream20:55
*** tristan has quit IRC22:31

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