IRC logs for #buildstream for Friday, 2017-05-26

*** tristan has joined #buildstream03:18
*** ChanServ sets mode: +o tristan04:34
*** jonathanmaw has joined #buildstream08:32
tristanSo juergbi... umm, when you say the python ostree push only works with archive-z2 repos, do you mean local ones or remotes ?09:49
juergbitristan: looks like both, unfortunately09:50
juergbifor remote ones it's definitely the case, i will recheck for local ones09:50
juergbiit failed here with local bare-user and remote archive-z2, though09:50
tristanalright, well the shell one is gonna be fine I suppose09:50
juergbiyes, that appears to work fine and is very simple (if dependency of sshfs is ok)09:51
juergbihowever, it might be a bit slow09:51
juergbimy plan is to get it all working with the shell script for now and worry about optimizations later09:51
tristanI doubt python will be significantly faster on I/O bound tasks than shell09:52
tristanjuergbi, anyway note that, if we're going to call out to the shell, we need to use this craziness: https://gitlab.com/BuildStream/buildstream/blob/master/buildstream/plugin.py#L37009:53
tristanBut if the artifact cache has an element in context, it can use element.call()09:53
juergbiah, for suspend handling and co.09:53
juergbiright, element is available, so should be able to do that09:54
tristanyeah, and also automatic redirection of stdout/stderr to the appropriate log files09:54
juergbi(for initial test i just used subprocess.check_call() )09:55
tristansure :)09:55
juergbihm, i added this to _ostree.py, though, which doesn't know about elements. have to think about the cleanest way here09:55
juergbibtw: did you already have a config key name in mind for the url to the remote artifact repo?09:56
juergbiusing remote-artifacturl for now. there might be a better choice09:56
tristanmyeah... well we *could* refactor the shell calling out code to an internal utility function and preserve the API09:56
tristanjuergbi, maybe 'artifact-share' ?09:57
tristanjuergbi, anyway I think I will pick up the pieces when you get on vacation and tidy it up then09:58
tristanAlso I have to think about adding some docs instructing users how to setup and host an artifact cache09:58
tristanAnd, I would very much like to use the gpg signing features if possible09:58
juergbiok. i hope to have push and pull working by the end of the day and will work on tidying up, tests, docs Monday and Tuesday. not sure how far i'll get09:59
tristan:)09:59
juergbiyes, that's still an open point09:59
tristanRight now we do use it for validating incomming data with the ostree source09:59
tristanbut letting the user sign with their own key is a bit... I dont know10:00
tristanI guess we trust the user's key on the remote side just by virtue of having their ssh public key10:00
tristanbut then how does that user make their public gpg key available for other users to validate downloaded artifacts with10:01
tristanehh10:01
tristanjuergbi, just dont think about it for now10:01
tristanSo, just for the benefit of the channel.... Automated GNOME moduleset conversions !!!!!!!!!!!!!!!10:03
tristangit clone https://gnome7.codethink.co.uk/gnome-modulesets.git10:04
tristancd gnome-modulesets10:04
tristanbst track meta-gnome-apps-tested.bst && bst build meta-gnome-apps-tested.bst10:04
tristanAnd presto... everything builds, *except* for gnome-multi-writer.bst10:05
tristanjjardon[m], ^^^^^^^^^^^10:05
tristan:)10:05
tristanThey are converted every 10 minutes10:05
tristanIf no changes, no new commits are made10:06
juergbi\o/10:08
tristanI'm pretty happy about that anyway10:09
tristanStill a ways to go, next I want to automatically generate a side branch (maybe at less frequent intervals) with the results of `bst track` committed10:09
* jjardon[m] opens bottle of celebration10:10
tristanSo I can point to an exact commit in https://gnome7.codethink.co.uk/gnome-modulesets.git and say "This will behave exactly like this"10:10
tristanThen, I have to start thinking about generating the whole thing with some extra data on the side which says "include these modules in a GNOME flatpak runtime"10:11
tristanAnd try running flatpaks on the generated runtime10:11
tristanmaybe cgit would be nice too10:14
tristanlooks like --fetchers 20 starts to give me problems from git.gnome.org (connection reset by peer)12:06
* tristan relaxes a bit on the fetches :)12:06
* paulsher1ood wonders what gnome7.codethink.co.uk is 12:08
persiaWhen someone has time, I'd like to argue against any sort of autocommit.  The thrust of the argument is "have you seen what that looks like in any of the git history visualisation tooling?".12:08
tristanSo I am using gnome7.codethink.co.uk for 2 things now (and added the track task to it too !)12:09
tristanpaulsher1ood, it's one of the arm machines we're not using right now...12:09
paulsher1oodah, ok12:10
tristanSo A.) I use it to run a nightly debian multistrap of debian testing on 4 arches12:10
tristanarm, aarch64, i386 and x86_6412:10
tristanx86_64 I have tested and works as a base to build GNOME on top of12:10
paulsher1oodooh, cool12:10
tristanThis multistrap automation ends up in an ostree repo12:10
tristanwhich we host on gnome712:10
tristanAnd is revisioned, any updates adds new refs to the branches12:11
tristanThe other thing I'm doing is a continuous conversion process of jhbuild modulesets, which I've got up and running today12:11
tristanThe idea is that we follow GNOME jhbuild modulesets with this migration, so that at any given time, someone can try a bst build of GNOME, based on a conversion of the modulesets12:12
tristanThat happens every 10 minutes, but does nothing to the repo if nothing has changed12:12
tristanFinally, (just now) I have updated it so that every day (at this time), it will run a full `bst track` on everything it imported12:13
tristanWhich basically means I can use this to demonstrate something I'm confident12:13
tristan"Hey, I built this <ref> of gnome-modules.git, that means it will also build for anyone else, exactly as it did for me"12:13
tristanWhich is something about repeatability that I want to use in my monday blog post12:14
tristanpersia, Point taken, However... This is not going to be a git history that anyone will use normally, it is strictly "owned" by the machine12:14
tristanpersia, however it allows the GNOME release team to decide on their own, when they want to do a switch, and start off from a clean conversion to create their own12:15
tristanSo fwiw, The converted modulesets end up in: https://gnome7.codethink.co.uk/gnome-modulesets.git/12:15
tristanThat can be cloned12:15
tristanThe master branch is the every 10 minutes following GNOME modulesets12:16
persiatristan: Regardless of "owner", as long as no user is expected to operate their git tooling in that git history (either directly or as a result of cloning), my concern is addressed.  Note that this includes not having this git history stored on any development machine, but only remote automation (including virtual "remote").12:16
tristanThe "tracked" branch is the nightly run which tracks all the refs of everything.12:16
tristanpersia, I cant control everything, but I can say that it's important to me that for the following months, the history stays in tact (i.e. I want to be able to say: This auto commit on May 26th, builds exactly the same way on August 3rd)12:18
tristanSo I dont want to mess with that and auto-squash history12:18
tristanhowever, nobody can every commit to this repo12:18
tristanthat is certain12:18
tristan*ever12:18
tristanAt some point, GNOME will have to decide to make a switch, and after then, they can modify the new repo that results however they like12:19
persiaIf no human can commit to the autocommit location, that's less bad, although humans might commit to clones, which can end up terrible, depending.  I suppose it won't be horrid if the folk deciding to consume the results clean up the history before making it available to others (as that decision is likely to involve human commits).12:20
tristanpersia, indeed, it should be an rm -rf .git + git init . I think12:24
tristanpersia, and you can rest assured that if and when this switch takes place, it will be done by the GNOME release team12:25
persiatristan: In that case, I shall also rest contented :)12:25
tristanof course some rando person can consume it in some way, but the official modulesets are controlled by the release team12:25
*** tristan has quit IRC12:33
jonathanmawhrm, I'm going to have to think about whether we run integration commands when staging elements - staging them to somewhere other than the sandbox root makes running the integration commands have unexpected results14:50
jonathanmawI wonder if I can put sandboxes inside sandboxes14:50
persia+1 to sandboxes within sandboxes being useful.15:01
persiaOne of the reliability issues with tooling like apt and yum is that the integration commands run in an uncontrolled environment, and therefore have difficult-to-predict effects.  That said, some of the integration activities depend on the state of the entire system, and so necessarily run in an environment with limited control (e.g. updating the loader cache).15:03
persiaThe idea to address this that caused me the most difficulty in finding outstanding issues consisted of four different bits of "integration" code: one that ran in a protected environment whenever the element was being integrated into a system, one that ran over a system whenever a specific element was being integrated (so controlled by system, not by element), one that ran over a system when that system was being prepared for instantiation, and one15:05
persia that ran on first boot of an instantiation ofa system.15:05
persiaThis set of constraints allows the developer the most flexibility in controlling what code must have reliable results, and what does not.  That said, it is painfully complex, and perhaps hard to document.15:06
*** jonathanmaw has quit IRC16:49
*** tristan has joined #buildstream20:43
* tristan pops in at 5:40am and notes that (while sufficiently inebriated)... I'm glad that jonathan arrived at that conclusion :) 20:47
tristanI avoided introducing the question of whether or not to run integration commands, and what it means when the staged elements are not at /, in our conversation the other day20:48
tristanbecause it was already enough to digest20:48

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