IRC logs for #buildstream for Thursday, 2019-02-14

*** nimish has joined #buildstream01:42
*** mohan43u has quit IRC01:54
*** nimish has quit IRC03:53
*** nimish has joined #buildstream04:02
*** nimish has quit IRC06:13
KinnisonIs there any chance we can get https://gitlab.com/BuildStream/buildstream/merge_requests/1116 resolved today?  I am fed up with carrying a delta to setup.cfg in a git stash08:18
*** cs-shadow has joined #buildstream08:54
gitlab-br-botBenjaminSchubert approved MR !1116 (doraskayo/exclude-eggs-from-linting->master: setup.cfg: exclude .eggs/** and build/** from pycodestyle linting) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/111609:30
*** tpollard has joined #buildstream09:51
cs-shadowjjardon: benschubert: hi :) thoughts on https://gitlab.com/BuildStream/buildstream-docker-images/merge_requests/108 ?09:52
jjardoncs-shadow: nice! +109:56
benschubertcs-shadow: just not sure about "supported tags", don't know what support would entail here :) But otherwise, thansk a lot!09:56
*** raoul has joined #buildstream09:57
jjardoncs-shadow: not sure you noticed but master of that repo was failing yesterday09:59
cs-shadowjjardon: yes, that was because i hadn't created the buildstream/buildstream image on Docker Hub. I wanted to see it fail once to verify that i hadn't messed up the moving tags logic. Should be good now :)10:00
cs-shadowbenschubert: i agree, that was inspired by "official" images but you are right. How about `s/supported tags/list of tags/` ?10:01
benschubert"published tags"? otherwise this seems good too!10:01
jjardoncs-shadow: coolio10:02
cs-shadowcool, "published" wins. thanks!10:02
cs-shadowUpdated https://hub.docker.com/r/buildstream/buildstream10:07
laurenceadds68, so, the marge-bot: just to check what it does - when an MR is approved and set to merge, it'll put it into the correct 'queue' and re-base so the user doesn't have to10:08
laurenceis there any more to it?10:08
KinnisonI think you assign the MR to marge10:09
Kinnisonand *it* deals with it10:09
laurencealso is there anywhere else this is captured, btw? not sure where marge bot came from originally10:09
laurenceyeah i'm aware of that, but you have to review it first before assigning10:09
laurenceand approve, I think10:09
adds68laurence, yea you need the standard number of approvals and then to merge it you just assign it to marge10:10
adds68she then rebases/merges etc10:10
laurencegreat, so if you've got a few people trying to merge at once it handles that for you, very useful10:10
laurenceadds68, just wanted to check if there was anything else it did to be aware of10:11
adds68laurence, yea correct, i'm not sure if it has any other features10:13
*** jonathanmaw has joined #buildstream10:16
laurencegreat, thanks, I'd like to get it into BuildStream (very soon, I hope)10:19
*** tristan has joined #buildstream10:20
*** lachlan has joined #buildstream10:36
*** alatiera has joined #buildstream10:44
gitlab-br-bottpollard opened issue #913 (Extracting buildtree/specific subdirs from the cache should be done directly) on buildstream https://gitlab.com/BuildStream/buildstream/issues/91311:00
*** ChanServ sets mode: +o tristan11:02
*** lachlan has quit IRC11:04
KinnisonCan tox run an arbitrary script inside its virtual environment?11:14
KinnisonI want to run tests/cachekey/update.py but I can't because pytest et al are managed by tox11:14
tpollardyou can run specific tests yes11:15
Kinnisonit's not a test11:15
Kinnisonit's just a script which ends up importing pytest11:15
tpollardah11:16
phildawsonKinnison, To do so you'd have to add the script you want to run to the 'commands' in tox.ini11:16
Kinnisonaha, ta11:16
phildawsonAs far as I'm aware, there's no way of doing so by passing arguments to tox, but I'm happy to be corrected on that11:16
* Kinnison tries creating a cachekey-update env11:18
benschubertotherwise: source .tox/{env-name}/bin/activate and you're in the env :D11:18
benschubertand afterwards you can do whatever11:19
*** lachlan has joined #buildstream11:20
Kinnisonaha so they are venv-alike?11:21
benschubertthey are venvs11:22
Kinnisonnice11:22
benschuberttox is basically creating one venv per "env" you declare in tox11:22
benschubertand that's it11:22
Kinnisonthe env thing turned out easiest, thanks benschubert11:24
* phildawson wishes he'd thought of that earlier. Thanks benschubert :)11:28
SotKphildawson: you can pass args by putting `{posargs}` in the command11:30
SotKso you can do something like http://git.openstack.org/cgit/openstack-infra/storyboard/tree/tox.ini#n31 to just run whatever you pass inside the venv managed by tox11:31
phildawsonSotK,  You can, but the way buildstream's tox.ini is set up all those are passed straight to pytest11:32
phildawsonWhich makes it somewhat inconvenient if you just want to run some arbitrary script :)11:32
SotKthe tox.ini I linked does similar for the default env, but has a `venv` environment in which the posargs are the entire command11:34
SotKso `tox -e venv -- my-command-here` works11:34
phildawsonSotK, Neat. I might add that to ours :)11:36
gitlab-br-botaevri opened issue #914 (checkout --tar: mtime=0 is problematic for some software) on buildstream https://gitlab.com/BuildStream/buildstream/issues/91411:40
gitlab-br-botaevri opened MR !1149 (aevri/mtime1->master: storage.Directory.export_to_tar: default mtime=1) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/114911:43
adds68laurence, the designer finally sent BuildStream sources back11:43
adds68laurence, should i upload them to that issue, so we can close it and someone can set the logo on the project?11:43
juergbivalentind: I assume you're planning to comment again on !1140 and I will hold off merging for a bit. let me know if/when you're happy with it11:45
gitlab-br-botMR !1140: Do not resolve or mangle symlinks during staging https://gitlab.com/BuildStream/buildstream/merge_requests/114011:45
laurenceadds68, for BuildGrid I just uploaded the logo sources to the gitlab wiki, for us maybe the GNOME wiki is better (just wanted them somewhere so others could always access)11:49
laurenceadds68, for the question of BuildStream versus Buildstream - has the designer amended it on the sources?11:50
gitlab-br-botBenjaminSchubert opened MR !1150 (bschubert/dont-keep-metasource->master: Don't keep MetaSource around in Source) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/115012:02
tristanjjardon, I think we should wait for Kinnison's emergency fix for cache key stability to drop before rolling out a 1.2.x12:08
tristanjjardon, i.e. https://mail.gnome.org/archives/buildstream-list/2019-February/msg00035.html, it is a cache key breaking change; but seems to be very important (i.e. also a cache key stability *fixing* change)12:09
juergbioh, breaking cache key in 1.2?12:09
tristanWell12:09
tristanIf they are broken ?12:09
juergbiwell, it's more like Python doesn't guarantee that it's stable12:09
tristanI mean... they are broken right ?12:09
juergbiso it might break with future Python version12:09
juergbias we test cache keys in CI with Python 3.5-3.7, it should be fine right now, or not?12:09
juergbi(as long as we also don't backport optimizations that break pickle/cache key)12:10
jmacDo you actually test cache keys from Python 3.5 against keys from 3.7?12:10
tristanThis is a good question12:10
juergbiyes, CI tests that12:10
jmacNice12:10
juergbialthough we can't guarantee that we test all corner cases12:10
juergbiKinnison: any opinions on the above?12:11
tristanYeah, I don't think I fully grasp why pickles differ depending on 'identity' (address of module in memory ?)12:12
KinnisonIt's that pickles try not to serialise the same object more than once12:39
Kinnisonif you have two strings which happen to have come by the value "foo" independently they get serialised independently12:39
Kinnisonbut if yo uhave two strings which have the same value "foo" then they get serialised once and recalled later12:39
KinnisonThis makes relying on pickle dangerous in the face of seemingly innocuous optimisations elsewhere in the code12:40
KinnisonI think, if we're already changing 1.2's cache keys, then it makes sense to include the JSON change too12:44
Kinnisonbut if we're not, then there's no point breaking 1.2's users' caches12:44
tristanKinnison, in that case lets not12:44
* Kinnison nods12:44
tristanKinnison, policy is to not break keys in a release - what I don't understand is; is it potentially broken ?12:45
Kinnisontristan: So long as the cache keys tests are in place, it's guaranteed not broken for the set of python versions we CI12:45
tristanThe description looks like we might get the wrong cache key if two elements are supposed to have the same key ?12:45
tristanDepending on what strings have been seen in the program lifetime ?12:46
Kinnisontristan: essentially the same cache key dictionary *value* could result in different pickles, dependent on whether or not identical *value* strings happen to be the same PyObject under the hood12:46
Kinnisontristan: the difference between foostring == barstring, and foostring is barstring12:46
KinnisonIYSWIM12:46
tristanHmm12:47
tristanThat seems like it is probably happening, but it is happening in a consistent way and as such things are not broken ?12:48
KinnisonCurrently yes12:48
KinnisonBut, like I said, an unrelated optimisation in _variables.py exposed this12:48
tristanI.e. a cached cache key string will be reused various times (by virtue of collecting the dependency cache keys and including those)12:48
*** raoul has quit IRC12:49
jmacI think so. I wouldn't have expected Python 3.5 and 3.7 to produce consistent pickles12:49
jmacStandard advice from the Python community is never to have a pickled object last longer than the Python process which created it12:49
tristanI see, so only code changes appear to have an effect on this, and currently we have consistent keys across python versions12:49
Kinnisonyes12:49
Kinnisonafaict, run-to-run we're consistent12:49
KinnisonIt's just in the face of code changes to the code which provides the data which may end up in the cache key12:50
jmacWhat happens if you alter the YAML in one .bst file which means it duplicates a string value in another .bst file?12:50
KinnisonWe're fine because we generate fresh strings - there's no interning in ruamel12:51
KinnisonThe issue came up because I added an optimisation in my Variables rework to go "oh this is constant, just return it"12:52
Kinnisonrather than always generating a fresh string by means of re.subst12:52
tristanI suppose we also have to change _yamlcache.py12:52
KinnisonI think the yaml cache is play12:53
Kinnisonokay12:53
* Kinnison can type, honest12:53
KinnisonThe yaml cache is really only for run-to-run of the same code12:53
KinnisonAnd future python commits to always being able to read old pickle12:53
gitlab-br-botdanielsilverstone-ct opened MR !1151 (danielsilverstone-ct/json-cache-key->master: Update cache keys to use JSON) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/115112:55
tristanOk well anyway, this is all a lot less alarming than I thought :)12:56
KinnisonI have put an MR up, we'll see if the pipeline is okay or if I've missed anything, my local test runs were okay, but I only have 3.5 on my laptop12:56
Kinnisontristan: yeah it's not terrifyingly bad, just irritating in the face of optimisation work I'm trying to do12:56
Kinnisonif Python always interned strings, this'd have not come to my attention12:56
KinnisonDitto if pickle were less efficient :D12:57
KinnisonAs it is, I'm proposing to use `ujson` which ends up a few seconds faster than the old way on my test set anyway12:57
KinnisonThat, plus the _variables.py rewrite it unblocks, is about a 30s improvement on runtime for `bst show debian-stack.bst` on my laptop12:58
Kinnisonwhich is ca. 10%12:58
tristanShould we squash the commits on your branch for the sake of bisectability ?12:58
tristanKinnison, that sounds great re _variables.py :)12:59
Kinnisontristan: For a long time I've assumed we can only bisect between merge commits13:00
Kinnisontristan: otherwise, given the requirement on merges being fastforwardable, I'd have assumed we'd be ffwding13:00
KinnisonI don't mind squashing them if you want13:00
tristanWe try to keep every commit in a series passing it's tests indeed13:01
KinnisonI'll squash them if that's the ideal :D13:01
tristanYeah, I also dislike squashing but I think this is a good reason :)13:02
Kinnisonsquashed13:02
Kinnisonbenschubert: I think https://gitlab.com/BuildStream/buildstream/merge_requests/1150 looks good :+1:13:02
* Kinnison likes that it removes a FIXME13:03
*** alatiera has quit IRC13:03
lachlanHi, I'm getting 404 from https://registry.gitlab.com/buildstream/buildstream-docker-images - can others confirm please.13:08
tristansame here13:09
*** alatiera has joined #buildstream13:10
*** tristan changes topic to "BuildStream 1.2.4 is out ! | https://gitlab.com/BuildStream/buildstream | Docs: https://docs.buildstream.build/ | IRC logs: https://irclogs.baserock.org/buildstream | Mailing List: https://mail.gnome.org/mailman/listinfo/buildstream-list | Roadmap: https://wiki.gnome.org/Projects/BuildStream/Roadmaps"13:15
*** raoul has joined #buildstream13:17
cs-shadowlachlan: that’s not the url for the web UI. That only works with Docker commands (without https)13:18
cs-shadowFor browsing, please use https://gitlab.com/BuildStream/buildstream-docker-images/container_registry13:18
Kinnisontristan: congrats on the release13:19
tristantpollard, w00t, last minute proposal for BuildStream talk at FOSSASIA ... (drumroll)... accepted !13:19
Kinnisonyay13:20
tpollardtristan: awesome! I sent in my request to attend today :)13:21
Kinnisontristan: 축하해13:21
tristanKinnison, Thanks ! mostly valentind was the powerhouse behind 1.2.4 :)13:21
Kinnisonvalentind: félicitations13:22
valentindWhat what?13:22
valentindNew 1.2 release?13:22
tristanYeah13:22
valentindCool!13:22
tristanvalentind, it's finally out, thanks jjardon for nagging heh :)13:23
jjardontristan: \o/ tvm13:23
* jjardon fires CI on everything13:23
valentindThere are key changes in filter elements, so few things will build.13:24
tristanKinnison, I just learned 축하, and now the Korean version of "Happy birthday" makes sense :)13:24
* cs-shadow is on mobile at the moment. Will publish 1.2.4 on PyPI and Docker Hub once a computer is nearby13:26
jonathanmawjuergbi: I think I might be misunderstanding your comment at https://gitlab.com/BuildStream/buildstream/issues/911#note_140969502. Is the fork callback the function passed as "target" in the Process' constructor? I have doubts because I tried adding an artificial delay to Elementjob.child_process and didn't see an increase in time spent in posix.fork13:28
gitlab-br-bottpollard approved MR !1148 (chandan/dot-graph->master: contrib/bst-graph: Add script to print graph in DOT format) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/114813:28
Kinnisontristan: :D13:29
adds68laurence, ok i will try and upload them13:42
Kinnisontristan: Now that it's squshed, are you okay with https://gitlab.com/BuildStream/buildstream/merge_requests/1151 ?13:42
adds68laurence, and yea he has13:42
juergbijonathanmaw: no, I mean pthread_atfork() and the Python equivalent register_at_fork or similar13:42
tristanKinnison, Yes !13:42
jonathanmawjuergbi: oh, ta13:42
juergbiit's just a guess, though13:42
* tristan hits merge when ready button13:43
tristanActually I was counting on a pipeline running on master to update the badges in the docs13:43
Kinnisonheh13:43
KinnisonLooks like the pipelines left on 1151 are just at the cache stage so should be done soon anyway13:44
adds68laurence, seems i don't have access to upload things13:44
tristanKinnison, Yeah, I don't know that those docs were built from a repo state which contained the new tag, but it will certainly with your branch landing13:45
* Kinnison nods13:45
KinnisonHmm cache/: found 677332 matching files13:45
KinnisonI wonder if we're caching too much13:45
Kinnison(gitlab-ci)13:45
tristanOh no, not that again13:45
KinnisonSomething we've seen before?13:46
tristanKinnison, FYI, common issue with gitlab is that the caches are like, shared13:46
tristanSo... when someone runs CI on their branch and that branch adds a ton of data to the cache... it doesnt go away13:47
Kinnisonaah13:47
tristanI had a branch which force removes stuff which I manually run a bunch of pipelines on13:47
tristanyeah, it must be happening, CI is taking absurdly long :-/13:48
laurenceadds68, ok, send to me and I'll put them up, cheers13:52
adds68laurence, done13:53
tpollardadds68: make sure you have stickers for tristan at FOSSASIA ;)13:53
adds68haha tristan get some ordered from Sticker Mule13:54
adds68$20 discount for FOSS projects13:54
tristanOh ! ok ok13:55
Kinnisontristan: Can we clear the caches?  Also can we make it so that the caches are only retained from runs on master?13:56
tristanI think we can clear them, I don't know if we can do the latter though13:56
tristanMaybe we should clear them on a timer, like every sunday13:56
gitlab-br-bottristanvb merged MR !1151 (danielsilverstone-ct/json-cache-key->master: Update cache keys to use JSON) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/115113:58
*** phildawson has quit IRC13:59
*** phildawson has joined #buildstream13:59
tristanjjardon, Do you know if there is a way to zap the caches in the gitlab UI ? I can't find one14:02
*** phildawson has quit IRC14:05
juergbitristan: there is a 'Clear Runner Caches' on https://gitlab.com/BuildStream/buildstream/pipelines14:12
tristanAh on the pipelines page ?14:13
* tristan was fooling around in the settings14:13
tristanKinnison, it's a bit late for me to pick up pieces if things break... but I'll try the button tomorrow14:15
benschubertCould someone have a look at https://gitlab.com/BuildStream/buildstream/merge_requests/1150 ?14:27
tristanbenschubert, Nice !14:28
tristanAssuming the tests pass, that should free up some memory :)14:28
gitlab-br-botLaurenceUrhegyi opened issue #915 (Artifact As A Proto: Capabilities Service) on buildstream https://gitlab.com/BuildStream/buildstream/issues/91514:29
gitlab-br-botdanielsilverstone-ct opened MR !1152 (danielsilverstone-ct/variables-rework->master: Variables: Rework how expansion strings work) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/115214:29
*** phildawson has joined #buildstream14:30
gitlab-br-botaevri opened (was WIP) MR !1149 (aevri/mtime1->master: storage.Directory.export_to_tar: default mtime=utils._magic_timestamp) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/114914:47
*** tristan has quit IRC14:53
*** lachlan has quit IRC14:56
juergbialatiera: maybe I misunderstood your question. my branch fixes build with bst master but I wasn't proposing to switch CI to bst master. not sure whether jjardon wants to do that15:03
laurencewould anyone have any objections to the merge-bo15:04
laurencegah15:04
laurencemerge-bot? I can't see why, since it will make lives easier, but you never know, so thought i'd ask15:04
gitlab-br-bottristanvb merged MR !1150 (bschubert/dont-keep-metasource->master: Don't keep MetaSource around in Source) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/115015:04
alatierajuergbi: I think jjardon wants the tag of the CI to be bumped to the new bst 1.2 release, my question was towards that not about your changes :P15:04
juergbiok, sorry for the confusion15:04
alatieraits fine :)15:05
alatierajuergbi: thanks for the work again :)15:05
juergbiyw15:05
* laurence wonders who has the image for the mascot - tlater[m], any idea?15:10
tlater[m]laurence: Sam bought that from somewhere15:11
tlater[m](Thursfield)15:11
tpollardlaurence: https://gitlab.com/BuildStream/nosoftware/communication/blob/master/logo_icon/buildstream-beaver.jpg15:11
laurenceah, it's in nosoftware15:12
laurencethanks tlater[m]15:12
tlater[m]Looks like we have a good copy then :)15:12
*** lachlan has joined #buildstream15:13
*** nimish has joined #buildstream15:23
*** rdale has quit IRC15:25
jjardonKinnison: caches can be configured per branch/job/wherever; the only thing needed is to configure correctly the cache key in the .cache: section in the gitlab-ci.yml15:31
jjardonoh, no tristan15:31
* jjardon not sure what he means by " there is a way to zap the caches in the gitlab UI"15:32
*** rdale has joined #buildstream15:40
*** lachlan has quit IRC15:42
*** tristan has joined #buildstream15:42
*** lachlan has joined #buildstream15:49
*** rdale has quit IRC15:59
* paulsherwood reads Kinnison's email about cach-key stability and sighs16:04
paulsherwood1 - isn't this tested in CI?16:04
paulsherwood2 - why was pickle used in the first place?16:05
Kinnisonpaulsherwood: 1. yes, but CI never hit the issue, I did 2. as Tristan said - convenience at the time.16:05
Kinnisonpaulsherwood: and 3. We've sorted that now16:05
paulsherwoodin 'sorting' it have we assured backwards compatibility?16:06
KinnisonWe are now using JSON as the serialisation form for the cache key dictionary which means we won't hit this kind of confusion in future16:06
KinnisonThis change has nothing whatsoever to do with being able to find artifacts from previous algorithms16:06
paulsherwoodyou didn't answer my question16:06
Kinnisonlet me answer with a question then -- "backwards compatibility" in what sense?16:07
paulsherwoodcan the new implementation generate the same (assumed correct) hashes as the previous one16:07
KinnisonNo, because the previous serialisation format was pickle and the new serialisation format is json16:08
gitlab-br-botjuergbi merged MR !1140 (juerg/symlinks2->master: Do not resolve or mangle symlinks during staging) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/114016:08
KinnisonAnd the point of changing it was that the old serialisation format resulted in cache keys changing with unrelated optimisations elsewhere in the code, due to pickle being a little too clever for our own good16:09
paulsherwoodKinnison: https://gitlab.com/baserock/ybd/blob/master/ybd/cache.py#L6716:09
KinnisonYes, that looks similar to what we've merged into buildstream today16:09
paulsherwoodyes. that predates the existence of bst. just sayin' :/16:10
KinnisonNot a terribly constructive comment, but true nonetheless16:10
paulsherwoodafter so many years of being told by folks that i don't understand the problem, i do struggle to be 'constructive' at times yes16:11
paulsherwoodi'll get my coat :)16:11
*** paulsherwood has left #buildstream16:19
gitlab-br-botjuergbi closed issue #390 ("FAILURE Failed to link ... No such file or directory" in a compose element) on buildstream https://gitlab.com/BuildStream/buildstream/issues/39016:23
gitlab-br-botjuergbi closed issue #606 (Mangled symlinks when importing freedesktop BasePlatform) on buildstream https://gitlab.com/BuildStream/buildstream/issues/60616:24
gitlab-br-botjuergbi closed MR !1023 (jmac/830-stop-resolving-symlinks->master: Stop resolving symlinks in _relative_symlink_target) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/102316:28
*** rdale has joined #buildstream16:28
gitlab-br-botjuergbi closed issue #830 (_relative_symlink_target depends on the host filing system) on buildstream https://gitlab.com/BuildStream/buildstream/issues/83016:29
*** lachlan has quit IRC16:38
gitlab-br-botjuergbi closed MR !862 (valentindavid/link_files_sort_resolved->master: Resolve paths before ordering them in link_files/copy_files) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/86216:38
gitlab-br-botjuergbi closed issue #647 (BuildStream misorders elements in subdirectories of symlinks when link_files called in compose elements) on buildstream https://gitlab.com/BuildStream/buildstream/issues/64716:42
*** rdale has quit IRC16:44
*** cs-shadow has quit IRC16:54
*** rdale has joined #buildstream17:02
*** lachlan has joined #buildstream17:03
*** alatiera has quit IRC17:04
*** alatiera has joined #buildstream17:10
*** jonathanmaw has quit IRC18:18
*** lachlan has quit IRC18:18
*** raoul has quit IRC18:32
*** slaf has quit IRC18:40
*** slaf has joined #buildstream18:47
*** nimish_ has joined #buildstream18:51
*** nimish has quit IRC18:51
*** nimish_ is now known as nimish18:51
*** nimish has quit IRC18:52
*** nimish has joined #buildstream18:53
*** alatiera has quit IRC19:00
*** alatiera has joined #buildstream19:03
*** nimish has quit IRC19:47
*** nimish has joined #buildstream20:11
*** benschubert has quit IRC20:36
*** alatiera has quit IRC21:26
*** tristan has quit IRC21:31

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