IRC logs for #buildstream for Tuesday, 2017-11-28

*** jonathanmaw has joined #buildstream09:06
*** valentind has joined #buildstream09:20
valentindtristan, I realize forgot to mention the issue in the commit message like you asked. I can fix that later today.09:25
*** adds68 has joined #buildstream09:32
*** bethw has joined #buildstream10:13
*** tristan has quit IRC10:15
gitlab-br-botpush on buildstream@juerg/recursive-pipelines (by Jürg Billeter): 15 commits (last: .gitlab-ci.yml: Use specific version of buildstream-fedora Docker image) https://gitlab.com/BuildStream/buildstream/commit/5c37208c5c5df1925a0bb280933772feb04cb67410:30
gitlab-br-botbuildstream: merge request (juerg/recursive-pipelines->master: WIP: Junctions and subprojects) #160 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/16010:30
*** tristan has joined #buildstream10:49
*** valentind has quit IRC10:59
gitlab-br-botbuildstream: merge request (fix-compose-delete-with-symlink-in-path->master: Remove non canonical path from manifest after integration commands in compose plugin.) #161 changed state ("merged"): https://gitlab.com/BuildStream/buildstream/merge_requests/16111:04
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 1 commit (last: Remove all deleted paths from manifest after integration commands in) https://gitlab.com/BuildStream/buildstream/commit/02cc8d03faf9201847e173d2d1474f8dd0fd3c3011:04
gitlab-br-botbuildstream: merge request (sam/compose-log-splits->master: WIP: Log details of artifact splitting when building 'compose' elements) #140 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/14011:07
*** ssam2 has joined #buildstream11:19
juergbita ssam211:21
gitlab-br-botpush on buildstream@tracking-changes (by Tristan Maat): 11 commits (last: _artifactcache.py: Fixed stack trace regression in pushing of artifacts.) https://gitlab.com/BuildStream/buildstream/commit/628e9a23f8b9d14f0216f85240b5ed148a08b11711:22
gitlab-br-botbuildstream: merge request (tracking-changes->master: Tracking changes) #119 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/11911:22
tlatertristan: Would you mind checking my new test case a bit more thoroughly once you get around to reviewing again? I'm not 100% sure it tests properly, since I don't think I entirely understand no-strict mode.11:30
gitlab-br-botpush on buildstream@juerg/recursive-pipelines (by Jürg Billeter): 15 commits (last: Remove all deleted paths from manifest after integration commands in) https://gitlab.com/BuildStream/buildstream/commit/02cc8d03faf9201847e173d2d1474f8dd0fd3c3011:50
gitlab-br-botbuildstream: merge request (juerg/recursive-pipelines->master: WIP: Junctions and subprojects) #160 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/16011:50
gitlab-br-botpush on buildstream@distcheck-testing (by Tristan Van Berkom): 1 commit (last: Testing distchecks) https://gitlab.com/BuildStream/buildstream/commit/923f093a804ff7264484013dc497fd347182ffc411:52
gitlab-br-botpush on buildstream@tracking-changes (by Tristan Maat): 2 commits (last: _pipeline.py: Merge the track queue into the scheduler run) https://gitlab.com/BuildStream/buildstream/commit/bf27bbabdeede96e118c1fa403898cd2cd284fb312:00
gitlab-br-botbuildstream: merge request (tracking-changes->master: Tracking changes) #119 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/11912:00
gitlab-br-botpush on buildstream@distcheck-testing (by Tristan Van Berkom): 1 commit (last: fixup) https://gitlab.com/BuildStream/buildstream/commit/03069b83522c5fe1365a16ce00f45c8a3f36098812:00
tristantlater, non-strict mode still requires that "the output of a full build be based on the exact versions of every element"12:03
gitlab-br-botpush on buildstream@sam/multiple-caches (by Sam Thursfield): 3 commits (last: Filter out 0 length URLs) https://gitlab.com/BuildStream/buildstream/commit/dde84624cf309ce4c9cfa79bf7ee487757bcd26312:03
gitlab-br-botbuildstream: merge request (sam/multiple-caches->master: WIP: multiple remote cache support) #166 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/16612:03
tristantlater, without requiring that elements be built against the exact version of their dependencies12:03
tristanso consider that for the full array of elements; you will always get all the correct versions, but you wont know that reverse dependencies have been rebuilt or not12:04
tristanSo your question is, how do we treat this with build & track in the same session12:04
tristantlater, I would argue that you *still* want to block reverse dependency builds of things which have not yet been tracked12:05
tristanI think that is the straight answer12:05
tristantlater, in *any* case, you cannot construct the cache keys, even in non-strict mode, until you can get the cache key of the dependencies12:05
tristanand you *must not* be able to know the cache key of an element which is going to be tracked, but has not yet been tracked12:06
tristantlater, does that answer it ?12:06
tlaterYup, ta :)12:06
gitlab-br-botpush on buildstream@distcheck-testing (by Tristan Van Berkom): 1 commit (last: Fixup) https://gitlab.com/BuildStream/buildstream/commit/b783112359d37719b71654760ae9d6409d53f65512:08
gitlab-br-botpush on buildstream@distcheck-testing (by Tristan Van Berkom): 1 commit (last: Fixup) https://gitlab.com/BuildStream/buildstream/commit/26fe1d7431464d7291c02d413732ccc10af0ad1e12:10
gitlab-br-botpush on buildstream@distcheck-testing (by Tristan Van Berkom): 1 commit (last: Fixup) https://gitlab.com/BuildStream/buildstream/commit/4f7292372b8d695416f42e349d6e8a20b066018212:30
juergbitristan: for subproject-specific artifact servers, do we care about this only for push or also for pull?12:38
juergbii.e., it looks like it would actually be pretty simple to just add pull urls from subprojects and then allow using all artifact servers for pulling elements from any project in the pipeline12:38
juergbithe only question would be how to handle priorities for urls coming from subprojects12:39
juergbior shall i keep pull urls separate for each subproject (as i originally planned), same as for push?12:39
jonathanmawhrm, I'm having trouble running builds for some reason https://pastebin.com/W11Y3xF912:45
jonathanmawwhen staging dependencies, it complains about "Artifact missing"12:45
juergbidangling items in the artifact cache?12:46
jonathanmawjuergbi: I'll try running with a blank cache and see if that works12:47
juergbiok. if you haven't manually manipulated the cache it shouldn't happen, though12:47
gitlab-br-botpush on buildstream@distcheck-testing (by Tristan Van Berkom): 1 commit (last: Fixup) https://gitlab.com/BuildStream/buildstream/commit/c219573296bf7907f92b0e6bc4c9b958f8914a2b12:50
jonathanmawI'm seeing "Artifact missing for $foo" when using an empty cache12:52
jonathanmawonce this build fails I'll see what refs are in the ostree cache12:52
tristanjuergbi, I think limiting the access on per project basis is the principal of least surprise12:53
tristanjuergbi, this will probably collide a bit with sam's work on multiple cache configurations12:53
ssam2what i've currently done is merge all the caches together, effectively12:54
tristanI guess there are a few approaches; but I think it should be explicit - if you want to build a subproject pushing into your depending project's artifact share; then we can add something for that12:54
ssam2so if any cache has a ref, it gets pulled from that cache. (with priority ordering taken into account)12:54
tristanssam2, right, but you've done that in a setting where only one project exists in a session12:54
ssam2yeah12:55
ssam2so adding per-project rules will make it a bit more complex12:55
tristanprojects declare their artifact caches12:55
tristanso those should be the one(s) used for each project respectively in a session12:55
tristanwe can however have the junction element which bridges with a depending project, have some configuration to force onto it's sub projects12:56
tristanI dont think that should block landing of the junction/multiple project work, but it's probably desirable to let the project override artifact servers of the projects it depends on12:56
*** bochecha has joined #buildstream13:54
*** xjuan has joined #buildstream14:16
*** mcatanzaro has joined #buildstream14:44
nexusWhat would be the best "simple project" to use for a "Your first project" tutorial/doc14:55
*** jude has quit IRC14:58
nexusalso, what base platform do we want to use in them?14:59
*** xjuan_ has joined #buildstream15:04
*** bochecha has quit IRC15:05
*** xjuan has quit IRC15:06
nexusIt seems like having "'" in the "name" field in "project.conf" causes an invalid refspec error15:09
jonathanmawmy build continued and failed, the only ref in the ostree was for baserock/gnu-toolchain-base15:11
jonathanmawi.e. the element that was pulled straight from the cache15:12
jonathanmawand it looks like my build failed because stage1-binutils was trying to fetch itself from cache while staging dependencies15:12
jonathanmawI'll make sure I'm using the latest version of buildstream15:12
jonathanmawwell, it seems to be working now I'm using the latest master, so I guess problems solved _o_15:35
*** jude has joined #buildstream15:45
gitlab-br-botpush on buildstream@distcheck-testing (by Tristan Van Berkom): 1 commit (last: Testing distchecks) https://gitlab.com/BuildStream/buildstream/commit/3215d9ef2f10ece0b9b85e898cf581779ebae65716:01
juergbissam2: i see the following issue with pytest on your branch:16:35
juergbi        self.urls = list(utils.deduplicate(16:36
juergbi>           project_extra_urls + project.artifact_urls + context.artifact_urls))16:36
juergbiE       TypeError: can only concatenate list (not "NoneType") to list16:36
juergbicontext.artifact_urls is None for some reason. have you already looked into this?16:36
ssam2perhaps not, let me run the full test suite16:37
juergbilooking at the code context.artifact_urls should be initialized as part of Context.load(). not sure how it can still be None16:38
ssam2probably it's being overridden by a test somewhere16:39
juergbiah, maybe a test is failing to call Context.load()16:41
juergbiwe could just initialize artifact_urls to [] instead of None16:42
ssam2true, not much point initializing it to a value that break subsequent code16:43
juergbiyes, all tests pass now, even with my branch that supports subproject-specific options16:44
juergbithat said, i haven't written any tests yet for push/pull with subprojects16:45
gitlab-br-botpush on buildstream@sam/multiple-caches (by Sam Thursfield): 1 commit (last: Initialize content.artifact_urls to []) https://gitlab.com/BuildStream/buildstream/commit/ab50eb38ffd67796118a474e2b5d741e35496ab116:45
gitlab-br-botbuildstream: merge request (sam/multiple-caches->master: WIP: multiple remote cache support) #166 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/16616:46
gitlab-br-botpush on buildstream@juerg/recursive-pipelines (by Jürg Billeter): 20 commits (last: Filter out 0 length URLs) https://gitlab.com/BuildStream/buildstream/commit/37fa828949f9e1e162fdca0e82d9c47e98e12fc317:09
gitlab-br-botbuildstream: merge request (juerg/recursive-pipelines->master: WIP: Junctions and subprojects) #160 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/16017:09
gitlab-br-botpush on buildstream@juerg/recursive-pipelines (by Jürg Billeter): 1 commit (last: _artifactcache: Use project-specific remotes for subprojects) https://gitlab.com/BuildStream/buildstream/commit/60d75b1aa18d3603f12d035237fe9e28198e650317:14
gitlab-br-botbuildstream: merge request (juerg/recursive-pipelines->master: WIP: Junctions and subprojects) #160 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/16017:14
gitlab-br-botpush on buildstream@tracking-changes (by Tristan Maat): 2 commits (last: _pipeline.py: Merge the track queue into the scheduler run) https://gitlab.com/BuildStream/buildstream/commit/2b337c4ae408b74cdaf2fb0653c395fca0e025ed17:15
gitlab-br-botbuildstream: merge request (tracking-changes->master: Tracking changes) #119 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/11917:15
*** mcatanzaro has quit IRC17:18
tristanironfoot, ok lets disable those push notifications... where can I modify something ?17:19
ironfoottristan: oh, no, I failed to do the promised update :(17:27
ironfoottristan: here is the configuration: https://gitlab.com/baserock/infrastructure/blob/master/baserock_webserver/gitlab-bot/config.js17:29
* tristan gets himself a clone17:30
ironfootclone myself too, and I'll fix the bot17:32
tristanironfoot, how do you mean fix it ?17:34
ironfootto enable push notifications only in master17:34
tristanI mean, I was about to just disable push notifications, but if you're going to allow us to have push notifications only for master (even if it's a piece of hard code for push notifications), then I'll just not :)17:34
tristanOk !17:34
tristanawesome17:34
ironfoottbh, i don't know when that's going to happen, but when it does, I'll poke you, in case you want to enable them again.17:35
ironfoot(i've been a bit busy lately)17:35
tristanwhat what what ?17:36
tristanironfoot, ok so... I was getting tired of the push notifications that are unrelated to master... and I was just going to disable them17:36
tristanbut then you said your gonna clone yourself and fix the bot17:37
tristannow you say you dont know when ?17:37
tristanjust... lemme know... what's the story :D17:37
ironfoothehe, do you have a clonning machine?17:37
ironfootno, I don't know when it's going to happen, sorry17:37
ironfootplease, remove the push notifications for now17:37
*** mcatanzaro has joined #buildstream17:38
tristanironfoot, ok... I was going to add some of the other buildstream side repos while I'm at it too17:38
tristanironfoot, do I have developer status on that repo, so I can push an MR branch for you ?17:38
nexusHi, I'm getting an error during my build "Command 'ldconfig' failed with exitcode 1"  "Sandbox directory: /root/.cache/buildstream/build/step7-q475f7j8"17:40
nexusanyone know what's causing this?17:40
tlater^ Working in bst-here17:40
nexus^17:40
tlaterYou'll probably have to modify the script to use --privileged17:41
nexuswhich script?17:41
tlaterI think we have an open issue for that; for some reason the permissions aren't enough currently17:41
tlaterbst-here17:41
nexushmm, 1 sec17:42
nexusthat seemed to work17:43
nexuswhy is that a thing?17:43
tlaterYeah, context: https://gitlab.com/BuildStream/buildstream/issues/15617:43
gitlab-br-botpush on buildstream@distcheck-testing (by Tristan Van Berkom): 1 commit (last: .gitlab-ci.yml: Use source distribution tarballs in all tests) https://gitlab.com/BuildStream/buildstream/commit/3cb272e5fbf47c8a269564c27ce798a874baac8417:43
tlaterThat issue should probably be marked as a 'bug', considering this makes bst-here unusable17:47
ironfoottristan: yes17:50
juergbitristan: regarding test coverage, besides pushreceive, a big part we're missing may be the source bundle functionality17:56
tristanironfoot, https://gitlab.com/baserock/infrastructure/merge_requests/2117:59
tristanjuergbi, indeed that part is also untested17:59
tristanwe should be able to test that in the regular test suite, actually17:59
tristan(i.e. as opposed to requiring third party downloads and qualifying as an "integration test")18:00
juergbimay be possible as that's not sandboxed18:00
tlatertristan: Regarding https://gitlab.com/BuildStream/buildstream/issues/156, do you think it would be sensible to make `--privileged` the default for now, until someone has time to look into the actual correct permissions? It seems bad to just leave a broken script lying around.18:02
tristantlater, yes18:02
juergbissam2: are you working (or planning to work) on pushreceive tests or shall i look into those?18:03
ssam2i was planning on doing it, but happy for you to take it on :-)18:03
ssam2i have to do tests for pulling from multiple caches, but seems better to rewrite frontend/pull.py for that18:03
tristanHmmm18:04
tristanI wonder if the backdoor we have in place for local paths to artifact shares is relevant18:05
tristanor if it's just a local helper for us18:05
juergbiyou mean whether we want to officially support this or not?18:05
ssam2i don't see a use for it outside tests, really18:05
*** jonathanmaw has quit IRC18:05
tristanon the one hand, yes ssam2 has a point; it seems orthogonal activities18:05
tristanon the other hand, if we can properly test push/pull, then we have no need anymore for that hack, and could remove it from the codebase18:06
tristanif we keep it, then it should be supported18:06
tristan"officially"18:06
tristanif we have proper tests for push/pull that dont need that local trick, then we should remove it18:06
ssam2it's not really at all intrusive to support file:// URLs, though18:06
tristanI agree18:06
ssam2we could remove the hack that allows that /path/foo instead of file://path/foo18:07
juergbiyes, not sure we gain a lot in maintainability by removing it18:07
juergbistarting with / is a valid url, though18:07
tristanWell, if we have both, both paths should be tested18:07
tristannot that that is a horrible thing or anything :)18:07
tristanjust bringing it up, I mean there is the burden of testing it, and if it's practically worthless, maybe it's then worth removing18:08
ssam2the issue about only testing the ssh:// codepath is that we might only run that test on hosts with opensshd available18:08
tristanif it's useful for anything, I have no issues with keeping it, though18:08
*** jude has quit IRC18:08
tristanssam2, that's not a huge concern, if something cannot be tested, we should skip it with a warning as we do for some host-tool specific tests18:09
juergbii'd tend to keep it18:09
tristanyeah, I dont particularly mind keeping it18:09
gitlab-br-botpush on buildstream@sam/plugin-log (by Sam Thursfield): 1 commit (last: plugin.py: Add log() method) https://gitlab.com/BuildStream/buildstream/commit/3ec023aa86a593c0eb9dbe1e5f6634b1f5544e6a18:09
tristanit's a little bit of an eye sore in the artifact cache code, but not terribly so18:09
ssam2having two test cases for the same thing isn't great, though18:09
tristanright, ideally what we should have is additional parameterization to the push/pull tests18:10
*** gitlab-br-bot has quit IRC18:10
*** gitlab-br-bot has joined #buildstream18:10
tristanso run the whole battery against the local path, and then again against the ssh:// path18:10
ssam2yeah. if the logic goes into the create_artifact_share() helper then that should be fine18:10
gitlab-br-botbuildstream: merge request (sam/plugin-log->master: plugin.py: Add log() method) #168 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/16818:11
tristananyway; from my perspective, I wont block multiple artifact shares on the absence of the test scaffolding that we dont have yet but would be very nice to have18:11
tristanso I'm totally ambivalent about whether juergbi or ssam2 take it on :D18:11
tristan(which was the original topic I think)18:12
ssam2yeah :-)18:12
juergbigiven that i can actually test subproject-specific artifact servers also with local push, i probably first do that18:12
juergbibut i can look into pushreceive tests after that18:12
ssam2i'll look at modifying tests/frontend/pull.py to properly test that multiple caches work18:12
ssam2that should be done tomorrow and we can think about merging the multiple cache support branch then18:13
ssam2after that. .. i would like to look more at the various slownesses i found last week18:13
ssam2although we also should come up with a plan for GPG signing this week18:13
ssam2to see if there's anything needed that would block 1.0 (in terms of changing the artifact format)18:13
tristanjuergbi, it seems sensible to me that you stick with the local method... and then whoever tests the pushreceive code paths implements that unilaterally across the existing related push/pull tests18:13
juergbifor the junction-specific push/pull test, local server may suffice as it's orthogonal18:14
tristanright, probably we can even have the ssh related tests only present in the push/pull stuff, if the junction specific tests dont add edge cases to the underlying artifact exchange code anyway18:16
juergbibut my tests should probably build upon the multi cache tests as those aspects are tighter connected18:18
tristanaha...18:18
tristanok so... juergbi do you think it's more sensible to land the junctions *after* ssam2's branch ?18:19
juergbitristan: the subproject-specific artifact server support builds upon ssam2's branch18:20
juergbiso either we land that first or we land junction support without subproject-specific artifact server support first18:20
juergbii'd go with the former unless we hit a blocker there18:20
tristanahhh ok I wasnt aware of that part18:20
tristanOk in any case your work is a lot more complex, I expect that ssam2's branch will be much easier to land too18:21
juergbiyes, sounds fine to me18:21
tristanthere is a variance of like ~20 min between test runs of integration_tests18:21
juergbibtw: the first few commits of my branch are refactorings that could also land before the feature work18:22
tristanseems like sometimes we get a host that is closer to the storage device18:22
tristanjuergbi, sure I am totally open to landing those in advance and lessening, however slightly, the effort of landing the bigger branch :)18:22
* tristan did that as well with the format changes a month or two ago18:23
*** ssam2 has quit IRC18:23
tristanpushed the refactorings down the history in rebase, and landed them in advance preparation18:23
juergbiyes, i already prepared the branch history for this. should probably still get a review of those, though, as sanity check18:25
tristanOK!18:34
tristanNow the CI tests all operate on a source distribution tarball18:34
tristanso we should in theory, catch any problems with tarballs at pre-merge time18:34
juergbi\o/18:37
*** tristan has quit IRC18:40
*** bethw has quit IRC18:51
jjardon[m]Hi, what is source type I should use if its a file but its in a URL somewhere? Does bst supports that?19:05
jjardon[m]this is the use case: https://github.com/flatpak/freedesktop-sdk-images/blob/9995653f1bcc3c57351da0cd80af63fbc29ad57e/org.freedesktop.Sdk.json.in#L1847 we can download the file and store it locally so we can use local: but I wonder is something else exist19:06
jjardon[m]mmm, local: doesnt have ref: neither ; how do you know you are using exactly the same thing? (I can change the file and keep the name, for example)19:08
*** bethw has joined #buildstream19:16
*** bochecha has joined #buildstream19:43
*** tristan has joined #buildstream19:57
*** valentind has joined #buildstream20:25
gitlab-br-botbuildstream: merge request (lzip->master: Add support for lzip in tar source) #162 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/16220:57
juergbijjardon[m]: i don't think we support this right now. it is indeed a bit odd that source plugins are a mix of file type and protocol21:22
juergbiwe should support downloading blobs and patches from http, and for consistency we should probably also support local tar and zip files (although i don't think the latter will be very useful in practice)21:24
juergbiin this particular case, you could use a git source where you only use a single file, although this may also not be ideal21:25
juergbifor local sources you shouldn't need a ref as they are typically version controlled in the same [git] repo as the .bst file21:26
juergbi(and the cache key does include the sha256 hash, so there is no risk with regards to rebuilds)21:27
jjardon[m]juergbi: ok, thanks. I understand there is not risk about rebuilds, but for the user can be a bit confussing that exactly the same bst cause a rebuild, only because it turns out the contents of that file have changed21:33
juergbiif we generalize local (and patch) to also support http, we could probably easily support ref as well there21:34
juergbihowever, i don't think we want to require this for local sources21:35
juergbithis generalization is probably something that we should discuss as soon as possible with tristan, in case we want to change something before 1.021:36
gitlab-br-botbuildstream: issue #163 ("[Feature Request] Buildstream should support downloading blobs and patches from http") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/16321:37
juergbita21:37
*** bethw has quit IRC21:45
juergbithe local source plugin also supports whole directories, so it may make sense to keep this as is21:46
juergbihowever, we could add a file source plugin21:47
*** bethw has joined #buildstream21:47
jjardon[m]yup22:02
*** bochecha has quit IRC22:24
*** bethw has quit IRC22:41
tristanjjardon[m], now we have a private _downloadablefile.py abstract source, used for both tar & zip22:47
tristanmaking a raw file downloader I think makes sense22:47
tristanof course it will expect the checksum never changes, so should not be used with something that changes, or will trigger errors22:48
*** xjuan_ has quit IRC23:25

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