IRC logs for #buildstream for Wednesday, 2019-10-30

*** narispo has quit IRC06:39
*** narispo has joined #buildstream06:39
gitlab-br-botaevri opened (was WIP) MR !1674 (aevri/fuse_mount_private->master: _fuse/mount: make mount() and unmount() private) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/167408:50
gitlab-br-botjuergbi approved MR !1673 (aevri/testutils_artifactshare->master: tests/artifactshare: safer cleanup_on_sigterm use) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/167308:52
*** benschubert has joined #buildstream09:24
*** santi has joined #buildstream09:48
*** jonathanmaw has joined #buildstream09:57
*** tiagogomes has quit IRC10:00
*** phil has joined #buildstream10:00
*** jonathanmaw_ has joined #buildstream10:00
*** jonathanmaw has quit IRC10:01
*** akvilebirgelyte has joined #buildstream10:03
*** jonathanmaw_ has quit IRC10:05
*** jonathanmaw has joined #buildstream10:05
*** traveltissues has joined #buildstream10:09
*** tiagogomes has joined #buildstream10:16
gitlab-br-bottraveltissues approved MR !1674 (aevri/fuse_mount_private->master: _fuse/mount: make mount() and unmount() private) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/167410:17
*** lachlan has joined #buildstream10:29
*** lachlan has quit IRC10:43
*** lachlan has joined #buildstream10:45
gitlab-br-botmarge-bot123 merged MR !1674 (aevri/fuse_mount_private->master: _fuse/mount: make mount() and unmount() private) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/167410:47
*** narispo has quit IRC10:49
*** narispo has joined #buildstream10:49
*** narispo has joined #buildstream10:50
*** narispo has quit IRC10:50
*** bochecha has joined #buildstream10:50
*** narispo has joined #buildstream10:50
gitlab-br-bottraveltissues opened (was WIP) MR !1651 (traveltissues/1161->master: extend source api and remove private use from workspace plugin) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/165110:51
millonidoes buildstream have a cache of cloned repositories?10:52
tpollarddo you mean locally, or hosted as a project?10:53
*** bochecha has quit IRC11:08
*** lachlan has quit IRC11:14
*** narispo has quit IRC11:25
*** narispo has joined #buildstream11:25
*** narispo has quit IRC11:29
*** lachlan has joined #buildstream11:33
*** narispo has joined #buildstream11:36
* tlater[m] wonders if we're too far down to ever start using black for formatting11:37
*** bochecha has joined #buildstream11:37
tlater[m]I've *really* gotten used to hitting my "format this for me please" button whenever I write a long line of code because of rustfmt :(11:38
*** lachlan has quit IRC11:39
Kinnisonhehe11:39
benschubertI wouldn';t be against. Would be a mess for the history for a time though11:39
KinnisonRebase the entire history of the project, blacking every commit11:40
* Kinnison hides11:40
* tlater[m] wonders how long that'd take11:40
benschubertKinnison: I would not be against, but blood might flow11:42
tlater[m]benschubert: Think I should start a ML thread discussing whether we can even think about it? I imagine it'd be a problem for supporting bst 1.4, since it would make backporting even harder.11:42
* tlater[m] wasn't serious, but sort of likes the idea11:42
*** tpollard has quit IRC11:49
*** tpollard has joined #buildstream11:58
*** dtf has joined #buildstream12:03
tlater[m]Should `bst show --format '%{full-key}'` respect non-strict mode settings?12:07
* tlater[m] notices that a couple of tests fall over if we don't set strict cache keys in non-strict pipelines, even if this shouldn't be a problem12:08
*** lachlan has joined #buildstream12:12
*** bochecha has quit IRC12:23
juergbitlater[m]: I'd say all commands should respect that option. however, strong keys may not always be available in non-strict mode12:26
tlater[m]juergbi: That's my point. Currently `bst show --format '%{full-key}'` will print a strong key12:26
juergbithe main purpose of strict cache keys in non-strict mode is for pulling12:26
tlater[m]Why don't we print a weak key if we're in non-strict mode?12:26
juergbitlater[m]: that's correct. strong keys also exist in non-strict mode. strong != strict (even if the terminology may be confusing)12:27
tlater[m]Yes, however, if there is no strong key, instead of printing the weak key in non-strict mode we will print ?????????????????????/12:27
juergbiiirc, strict cache keys are used in non-strict mode also for key formatting in the frontend (bold if the key matches the strict key, non-bold otherwise)12:27
juergbitlater[m]: yes, that's correct12:27
juergbiif we can't know the strong key, we can't know it..12:28
juergbiwe shouldn't print the weak key just because we don't know the strong key12:28
tlater[m]juergbi: Is there a reason for this?12:28
juergbi(unless we would clearly mark it as not being a strong key, but that may be confusing)12:28
juergbia weak key can refer to multiple artifacts built with different dependency versions12:29
*** lachlan has quit IRC12:29
juergbiso the user should never accidentally use a weak key as that could lead to confusing results12:29
* tlater[m] thinks it would make sense to print a weak key if we're asked to print a key in non-strict mode and there is no strong key12:29
tlater[m]Since the user knows that they're using non-strict mode12:29
juergbiblindly mixing doesn't make sense to me, imo12:29
juergbiwe could have a weak-key format if we don't have that yet12:30
juergbiand then users could use that12:30
juergbibut just printing a 'random' key is bad UX, imo12:30
tlater[m]Hrm12:30
juergbiI mean, what would the user do with the weak key?12:30
tlater[m]I suppose I'll just start calling __update_non_strict_cache_key in get_cache_key instead12:30
juergbiif the artifact is available, there will be a strong cache key12:31
juergbiand the user can't really do anything with a weak key to a non-existing artifact, right?12:31
tlater[m]I believe they could plug it into pull?12:32
juergbiI don't think that would work12:32
juergbiand why would the user want to?12:32
juergbielement name would work and would properly first attempt to get the artifact with the strict key => better result12:33
tlater[m]Yeah, I suppose12:33
gitlab-br-bottraveltissues opened issue #1186 (Sources advertising no prestage key and not needing previous sources should skip tracking) on buildstream https://gitlab.com/BuildStream/buildstream/issues/118612:39
*** lachlan has joined #buildstream12:42
traveltissuesare there any further comments for !1651?12:49
gitlab-br-botMR !1651: extend source api and remove private use from workspace plugin https://gitlab.com/BuildStream/buildstream/merge_requests/165112:49
gitlab-br-bottraveltissues opened issue #1187 (Add test for incorreclty nested directory staging) on buildstream https://gitlab.com/BuildStream/buildstream/issues/118712:57
*** akvilebirgelyte has quit IRC13:08
*** lachlan has quit IRC13:12
*** akvilebirgelyte has joined #buildstream13:12
*** santi has quit IRC13:19
*** santi has joined #buildstream13:31
gitlab-br-botmarge-bot123 closed issue #1161 (Follow-up from "Defer workspace source commits") on buildstream https://gitlab.com/BuildStream/buildstream/issues/116113:37
gitlab-br-botmarge-bot123 merged MR !1651 (traveltissues/1161->master: extend source api and remove private use from workspace plugin) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/165113:37
gitlab-br-botaevri opened (was WIP) MR !1676 (aevri/enable_spawn_ci_5a->master: spawn tests: enable most non-integration) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/167614:19
*** lachlan has joined #buildstream14:20
*** lachlan has quit IRC14:42
gitlab-br-bottraveltissues opened MR !1677 (traveltissues/1184->master: buildgrid-compose.yml: reduce log level to WARN) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/167714:43
*** lachlan has joined #buildstream14:49
gitlab-br-botjonathanmaw opened MR !1678 (jonathan/win32_ci->master: Add native windows CI configuration) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/167814:53
milloni[10:52:54] <milloni> does buildstream have a cache of cloned repositories?14:56
milloni[10:53:47] <tpollard> do you mean locally, or hosted as a project?14:56
millonilocally, say im running a buildstream build, does it cache all cloned repositories?14:56
milloniand can i push that to a remote cash?14:56
tpollardbuildstream master caches sources, and can push them to a remote cache14:57
milloni(this isnt that useful since i would aim for all mirrors to be in a nearby network, presumably the same network where the remote cache lives, but ...)14:57
millonioh nice14:57
millonithanks14:57
tpollardmilloni: https://docs.buildstream.build/master/using_config.html#config-sources14:58
tlater[m]Does anyone know why we set a strict cache key in non strict builds if assembly is scheduled? https://gitlab.com/BuildStream/buildstream/blob/master/src/buildstream/element.py#L317414:58
tlater[m]It reads like it just so happens that if assembly is scheduled, all other requirements for a strict cache key existing are met, so we might as well15:00
tlater[m]But I'd like to know what state actually causes this to toggle, instead of blanket setting it when assembly is scheduled.15:00
juergbitlater[m]: it's not setting the strict cache key, it's setting the strong cache key15:00
juergbistrong cache key is crucial in both strict and non-strict build plans15:01
tlater[m]Sorry, yes, that's what I mean15:01
juergbie.g., after an element is built in non-strict mode, the strong cache key is needed to add it to the cache15:01
tlater[m]juergbi: This happens *before* the element is built, though15:02
tlater[m]And I'm running into a failing test case where no build should ever run that seems to rely on the element being scheduled to build15:03
juergbiwhen assembly is scheduled it can be calculated15:03
juergbiwe could potentially have a separate trigger15:03
milloniout of intereset when's the next release of buildstream?15:03
tlater[m]juergbi: Why can it be calculated at that point, but not earlier?15:03
juergbias it guarantees that all build dependencies have their strong cache keys15:04
tlater[m]milloni: TBA - There are no plans for a 2.0 release atm, though I'd like to see one over the next couple of months.15:04
tlater[m]juergbi: Should we not then set the strong cache key once all build dependencies have their strong cache keys?15:05
millonithanks15:05
juergbitlater[m]: that should be possible, yes. but we need to make sure to not perform that calculation as long as pull is pending or if the artifact is already cached15:06
juergbitlater[m]: actually, not sure whether it'd be a good idea to decouple it from assemble15:07
tlater[m]juergbi: why not?15:07
*** lachlan has quit IRC15:07
juergbiin non-strict mode elements may have a set of possible strong cache keys. the one we calculate in that `elif` only makes sense for the current build environment15:09
juergbiso I can't think of a situation where that calculated strong cache key would have any meaning if we're not building15:09
tlater[m]juergbi: It apparently has meaning when we're using a nested unfetched junction15:10
juergbihm, how are junctions relevant here?15:11
juergbithey aren't in the build graph15:11
juergbiand there are no junction artifacts15:11
tlater[m]juergbi: Junctions stage their dependencies into a directory named after the element's strong cache key15:11
juergbijunctions don't have dependencies15:11
juergbithey are not part of the dependency graph15:11
tlater[m]juergbi: https://gitlab.com/BuildStream/buildstream/blob/master/src/buildstream/_loader/loader.py#L66215:12
tlater[m]I might be misunderstanding what's going on there15:13
tlater[m]But for some reason they need a cache key at that point15:13
tlater[m]And said cache key currently relies on __schedule_assemble() being invoked on a nested junction15:13
* tlater[m] is trying to find out why, and how to avoid that15:13
juergbiright, it's a pretty special case, can hopefully get rid of the need for that cache anyway15:13
*** lachlan has joined #buildstream15:13
tlater[m]How would we?15:14
juergbitlater[m]: one thing that we theoretically could do is to say self.__cache_key = self.__weak_cache_key for elements that don't have dependencies15:14
juergbijunction cache: I'd like to replace it with direct CAS access (probably via CASBasedDirectory)15:15
tlater[m]Right15:15
tlater[m]juergbi: In that case, surely I can just use the weak cache key for that invocation?15:15
juergbiyes, that might be the simplest approach15:15
tlater[m]I.e., use KeyStrength.WEAK instead of trying to get the strong key15:15
tlater[m]juergbi: since they don't have dependencies that's guaranteed to be unique at the granularity it needs to be?15:16
juergbiyes, it's even guaranteed to be identical to the strict cache key15:17
tlater[m]In that case I'm not too worried about aliasing the cache key to the weak key in general for now15:18
* tlater[m] isn't sure that's a good idea15:18
*** lachlan has quit IRC15:18
coldtomhi, is there a way i can force bst to prune my cache? i.e. I didn't have a quota set but i don't want to lose recent artifacts and want to reduce my cache size15:28
coldtom(this is in 1.4.1)15:28
tlater[m]coldtom: You can reduce the cache size and run a build of something you already have, I suppose.15:30
tlater[m](Or something small, it might be too smart for that :D)15:30
coldtomit was indeed too smart for that :P15:31
tlater[m]Damn you BuildStream and your smart cache resolution!15:32
*** santi has quit IRC15:43
coldtomhmmm it turns out that my cas cache was not actually so big, but the `build/` directory of the cache was15:45
coldtomis that build trees?15:45
Kinnisonbuild/ under buildstream isn't needed IIRC15:46
Kinnisonit's failed build trees etc I think15:46
coldtomthat would explain why it's so huge, i've had a lot of failed builds15:47
tpollardin 1.4 anyhow :)15:47
tlater[m]coldtom: Kinnison is right, yes :)15:47
* Kinnison savours this moment. 'tis not often I hear that15:48
tlater[m]In 1.99 we've finally got our build trees in the cache as well, and buildstream will clean them up for you ;)15:48
tpollardand not always cache them (it does in 1.4)15:48
* coldtom is excited for bst 215:49
tpollardor did that make it into 1.4.... I can't remember at this point15:49
*** lachlan has joined #buildstream15:51
coldtomhah cache size before removing build/: 112G, cache size after: 5.8G15:52
Kinnisonmuch better15:53
*** lachlan has quit IRC15:56
*** santi has joined #buildstream15:58
*** lachlan has joined #buildstream15:59
*** lachlan has quit IRC16:28
*** phildawson_ has joined #buildstream16:42
*** phil has quit IRC16:43
*** lachlan has joined #buildstream16:44
*** lachlan has quit IRC17:06
*** narispo has quit IRC17:22
*** lachlan has joined #buildstream17:26
*** santi has quit IRC17:30
gitlab-br-bottraveltissues approved MR !1676 (aevri/enable_spawn_ci_5a->master: spawn tests: enable most non-integration) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/167617:31
*** tiagogomes has quit IRC18:01
*** traveltissues has quit IRC18:02
*** jonathanmaw has quit IRC18:08
*** ikerperez has quit IRC18:19
*** adds68 has quit IRC18:19
*** qinusty has quit IRC18:19
*** adds68 has joined #buildstream18:20
*** phildawson_ has quit IRC19:04
*** lachlan has quit IRC20:44
*** qinusty has joined #buildstream21:29
*** narispo has joined #buildstream23:29

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