IRC logs for #buildstream for Thursday, 2018-06-28

*** Prince781 has joined #buildstream00:07
*** Prince781 has quit IRC00:33
*** Prince781 has joined #buildstream00:33
*** tristan has joined #buildstream01:00
*** Prince781 has quit IRC01:53
tristanjjardon, https://github.com/go-debos/fakemachine looks pretty neat04:25
*** tristan has quit IRC07:03
*** coldtom has joined #buildstream07:52
*** Phil has joined #buildstream08:13
*** jonathanmaw has joined #buildstream08:43
gitlab-br-botbuildstream: merge request (phil/437-workspaces-tutorial->master: Phil/437 workspaces tutorial) #519 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/51908:55
gitlab-br-botbuildstream: issue #446 ("Stack trace shown if you accidentially `bst COMMAND <directory>`") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/44609:00
jennisWhat do we think about adding a "newcomers" label to the project? I've found some bugs that are suitable for a newcomer, yet I've noticed we don't have this label...?09:03
paulsherwood+109:04
Philjennis, that seems very sensible09:06
jennisOk i'll do it for this issue, I guess toscalix can always revert the change if he strongly disagree's when he comes online09:07
*** obi_wan has joined #buildstream09:15
*** dominic has joined #buildstream09:16
*** jonathanmaw has quit IRC09:30
*** jonathanmaw has joined #buildstream09:30
gitlab-br-botbuildstream: issue #447 ("Strack trace shown when trying to open a workspace for an unbuilt element") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/44709:39
juergbijmac: you mentioned issues with buildbox dependencies. what version incompatibilities have you discovered?09:43
jmacLots of them09:44
jmacFirstly, php_namespace isn't supported by the version of grpc I have09:44
juergbinothing with PHP should be relevant to buildbox09:45
juergbiah, proto declaration09:45
jmacNo, but it stops it building09:45
jmacYour code also asks for grpc/channel.h which isn't in my version of the grpc libraries09:45
juergbiI'm testing with the latest stable releases of the dependencies, afaict09:45
juergbigrpc 1.12.009:45
juergbifuse 3.2.309:45
jmacI tried patching in the latest upstream but then ran into further problems09:45
jmacI will dump a list of them on a gitlab issue if that helps09:46
juergbiok, ta09:47
gitlab-br-botbuildstream: issue #448 ("Autocompletion defaults to the project's root before the element path") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/44810:02
*** obi_wan has quit IRC10:03
gitlab-br-botbuildstream: merge request (gokcen/source_transform->master: WIP: Source transform plugin) #505 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/50511:05
gitlab-br-botbuildstream: merge request (valentindavid/331_include->master: WIP: Add support for include in project.conf) #471 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/47111:06
gitlab-br-botbuildstream: issue #449 ("'bst workspace open -f' does not behave as documented") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/44911:19
gitlab-br-botbuildstream: merge request (valentindavid/331_include->master: WIP: Add support for include in project.conf) #471 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/47111:58
*** jonathanmaw has quit IRC13:00
*** jonathanmaw has joined #buildstream13:16
gitlab-br-botbuildstream: merge request (valentindavid/331_include->master: WIP: Add support for include in project.conf) #471 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/47113:25
tiagoIs there any known issue with the unit tests on master? The test test_missing_project_conf is failing to me13:27
gitlab-br-botbuildstream: merge request (valentindavid/331_include->master: WIP: Add support for include in project.conf) #471 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/47113:36
gitlab-br-botbuildstream: merge request (franred/show-nice-error-when-try-to-load-a-directory->master: Add error message when running commands on directories) #520 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/52014:26
persiatiago: There shouldn't be: generally unit tests are expected to be clean on merge.  Failure in master is usually a regression.14:43
tlatertiago: That said, there is a known issue that causes nondeterministic test failures. Could you link me to the pipeline? If you'd like to debug yourself, restarting it normally resolves that particular issue.14:48
tlaterI don't think that particular test is prone to the failure, but we have no idea what causes it. It's usually something related to unmounting a sandboxed directory.14:49
tiagoI was thinking more in different versions of the dependencies14:50
tlatertiago: You mean you might be running versions of software different from those in our CI?14:51
tiagoyup14:51
tlaterIf there are regressions in versions we don't test against, then I don't think we're currently aware of any - unless you can find any in the issue list :)14:52
tlatertiago: You're not running into issues with versioneer, are you?14:53
tiagotlater I don't think so. This is what I get https://paste.fedoraproject.org/paste/dPzq5cdTeN-1SIbb6jFB7A14:56
tlatertiago: I've never seen that before. If you can confirm it in a fresh buildstream installation, you've found a new bug :)14:57
tiagoWell it is passing on the CI…14:58
tlaterThere *is* a chance it's caused by debris in temporary directories14:59
tlaterIf you want to test it manually, just run `bst workspace list` in an empty directory14:59
tlaterIt should fail and prompt you for a project name14:59
*** jcampbell has quit IRC15:00
tlater`bst workspace list | cat` in an empty directory should also fail15:00
*** tristan has joined #buildstream15:00
tlaterIf both those things happen, you have debris lying around somehow.15:00
*** jcampbell has joined #buildstream15:02
*** Prince781 has joined #buildstream15:09
tiagoIt fails and prompts15:14
tlatertiago: That's what the test checks. It's definitely a curious failure15:18
tlaterBut I don't think it occurs upstream then15:19
gitlab-br-botbuildstream: merge request (tiagogomes/issue-289->master: Tiagogomes/issue 289) #521 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/52115:21
tristantiago, I've never seen that fail, very strange - do you have local modifications ?15:33
tiagoNo :(15:38
tristantiago, that test asserts that we get the expected error when we try to startup and there is no project.conf15:53
tristanaaaaaahhh15:53
tristanthat will be cs_shadow's patch15:54
tristantiago, https://gitlab.com/BuildStream/buildstream/merge_requests/428 is what is causing this15:55
tristantiago, the workaround for now, is to move the `buildstream` checkout directory to a directory which does not have a `project.conf` in one of it's parent directories15:56
tiagoaah, that explains it15:56
cs_shadowit's a feature! ;)15:57
cs_shadowthat maybe we need to communicate to users more clearly15:57
tlaterAh!15:58
tlatercs_shadow: Users will probably rarely run the test suite, but perhaps we can avoid parsing parent's buildstream.conf in the test suite15:59
tlaterThis will be an issue when we start developing buildstream in buildstream.15:59
cs_shadowi meant that as a general comment as in it may not be immediately obvious to users that bst does that16:00
cs_shadowbut your point about testsuite is also valid16:01
gitlab-br-botbuildstream: issue #450 ("Tests are non deterministic after supporting running commands in project subdirs") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/45016:04
* tristan files #450 to track this16:04
tristantlater, better to remove the test than to disable the functionality in a special case scenario; which is for the purpose of the test itself16:06
tlaterCan't we ensure that we stay inside a the test directory somehow?16:08
tlaterWithout changing the actual functionality, of course16:08
tlaterMaybe screw with what python reports for parent directories, exclusively for that test?16:08
tristanWith a chroot / mount trick in the runner ?16:08
cs_shadowone thing that might help is that if we say that `-C` option takes precedence over this search16:09
tristanwouldn't solve running tests for users though16:09
tristancs_shadow, that is an idea16:09
cs_shadowso, we don't do this lookup if -C option was provided and we can run our tests with that option16:09
tlaterYes, that's probably good :)16:09
tlatertristan: I was moreso thinking about mocking out some python call, but this seems like a better solution16:10
cs_shadowmy other idea (which i don't really like much) is to look for a specially named file and stop the search if we see that file. But I don't think that is going to be of much use outside the tests16:11
tristanthe UX should take precedent over the testability though, so if we think "-C means act like BuildStream started here" is better than "-C means the project directory explicitly" then we should choose that16:13
tristanright now it's kind of on the verge that there are starting to be differences, so we can make that choice16:13
tristan-C is also used in `bst init` for instance16:13
tristan(to *create* the project.conf, also a "project directory")16:14
*** bethw has joined #buildstream16:15
cs_shadowThat is an interesting point, that will also matter if we want to allow running commands from workspace directories. Keeping that in mind, I personally favor the 2nd option, i.e. `-C` means "here's the project directory"16:15
tlaterHow does git behave in this case?16:15
tlaterSince this is modeled after git, and most people will probably be familiar with that, perhaps we should mimick them fully?16:15
tristanI was thinking an argument for "-C means a specific project directory" was that it was slightly more explicit16:16
tristanlike, it ensures that scripted usage of BuildStream will never accidentally stray into a parent directory in the case that you screwed up and your project.conf is missing16:16
cs_shadowFWIW git will work the way `bst -C` works now, i.e. even when you provide -C, it will still lookup .git in parent directories16:16
tristanYeah, Sander mentioned that's what git does16:17
tristanbut then, it's not what make does16:17
cs_shadowthat said, i do think there is a need for an option (maybe its `-C`, maybe something else) where we don't try to "guess" anything16:17
tristanI see16:18
tristanHmmm16:18
tristancs_shadow, it's desirable to avoid, though16:18
tristani.e. adding an option is huge compared to the extra level of control the user gets (paying a high price in burden of knowledge)16:19
cs_shadowthat's true and adding another option will also likely be a source of confusion as we'll have two similar options. That's why I was trying to define `-C` as that option16:21
tristanI think the argument for "-C means BuildStream was invoked here" gets us the ability to do `bst -C <workspace_dir> build`, when we land that thing which lets you run bst commands from a workspace16:21
tristanbut, that feature is... tricky16:23
* paulsherwood wonders if he can consider deprecating ybd yet...16:23
paulsherwoodcan buildstream...16:24
paulsherwood- build bootable systems?16:24
paulsherwood- be run in a large ci with reliably caching across many builds/pipelines?16:24
tristanpaulsherwood, I think to do that you need to move the projects which you think are important off of YBD first16:25
paulsherwoodpardon?16:25
tristanI mean, you could deprecate it with active users16:25
paulsherwoodi'm involved in a production project, as you know. i can't offer to move to buildstream until (at least) the above questiosn are yes16:26
tristanbut a pragmatic approach to deprecation, can be "Lets move project(s) over to use BuildStream, am I happy ? -> deprecate"16:26
* paulsherwood notices tristan has not answered the questions16:27
tristanthe answer to your first point is yes, we can build bootable intel images and have a scriptable interface for it (so should be adaptable for other machines)16:27
tristan...16:27
paulsherwood(not arm images?)16:28
tristanthe answer to your second is that the current climate is going to be rocky16:28
paulsherwoodplease admit that you should have used kbas :-)16:28
tristanpaulsherwood, the thing is it's mostly a script which creates the image but is not all fancy to do every different kind of image16:28
tristanfor arm, it's a matter of creating the filesys but the kernel bootloader is different etc16:29
*** coldtom has quit IRC16:29
tristanso yeah I mean, you can do it but there is no stock feature which will say "I'll do this complicated thing based on you're having selected 'arm'"16:29
paulsherwoodright but that's already in (say) the applicable baserock definitions... can't bst handle the same processes?16:29
tiagoI think noisecell is planning to work on deploying to arm16:30
paulsherwoodi thought he was blocked, but may be wrong16:30
tiagoWhat's left to do on https://gitlab.com/BuildStream/buildstream/issues/287? I just tried adding those special variables to project config and elements configuration and they are already not allowed16:30
noisecellthere is no arm64 deployment pluging, nor ostree base for arm64. the second is tangential to buildstream the first, depends if Buildstream cares about deploying embedded systems or images16:31
noisecellone other point related to deployment that I can discuss is how buildstream is thinking to change final images, as we were doing before with write-extensions and configure-extensions16:32
*** dominic has quit IRC16:33
tristanpaulsherwood, it doesnt work the same as with definitions no, those require super user permissions to mount loopbacks etc, and we don't have this concept of "deployment" as a semi-deterministic step. Instead, to do arm, one can look at the intel script: http://buildstream.gitlab.io/bst-external/elements/x86image.html#module-elements.x86image,16:33
tristanpaulsherwood, and can concoct something similar for arm16:33
noisecellI have seen the "script" element which could help, but still unsure of how to use it16:33
paulsherwoodbut no caching at scale any time soon? can you support multiple caches and use kbas (seriously)?16:34
paulsherwoods/you/we/16:34
tristannoisecell, with BuildStream, you can only get output, you cannot add a deployment element which for instance, has super user privs, or access to a specific device, or something outside of the sandbox16:34
tristanI didnt say no caching at scale any time soon... but am talking about two things at once16:35
paulsherwood17:28 < tristan> the answer to your second is that the current climate is going to be rocky16:35
tristanFrom what I've seen, *current* OSTree solution is limited to about 4 concurrent full builds, all of which do up to 4 concurrent pulls/pushes each16:36
tristanwhen using a 4 core machine16:36
paulsherwoodwhich is pretty awful16:36
tristanRight16:36
paulsherwoodand *i told you so*16:36
paulsherwoodsorry16:36
* paulsherwood has had alcohol16:37
tristanWell, I'm not defending that; it's still a better approach, the implementation is not good, though16:37
tristanyes, presently pulls are slow, pushes are pretty good as they are done in a single stream, and some benchmarks are saying that flatpak does the pulls faster16:37
tristanso we may be able to optimize16:37
tristannot sure how it's possible because it's still just ostree16:38
* paulsherwood fears that if he spent two days implementing the kbas alternative for bst, tristan would reject if for purist reasons, hence won't bother16:38
tristanBut... the point is juergbi is bringing the CAS server very soon16:38
tristanwhich is why I would say the current climate is in a state of flux regarding what the performance will be16:38
* paulsherwood predicts it will turn out that there are other issues around the CAS implementation... so this will slip. and until the bst cache story is solid, there's no point in starting down the road16:39
tristanpaulsherwood, there was no reason to suspect that a deduplicated file store was going to be unbearably unperformant (I'm not sure it's that unbearable today, though, and havent seen comparisons with kbas in terms of performance)16:40
paulsherwoodand while i understand the 'no special privileges' reasoning, bst still needs a deployment story16:40
tristanpaulsherwood, and changing something like this costs a lot, so you don't do it whimsically; now we're trying CAS which fits into the whole distributed build story16:40
paulsherwoodtristan: i think you just haven't looked :)16:40
tristanpaulsherwood, at numbers ?16:41
* paulsherwood understands the costs quite well16:41
paulsherwoodkbas is just a cherrypi server... it scales way beyond 4 up and downloads16:42
tristanWell, there is distributed building, which is coming... that will cost LOC for CAS... this is reason to make sure we shed any OSTree/tar based code which serves a similar purpose16:42
paulsherwoodhmmm16:43
paulsherwoodwhile i'm in favour of CAS, part of me believes bst already has way too many dependencies16:43
tristanbtw: it's up to 4*4 with the quad core if I understood jjardon16:43
tristanpaulsherwood, right but we will shed the OSTree dep for CAS (rather, the OSTree stuff will become specific to downloading from ostree repos)16:44
tristanAnd technically, CAS will be *in BuildStream*16:44
paulsherwoodtristan: baserock's kbas is an arm server. the production project supports 500 engineers with a single kbas in aws and i think it's not as powerful as the machine gnome is using16:45
* tristan thinks we gain this google protocol python dep16:45
jmacYes we do16:45
* paulsherwood will have to wait and see. and still thinks bst should be able to use a kbas16:45
* paulsherwood goes back to nursing his beer16:46
tristannoisecell, script element is a little bit tricky to setup but straight forward to use once you have16:48
tristannoisecell, it lets you: A.) Stage the tools you want to use at "/" ... B.) Stage the dependencies which you want to manipulate at "location of your choosing"... C.) Run commands in the runtime to manipulate what you've staged16:49
tristannoisecell, usually, you will use "compose" first so that you create a single composed artifact with all the integration commands run16:49
tristanthen stage that in the %{build-root}16:49
tristanand stage the tools you need to create an image in /16:50
tristanthere is an example of this but it's way out of date...16:50
tristanit also creates an initrd separately with a compose element and then pops that into a /boot partition16:50
* Phil wonder's what kbas is. Google provides lots of results about "key bio diversity areas"...16:51
Philwonders16:51
jjardontristan: I'd say ~20 jobs and it doesn't seem to be CPU bound (in a 4 core machine you never get more that 50% CPU use)16:52
jjardonPhil: https://gitlab.com/baserock/ybd/tree/master/kbas16:52
tristanI thought this was it: https://gitlab.com/BuildStream/buildstream-tests/tree/build-gnome/elements/gnome16:52
gitlab-br-botbuildstream: merge request (franred/show-nice-error-when-try-to-load-a-directory->master: Add error message when running commands on directories) #520 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/52016:53
Philthanks jjardon :)16:53
tristannoisecell, ^^^ but it looks like that was converted to use the convenience x86image element instead of doing it manually16:53
jjardonPhil: basically is the cache server ybd use to store artifacts16:53
*** jonathanmaw has quit IRC16:55
*** Phil has quit IRC16:59
finnjuergbi, I have the artifact cas server set up, I'm able to push keys from buildstream to buildgrid but I'm having trouble downloading artifacts17:08
finnI'm trying to query the cas server using buildstream.proto17:11
finnI always get "Not Found"17:12
finnyou can see my attempt here: https://gitlab.com/BuildGrid/buildgrid/blob/finn/fuse/app/commands/cmd_bot.py#L7317:15
finnExpecting a hash from here:17:17
finnhttps://gitlab.com/BuildStream/buildstream/blob/jmac/source_pushing_experiments/buildstream/sandbox/_sandboxbwrap.py#L9817:17
finnDoes this look sensible to you?17:17
juergbifinn: the BuildStream ArtifactCache interface is only for full artifacts. for lower level CAS digests, you need to use the lower level CAS interface17:27
juergbii.e., ArtifactCache interface maps from BuildStream cache keys to CAS directory digests17:28
finnwhere can I find this?17:29
juergbifinn: the protocol is described in the Remote Execution API design document17:33
juergbiyou can also read the proto files and/or the BuildStream implementation17:33
jennisAre you pubbing?17:40
jenniswhoops haha17:40
gitlab-br-botbuildstream: merge request (franred/show-nice-error-when-try-to-load-a-directory->master: Add error message when running commands on directories) #520 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/52017:41
*** tristan has quit IRC17:43
gitlab-br-botbuildstream: merge request (jennis/output_useful_error_when_trying_to_load_directory->master: Jennis/output useful error when trying to load directory) #522 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/52217:46
gitlab-br-botbuildstream: merge request (jennis/output_useful_error_when_trying_to_load_directory->master: Jennis/output useful error when trying to load directory) #522 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/52217:47
gitlab-br-botbuildstream: merge request (jennis/output_useful_error_when_trying_to_load_directory->master: Output a useful error message when trying to load a directory) #522 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/52217:47
gitlab-br-botbuildstream: merge request (franred/show-nice-error-when-try-to-load-a-directory->master: Add error message when running commands on directories) #520 changed state ("closed"): https://gitlab.com/BuildStream/buildstream/merge_requests/52017:50
*** bethw has quit IRC18:08
*** Prince781 has quit IRC21:13

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