IRC logs for #buildstream for Monday, 2017-10-23

*** tristan has joined #buildstream03:01
*** semanticdesign has joined #buildstream06:20
*** semanticdesign_ has joined #buildstream06:20
ltutristan, i'm thinking of adding a page here - https://wiki.gnome.org/Projects/BuildStream06:40
ltuto link to a page about the release schedule06:41
ltubasically summarising the discussion we had last week06:41
ltuwhich can be updated over time to be a general page for any release info06:41
ltusince, until we get a dedicated webiste, i guess that's BuildStream's 'homepage'06:42
ltulet me know if there's a better place that could go :)06:42
tristanltu, I think that anyway, if we want a "webpage", that wont be the place to talk about release schedule stuff :)06:44
tristanltu, Ummm, so yeah I guess we could do that - I feel like this should probably be the beginnings to a guide / checklist for maintainers06:45
tristanbut anyway, add it how you envision it06:45
tristanI think eventually we'll want to document steps to making a release, what mailing lists it should be announced on, how to bump the versions and branch/tag accordingly, etc06:46
tristanAnd release schedule fits into that06:46
ltuok06:46
ltuyes those kind of additions were what i was thinking of, eventually06:47
ltufor now i just thought to get a page about all things release06:47
ltua dedicated page rather than it being just captured in those meeting minutes06:47
tristanyep06:49
tristanhrmmm, would be nice to relax the integration tests a bit06:59
tristantesting for exactness of everything is not always the point; for instance compose tests care about which files were split in which way, not about exactness of binaries07:00
tristanbuild tests care about building software that works, etc07:00
tristana simple change like adding --compress-debug-sections to the strip commands doesnt necessarily break these constraints07:01
* tristan now runs the integration tests along side a build of GNOME on his overheating laptop to update the tests he broke :-S07:02
tristanltu, fwiw, looking at https://wiki.gnome.org/Projects/BuildStream/Monthly-Meeting/20171017 ... you did pretty awesome there07:28
tristanltu, However I think it's too much work - what would be nice is to have a short summery of actions and resolutions from you (much less detailed); and a raw IRC log... for the IRC log we'll be getting some automation too so you can just link to it07:29
ltutristan, cool, that'd be good.07:30
tristanltu, it would be nice also, to re-post to the buildstream-list ML the summary and link (but again; I hope this is much less effort on your part - I dont think we need to eat that much of your time)07:30
ltuyeah it didn't take too long because i was able to do it straight after the meeting, but i may not always have that luxury.07:30
tristanyeah07:30
tristanI'm also used to this kind of thing being mostly volunteer driven, in all aspects I'm trying to keep maintenance burden to a minimum07:31
ltui did mail it out to the list with also a link to the wiki page though07:31
ltutristan, yeah, definitely, less is more i think, will keep it as tight as possible :)07:32
*** valentind has joined #buildstream07:43
*** anahuelamo has quit IRC08:21
*** anahuelamo has joined #buildstream08:22
*** tiagogomes has joined #buildstream08:23
*** tiagogomes has quit IRC08:26
*** tiagogomes has joined #buildstream08:29
*** jonathanmaw has joined #buildstream08:40
jonathanmawtristan: I'm having a look at integrating documentation building with setup.py (iirc that was a request at one point, can't remember if it's got an issue)09:03
jonathanmawAIUI I can add custom commands, but I haven't been able to dig up whether there's a default "documentation" command. googling for how to build documentation is difficult :/09:04
jonathanmawwhat with google just showing me the setuptools documentation in whole09:04
*** tlater has joined #buildstream09:09
*** ssam2 has joined #buildstream09:12
tlaterjonathanmaw: I'm fairly sure there's no default documentation command for setuptools09:13
tristanNah09:21
tristanjonathanmaw, We are using makefiles for docs09:21
tristanjonathanmaw, also, note that we are generating custom templates for plugins specifically, even more custom09:21
tristanhttps://gitlab.com/BuildStream/buildstream/blob/master/doc/Makefile#L3309:22
jonathanmawtristan: yep. I was wondering whether we wanted documentation building to be accessible via setup.py09:23
tristanjonathanmaw, I wouldnt waste any breath on that09:26
jonathanmawok, that makes things simpler for me :)09:28
tristanjonathanmaw, generally, I'm hoping we can one day migrate away from setuptools entirely and maybe use meson09:30
tristanwhich is another reason to not waste breath09:30
*** valentind has quit IRC09:30
tristanIt turns out, it's just incredibly hard to fit the kind of thing we want to do (i.e. pretty standard stuff for pretty much any build system) into the particularly shaped and opinionated hole that is setuptools09:31
tristanNice, I seem to have reproduced a nasty bug09:36
* tristan has several 'Track' tasks which have been hanging for almost 50 minutes now09:37
tristanWithout failing, without retrying, without ever timing out, just hang indefinitely09:37
tristanGreat thing for autobuilders too09:37
tristanMakes sure that one task holds the build lock indefinitely until you log in and kill all the waiting cron jobs locking on the lock file09:37
tristanIf of course, you still have enough free pid's to spawn 'kill'09:38
ssam2tristan, I guess we just https://github.com/mesonbuild/meson/issues/2377 to be fixed :-)09:50
ssam2*just need09:50
tristanssam2, ummm, yeah and then a bunch of work needs to be done on our side after :)09:58
ssam2fun work though. it's always nice removing crappy build systems :-)09:58
tristanssam2, hey by the way; where *is* the cross-bootstrap stuff, is there a buildstream project I can point to somewhere ?09:58
ssam2best thing to link to is probably http://wiki.baserock.org/guides/how-to-cross-bootstrap/09:59
ssam2it uses baserock definitions repo... but depends on some changes that are outstanding in GitLab still :-(09:59
tristanSo basically, there's no way somebody can just "look at it"09:59
tristan?09:59
tristanThat really sucks yeah, to me it's like just ... seems lost09:59
ssam2i mean, if we ever get Baserock CI working again, the branches can be merged10:00
tristanMyeah10:00
ssam2and then you look at the baserock definitions repo, it's like a first class citizen there10:00
tristanStill10:00
ssam2were you expecting me to start and maintain a whole separate project for that ?10:00
tristanI was expecting that a sample might exist *somewhere*10:00
tristanNot necessarily maintained10:01
tristanssam2, adds68 is doing the real work of superseding that, and I wonder if he really knows how to extract that work from baserock in some contorted way10:01
tlatertristan: On the ^C regression, I don't think we call subprocess.poll() on any of the processes we call os.waitpid() on10:01
ssam2tristan, he'll need some pointers i'm sure, but i don't see that as an issue10:02
tristanssam2, although I think still there is no hurry has he has to do the flatpak json bits for org.freedesktop.Sdk first...10:02
tristanssam2, but then, there is also valentind who is trying to figure out bootstrapping a runtime on his own, and popping up and asking me questions on IRC over the weekend10:02
ssam2ah ok10:03
tristanhe stepped out a while ago but I told him to come around on monday so I could point to the place where the real up-to-date bootstrap of a runtime exists10:03
ssam2ah right. well it is a shame that baserock work all got cancelled before we finished it all, it would have been good to just point to master10:04
tristanjinja2 is not bailing out on undefined variables, just evaluating to false10:04
* tristan is trying to fix jinja2 handling right now10:04
tristanfwiw, the original test case with all that undefined variable exception handling, also does not properly fail for 'plover == pony'10:05
ssam2oh :-(10:05
ssam2i just ripped that code from Ansible, I figured it'd have been tested well enough there10:05
tristanssam2, it might work only for the 'is defined' stuff10:06
ssam2yeah, i thought that all it did was catch undefined variable errors, if it found 'is defined' in the expression10:06
ssam2which suggests that there normally *should* be undefined variable errors10:06
tristantlater, I cant say exactly why; run `bst build --track apps.bst` a bunch of times for https://gnome7.codethink.co.uk/gnome-modulesets.git10:07
tristantlater, you will see either A.) Status area bits going up in the rolling log (cause of the offset of the subprocess messages)10:07
tristanOr B.) Enough of those subprocess messages to also show up passed the buggy status area10:08
ssam2but.. on testing, seems that it does just evaluate to false !10:08
* tristan thinks there should be a way to detect this and is searching for it10:08
tristanin jinja2 docs currently10:08
tristanBut - the *real* problem is rust :)10:09
tristanAfter all the noise I have to sort though, that's the bottom line10:09
tristanbeat up rust until it behaves properly10:09
ssam2building components written in rust, you mean ?10:10
tristanyeah10:10
tristanhttps://gitlab.com/BuildStream/buildstream/issues/12310:10
ssam2that's gonna be a pain, yeah...10:10
ssam2at least we're not the first10:10
tristanI have a temporary workaround in mind10:11
tristanI've started out by installing cargo-vendor on gnome710:11
tlatertristan: That issue may be related to what I raised a week or so ago - I think it's the tracking that's causing that issue.10:11
tristanAnd will cook up a little task which "vendors" the dependencies into a directory, committing it to ostree10:12
tristanssam2, and then have rust-depending elements in GNOME depend on an element that imports *that*, setting something like CARGO_HOME to ensure it doesnt go all whacky and looking up things on the internet10:12
tristanBut the real solution is gonna be much more painful, yes10:13
tristantlater, soooo.... can you please take care of it ?10:13
tlatertristan: I'll try, though I might need a bit of help with it. I couldn't figure it out when I raised it originally.10:14
tristanthis certainly was not happening before, it looks exactly like os.waitpid() being called on a reaped process10:14
tristantlater, if it "happened" then you filed a bug and have some log about it10:14
tlatertristan: This one https://gitlab.com/BuildStream/buildstream/issues/10710:15
* tristan closes duplicate10:18
ssam2tristan, seems like `jinja2.Environment(undefined=jinja2.StrictUndefined)` to construct the environment is what we want10:19
tristanssam2, AWESOME10:21
tristanThanks a lot10:21
tristanssam2, I have a test case already, and now with that; it passes \o/10:21
ssam2:-)10:21
tristanwhoa, freaky10:23
tristantlater, weird: https://gitlab.com/BuildStream/buildstream/issues/107#note_4424926310:28
tristanSo, those tracking tasks which took an hour, did not block the scheduler from returning10:29
tristanthey were just artificially there in the status area, ticking away and waiting for the child tasks to return (when they probably did a long time ago, probably around the same time those messages reach the console)10:29
tlatertristan: That's interesting, they did cause the scheduler to block for me iirc.10:31
tristanNote, those tracks were unsuccessful10:37
tlaterYes, this seems to only happen on unsuccessful tracks10:39
tristantlater, I *very highly* doubt that statement10:39
tristanI have been building a ton this weekend, usually after a fresh conversion and new track10:40
tristanA.) It *always* prints these messages10:40
tristanB.) This seems to be the first time that anything failed to be tracked, maybe my network dropped off for a moment or smth I dont know10:40
tlatertristan: Somehow the job_done function in queue.py seems to be called twice10:58
tlatertristan: That causes it to raise an exception (because the job has already been removed from the active_jobs list) and not to remove the job from the frontend11:00
tlaterI'm still not sure *why* all the job exit tasks seem to be run twice though11:00
tristansounds like you're hot on the trail11:00
*** ChanServ sets mode: +o ironfoot11:14
tlatertristan: If you set PYTHONASYNCIODEBUG=1 you can get more detailed messages :)11:22
tlatertristan: Can you confirm that this change is what's causing it? https://gitlab.com/BuildStream/buildstream/commit/84c871b8a60f7826392c35a36735ac52df29ef7411:42
* tlater has no idea why it would, perhaps attaching event loops doesn't work quite as you'd expect it to?11:43
jonathanmawtristan: Do you think the bst-external documentation should be on a separate site (and linked to), or should I try to merge the documentation into buildstream's documentation when generating it?12:12
tristantlater, YES12:22
tristantlater, I believe so, only tried once, reverted it, stopped happening, unrevert... happens again12:23
tlater\o/ Now just to figure out the *why* :)12:26
*** tristan has quit IRC12:29
*** cs_shadow_ has joined #buildstream12:32
*** tlater has quit IRC13:27
*** tlater has joined #buildstream13:30
tlaterHm, I'm frankly not sure what happens here: https://gitlab.com/BuildStream/buildstream/blob/master/buildstream/_scheduler/job.py#L4613:48
tlaterThe commit I linked earlier is definitely causing the process issues, but I can't  really debug it because I don't understand how the jobs are supposed to interact with it.13:51
tlaterIt slightly weirds me out that the watcher isn't called as a contextmanager, since the documentation says it's supposed to, but then we don't use the normal Process class.13:53
* tlater is a little lost here13:53
*** tristan has joined #buildstream15:32
tristanssam2, nice comment on pip issue, I was thinking the same thing :)15:37
tristanin fact, once you generate .bst files from a package, it then becomes easy to `bst track` until upstream python module grows new deps15:38
ssam2yeah15:38
ssam2finding the upstream repo can be a challenge, the metadata doesn't always specify that15:39
* tristan was thinking of raising something on the ML today as this is going to be a bit of a "hot topic", for pip, npm, cargo, other similar "distro-ish" indexers15:39
ssam2yeah15:39
ssam2all of them create headaches15:39
tristanyes15:39
ssam2some rubygem developers consider rubygems.org to be the official source code location for their project, and do weird things in their git repo (or hide it completely)15:40
ssam2although buildstream might be able to just consume the gem source tarballs, so that might not be as bad as it was in Baserock where we were intent on getting actual git repos15:40
ssam2and npm... wat15:40
tristanAnd I feel its really not ideal to be using them in our context - alot of the time (I think this is untrue for rust), you only publish to an indexer like PyPI when you release15:40
tristanSo, what happens when you have a full custom linux firmware build, and you want to patch one of these modules you are fetching from some third party indexer/distro-ish thing ?15:41
ssam2yeah15:41
tristananother good argument to at least not recommend this practice15:41
ssam2to be fair, finding the repo is often less work than doing the patch, so it's not such a bad case15:41
tristanmmmyeah15:42
tristanbut think about rpms for an example15:42
ssam2source rpms or binary rpms ?15:42
tristanpeople use patches against release tarballs, they could find the upstream, but they dont15:43
ssam2right, yeah15:43
tristancause it's just not obvious, it's an extra step in their workflow15:43
ssam2i agree with you in principle, but having tackled the issue of finding upstreams for a long time as part of the baserock-import project, i got the impression that it's a tedious and not very fruitful battle trying to connect every python or ruby projects with a GIt repo15:44
ssam2npm is actually great here because the project *is* the repo15:44
tristancargo also I *think*15:44
ssam2right, I think that didn't even exist back then :-)15:44
tristanSeems it will be easier to write such a script for cargo/npm15:44
tristanyeah, rust is eating my brain :-/15:45
tristanbut I think a sane solution will be possible15:45
ssam2i think i've asked this before but -- does the "event plugins" feature need discussing on the ML? or should I just propose it in a bug report ?15:49
*** adds68 has quit IRC16:02
*** adds68 has joined #buildstream16:08
*** jude has quit IRC16:14
tristanssam2, we can talk about it on the ML I think it would be good16:32
tristanssam2, to be honest, it's because I have no idea what it's going to look like16:32
tristanI feel like some kind of 'hooks' API might be nice16:32
tristani.e. run a script, doesnt even have to be python16:32
tristanexec this thing when such and such happens ?16:33
ssam2right; that might be nicer than adding a new class of plugins16:33
tristanI dont know... lets see what you design16:33
ssam2or it could expose a TCP socket or something and use web hooks16:33
tristan:)16:33
ssam2i say "use web hooks" without really knowing what that means :-)16:33
tristanmmyyeaaah but buildstream is not a web app, it's a shell tool16:33
ssam2yeah, just something in the project.conf to say 'exec this when that happens' might be better16:34
tristanit can easily invoke something that posts something16:34
ssam2i was just thinking about ... exposing a message bus that people can monitor16:34
tristannot sure if it's project related16:34
tristanrather invocation context related no ?16:34
ssam2vs. hooking up commands to internal hooks16:34
ssam2oh yeah, project isn't really the place16:35
tristanI mean, just because running builds on this server triggers things, does it mean that users running builds also do that ?16:35
ssam2you're right, user config makes more sense16:35
tristananyway... take your time :)16:35
tristandont rush it:)16:35
tlaterIs the new pre- and post- command support documented yet?16:50
tlaterAh, nvm, it's in the buildelement documentation.16:51
tlaterIt looks like it isn't included in the sphinx documentation though.16:53
tlaterIs that intentional?16:53
tristantlater, pre-/post- is not yet removed, unfortunately I did not pre-remove it from the docs, I should have16:54
tristanthey are *all* going away though, any pre-/post- command is not 1.0 material and will be removed16:54
* tristan not sure, did I remove it ? I think my branch which removes the feature still contains some docs removals16:55
tlatertristan: Did the (<) notation not makeit in the end?16:56
tristantlater, that is there and documented16:56
tristanit replaces pre-/post- commands16:56
tlatertristan: If that's supposed to be on the documentation website under buildelement, it's not showing up atm16:57
tristanpre-/post- commands are not yet removed, considering that some things might need to be migrated to use the proper method first16:57
tlaterBut I guess the branch has not been merged yet?16:57
tristantlater, look at my MR16:57
tristanI'm not merging it, cause waiting on baserock16:57
tristanjhbuild migrations have changed to no longer use pre-/post-16:58
tlaterAh, sorry, I didn't see the link on the issue16:58
*** ssam2 has quit IRC16:58
*** xjuan has joined #buildstream17:10
*** tiagogomes has quit IRC17:12
*** jonathanmaw has quit IRC17:26
*** tlater has quit IRC17:28
*** valentind has joined #buildstream18:57
*** jude has joined #buildstream19:23
*** jude has quit IRC20:08
*** tristan has quit IRC21:16
*** xjuan has quit IRC21:58
*** valentind has quit IRC22:08
*** julien has joined #buildstream23:10
*** julien has quit IRC23:55

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