IRC logs for #buildstream for Tuesday, 2018-04-24

albfan[m]instructions for archlinux: I need to install lzip too.00:05
albfan[m]and lauch bst track base/freedesktop-sdk-junction.bst00:06
albfan[m]before bst build --track-all core-deps/gtk+-3.bst00:06
gitlab-br-botbuildstream: merge request (jjardon/codequality->master: WIP: Add job to analyze project code quality with Code Climate CLI) #431 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/43101:25
gitlab-br-botbuildstream: merge request (jjardon/codequality->master: Add job to analyze project code quality with Code Climate CLI) #431 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/43101:34
gitlab-br-botbuildstream: merge request (jjardon/install_deps->master: Update install instructions) #406 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/40601:44
gitlab-br-botbuildstream: merge request (jjardon/install_deps->master: Update install instructions) #406 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/40601:45
*** tristan has joined #buildstream06:11
albfan[m]18,1 Gb in ~/.cache/buildstream, how much it takes to build gtk3?06:41
tristanalbfan[m], not sure exactly, but certainly much less... there are a few factors here; and they are mostly related to the work jennis and tlater are doing right now...06:54
tristanhttps://gitlab.com/BuildStream/buildstream/issues/136 <-- expiring artifacts in remote artifact cache06:55
tristanCurrently we've not enabled the shared artifact caches because they get full quickly and need manual maintenance06:55
tristanThis means, you are not benefiting from downloading the already built artifacts yet :'(06:56
tristanThat also means that, ... if an artifact is already built... you would not need to download the source code needed to build it06:56
tristanfor the gnome-build-meta project, this would mean you would never need to download any source code to build the base freedesktop-sdk runtime06:57
tristanhttps://gitlab.com/BuildStream/buildstream/issues/135 <-- expire artifacts in local cache06:57
tristanThis will basically mean that for at least the artifact cache (~/.cache/buildstream/artifacts), we would automatically delete the least recently used build results06:58
tristanit's possible that it's amounting to that much right now for GTK+, but it really should be much less06:58
*** tristan has quit IRC07:12
*** toscalix has joined #buildstream07:51
albfan[m]tristan: I can inspect what is taking that space later (afk now)07:56
jennisalbfan[m], have you just done a full build of GNOME from scratch? iirc, the gnome newcomers guide recommends having ~20GB of free space08:09
albfan[m]jennis: yes, from scratch. Is there other way?08:10
jennisI don't think so, jjardon may know more regarding this08:12
*** jonathanmaw has joined #buildstream08:15
tlaterHm, if the cache is filled only with one build the cache expiry wouldn't help08:24
*** noisecell has joined #buildstream08:36
jennisjuergbi, we determine the size of an object in OSTreePusher here: https://gitlab.com/BuildStream/buildstream/blob/master/buildstream/_artifactcache/pushreceive.py#L20208:48
jennisin send_putobjects*08:49
jennisthis size, "tar_info.size" can then be re-accessed in receive_putobjects(), right...?08:49
juergbijennis: yes, this should be in the tar header of the embedded file and should be accessible there even before actually extracting the file08:51
jennisfantastic08:52
jmacjjardon: Yeah, that's probably the best idea09:01
*** bethw has joined #buildstream09:02
*** aday has joined #buildstream09:25
*** toscalix has quit IRC09:43
*** toscalix has joined #buildstream09:45
gitlab-br-botbuildstream: issue #378 ("Make `bst-here` more flexible") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/37810:03
*** tristan has joined #buildstream10:17
tlaterjuergbi: Do we need to worry about forged headers at all?11:57
gitlab-br-botbuildstream: merge request (jjardon/another_codequality->jjardon/codequality: WIP: test codequality) #432 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/43211:58
juergbitlater: it seems we don't have any validation at all right now, afaict12:05
juergbipush is a privileged operation, so it's not quite as critical12:05
juergbiI don't think we should worry about it as part of this work as it wouldn't be a regression12:06
juergbithe CAS server performs validation, though12:06
tristanjjardon, it looks like a cool feature, but I dont like how much of a black box it is12:26
tristanjjardon, the codeclimate thing I mean12:26
tristanjjardon, this says that radon is an available plugin, so maybe we're running it redundantly: https://docs.codeclimate.com/docs/list-of-engines12:26
tristanjjardon, also maybe it makes sense to install codeclimate ourselves, generate more reports with it in a single task, not use the docker image, and actually understand what is going on in the delivery process of this json file that gitlab likes to read12:27
* tristan should probably comment on the issue12:28
*** xjuan has joined #buildstream12:53
gitlab-br-botbuildstream: merge request (jjardon/install_deps->master: Update install instructions) #406 changed state ("merged"): https://gitlab.com/BuildStream/buildstream/merge_requests/40612:55
*** Prince781 has joined #buildstream13:05
*** tristan has quit IRC13:34
*** tristan has joined #buildstream13:37
*** Prince781 has quit IRC14:01
jennisHi guys, I've just completely cleaned both my remote and local caches and have rebuilt a simple bst project. `du -sh` in ~/.cache/buildstream/artifacts/ostree turns out to be a lot larger than `du -sh` in /path/to/remote/artifacts, both are identical ostree repos, executing `ostree refs` in each repo shows them to be the same14:30
jennisany ideas?14:30
*** Prince781 has joined #buildstream14:30
jennis(Seems like this shouldn't be the case)14:31
tlaterjennis: By 'cleaning' do you mean `rm -rf <repopath>`?14:31
jennisyeah14:32
jmacand `ostree refs` shows exactly the same refs for both?14:32
jennisyes14:32
jmacHmm!14:33
tlaterGood question ;p14:34
jennishttps://paste.baserock.org/ovuseqereq14:34
tristanjennis, the remote cache uses compressed artifacts14:34
tristanjennis, the local cache does not14:34
tlatertristan: Oh, is there a reason for that?14:35
tristanhardlink checkout optimization14:35
tristanon the server it's unimportant14:35
tlaterRight, that makes sense14:35
jennistristan, aha! Thank you14:35
tlaterLocally the user might get annoyed...14:35
jmacHow does the compression work? I thought we sent uncompressed tars to the remote cache.14:36
tristanjmac, we locally create a compressed repo, and we send the compressed objects through a tar stream14:36
tristanthere are no tarballs14:36
jmacAh yes14:36
tristanTarStream is simply an optimization to avoid round tripping for sending a lot of files14:36
jjardontristan: codeclimate is AGPLv3, impossible to be more open :) . But yeah we can use codeclimate directly instead the image created from gitlab but we will probably lost the nice MR integration14:37
tlaterI.e., to enable people pushing objects from South Korea to the UK14:37
tristan(when pushing to an artifact server as far as say, manchester, tarstream turns a 1GB push from 13hours into about 20min upload)14:37
tristanjjardon, it's not really that important to spend time on, though14:39
gitlab-br-botbuildstream: merge request (214-filter-workspacing->master: Make workspace commands on a filter element transparently pass through to their build-dependency) #317 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/31714:39
tristanI mean, it would be indeed cute to have things rendered in the gitlab UI14:39
tristanjjardon, maybe we can also easily just find the right code to convert radon json output into codeclimate json format; and avoid pulling in the whole machine14:40
tristanit's the "black box" nature of this third party machine which we've not configured ourselves that I dislike, mostly14:41
* tristan wishes gitlab would be more open about letting users contribute to analytics14:41
tristanseems they want to have built-in things for everything; while I just want to take the things I've created and plug them into gitlab's analytics in a configurable way14:42
tristanjjardon, ok I'll tell you what, lets do this..14:48
tristanjjardon, lets add this in "post", and also move the radon job into "post", it doesnt make sense in tests, and it doesnt make sense to block tests on these extra jobs14:49
tristanjjardon, and lets add a comment in the codeclimate job YAML that this needs refactoring, and that we probably want to just provide the codeclimate.json directly as an output of radon, with some conversion14:50
tristanit will still be a black box, but it might add some fun to CI pipelines, and it will have a documented path for improving things later14:50
tristanjjardon, sound good ?14:50
*** toscalix has quit IRC14:54
gitlab-br-botbuildstream: merge request (214-filter-workspacing->master: Make workspace commands on a filter element transparently pass through to their build-dependency) #317 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/31715:01
gitlab-br-botbuildstream: merge request (214-filter-workspacing->master: Make workspace commands on a filter element transparently pass through to their build-dependency) #317 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/31715:05
tlaterHm, it looks like my issue was that `Element` objects can't be pickled15:14
tlaterIs there any way to share elements across the process boundary?15:14
tlaterHm, no, I suppose the element is just passed along on the parent thread.15:18
tristantlater, we are *very* careful about what we serialize through the IPC, simple objects _only_15:28
tristanregardless if pickling is performed on our cucumbers15:29
tristantlater, the Element is indeed copied *into* the child by simple virtue of fork()15:29
tristanbut anything passed over the IPC is hand crafted15:29
tlaterYep, I've figured that out by now15:30
tlaterI assumed the element was passed back by the child, but that turned out not to be the case15:30
tlaterGrr, only reference to `self.element` left is the one passed to `action_cb()`15:32
tlaterEasily the hardest one...15:32
tristanbenbrown, valentind; git source staging has to change because of https://gitlab.com/BuildStream/buildstream/issues/37615:34
tristanbenbrown, or rather, that is a side effect of https://gitlab.com/BuildStream/buildstream/issues/31115:35
tristanSo, when we stage for a build, we should exclude all history except for the minimum which might be required for a `git describe`15:35
tristanbenbrown, for a workspace checkout however, it needs A.) The regular clone history ... B.) A git remote set-url origin to point to the real upstream15:36
tristanB.) is done as special sauce in `git` plugin's implementation of Source.init_workspace() currently15:36
benbrownRight, makes sense15:39
benbrownWRT preserving all history of git mirrors, disabling auto gc ought to be enough (I'm sure skullman could correct me)15:41
tristanit certainly sounds that way, if things work in such a way that I sort of suspect they might15:42
benbrownBut any unreachable objects won't be exposed by default, so if you cloned from the bare repository (which I believe is how bst currently operates) certain shas won't be present15:42
tristanbenbrown, i.e. if you could mirror all git repositories into one repo (ignoring hash collision possibilities)15:42
tristanthen it would work at least for any repo with rewritten history15:43
tristanI see15:43
tristanbenbrown, well `git` plugin's Source.fetch() implementation *should* be taking care of this15:43
tristanwe currently dont implement things exactly to spec, but we meet the requirements15:44
tristani.e. Source.track() need not download or clone anything, it only needs to report the most recent commit sha for a tracking branch15:44
tristanand Source.fetch() need not clone the whole repo, it only needs to obtain the required ref15:44
skullmanbenbrown: you can configure a git server to let you ask it for unreachable objects, but yeah, you wouldn't get them if you did a mirror fetch, since that goes by reachable refs15:45
benbrownsee uploadpack.allowAnySHA1InWant in the git config man page15:45
benbrownskullman: yeah15:45
tristanthe implementation uses clone, which normally "works"15:45
tristanright, so we might want to ensure that a BuildStream mirror implementation ensures it's mirrored repos allow this15:46
benbrownIndeed15:46
* tristan notices that he hasnt had time to look at all of the issue comments today15:46
tristansorry about that, I think there was a big one from skullman I still have to look at...15:46
skullmanbenbrown: IIRC there's also an option to allow SHA1s that are reachable, but it's disrecommended since it's expensive to calculate, hence the big fat warning on allowAnySHA1InWant that it allows fishing for alternate histories15:46
skullmantristan: it's not urgent, I've got to write a follow-up about how we could add metadata to cache servers15:47
skullmans/cache server/artifact caches/15:47
*** sstriker has joined #buildstream15:57
*** sstriker has quit IRC16:06
*** Prince781 has quit IRC16:28
juergbiskullman: I haven't really looked into #76 yet but please keep non-OSTree artifact cache in mind (specifically, the CAS plans for remote execution)17:02
*** jonathanmaw has quit IRC17:04
*** bethw has quit IRC17:31
gitlab-br-botbuildstream: merge request (jjardon/debian-9->master: WIP: .gitlab-ci.yml: Run test in current Debian stable (stretch)) #425 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/42517:55
*** tristan has quit IRC17:58
gitlab-br-botbuildstream: merge request (jjardon/debian-9->master: .gitlab-ci.yml: Run test in current Debian stable (stretch)) #425 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/42518:02
*** tristan has joined #buildstream18:15
* albfan[m] continue to build gtk3 on buildstream to hack GNOME!18:48
cs_shadowHi. one of our builds is failing with "OSError: [Errno 39] Directory not empty: <path-to-bst-cache>" and I'm also seeing "BUG" in the click output. Have I messed up something on my side or is it actually a bug?19:00
cs_shadowI don't have any workspaces open, in case it matters19:00
*** xjuan has quit IRC19:35
*** tristan has quit IRC19:44
*** aday has quit IRC19:48
*** slaf has quit IRC22:27
*** slaf has joined #buildstream22:29
*** slaf has joined #buildstream22:29

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