IRC logs for #buildstream for Thursday, 2017-04-06

*** tristan has joined #buildstream06:08
*** ChanServ sets mode: +o tristan06:08
*** ssam2 has joined #buildstream09:29
*** jonathanmaw has joined #buildstream10:38
jonathanmawhola tristan, I heard you needed some help10:39
*** ssam2 has quit IRC10:43
tristanYay !10:56
* tristan *just* sending out the email to baserock-dev, gimme a moment10:56
*** ssam2 has joined #buildstream11:01
tristanjonathanmaw, ok I obtained caffeine and I'm all yours :)11:07
tristanSo, this is going to be a ride :)11:07
tristanthis week I've been drafting emails and blog and running against time11:08
tristanjonathanmaw, to get started, you probably want to follow the instructions to reproduce which I just sent in that email11:08
jonathanmawok11:08
tristanand get a feel for the source :)11:09
jonathanmawand once I've gotten to grips with what it is and how to use it, I assume I can get an idea of what needs doing via the roadmap?11:09
tristanWell11:09
tristanthere is a *lot* on the roadmap11:09
jonathanmawis there a task tracker for this project?11:09
tristanwhat I think is most productive right now, for the purpose of meeting the goals promised to GNOME, is to add the missing Source implementations11:10
tristanjonathanmaw, lets use the gitlab bug tracker11:10
ironfoot(regarding task tracking, I've heard gitlab has some things)11:10
tristanI'm skeptical about that11:10
tristanI really prefer bugzilla or ${any serious tracker} over gitlab, but lets give it a shot11:11
tristanjonathanmaw, so yeah... what we really need next is Source plugins for any of the source types used by either jhbuild or flatpak-builder, starting with the ever prominent tarball source11:16
jonathanmawhrm, the python3 packaged with debian is 3.4. I've installed 3.5 from source, but `pip install --user -e .` is failing  with "BuildStream requires Python >= 3.5"13:27
jonathanmawDo you know how pip finds that information?13:27
tristanEwwww good questions13:35
jonathanmawlooks like that specific error was because pip was running `python setup.py egg_info`, whereas the executable I installed was python3.513:37
jonathanmawand then I had the problem that python3.5 didn't have setuptools.13:37
jonathanmawI think I'm going to create a debian testing chroot, so I have the support of a package manager.13:37
tristan:-/13:38
tristanjonathanmaw, that will mean you will compile as root13:39
tristan:'(13:39
tristanso many tears13:39
tristannot fun13:39
jonathanmawI'm sure I can use linux-user-chroot13:39
tristanthat would be nicer indeed13:39
tristanbut you're going to need pygobject, ostree and bubblewrap13:40
tristanI think those can only be installed in a package manager13:40
tristanof course, if you have debian testing (as I run), then it's not a problem13:40
ironfootOne day I'll propose a dockerfile and instructions to run with docker13:42
tristanironfoot, yeah, I have no idea how to use docker at all13:43
tristanI've heard of it before, though :)13:43
tristanironfoot, I hope when you do that... it will be some time before everyone has python 3.5 on their host already :D13:43
ironfootxD13:43
tristanjaysus, python 3.5 is already almost 2 years old13:44
tristanand people STILL manage to not have it13:44
ironfootstretch release is going to happen soon13:44
ironfootprobably 202013:44
ironfoot</badjoke>13:44
ironfootin any case, it some people may still like to use the docker approach to not install things in their computers13:45
tristanyeah, I have someone on #python who showed me a 4 or 5 line shell script which sets up virtualenv13:47
tristangood enough for rjeks13:47
tristanbut not for this case13:47
tristanbecause we need some packages that are not pure python13:47
tristanjonathanmaw, can you tell me what version of python3 you *do* have installed on your host ?14:35
tristanjonathanmaw, you are not the first to have this lack of python 3.5 problem going on, so I wonder how much fiddling it would require to support a more widely available version14:36
tristanit's also difficult for me to test (since I *do* have 3.5)14:36
jonathanmawdebian jessie has python 3.414:36
jonathanmawspecifically 3.4.214:37
tristanjonathanmaw, want to try just modifying the setup.py test for 3.5 and see what breaks ?14:37
tristanthat could be really nice, there was some code I backed out to support < 3.3 I recall, but there's no need to bring that back14:38
tristanbut I think there are still a couple things that are 3.5 only14:38
tristanif it's bogus, or not too much work, we should just back down to 3.414:38
* tristan was told that asyncio from 3.5 is more reliable, though14:39
* tristan wonders if it's even part of the standard lib with < 3.514:40
ssam2https://pypi.python.org/pypi/tox is useful for testing with multiple python versions14:40
ssam2it runs your test suite in different virtual environments14:40
jonathanmawtristan: I'm still running into the problem of not having ostree in jessie14:40
jonathanmawis that one of the ones that definitely needs to be installed via package manager?14:41
ssam2it's a C dependency, certainly14:42
ssam2you could try to build it yourself if you wanted14:42
tristanI have ostree built myself yes14:44
tristanI configured and installed it into /usr/local14:44
tristanbecause I'm evil14:45
jonathanmawand/or don't want to funt your package manager?14:45
tristanmy package manager leaves me free to muck about in /usr/local, I think that's pretty standard14:47
jonathanmawhrm, ostree depends on e2p14:48
jonathanmawgoogling and apt-cache search don't know what that is14:48
tristane2p, really ?14:48
tristanjonathanmaw, did ./configure tell you that ?14:48
jonathanmawautogen.sh, but yes.14:48
jonathanmaw"dnl We're not actually linking to this, just using the header14:48
jonathanmawPKG_CHECK_MODULES(OT_DEP_E2P, e2p)"14:48
tristanyeah I see it there14:50
* tristan has it but has no idea what it is14:50
ssam2ostree seems to available in jessie-backports : https://packages.debian.org/source/jessie-backports/ostree14:50
tristanthat looks like better alternative14:51
* tristan thinks he has ostree installed in /usr/local not even from buildstream but from flatpak last year14:51
*** tristan has quit IRC15:06
jonathanmawgot ostree installed, "python3 setup.py egg_info" now works15:10
jonathanmawunfortunately pip still tries to call `python`, not `python3`15:10
* jonathanmaw fiddles some symlinks15:10
jonathanmawI think maybe I ought to have installed python3-pip, instead :/15:12
ssam2that sounds likely15:14
jonathanmawI'm as far as `bst build gnome/gnome-system-image.bst now15:23
jonathanmawand buildstream is failing with ImportError: cannot import name _yaml15:23
jonathanmaware import loops a thing in python?15:30
jonathanmawfull traceback at https://pastebin.com/tWaJBYN115:31
jonathanmawlooks like _yaml imports from utils, which imports from _yaml15:31
jonathanmawand http://stackoverflow.com/questions/9252543/importerror-cannot-import-name-x suggests that import loops break things.15:32
*** tristan has joined #buildstream15:33
jonathanmawtristan: I'm failing when running tests, traceback at https://pastebin.com/tWaJBYN115:35
jonathanmawlooks like an import loop15:35
tristanthis is with python 3.4 ?15:36
tristanjonathanmaw, ?15:37
tristanI guess15:37
jonathanmawtristan: yep15:37
jonathanmawbst uses /usr/bin/python3, which is version Python 3.4.215:38
tristanok15:38
tristanThat should work15:38
tristanI wonder if its a python thing15:38
jonathanmawlooks to be related to not being python 3.5 https://docs.python.org/3/whatsnew/3.5.html#other-language-changes15:39
jonathanmaw"Circular imports involving relative imports are now supported. (Contributed by Brett Cannon and Antoine Pitrou in bpo-17636.)"15:39
tristanAha15:40
tristanHmmm, I think its the only one and can be easily circumvented15:41
tristanlemme see15:41
* tristan recalls thinking "eww" when he started doing that, which was fairly recent in the history15:42
tristanjonathanmaw, try now15:54
tristanwhether we achieve python 3.4-ness, still a good little cleanup to have done15:55
tristanfwiw, if you've done `pip install --user -e .`, then pulling from git is really all that's needed15:56
tristanas it'll be hardwired to that directory15:56
jonathanmawtristan: yep15:59
jonathanmawseems to be fetching a whole bunch of stuff now.15:59
tristansweet !16:09
tristanjonathanmaw, care to run the tests ?16:09
tristan./setup.py test16:09
* jonathanmaw aborts build and gives it a go.16:10
tristanjonathanmaw, then submit MR for your setup.py change, if you get to build anything... we can declare 3.4 supported, which means welcome jessie users16:10
jonathanmaw214 passed in 8.67 seconds16:10
tristanjonathanmaw, whilst it builds, take a read of https://gitlab.com/BuildStream/buildstream/blob/master/HACKING.rst16:10
tristannice16:11
tristanI think that pretty much means we support 3.416:11
tristanbut coverage is not as great as it used to be :-/16:11
tristanjonathanmaw, and if you get a chance, try to get a feel for how the Source plugins are implemented16:11
jonathanmawcurrently still fetching things, so I think it'll be a while before I finish a build.16:12
tristansee buildstream/source.py, which derives from buildstream/plugin.py, and checkout the implementations in buildstream/plugins/sources16:12
tristanIt will be some hours yes16:12
tristanI think 4 and half on my machine, which is a beast16:12
tristanjonathanmaw, it should start building and fetching in parallel soon though16:13
jonathanmawthis jobs list is very swish, btw16:13
tristanheh16:13
tristanswish ?16:13
* tristan takes it as a good thing16:14
jonathanmawswish is good16:14
jonathanmawit suggests an effort made in presentation16:14
tristanthe status lines could be improved though, I could add an overall timer there, and also display how many builds have been done and how many remain and how many are processing16:15
tristan:)16:15
tristangood, I like it16:15
tristanit's a little trick of moving the cursor up and down16:15
jonathanmawI think I'll leave that build running and go catch a play. See you tomorrow :)16:26
*** jonathanmaw has quit IRC16:29
*** ssam2 has quit IRC17:20

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