IRC logs for #buildstream for Tuesday, 2017-09-19

*** ChanServ sets mode: +o tristan01:14
*** tristan has quit IRC01:28
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 1 commit (last: plugin.py: Add note on plugin extension support) https://gitlab.com/BuildStream/buildstream/commit/4813c828b77233b83442662353c7ad0498f408b202:10
gitlab-br-botbuildstream: merge request (64-clarify-about-plugins-importing-other-plugins->master: plugin.py: Add note on plugin extension support) #92 changed state ("closed"): https://gitlab.com/BuildStream/buildstream/merge_requests/9202:11
gitlab-br-botbuildstream: issue #64 ("Clarify about plugins importing other plugins") changed state ("closed") https://gitlab.com/BuildStream/buildstream/issues/6402:12
*** tristan has joined #buildstream02:13
*** ChanServ sets mode: +o tristan02:13
*** tristan has quit IRC05:42
*** tristan has joined #buildstream06:12
*** bochecha has joined #buildstream06:18
*** bochecha_ has joined #buildstream06:52
*** bochecha has quit IRC06:54
gitlab-br-botbuildstream: merge request (artifacts-config->master: Artifacts config) #88 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/8807:34
*** jonathanmaw has joined #buildstream08:17
*** tlater has joined #buildstream08:31
gitlab-br-botpush on buildstream@cross_platform (by Tristan Maat): 9 commits (last: _sandboxchroot.py: Implement sandboxchroot) https://gitlab.com/BuildStream/buildstream/commit/fe5a84fbeeccd693080d3c412d9d77fcc1e751a508:48
gitlab-br-botbuildstream: merge request (cross_platform->master: WIP: Cross platform) #81 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/8108:49
*** ssam2 has joined #buildstream09:15
gitlab-br-botpush on buildstream@cross_platform (by Tristan Maat): 8 commits (last: Add platform factories) https://gitlab.com/BuildStream/buildstream/commit/585f0582dec12bb7fee366fad2d51def9cbe59f709:27
gitlab-br-botbuildstream: merge request (cross_platform->master: WIP: Cross platform) #81 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/8109:28
gitlab-br-botbuildstream: merge request (artifacts-config->master: Artifacts config) #88 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/8809:36
gitlab-br-botbuildstream: merge request (artifacts-config->master: Artifacts config) #88 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/8809:45
*** laurenceurhegyi has quit IRC09:53
gitlab-br-botpush on buildstream@cross_platform (by Tristan Maat): 8 commits (last: Add platform factories) https://gitlab.com/BuildStream/buildstream/commit/7e19d6a33443348596594195ad44b59f9d073be709:53
gitlab-br-botbuildstream: merge request (cross_platform->master: WIP: Cross platform) #81 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/8109:53
*** adds68 has quit IRC09:54
*** adds68 has joined #buildstream10:00
gitlab-br-botbuildstream: merge request (artifacts-config->master: Artifacts config) #88 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/8810:01
gitlab-br-botpush on buildstream@cross_platform (by Tristan Maat): 1 commit (last: .gitlab-ci.yml: Add fallback tests to CI) https://gitlab.com/BuildStream/buildstream/commit/26aeaa24940298432fcf9a0192965b1542949f7210:01
gitlab-br-botbuildstream: merge request (cross_platform->master: WIP: Cross platform) #81 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/8110:02
bochecha_ssam2: any reason the base docker image for tests (which you seem to provide) doesn't already have the deps in it? (the ones installed with dnf for each test run)10:04
tlaterbochecha_: Mainly that it's not exclusively intended for tests - though this is a discussion tristan has wanted to bring up.10:05
ssam2bochecha_, which tests are you referring to?10:05
bochecha_ssam2: in https://gitlab.com/BuildStream/buildstream/blob/master/.gitlab-ci.yml, the `dnf install` lines10:06
bochecha_tlater: oh, the images are used for something else? I see10:06
ssam2ah yes10:06
*** laurenceurhegyi has joined #buildstream10:06
ssam2yeah the idea of those Docker image is that you can do "docker pull buildstream/buildstream" and have an environment to *use* buildstream10:07
ssam2installing extra stuff to speed up tests would be fine provided it doesn't make the docker container huge though10:07
ssam2certainly `which` and `patch` could be added10:08
gitlab-br-botpush on buildstream@cross_platform (by Tristan Maat): 1 commit (last: .gitlab-ci.yml: Add fallback tests to CI) https://gitlab.com/BuildStream/buildstream/commit/839b5b4a52ce0970526682ae75acf922c8f39d4910:10
gitlab-br-botbuildstream: merge request (cross_platform->master: WIP: Cross platform) #81 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/8110:10
gitlab-br-botpush on buildstream@cross_platform (by Tristan Maat): 1 commit (last: _sandboxchroot.py: Fix missing mknod directory) https://gitlab.com/BuildStream/buildstream/commit/58ff9921770fab7a6795c69ddcfda472d5c8d0f210:29
gitlab-br-botbuildstream: merge request (cross_platform->master: WIP: Cross platform) #81 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/8110:30
gitlab-br-botpush on buildstream@cross_platform (by Tristan Maat): 9 commits (last: _sandboxchroot.py: Implement sandboxchroot) https://gitlab.com/BuildStream/buildstream/commit/9af9b129db526afa8059ef886c1ea45c2a18c96910:30
gitlab-br-botbuildstream: merge request (cross_platform->master: WIP: Cross platform) #81 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/8110:31
gitlab-br-botpush on buildstream@cross_platform (by Tristan Maat): 9 commits (last: _sandboxchroot.py: Implement sandboxchroot) https://gitlab.com/BuildStream/buildstream/commit/0b7fb0c3172f55d10b6e7eebe995b1491d3a1d8310:45
gitlab-br-botbuildstream: merge request (cross_platform->master: WIP: Cross platform) #81 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/8110:46
*** tristan has quit IRC11:15
*** tristan has joined #buildstream11:24
tristanssam2, I'm confused by this docker on gitlab thing to be honest11:29
tristanssam2, are we using the same image that we have in our docs for "using buildstream with docker", on gitlab, and thats why we have that on gitlab ?11:29
tristanI thought we were referring to a specific, prebuilt "samthursfield" docker image that only needed to be downloaded11:30
tristanmaybe that is generated from the same thing11:30
ssam2there's only one Docker image11:42
ssam2the one hosted on my "samthursfield" personal account on dockerhub was temporary, I moved it to https://hub.docker.com/r/buildstream/buildstream-fedora/11:43
ssam2we could do one docker image for users and for gitlab, it might make sense actually11:43
ssam2*and one for gitlab11:43
tlatertristan: The documentation only talks about building that image - perhaps those instructions should be updated, given there's an "official" pre-built image now.11:44
ssam2true. although i would like to make it so the prebuild image was built automatically11:45
ssam2to do that I think it's best to move it out of buildstream.git into its own repo11:45
ssam2we can't add a "build docker image" step to buildstream.git because the gitlab-ci pipeline already uses docker, and docker-in-docker is... a mess11:46
ssam2but with a separate repo we could have a pipeline that doesn't use docker, and thus could run "docker build" on each new commit11:46
ssam2and push straight to dockerhub if we gave it the right keys11:46
tlaterssam2: What about using gitlab's docker repo?11:46
ssam2for hosting? we could, but I don't think that solves anything11:46
ssam2as I understand it a docker repo can only hold *already build* docker images, and it's the building that is the tricky part11:47
ssam2*already built11:47
tlaterHmm... Could the pipeline be: build image -> run tests/integration -> publish?11:47
tlaterNo, you're right11:48
tlaterUnless there is a way to share images as an artifact, but that would probably be messy.11:49
ssam2actually, removing `docker build` from the process altogether and adding a "docker" 'build' plugin to BuildStream would be great11:50
ssam2pushing it from inside a docker container might still be tricky though11:50
ssam2if there's a tool that can speak to Docker hub that doesn't require talking to a root-priviliged daemon then it would be fine11:51
ssam2hmm, such as https://github.com/shaded-enmity/docker-tar-push11:52
ssam2so all possible, but probably a week's worth of work if we're honest11:52
* tristan reappears11:56
tristanMkay11:57
tristanSo11:57
tristanThe idea of putting the docker support in another repo is fine...11:57
tristanBut I wonder; is there a way that we can revision the built images in this docker repo ?11:58
tristanI feel like it would be a good idea to gate changes to the latest image build in .gitlab-ci.yml, on running the tests themselves11:58
tristanThen we can tell when a new docker build is what caused tests to break right away11:59
ssam2that should be possible11:59
ssam2we could build the image, run the tests in it, and push after they succeed11:59
tristanAlso, upgrading things is also error prone, note that I've been removing the --upgrade lines from `pip install`11:59
tristanCause that always breaks when A.) psutils is updated and B.) the docker image has no gcc to build the C code that comes with that python upgrade12:00
tristanssam2, thats not the same though, while it ensures that we never push a new docker image that breaks with that day's buildstream master, it doesnt ensure that buildstream master's test cases always run against exactly the same image; until we explicitly commit a new .gitlab-ci.yml to build against a fresher one12:01
tristanAlthough it's still a bit better than now :)12:02
ssam2a docker repo can hold multiple versions of an image12:02
ssam2notice in https://hub.docker.com/r/buildstream/buildstream-fedora/ i tagged the image with the date i built it12:02
ssam2so you'll be able to `docker pull buildstream/buildstream-fedora:0.1-20170825` forever and get the same thing12:03
ssam2i also tagged with 'latest', so that `docker pull buildstream/buildstream-fedora:latest` works and (assuming we always correctly tag new images with 'latest') it'll always pull whatever is newest12:03
tristanAh that's nice, so we do have the option12:04
tristanYour other approach is not without it's merits though, I guess it would mean that need not add commits to upgrade the image, and the times that something fails; we might be confused but manually provoking a failed pipeline might "work this time"12:06
tristanThe downside with the manual approach is we have to remember to do it12:06
* tristan supposes that could be automated with a weekly cron job which submits a merge requests for the latest docker image update, automatically triggering a build and letting us click "yes" or "no"12:08
tristanah right, it was 'all-gcc' and 'configure-target-gcc', here https://github.com/flatpak/freedesktop-sdk-base/blob/1.6/meta-freedesktop/recipes-devtools/gcc/gcc-cross-initial_%25.bbappend12:19
tristanwhoops wrong window :)12:19
tristananyway12:20
tlatertristan: GitLab has scheduled builds - even ones where you are asked to click 'deploy' to confirm12:34
* tristan forgot his adaptor at home and anyway timing is good to go home...14:03
tristanIf I dont find another solution for these option conditionals...14:03
tristanI'll explore a bit what we can do with pure YAML14:03
ssam2to be clear, i don't dislike the s-expression approach enough to want to block it14:04
ssam2i just think it may turn out to be a bad choice in 2 years time14:04
*** tristan has quit IRC14:06
*** tristan has joined #buildstream14:09
* tristan reappears from home14:10
tristanssam2, honestly the reason why I lean towards something more data-ish than cute-code-ish, is the same (long term I cant predict what will happen, I only know that my options are reduced by using a stronger, more defined format)14:11
ssam2fair. i predict that what will happen is it'll eventually grow to encompass most of the functionality that jinja2 can already provide14:13
ssam2but that is just a prediction, and you're in a better place to know what things you will and won't allow into the language in future14:14
tristanSo to cover the bases, in that case at least we control what is added and why, and if we really end up implementing many keywords to rival functionality of jinja2, it's not really a dangerous or regrettable thing14:17
ssam2well true, it's not the end of the world and I guess it could be spun out to provide the library that we wish existed now :-)14:18
ssam2i agree it would be nicer if jinja2 had a formal spec we could reference; although i'm pretty confident it won't change though as there are millions of website templates and ansible scripts already depending on that syntax14:19
tristanI dont know, I mean; S expressions already exist; and using them to perform comparisons is a piece of cake; does it merit it's own library ? or is it safe to say that different applications will have different needs ?14:20
ssam2if we're just doing comparisons then no14:20
tristanI think what we really wish existed, is something that lets us be free with defining what we support, like S Expressions, but that looks more like what a programmer wants14:20
tristanthe more I turn this around in my head I think it's mostly a matter of taste, and it seems to me absurd to make a practical decision based on taste14:21
tristanbut then, maybe we need a marketing department to convince me otherwise :-/14:22
ssam2there's two questions I think14:22
ssam2one is the syntax, and that is down to taste really14:22
ssam2i'm sure some people will go "Oh cool! S-Expressions!"14:23
ssam2the other question is whether we need to formally specify and implement everything ourselves14:23
ssam2i mean, as a strawman argument, how about allowing a limited subset of GNU Guile for conditionals ?14:23
tristanSo for the latter, you are presenting it as a question of whether we *need* to do that, and I am perceiving it as; whether it's going to be safe to *not* do that14:24
ssam2right14:24
ssam2what things can go wrong?14:25
tristanright so guile is more like the jinja2 thing14:25
tristanSo, what can go wrong is an expensive question; a cheaper angle is: Assuming the that murphy's law is as true as usual, something will go wrong; and if we are the ones who define it; we can address that; if we dent even control the format; we're kind of stuck14:28
tristanMy crappy example on the list was about case sensitivity (which is another point we should decide on, whether option names are case sensitive, probably not I guess)14:29
ssam2i can't really argue with Murphy's law :-)14:29
tristanAssuming case insensitivity as the winner, I assume that jinja2 will have its own; personal opinion about "FOO" == "foo"14:29
tristanAn opinion we might not share14:29
tristanOr we might14:29
tristanI dont know14:29
ssam2it tries to imitate python, so == is case sensitive14:30
tristanSo that is something we should be deciding14:30
tristanWorking around that by asking the user to use our special little: tolower(foo) == "foo" helper, is not very nice14:31
tristanin the case where we disagree with the chosen already written parser (whatever it is)14:31
ssam2my only real datapoint is that Ansible has been using Jinja2 for conditionals for 5 years already, and clearly haven't hit too many issues with it14:34
ssam2but, I think i've made all the points I have to make14:35
ssam2i trust you'll make something workable, even if it's not quite what i would have made ;-)14:35
ssam2and we can always do buildstream 2.0 with a fancier syntax; i think that question can be punted more easily than "do we wholesale reuse someone else's DSL"14:36
tristanRight, the hard calls14:39
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 5 commits (last: Simplify a bit of code) https://gitlab.com/BuildStream/buildstream/commit/f40ae33b52197241880d7e6399bfd0e28c4ee46814:57
gitlab-br-botbuildstream: issue #87 ("Projects should have a say in their artifact caches") changed state ("closed") https://gitlab.com/BuildStream/buildstream/issues/8714:57
gitlab-br-botbuildstream: issue #87 ("Projects should have a say in their artifact caches") changed state ("closed") https://gitlab.com/BuildStream/buildstream/issues/8714:57
gitlab-br-botbuildstream: merge request (artifacts-config->master: Artifacts config) #88 changed state ("merged"): https://gitlab.com/BuildStream/buildstream/merge_requests/8814:57
*** jonathanmaw has quit IRC14:58
*** jonathanmaw has joined #buildstream14:58
tristanbochecha_, alright merged ! I wonder when pytest.param() was added to pytest though, my installed pytest blew up without that (could be nice to depend on the version of pytest that provides it ;-))14:59
tristanbochecha_, I added you as developer to gitlab group by the way, it means you can push to non-protected branches you create (which can save you time in annoying rebases from a separate repo)15:00
*** bochecha_ has quit IRC15:03
*** bochecha_ has joined #buildstream15:04
*** bochecha_ has quit IRC15:08
*** bochecha_ has joined #buildstream15:08
bochecha_tristan: yay, thanks for the review, and for being patient as I discover the code :)15:18
bochecha_tristan: I'll see if I can find what version of pytest added pytest.param, and send a MR for that, sorry I missed it15:19
tristanbochecha_, meh you couldnt have known15:21
tristanI chased it down a bit but fell flat on my face15:22
tristanbochecha_, note: https://github.com/pytest-dev/pytest/issues/2658 ... pytest.param() is undocumented so... I suspect one might have to crawl through a git repo to find out :-/15:22
tristandont be burdened by it, obviously finding the right version is something we'll want, though15:23
bochecha_weird, I found it in the documentation :-/15:23
tristanyou found an example I think15:23
tristanmaybe this: https://docs.pytest.org/en/latest/example/parametrize.html15:23
bochecha_I didn't know about pytest.param until this morning, in fact, when I was searching for something else in the pytest docs (which I never found, in fact) :)15:23
bochecha_yes, that's the page15:24
tristanbut no hyperlink or reference to the API reference where I would think a "Since version" might appear :)15:24
bochecha_ah right, yeah, the api doc reference doesn't have pytest.param15:24
bochecha_they aren't great at documenting things, especially the "Since version X" stuff :(15:24
bochecha_anyway, I have to go now15:24
bochecha_have a good evening15:24
tristannah I'm untrusting of python libs yeah15:24
tristanOk have fun !15:25
*** bochecha_ has quit IRC15:25
*** bochecha_ has joined #buildstream15:44
gitlab-br-botpush on buildstream@cross_platform (by Tristan Maat): 12 commits (last: sandbox.py: Add sandbox RO state) https://gitlab.com/BuildStream/buildstream/commit/d4e451fd587430566ff3d8801de64170497db6c516:16
gitlab-br-botbuildstream: merge request (cross_platform->master: WIP: Cross platform) #81 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/8116:17
bochecha_tristan: which pytest did you have, which didn't work with pytest.param ?16:35
bochecha_tristan: seems it was introduced in 3.1.0 https://github.com/pytest-dev/pytest/blob/master/CHANGELOG.rst#310-2017-05-2216:35
bochecha_did you have something older?16:35
*** bochecha_ has quit IRC16:41
tristanyeah, I certainly had something older than May 2017, thats brand spanking new16:54
*** bochecha_ has joined #buildstream17:03
*** jonathanmaw has quit IRC17:04
*** tlater has quit IRC17:08
*** ssam2 has quit IRC17:09
*** bochecha_ has quit IRC18:23
*** tristan has quit IRC22:19

Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!