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

*** nimish has quit IRC00:34
*** alatiera has quit IRC01:03
*** xjuan has quit IRC02:36
*** tristan has joined #buildstream07:12
*** uglyfigurine has joined #buildstream07:25
*** kapil___ has quit IRC07:44
*** JimBuntu has joined #buildstream07:48
*** nimish has joined #buildstream07:53
*** monoidal has joined #buildstream07:54
*** nimish has quit IRC08:53
*** nimish has joined #buildstream08:53
*** Trevinho has quit IRC08:54
*** nimish has quit IRC09:03
*** nimish has joined #buildstream09:04
gitlab-br-bottristanvb opened MR !993 (tristan/misc-cleanup->master: Misc cleanups) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/99309:06
*** nimish has quit IRC09:09
*** nimish has joined #buildstream09:09
*** finn has joined #buildstream09:13
*** ChanServ sets mode: +o tristan09:20
tristanjuergbi, I am thinking of quickly new Source APIs `get_tracking_scheduled()` and `get_tracking_done()`09:20
tristanFor the purpose of these two new warnings which can be fatal09:20
juergbihm, public?09:20
tristan(A) git:unlisted-submodule, warns if a submodule exists, checking out of submodules is enabled, but it is not specified in the configuration09:21
tristan(B) git:invalid-submodule, warns if the configuration specifies a submodule which does not exist in the underlying repo09:21
tristanThe thing is, when tracking happens, you are only really interested in these warnings *after* tracking happens, if it's going to happen09:22
tristanAnd the fact that they can be fatal, would mean a lot of headache configuring things when running `bst track`09:22
tristanRight now the core knows very well if a source will be tracked (so the plugin can avoid emitting the warning) and when it has been tracked (so it can start emitting the warning)09:23
tristanjuergbi, any idea for a better approach ?09:23
juergbithe main issue for this is that track() runs in the subprocess?09:24
tristanI don't see how that is relevant no09:24
tristanThe issue is that whether a submodule exists or not in the underlying repo, depends on the ref09:25
tristanwhich is discovered as a result of tracking09:25
tristanOr... maybe I don't need this and I'm jumping the gun09:25
juergbiand why can't this be done at the end of track()?09:25
tristanjuergbi, Maybe a Source already knows this by virtue of being Source.INCONSISTENT ?09:26
tristanOr that stopped being true a long time ago09:26
tristanjuergbi, The warning needs to happen in every other scenario09:26
tristanbst show, bst fetch, bst build... etc09:26
tristanAh right... so a Source *is* forced inconsistent until such a time that it is tracked in this scenario09:27
tristanit is just that the ref is not cleared09:27
tristanHrmm, except that we only cache the forced value hidden09:28
juergbicouldn't the plugin check this at the beginning of fetch() and build()?09:28
juergbi(ignoring bst show for now)09:28
juergbieh, fetch() and stage()09:28
tristanThat is suboptimal09:28
juergbibtw: also need to think about SourceCache09:29
tristanIdeally you want any possibly fatal warnings to happen at the earliest opportunity09:29
tristanBefore you've actually been computing things09:29
tristanOnly in the case of tracking, it needs to be postponed09:29
juergbiin a way we want something like a preflight() but for the post-tracking phase09:30
tristanNot really no09:30
tristanWe need to also avoid triggering the warning with the knowledge that the current ref is not the one that will be used09:30
tristanWe need to avoid triggering it in the case that it will be tracked09:31
juergbithat's why I said post-tracking09:31
*** toscalix has joined #buildstream09:31
juergbipreflight is probably the wrong word / confusing09:31
tristanjuergbi, Yeah I know, except the existence of a method for that is not enough alone09:32
tristanOh09:32
*** kapil___ has joined #buildstream09:32
tristanYou mean a check "once we know the real ref"09:32
juergbiyes09:32
tristanWhich would be run right away09:32
tristanIt is also unfortunately not entirely suitable no09:32
juergbiright after get_consistency() returns consistent state09:32
tristanjuergbi, When we run `bst show` before *fetching*, the plugin does not have the git repo on hand yet, so it cannot issue the warning09:33
*** toscalix has quit IRC09:33
tristanOnly when we are fully consistent can we issue the warning09:33
juergbiso we could trigger it when get_consistency() returns cached?09:33
tristanSo: first bst show = no warning... bst fetch = warning... consecutive bst show = warning09:34
tristanRight09:34
juergbicheck_cache()09:34
juergbior something like this09:34
tristanWhen a source becomes fully consistent would be the right time09:34
*** nimish has quit IRC09:34
juergbi_update_state() could trigger this easily, afaict09:34
*** nimish has joined #buildstream09:35
tristanI suppose, there is a bit of mish-mash around the initial load time09:35
tristanBecause of (A) loading the elements... (B) scheduling tracking... care is needed between (A) and (B), after (B) we'd be all set09:35
*** toscalix has joined #buildstream09:36
tristanjuergbi, I suppose a consistency_changed() thing could be given to the plugin09:36
tristanbut that is a bit confusing since the plugin incorrectly believes that it is driving consistency by implementing get_consistency()09:36
tristan(i.e. it doesnt necessarily know that we artificially force it to be inconsistent in the case of tracking)09:37
*** Trevinho has joined #buildstream09:37
juergbiI'd prefer a more explicit check_cache() only for this state transition09:37
gitlab-br-bottristanvb merged MR !993 (tristan/misc-cleanup->master: Misc cleanups) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/99309:37
juergbior is this not sufficient?09:38
tristanI think it is09:38
tristanJust thinking about it09:38
tristanjuergbi, I think it is probably best yeah09:38
tristanjuergbi, Currently my branch has redundant warnings being emitted and this would also fix that problem09:39
tristanAsides from this, I am getting very obnoxious breakage when building GNOME after the execution environment changes which landed yesterday09:40
tristanI wonder if we can improve that, the situation is doubly bad because of the junction (the default x86_64 derived from uname breaks the build, and is unfixable because of passing the parameters through junctions)09:41
tristanOh yeah, and when you load freedesktop-sdk by manually specifying *two* arch options... you get pages of:09:43
tristanException ignored in: <function WeakValueDictionary.__init__.<locals>.remove at 0x7efc4a5640d0>09:43
tristanTraceback (most recent call last):09:43
tristan  File "/usr/lib/python3.5/weakref.py", line 117, in remove09:43
tristanTypeError: 'NoneType' object is not callable09:43
tristanAlso not fun :-S09:43
*** nimish has quit IRC09:45
tristanjuergbi, Maybe we are missing the a part which conveniently translates host uname output to standardized arch names ?09:45
*** nimish has joined #buildstream09:45
tristanSo only the projects need to be updated but things don't have to be manually specified ?09:45
* tristan is not sure at this point what part of this is making it such a struggle09:46
tristanhaven't been focusing on that I admit, just been testing my warnings against working projects and frustrated with breakage :-S09:46
juergbitristan: yes, I noticed, starting a fdo-sdk build myself09:46
juergbiI don't think anything is really missing but it needs changes in more places than I expected09:46
tristanjuergbi, If we change the arch names used in both freedesktop-sdk and gnome-build-meta, then by default the user would not have to specify `--option` when building for host arch right ?09:47
tristanmaybe that is not escapable09:47
juergbiyes, I already did this locally09:47
tristanI guess it would be good to have that somewhere for testing purposes, until a downstream transition which can require BuildStream 1.409:51
*** tpollard has joined #buildstream09:54
juergbiwill push my WIP branch after the test run09:54
tristanjuergbi, It appears Source._update_state() is an ideal place for a potential check_cache() delegate method indeed, and already provides the right guarantees09:55
*** raoul has joined #buildstream09:56
*** dtf has joined #buildstream09:59
gitlab-br-botjjardon opened issue #806 (overnight tests are failing: "Error loading project: Invalid value for arch") on buildstream https://gitlab.com/BuildStream/buildstream/issues/80610:00
*** toscalix_ has joined #buildstream10:05
*** tristan has quit IRC10:06
*** toscalix has quit IRC10:07
*** toscalix_ has quit IRC10:09
*** toscalix has joined #buildstream10:09
*** tristan has joined #buildstream10:17
*** ChanServ sets mode: +o tristan10:17
valentindjuergbi, I have seen more connection issues to the cache server. This time on the GNOME server.10:24
valentindI propose this change: https://gitlab.com/BuildStream/buildstream/commit/8610a8a4de3480c4fb1fbb657b37b475da8174ec10:24
valentindAPI doc says that client can retry when getting UNAVAILABLE.10:25
*** jonathanmaw has joined #buildstream10:26
valentindWell, actually thinking about it, I would prefer to separate the initialization of the channel with the rest of the initialization. Because we should have exponential backoff automatically then.10:27
juergbivalentind: don't we need to set temporary=True in the error?10:32
juergbimaybe I'm mixing this up with something else10:32
valentindjuergbi, I think RpcError sets it always to true.10:32
valentindBut otherwise yes.10:32
juergbiyou mean CASError?10:32
valentindOh yes sorry.10:32
juergbiah ok10:32
valentindBut that might be a mistake.10:33
valentindBut this is what I saw.10:33
valentindI think we should actually retry any request that got UNAVAILABLE. And fail temporary all with ABORTED.10:34
valentindFrom the API doc:10:34
valentindUse UNAVAILABLE if the client can retry just the failing call.10:35
valentindUse ABORTED if the client should retry at a higher-level10:35
valentind          (e.g., restarting a read-modify-write sequence).10:35
*** nimish has quit IRC10:35
*** nimish has joined #buildstream10:36
*** lachlan has joined #buildstream10:36
*** lachlan has joined #buildstream10:37
*** nimish has quit IRC10:45
*** nimish has joined #buildstream10:46
tpollardooh, corewarnings has moved out of plugins10:51
valentindDid we change x86_64 to x86-64?10:56
juergbivalentind: yes, see https://mail.gnome.org/archives/buildstream-list/2018-November/msg00003.html10:57
juergbithis requires more changes than in fdo-sdk than expected10:57
juergbibtw: I have a local branch already that at least mostly changes this10:58
juergbibut we may want to revisit compatibility concerns10:58
tristantpollard, I did that yes, it's better to have the simple data types all in types.py as it makes it easier to avoid circular imports and circular module dependencies (that's what types.py is for)10:58
tpollardtristan: I think it's a good change :)10:58
tristantpollard, Also it is fixed so that plugins can import it in the regular way (from buildstream import CoreWarnings)10:58
valentindOK so we need to change the parameters to the overnight builds.10:59
tristanjuergbi, I wonder if we could be *permissive* in a sense to avoid this breakage10:59
tristanjuergbi, I.e. could we in some way make the official thing "x86-64", but *allow* x86_64 to be an alias for it ?11:00
juergbitristan: the issue is that there are lots of == checks11:01
juergbiwe can't really do both11:02
juergbiunless we scan the list of accepted values and decide for one or the other based on that11:02
valentindIt seems to me that there is a different CASRemote for every job. That means that we create many http2 connections.11:02
juergbitbh, I'd prefer the format-version approach11:02
tristanjuergbi, We could have a table of acceptable aliases ?11:02
valentindShould not we share the channel?11:02
juergbivalentind: yes, not sure whether we can properly fix this as long as we use fork()11:02
valentindI think this is the problem why clients fail often.11:03
Nexusjuergbi: What are your thoughts on making the idea of "skipping elements with failing assert directives" work?11:03
juergbitristan: maybe, yes. first get the new standardized name internally and then check aliases against the accepted list in the arch option11:04
juergbivalentind: gRPC has connection limits?11:04
juergbivalentind: long term I'd like to move away from non-execve forks but that'd be a huge undertaking11:05
juergbiif you have an idea how to handle it while keeping fork, I'm all ears11:05
juergbitristan: we'd also have to do the alias handling / normalization in SandboxConfig, but that should be doable11:06
juergbitristan: and we could even do some generic (non-table based) normalization such as accept _ for -11:07
juergbiNexus: I'm not sure whether there are any technical hurdles. tristan raised concerns about this approach. I haven't thought about it in detail yet11:08
tristanjuergbi, indeed, I think this seems like a good first step; and if we ever run into problems in the future we could have strict arch names as an optional thing11:08
Nexusjuergbi: Can we work together to try and come up with a plan for how it could work?11:10
tristanjuergbi, Nexus; My concerns is that results/behavior becomes unpredictable/undefined under that clause. If over the course of project development someone adds or removes an element, that can have side effects on the intents of what "build everything" should do. It is safer to either have a project which it works without a specified target element, and force people to be explicit otherwise, to remove any elements of surprise.11:11
tristanI think we had already a good plan for this the other day: Allow it to work if everything loads successfully, and only support an explicit default target otherwise.11:12
juergbics-shadow who raised this issue says that wouldn't solve his use case11:13
juergbisee ML post11:13
juergbitristan: unpredictable/undefined is an exaggeration, imo, though11:14
juergbiit would still be fully defined and deterministic from the project author point of view11:14
*** nimish has quit IRC11:16
tristanjuergbi, Reading his post I'm not convinced11:16
*** nimish has joined #buildstream11:17
tristanjuergbi, cs-shadow says "If we are saying that that is only doable if we have a stack element that lists all the dependencies, then I don't think it solve the original use-case."11:17
tristanBut I don't think that is what we are saying11:17
tristanjuergbi, We are only saying it is only doable with a stack element *if* there are things which fail to load in the unspecified default target case, aren't we ?11:17
tristanOr did I misunderstand something11:18
tristanI.e. if you have organized your project such that everything is always compatible, then it is possible to "build everything"11:18
juergbitristan: I understood it in such a way that he might use platform-specific elements himself in the future, and then he would have to resort to the stack element11:18
tristanWell11:19
juergbiright now the previously planned approach would work for him, afaict, as we would still default to all elements and he wrote that he doesn't have platform-specific elements yet11:19
tristanjuergbi, we could instead explore more complicated territory where:11:19
tristan * BuildStream tries every possible combination of project options11:19
tristan * BuildStream summarizes clearly at the end which elements, under which option combinations were not compatible11:20
*** tiagogomes has quit IRC11:20
tristanjuergbi, it seems that somewhere in between is not really satisfactory anyway11:20
*** alatiera has joined #buildstream11:20
*** tiagogomes has joined #buildstream11:20
tristanjuergbi, Maybe at least maintaining a list of "valid option combinations" can help reduce how exponential that can become11:21
juergbitristan: hm, why can't we just respect the specified project options (or defaults if not specified)?11:21
juergbii.e., requiring a separate 'all' run per platform is reasonable, imo11:21
tristanThen the activity of "build everything" is not really automated anyway ?11:21
juergbibuild everything under a particular project configuration11:22
juergbithat would still be useful, in my opinion11:22
juergbibut don't know whether cs-shadow agrees11:22
tristanjuergbi, I give up, but propose that there be a way to have either/or - the angle I am seeing is that: "I have setup CI to build absolutely everything", and I do not want a change in project data to change the meaning of my CI to be "Just build everything you can"11:24
tristanWhen I say "everything", I would like it to continue to mean everything, regardless of what gets added/removed11:24
juergbiimo, a real CLI user (not CI), would expect a single platform build. similarly to a user typing ./configure && make all not expecting a build on all platforms11:26
juergbiCI can easily have a loop with the different option configurations11:27
juergbiand might even run them on different machines or whatever11:27
juergbibut maybe that's just me11:27
tristanjuergbi, for some people, project options have to do with platforms11:27
tristanjuergbi, for other people, project options might mean "Am I building an SDK or a system image, and have conditional elements and configure options for this"11:28
tristanAnd for others, it means a combination of both11:28
juergbiI still think 'building a single project configuration' is a reasonable goal11:29
juergbino matter whether that's platform or something else11:29
juergbiand without self-junctions, bst build anyway only supports a single project configuration per session11:29
tristanI think that is orthogonal to what "everything" means11:29
juergbiso it shouldn't be a surprise to the user that it doesn't build other project option values11:29
juergbiwe're talking about a default 'bst build' etc. here. going over all possible configurations would surprise me a lot, imo11:30
juergbithis is not bst build --very-special-try-to-build-everything11:30
juergbi(which could be interesting as well but `bst build` without arguments should not iterate over project configs)11:31
tristanIt's try to build everything, I don't see any difference with that and "very special"11:31
juergbithe user should be explicit about something that broad11:31
juergbii.e., if we were to add that multi-plaform build-all feature, I'd definitely want a special flag for it11:32
tristanjuergbi, Regardless of whether it captures all project configurations or not... if I setup a CI which tries to build everything; it probably does build everything when I initially set it up11:32
juergbiwhile I think it's reasonable for a default 'bst build' to build everything it can for the default/configured project options11:32
tristanjuergbi, I would not want it to start becoming "lenient" just because somebody added an incompatible element11:32
tristanI would rather be notified straight away that CI is broken, because *everything* doesnt build anymore11:32
juergbiif the element explicitly asserts platform == "aarch64"11:33
juergbiI don't think we should error out when trying to build all elements on x86-6411:33
juergbias that assert is a clear statement11:33
juergbiwe should _not_ silently ignore non-assert errors11:33
tristanSee, at that point I would probably say "My project is complex enough that now I have to maintain default stack elements and be very explicit about what my "bst build" does"11:34
juergbithere is definitely an argument for that11:34
tristanbottom line is that I want to fail when anything fails11:35
tristanjuergbi, Circling back - I do give up in the sense that, I can see that people *want* something lenient and less defined11:35
tristanjuergbi, but I would prefer that it be a choice, and the user is warned what they are getting into11:35
tristanThis might just be a matter of adding `--allow-incompatible` or something11:35
tristanI don't know what is the best design11:36
juergbiok, fair enough11:36
juergbicould also be in userconfig, i suppose?11:36
juergbiskip-incompatible11:36
juergbibut I'd only want this skipping for the default target. if you explicitly have a dependency on something incompatible, I don't think we should allow it in any case11:36
tristanjuergbi, Maybe that would be part of a "default-build:" configuration block ?11:36
juergbithat sounds reasonable11:37
tristanSeems to be specific to the case, and might be the right place to add default targets (if we're not doing that at the same time)11:37
juergbishall we propose that on the ML and see what others think and whether that would work for cs-shadow?11:37
tristanSure, I've not been in the loop really on this11:38
juergbiNexus: have you been following the discussion, can you write this up?11:38
Nexusbeen trying to, sure11:38
juergbita, let me know if something is unclear11:39
juergbior if you see an issue11:39
tristanjuergbi, Regarding Source.check_cache(), I've implemented that and it has one drawback - the warnings do not fire as a result of running `bst track`; because a git Source is not Consistency.CACHED until it actually downloads the submodules (which is correct)11:39
tristanHowever it *can* know that the configurations are wrong once tracking is complete11:40
tristanI wonder, perhaps I could just do the same check at the end of Source.track() anyway11:40
tristaneven if it is redundant11:40
tristanOr, just leave the warning out until the next show/build/fetch invocation11:41
juergbinot sure. if the git plugin ever tracks without fetching, it would actually not know it yet at that point11:42
tristanjuergbi, that is a good argument to just leave the error out until a Source is actually Consistency.CACHED11:43
juergbiyes11:43
tristanjuergbi, I think your wording was confusing but I think I gleaned your meaning; i.e. derive the new ref from the remote without downloading any other data11:44
tristanwhich would be optimal indeed, I've been wanting that11:44
tristanOk lets run with Source.check_cache() like this... Any thoughts on the name of the API ?11:44
tristanstay with "check_cache()" ?11:44
juergbiyes, that was what I meant :)11:44
tristanpreflight_cache() I is more consistent with other names, but is not *really* a preflight, as it can happen in mid-flight11:45
juergbican't think of another name right now, but you know, naming is hard11:45
tristanyeah11:45
juergbitristan: another option would be validate_cache()11:46
tristanalso check_cache() is a "do this" kind of name, rather than a source_became_cached() like name, which is a "hey by the way, your source became cached in case you wanted to know"11:46
juergbiyou'd prefer the latter?11:47
tristanNot sure11:47
tristanjust throwing it out there that there is a second avenue :)11:47
tristanvalidate sounds a bit better (more specific) to me11:47
juergbiyes, I think I also prefer it11:49
juergbiwondering whether validate_cache() or validate_cached() is better11:49
tristanAt least with this, we wont have warnings/failures for submodules in advance of tracking, and also there is only one warning/error possible (no redundancy)11:49
tristanSo my patch is much improved with this approach11:50
tristanjuergbi, the former11:50
juergbi:)11:50
tristanjuergbi, validate_cache() says to me "Please validate your cache", validate_cached() says to me "Please validate that your data is in fact, actually cached"11:50
*** abderrahim has quit IRC11:50
juergbiyes, you're probably right11:51
juergbiI meant it as 'validate now that the source is cached'11:51
juergbibut that's confusing11:51
tristanyeah I know :)11:51
*** abderrahim has joined #buildstream11:51
juergbiwould probably have to be cached_validate(), but I prefer validate_cached()11:51
juergbieh, validate_cache()11:51
*** nimish has quit IRC11:52
*** nimish has joined #buildstream11:52
*** toscalix has quit IRC11:52
*** kapil___ has quit IRC12:01
*** nimish has quit IRC12:02
*** nimish has joined #buildstream12:02
gitlab-br-botvalentindavid opened MR !995 (valentindavid/overnight_build_arch->master: .gitlab-ci.yml: Fix arch options for overnight freedesktop-sdk build) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/99512:05
*** nimish has quit IRC12:07
*** nimish has joined #buildstream12:08
*** kapil___ has joined #buildstream12:09
*** nimish has quit IRC12:18
*** nimish has joined #buildstream12:18
tristanLooks like we can make the ref-not-in-track warning less convoluted by placing it in validate_cache() too12:20
tristanpretty strange the way it is implemented to only happen at stage() and init_workspace() time, with some weird conditionals and even a 'tracked' state variable12:21
tristantpollard, looks like you wrote the ref-not-in-track patches...12:23
tpollardI did12:23
tristantpollard, Do you see any issues with doing the check as soon as the plugin knows that the sources are locally cached, instead of postponing it ?12:23
tristanit will make the code more legible too, and remove this 'tracked' local state12:23
*** nimish has quit IRC12:23
cs-shadowjuergbi: tristan: Don't want to stir up this thread further, but just wanted to mention that if we go with the option of building everything under default project config, assuming everything loads properly, it would work for me12:25
cs-shadowi.e. avoiding the need to maintain a stack element that lists all leaves12:25
tristancs-shadow, I haven't been following, but I think that what was proposed was to *only require* a default element be specified if everything does not load properly12:26
tristancs-shadow, i.e. "everything" would always mean "everything" unless a default element is specified, and if it fails to load in either case, it just fails12:27
cs-shadowtristan: that sounds good to me, will follow up on the list again as I believe I may have misunderstood this point12:27
cs-shadowthanks12:28
tpollardtristan: I don't have a strong option, from what I can gather with a quick skim that should work12:28
tristancs-shadow, to be honest, distinguishing why elements fail and such is also more complex, and I think that if we one day want a "load as much as you can" semantic, it could be added with more work and a --allow-incompatible flag some day in the future12:29
tristantpollard, thanks for the quick skim :)12:29
tpollardThere should be a test for it, so if it breaks....12:30
tristantpollard, one more thing, why is the check done on the *checked out* repo ?12:30
tristanseems strange to me that assert_ref_in_track() needs a 'fullpath' parameter at all12:31
tristanI'll just go ahead and change it and see what happens12:32
*** JeSuisPasLucas666 has joined #buildstream12:32
*** JeSuisPasLucas666 has quit IRC12:32
tpollardyes it shouldn't need the git to be checked out12:32
tpollardI can't remember exactly why I implemented it at stage time12:35
tristanI wonder one more thing12:38
*** raoul_ has joined #buildstream12:38
tpollardhttps://gitlab.com/BuildStream/buildstream/merge_requests/564 has some of your original points12:38
tristantpollard, It appears that assert_ref_in_track() does not support the case where track is set to a commit sha12:38
tristanLike, the warning will trigger regardless of whether the commit is in the history of that sha or not12:39
*** raoul has quit IRC12:39
tpollardyou can set track as a sha?12:40
tpollardI thought it was tag or branch only12:41
tristanYou can set it to a sha yeah, it is normally a branch or tag but it can be a sha12:43
tpollardthen the docs need to be updated I think12:44
tpollardsorry that I missed that, but I wasn't aware12:45
tristanrecently added mirgration notes here: https://docs.buildstream.build/sources/git.html even recommend it :-S12:45
tristanWell, that'll be a separate issue12:45
tristanI suppose it is quite possible to fix12:45
*** tristan has quit IRC12:49
tpollardthose recommendations landed after assert_ref_in_track()12:49
tpollardAnyhow, we should fix it wrongly triggering in that usecase12:50
*** tristan has joined #buildstream13:04
*** tristan has quit IRC13:10
*** tristan has joined #buildstream13:19
*** toscalix has joined #buildstream13:19
*** tristan has quit IRC13:22
*** nimish has joined #buildstream13:22
*** lachlan has quit IRC13:34
*** tristan has joined #buildstream13:36
*** ChanServ sets mode: +o tristan13:36
tristandamn, network catastrophe, back online13:37
* tristan asks again: Anyone know what is the reverse of `git submodule add` ?13:37
*** raoul_ has quit IRC13:40
*** raoul_ has joined #buildstream13:40
tpollardsome combo of deinit and rm I think13:41
tristantpollard, Apparently `git rm` does it13:41
tristannow that I have google back :-S13:41
*** nimish has quit IRC13:42
*** nimish has joined #buildstream13:43
Nexustristan: Having finally gotten my head around what was discussed earlier, just to comfirm. Are you suggesting that we do a "build all" which will fail/error on incompatible elements *unless* you add a "skip-incompatible" to the project configuration?13:47
tristanNexus, I'm suggesting that the "build all" functionality fails if there are incompatibilities, in which case you can always set a default target to be more explicit about what you want13:50
tristanNexus, which cs-shadow seems to be fine with now that he understands it13:50
tristanNexus, I'm also suggesting that at some undetermined future point, we can add the "try to load as much as you possibly can" thing with an additional switch for it, and that this initial approach doesnt make that impossible13:51
tristanNexus, this is after the conversation which happened with cs-shadow above in the recent backlog13:51
Nexusah13:53
* Nexus reads backlog13:53
*** raoul__ has joined #buildstream14:02
*** raoul_ has quit IRC14:03
*** nimish has quit IRC14:11
*** mtreinish has joined #buildstream14:14
*** lachlan has joined #buildstream14:17
Nexustristan: ok, that makes sense14:17
Nexustristan: are we going for defaulting to `bst build` doing the build or a "--world" flag or equivalent14:17
*** nimish has joined #buildstream14:17
*** nimish has quit IRC14:22
*** nimish has joined #buildstream14:23
gitlab-br-bottristanvb opened MR !996 (tristan/submodule-warnings->master: Implement submodule warnings) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/99614:24
tristanNexus, (cs-shadow, juergbi ^^^^); I believe consensus is mostly that we don't need any specific flag, and it would be the behavior when launching `bst build` without arguments from somewhere inside the project directory (as opposed to inside a workspace directory, which has different consequences)14:27
juergbi+114:27
tristanjuergbi, Care to give a lookover of !996 ?14:27
tristanI think it's ready14:27
juergbiwill do14:28
*** nimish has quit IRC14:28
tristanThanks :)14:28
cs-shadowI agree, so long as we are consistent with this behavior, i.e. with commands other than build14:28
*** nimish has joined #buildstream14:28
cs-shadowAlso see #789 that's related14:28
gitlab-br-botIssue #789: Expected behavior for running commands with no elements specified? https://gitlab.com/BuildStream/buildstream/issues/78914:28
tristancs-shadow, That is a good point, we'd probably want fetch,track,etc to behave the same way right ?14:29
tristanI guess that is exactly what #789 says14:29
cs-shadowyeah, I was just not sure which way we wanted to go, hence the question mark at the end. But, if we are going down the route of building everything when no elements are specified, we should also do the same with all the other commands that accept a list of elements14:30
cs-shadowlike fetch, track, show etc14:30
tristanjuergbi, As a side note, I found that this validate_cache() can be useful in other places... for instance we can have a more early error if a `tar` source configurations says "I want to extract only the directory 'foo/'" but the tarball has no such directory matching14:31
juergbitristan: ok, that particular case might not be that cheap, though, so not sure whether we should14:31
tristanjuergbi, :)14:31
tristanyeah14:31
tristanI didn't go ahead and do it, but it does make logical sense14:32
tristanjuergbi, maybe in a future with SourceCache it might make sense to shift some processing to different places and maybe in that world it will be cheap14:32
tristancs-shadow, I'm a *little* bit concerned about 'show' in this case but I guess we can "just do it" - I.e. specifically I expect the order of elements listed by show to have very specific staging order meaning14:33
*** nimish has quit IRC14:33
*** nimish has joined #buildstream14:34
jonathanmawhmm, bst source-checkout creates an empty directory if a workspace is open.14:48
jonathanmawIs there ever a conceivable reason to use bst source-checkout while you have a workspace open?14:48
tristanI'm sure there is14:49
tristanIt could be scripted for instance, part of something else14:49
jonathanmawokay, I guess the normal behaviour would be to return exactly the same thing whether a workspace is open and has been fiddled with, or not.14:50
* jonathanmaw goes code diving to find the root cause14:51
tristanjonathanmaw, I guess I'm late answering things on the mailing list, but there was an idea to have a `source` subcommand to be more symmetrical with `artifact` subcommand no ?14:51
tristanI saw that suggestion fly by and thought it was nice14:51
tristanbut then, it's a tiny detail, and can be changed before/after doing the actual implementation14:51
juergbitristan: !996 looks good to me. I've mainly looked at the first two commits14:52
gitlab-br-botMR !996: Implement submodule warnings https://gitlab.com/BuildStream/buildstream/merge_requests/99614:52
juergbitristan: yes, but it would be good to still change this all this year14:53
*** nimish has quit IRC14:54
juergbi(well, depending on when we'll actually release 1.4)14:54
*** nimish has joined #buildstream14:54
tristanjuergbi, Thanks, the first two commits are the bulk of it, besides that there is the ref-not-in-track re-implementation (corresponding tests still work and are unchanged), and the added new tests14:54
* jonathanmaw creates an issue for the source-checkout weirdness14:54
tristanjuergbi, I'll postpone it due to all the stuff we want to get in, and since we made the plan to make the release early mid-cycle I think it's fair... will send email tomorrow14:55
tristanjuergbi, I'd *like* to also make a 1.3.1 dev release with that, but wonder if we can make the arches non-breaking before a snapshot goes out14:55
juergbirestoring arch compatibility would indeed make sense before release. maybe I can take a stab at this at some point over the weekend14:58
juergbiI think it's ok if 1.3.1 is released a bit later. before Christmas would definitely be good, though14:58
tristanYeah, I was wanting it to be this friday but, it could be next week :D14:59
tristanAnyway from here on out, I will be giving it a lot of smoke testing14:59
gitlab-br-botjonathanmaw opened issue #807 (bst source-checkout creates an empty checkout if a workspace is open) on buildstream https://gitlab.com/BuildStream/buildstream/issues/80715:00
juergbiI'm also trying to fix up or at least file loose ends that I encounter15:01
*** tristan has quit IRC15:03
*** nimish has quit IRC15:04
*** nimish has joined #buildstream15:04
Nexusjuergbi: Where can i add a "Default-Element:" field to the project.conf?15:10
*** nimish has quit IRC15:10
juergbiI don't see a suitable existing groups, so it should probably be a new group15:10
juergbiit should definitely be a new group, though, not just a key, as we may want to support the 'skip-incompatible' idea in the future15:11
juergbigroup name default-target? not sure15:12
NexusWhere do i add that?15:13
juergbiprojectconfig.yaml and _project.py15:14
gitlab-br-bottristanvb merged MR !996 (tristan/submodule-warnings->master: Implement submodule warnings) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/99615:14
Nexusjuergbi: What do you mean by group15:16
Nexus?*15:16
juergbiI mean top-level dict15:17
juergbilike `shell`15:18
Nexusi.e. alongside variables, environment, sand-box etc?15:18
Nexussandbox*15:18
juergbiyes15:19
Nexuskk15:19
juergbiif there is an existing group that fits, that would be great as well, of course, but I don't see any15:20
juergbiwould be good to think about possible other options that would fit in the same new group to come up with the best group name15:20
juergbibut that's difficult, of course15:20
*** tristan has joined #buildstream15:34
jonathanmaw\o/ the source checkout problem is simply a matter of setting the right option!15:38
gitlab-br-botjmacarthur opened (was WIP) MR !991 (jmac/cache_artifacts_with_vdir->master: Cache artifacts with virtual directories instead of filesystem.) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/99115:46
gitlab-br-botjonathanmaw opened MR !997 (jonathan/source-checkout-workspace->master: Fix bst source-checkout not working with open workspaces) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/99715:47
jonathanmawtristan: do you have a minute to check over https://gitlab.com/BuildStream/buildstream/merge_requests/997 ?15:49
*** nimish has joined #buildstream16:07
*** raoul__ has quit IRC16:27
jonathanmawWSalmon, juergbi: do you have time to look at https://gitlab.com/BuildStream/buildstream/merge_requests/924 ?16:31
juergbijonathanmaw: will add it to my list16:32
jonathanmawtvm juergbi16:32
jjardonCan I have reviews of https://gitlab.com/BuildStream/buildstream-docker-images/merge_requests/72 , please?16:36
*** nimish has quit IRC16:37
*** nimish has joined #buildstream16:37
*** raoul__ has joined #buildstream16:39
*** raoul__ has quit IRC16:45
cs-shadowjjardon: done16:46
jjardontvm16:46
*** raoul__ has joined #buildstream16:47
*** nimish has quit IRC16:47
*** nimish has joined #buildstream16:48
gitlab-br-botcs-shadow opened issue #809 (Allow cross-junction dependencies to be listed as strings) on buildstream https://gitlab.com/BuildStream/buildstream/issues/80916:52
*** nimish has quit IRC16:53
*** nimish has joined #buildstream16:53
*** nimish has joined #buildstream16:53
gitlab-br-botcs-shadow approved MR !997 (jonathan/source-checkout-workspace->master: Fix bst source-checkout not working with open workspaces) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/99716:54
phildawsonjuergbi, I think I've resolved your latest comments on !95916:55
gitlab-br-botMR !959: Retire bst source bundle command https://gitlab.com/BuildStream/buildstream/merge_requests/95916:55
juergbiok, will review the update16:56
phildawsonThanks16:56
gitlab-br-botcs-shadow opened MR !998 (chandan/junction-dependency-format->master: loader: Allow dependencies to use ":" to refer to junctioned elements) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/99816:56
*** alatiera has quit IRC17:12
*** alatiera has joined #buildstream17:12
*** alatiera has quit IRC17:16
*** finn has quit IRC17:37
*** lachlan has quit IRC17:43
*** alatiera has joined #buildstream17:44
gitlab-br-botjonathanmaw closed issue #807 (bst source-checkout creates an empty checkout if a workspace is open) on buildstream https://gitlab.com/BuildStream/buildstream/issues/80717:46
gitlab-br-botjonathanmaw merged MR !997 (jonathan/source-checkout-workspace->master: Fix bst source-checkout not working with open workspaces) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/99717:46
*** tpollard has quit IRC17:50
juergbiskullman: replied to your ML post17:51
skullmaninteresting, I looked at allow_interspersed_args when I started, though can't remember why I concluded it wasn't sufficient17:56
skullmanmay just have been that I like being able to have interspersed args in general17:56
*** lachlan has joined #buildstream17:56
juergbiI think disabling it at least for the shell command is reasonable. option position anyway already matters (group vs. command options)17:59
juergbiwhether we want to disable interspersed args for other commands that don't need command nesting, I don't know18:00
juergbiarbitrary mixing generally doesn't make sense, imo. however, putting options at the end can sometimes be convenient18:01
skullmanaye, comes in handy when you just need to add one extra option to a command already in your shell history18:02
*** nimish has quit IRC18:03
skullmanit's vexing that we've got to jump through these hurdles to cope with click.py getting in the way18:04
*** nimish has joined #buildstream18:04
skullmanthough for shell, aye, the common case is that we'd never expect anyone to expect that options after the arguments work18:04
*** nimish has quit IRC18:09
*** nimish has joined #buildstream18:10
*** nimish has quit IRC18:14
*** nimish has joined #buildstream18:15
*** nimish has quit IRC18:25
*** nimish has joined #buildstream18:25
*** jonathanmaw has quit IRC18:26
*** raoul__ has quit IRC18:27
*** nimish has quit IRC18:30
*** nimish has joined #buildstream18:30
*** nimish has quit IRC18:35
*** nimish has joined #buildstream18:36
*** lachlan has quit IRC18:39
*** nimish has quit IRC18:42
*** xjuan has joined #buildstream18:51
*** raoul__ has joined #buildstream19:12
*** tristan has quit IRC21:33
*** finn has joined #buildstream21:38
*** finn has quit IRC21:41
*** eMBee has joined #buildstream21:56
*** xjuan has quit IRC22:07
*** xjuan has joined #buildstream22:26
gitlab-br-botvalentindavid opened issue #810 (Client should open only one HTTP2 connection to CAS cache server) on buildstream https://gitlab.com/BuildStream/buildstream/issues/81022:28
*** toscalix has quit IRC23:17

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