IRC logs for #buildstream for Friday, 2019-03-01

*** kapil___ has quit IRC01:42
*** nimish has quit IRC03:22
*** kapil___ has joined #buildstream05:00
*** mohan43u has quit IRC05:39
*** mohan43u has joined #buildstream05:42
gitlab-br-botmarge-bot123 merged MR !1188 (juerg/lazy-directory-digest->master: _casbaseddirectory.py: Calculate directory digest lazily) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/118805:56
*** tristan has joined #buildstream07:12
juergbitristan: in case you have a (different) opinion on error type hierarchy: https://gitlab.com/BuildStream/buildstream/merge_requests/1175#note_14621652307:21
*** alatiera has joined #buildstream07:47
*** ChanServ sets mode: +o tristan07:59
tristanI'm having a hard time answering that07:59
*** paulsherwood has joined #buildstream08:12
*** paulsherwood has joined #buildstream08:12
*** sebastian has joined #buildstream08:40
*** sebastian has quit IRC08:48
*** benschubert has joined #buildstream08:57
benschubertDoes anyone has any opinion about https://gitlab.com/BuildStream/buildstream/merge_requests/1194 ? Otherwise I'll merge it soon08:57
juergbino objections from me09:00
juergbimaybe prefix the commit message with 'tests: '09:01
tristanbenschubert, Seems to me we now have a mixture of variables with HAVE_ and have removed others which represent the presence of an existing CLI09:01
benschubertjuergbi: sure!09:01
tristanDo we need to remove all the "HAVE_" at the same time as adding resolved host CLI paths ?09:01
tristanJust looks generally less consistent and readable09:02
tristanalso using GIT instead of _site.GIT looks less readable to me09:02
gitlab-br-botaevri opened MR !1196 (aevri/nonecach2->master: cascache: limit 'infinite' cache to volume size) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/119609:03
tristanbenschubert, aside from stilistic opinionated comments, we should really prefix that commit message subject line with "tests: ...." or such09:04
tristanlooking at the subject line of the patch leads me to think this is about _site.py in BuildStream, not related to tests09:04
benschuberttristan: there are two checks we are doing: do we have the command, or do we have a library/a recent enough command. For me this is two different things. We can have GIT and HAVE_GIT, but what's the point? if GIT is None, then I don't have git. I'm happy to use _site.GIT, but then that would mean doing the same for everything coming from sites, to be consistent, and I'm not sure this is nice09:04
tristanbenschubert, that is how we use _site.py in BuildStream, and is generally in the coding guidelines09:05
benschuberttristan: then moving every HAVE_* to _site.HAVE_* ? I'm happy to do that, in a separate commit in the same MR if yes09:05
tristanbenschubert, i.e. we dont `import function from utils` and use the function, we always call utils.function() so that it is clear when reading the code where this comes from and what it is09:06
benschuberttristan: so adding a second commit, which renames everything we access from _site to use _site.* would be good with you?09:08
tristanbenschubert, I would personally like to keep the HAVE_s and only add the tools, so that I can blindly trust that "If there is a thing, there is always a HAVE_, which I should use in the skipif() statements for clarity"09:11
tristanIf we change everything to use `_site.*` everywhere, that will also make sense to conform to the overall style. I think it was less important when everything we imported from there was a HAVE_SOMETHING (i.e. it was obvious by looking at that where it comes from)09:12
gitlab-br-botaevri approved MR !1194 (bschubert/fix-test-paths->master: store full host tools command in sites.py variables check.) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/119409:14
benschuberttristan: I would say we have a different version of obvious, since HAVE_GIT was True and the tests wouldn't find my git09:14
benschubertbut anyways09:15
benschuberttristan: So export the variables, and use them from _site.X I won't bother renaming all of this more than that then. Would that be good?09:15
tristanWhy were your tests not finding your git to begin with ?09:16
tristanBecause the individual tests failed to use the API to get a host tool ?09:16
tristan<benschubert> tristan: So export the variables, and use them from _site.X I won't bother renaming all of this more than that then. Would that be good?09:17
tristanRegarding that, if I understand, your patch would only *add* the new shortly named all caps host tools, and those additions would be accessed via _site.FOO, causing the whole patch to be much smaller and not changing the HAVE_FOO stuff at all09:18
benschuberttristan: because they were checking HAVE_GIT and then using "git" directly, while redefining the PATH. This is indeed a bug, bug a bug that would be obvious if we didn't have both09:18
tristanThat would be fine with me yeah09:18
benschuberttristan: ok I'll refactor it like that then09:18
benschubertthanks09:18
tristanRight, using "git" directly off the bat seems to be the underlying bug, but resolving them once from _site.py is a micro optimization and should help prevent those bugs from occurring09:19
tristancan agree with that09:19
benschubertOn another note, we have ïmport cli"in many of our test files, in order to have the fixture available. Would it be fine with people if I move this to a conftest.py?09:20
tristanI would be very happy if we can remove conftest.py completely09:20
benschubertwhy?09:20
benschubertI mean it's the canonical way of doing it with pytest09:21
tristanI spent the greater part of a year wondering what that file was and how it integrates with tests and what invokes it09:21
tristanuntil I finally had to touch it and added a big fat comment at the top09:21
tristanit looks like black magic for anyone who doenst happen to be really close friends with pytest09:21
benschuberttristan: it's in the docs about fixtures on pytest, I don't see how this is black magic. We can expect people coming to the project to at least read the documentation about pytest if they are not familiar with it09:22
tristanexactly, its hidden all the way in documentation09:28
*** raoul has joined #buildstream09:29
tristantests are just programs which exercise the codebase, one should be able to open up a test file and understand what is going on from there09:29
tristanbenschubert, the situation would be *greatly* improved if pytest had chosen a sensible name for it09:30
tristanlike say, pytest_globals.py or something with pytest at least in the name09:30
benschuberttristan: I mean, wait I don't have a TestCase class, how does that work? It's the same thing, people need to know the basics of pytest to be able to use pytest09:30
tristanI have never needed to know about the magic conftest.py, until making tests parallelizable with detox09:31
tristanIf I look at a test, I can tell from the imports it is using what fixtures come from09:32
tristanit is a bit messy that there is a bunch of pytest module stuff "automatically in context", but even that is less frustrating than conftest.py09:32
benschuberttristan: And then we realize we have two differents paths for cli, and 2 different cli, named cli, cli2 and cli_integration. I'd rather have a coherent name in conftest.py09:33
tristanAnyway, we have a comment in there now so at least people can see what it is09:33
tristanI consider that a bug honestly, we should kill cli_integration09:33
tristanThere is really not much special about cli_integration except for a hack that it does on the project.conf, which really should not work differently for integration tests and regular tests09:34
tristanThat and the configuration (shared cached sources and artifacts), but that could be handled by virtue of marking the tests as integration tests, without having a separate fixture09:35
*** jonathanmaw has joined #buildstream09:37
benschuberttristan: ok, at least I can have a look to kill this.09:37
benschubertalso, would a PR adding linting to the tests (slightly relaxed) would have a chance to pass?09:37
tristanI don't know :)09:38
benschubertok I'll try then09:38
tristanWould be good to add linting of tests, don't know how many violations we have :)09:38
benschuberttoo many but I have a WIP PR to clean part of that already09:39
*** sebastian has joined #buildstream09:48
jennistristan, heh, that /home/jennis/banana.yml thing was just to show what was composited, I'll remove it and file an issue09:55
benschuberttristan: https://gitlab.com/BuildStream/buildstream/merge_requests/1194/ does this suites you better? (assuming all tests pass)10:02
tristanbenschubert, Sure !10:05
tristanjennis, thanks ! it will make it easier to solve :)10:05
benschuberttristan: great I'll assign it to marge then10:06
gitlab-br-botaevri opened MR !1197 (aevri/unused_commandname->master: buildelement: rm unused 'cmd_name' argument) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/119710:18
laurenceI need to amend some of the security around marge10:25
laurenceat the moment, anyone can assign an MR to the bot and get it merged: even if, for example, it's not been approved or they don't have permissions to merge.10:25
laurenceI'm looking into it now10:25
tristanlaurence, interesting oversight - not particularly worried about unwelcome commits landing (it's not like we really have bad actors to worry about I think)10:35
tristanbut good to clear up in general10:35
*** lachlan has joined #buildstream10:35
gitlab-br-botmarge-bot123 closed issue #936 (Tests fail if host tools are not in a standard directory) on buildstream https://gitlab.com/BuildStream/buildstream/issues/93610:41
gitlab-br-botmarge-bot123 merged MR !1194 (bschubert/fix-test-paths->master: store full host tools command in sites.py variables check.) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/119410:41
*** kapil___ has quit IRC10:54
gitlab-br-botaevri opened MR !1198 (aevri/unused_color->master: runcli: rm unused 'color' and '**extra' params) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/119810:58
*** lachlan has quit IRC11:10
gitlab-br-botBenjaminSchubert opened MR !1199 (bschubert/no-subprocess-decode->master: refactor: remove the need to decode output from subprocess) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/119911:17
*** lachlan has joined #buildstream11:21
*** lachlan has quit IRC11:31
gitlab-br-botLaurenceUrhegyi opened issue #937 (Plug-ins Story: tasks) on buildstream https://gitlab.com/BuildStream/buildstream/issues/93711:35
*** deon has joined #buildstream11:37
*** deon has quit IRC11:40
*** lachlan has joined #buildstream11:43
gitlab-br-botjennis opened issue #938 (Overwrite does not raise error when we try to overwrite a non-existent node) on buildstream https://gitlab.com/BuildStream/buildstream/issues/93811:47
jennistristan, are you around?11:47
tristanjennis, ummm if you can gimme 10min... just proof reading this draft...11:47
jennisYeah no worries, just ping me when you're free11:48
*** lachlan has quit IRC11:49
*** lachlan has joined #buildstream11:52
gitlab-br-botcs-shadow approved MR !1197 (aevri/unused_commandname->master: buildelement: rm unused 'cmd_name' argument) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/119711:54
*** lachlan has quit IRC11:57
*** lachlan has joined #buildstream11:59
*** lachlan has quit IRC12:04
tristanjennis, ... what's up ?12:06
jennisHey tristan, I just wanted to discuss with you how we think the composition should work with directives12:07
jennisI've raised an issue and added a test12:07
jennishttps://gitlab.com/BuildStream/buildstream/issues/93812:07
tristanAh12:07
tristanjennis, you mean it is not clear what the expected behavior should be ?12:08
jennisKind of12:08
jennisFirst point is that the code isn't doing what the documentation says12:08
jennisand I think you and Kinnison agreed the other day that if we try to overwrite a list that doesn't exist in the source, when we composite, we should get an error, yes?12:08
tristanThe documentation is almost certainly more correct in this case (while sometimes it is not, in this case I'm pretty sure it is)12:08
gitlab-br-botcs-shadow opened issue #941 (Enable pylint for tests) on buildstream https://gitlab.com/BuildStream/buildstream/issues/94112:09
tristanThat is expected yes, when one uses (=), that is expected12:09
jennisahh ok, so the tests I've added show that this doesn't happen and the fix for list overwrite specifically probably won't be too difficult12:09
jennisBut, I wondered whether this should also happen for (<) and (>) when we try to do this to a non-existent node in the source12:10
tristanI.e. when the thing you are compositing on top of lacks the list you are overwriting, then using (=) to overwrite triggers an error12:10
jennis?12:10
jennisYes, I agree, so we should definitely implement that12:10
jennisbut what about when we try to prepend/append and the source lacks the list?12:10
tristanYes, (<) and (>) cause an error when appending/prepending to a non-existent list12:11
tristanif this does not happen with includes, I expect is it only with include lists where this fails to happen12:11
jennisRight, ok, have you seen my test? With random: {(=): [foo]}?12:11
tristanThe documentation is more explicit about this for (=), that is because it is the only real difference from specifying a list12:12
tristanI.e. specifying a list without a directive will also overwrite the underlying list12:12
tristanBut will not trigger any error12:12
jennisOr it will *create* the list...?12:12
tristanjennis, Right, but that is pretty much the same thing - if a list happens to exist there already, it's not an error12:13
tristanit will be created on top of whatever was there12:13
tristanin the same way that a creating a string will replace whatever string might have been there before (if one was there)12:13
tristanI can't say that I can completely decompiled your test case into my understanding :)12:14
tristanlemme take another look12:14
jennisYeah ok I understand that12:14
jennisSo one thing that I'm unsure about12:14
jennisin my test case, we have a 'base' dict and an 'overlay' dict which we try to compose onto base12:15
jennisFor example, before compose base['foo'] = [1,2], if I have overlay['foo'] = {(>): [3,4] }, we get base['foo'] = [1, 2, 3, 4], right...?12:16
tristanKind of mixing notations a bit but yes that looks correct12:17
jennisNow, if we try: before compose overlay['random'] = {(>): [3,4] }, after composition, we get base['random'] = {(>): [3,4] }12:17
jennisIs that what we want...? Or do we want it to also throw an error in this case?12:17
tristanI dont think I follow12:18
jennisSo, when we tried to compose a key that existed in base (the source), the composition worked and we got a nice list out12:18
tristanok I think I understand12:19
jennisThen, when we try to compose a key that *does not* exist in base (the source), the composition creates an item in the source that has this directive in it12:19
tristanjennis, I believe you are missing out on an important part of composition, lemme check the code12:19
jennisProbably x)12:20
tristanjennis, remember that a pitfall of testing the _yaml API directly means that you have not yet exercised the complete load process12:20
tristanI think that a step is missing but lemme find it12:20
gitlab-br-botmarge-bot123 merged MR !1197 (aevri/unused_commandname->master: buildelement: rm unused 'cmd_name' argument) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/119712:20
tristanjennis, in real life _yaml.node_final_assertions() gets run12:23
jennisI'm getting the impression that all that needs to happen is that: if we have base['foo'] = [1,2] (and no other items), and try to compose overlay['random'] = {'(=)': ['cow'] }, we should raise a LoadError (and *not* base['random'] = {'(=)': ['cow']}, which is what currently happens12:24
tristanjennis, this is probably missing test coverage for the errors you are expecting12:24
jennisand the rest is working machinery12:24
tristanactually here: tests/format/listdirectiveerrors.py12:25
tristanthat is what tests it so far12:25
tristanBut maybe we need similar in tests/format/includes.py ?12:25
jenniswell yeah, I added one to format/include_composition.py, and one to internals/yaml.py that test this12:26
jennisbut perhaps thats a better place12:26
tristanjennis, to elaborate... We call _yaml.composite() in many places, and after compositing two dictionaries together, we cannot know if the result is intended to be composited on top of something else12:27
tristanAnd so we don't know if everything is resolved yet12:27
jennisAhh, so it's ok to have those dicts with the directives in them lying around12:27
tristanThat is why we have to run a recursive check at the end to ensure that all is finished12:27
jennisas chances are they'll get picked up along the way12:27
jennisif not, we error at the very end...12:27
jennis?12:27
tristanRight12:27
jennisgotcha, thanks for making that clear12:28
jennisI'll add a test and attempt a fix for the include directive12:28
jennis*add a test to the right place12:28
*** lachlan has joined #buildstream12:28
jennistristan, that is, if you think the test I added to tests/internals/yaml.py is in the wrong place?12:29
tristanjennis, Nice, thanks for looking into this !12:29
tristanjennis, I think that the actual issue we are seeing has to do with includes, and am more interested in a tests/format/ test case12:30
tristanFor example, a test in _yaml.py which runs _yaml.node_final_assertions() explicitly, does not guarantee that the core is calling _yaml.node_final_assertions() at the right times12:30
tristanwhile a test for cases in tests/format/includes.py would12:31
*** raoul has quit IRC12:32
tristanAdded tests in tests/internals/yaml.py are still useful of course, and it might be good to have a variation of test_list_composition() which checks for errors and uses _yaml.node_final_assertions()12:32
gitlab-br-botBenjaminSchubert opened MR !1200 (bschubert/more-pythonic-list-concat->master: refactor: Use [a, b, *c] instead of [a, b] + c when building list) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/120012:32
tristanBut personally I am more interested in the other, and wouldnt block a patch which lacks the _yaml level test enhancement12:33
tristanjennis, fwiw, my expectation is that a['foo']: { '(>)': [2, 3] } + b['foo']: { '(>)': [2, 3] } = c['foo']: { '(>)': [2, 3, 2, 3] }12:37
tristanI.e. appends are accumulative until the base list is discovered, and node_final_assertions() will catch cases where no base list was ever discovered12:38
jennisahh I see, with the expectation that somewhere along the line that then gets appended onto something['foo'], if not, load error12:39
jennisI think I understand it now, thanks12:39
*** alatiera has quit IRC12:48
*** nimish has joined #buildstream13:08
gitlab-br-botBenjaminSchubert opened (was WIP) MR !1195 (remove-dead-code->master: Remove dead code) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/119513:16
*** nimish has quit IRC13:23
*** nimish has joined #buildstream13:27
*** tristan has quit IRC13:44
*** raoul has joined #buildstream13:46
gitlab-br-botaevri approved MR !1200 (bschubert/more-pythonic-list-concat->master: refactor: Use [a, b, *c] instead of [a, b] + c when building list) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/120014:03
*** tristan has joined #buildstream14:05
*** ChanServ sets mode: +o tristan14:05
gitlab-br-bottpollard approved MR !1198 (aevri/unused_color->master: runcli: rm unused 'color' and '**extra' params) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/119814:07
gitlab-br-botraoul.hidalgocharman approved MR !1196 (aevri/nonecach2->master: cascache: limit 'infinite' cache to volume size) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/119614:23
jennistristan, I feel like I'm starting to see why this use-case wasn't caught before14:27
jennisMost of the time, if we define a list we want to explicitly overwrite, the name of the list will fail on the valid keys check, it seems14:27
jennisfor example, it may make sense to explicitly overwrite build-commands: for example, which is always going to be there, as it's an expected key14:28
jennisif I try to overwrite 'foo-commands', it'll fail because 'foo-commands'  is an unexpected key14:29
jennisAre there places where we can define lists that don't need to be 'expected'? For example, we can define a random 'variable' e.g. {variable: {foo: 'my variable'}}, but I'm not sure where we can do this for lists14:30
jennis?14:30
tristanUmmm, if you try to overwrite 'foo-commands' with (=) it will fail14:32
jennisYes, but that fails because 'foo-commands' is an unexpected key14:33
tristanasides from lists, there is no way to distinguish between the intention of overwriting something that exists, or simply setting a value14:33
jennisSo also fails without the '(=)'14:33
tristanright14:33
Kinnisonjennis: public data14:37
tristanRight, ummm: Are there places where we can define lists that don't need to be 'expected' is the question ?14:39
jennisaha yes it was14:39
jennisthanks Kinnison14:39
tristanI would say there are many places14:40
tristanFor instance, the initial declaration of build-commands is one of them14:40
tristanit is not expected where it is declared14:40
tristanAny plugin can expose configuration in the form of a list14:40
tristanpublic data is a bit higher up14:41
tristanand indeed I guess a more likely place, but at the same time one could have a use case for using (=) in an override of public data14:41
tristanso they get an error if ever they remove that public data14:41
tristaninterestingly, variables and environment which have deeper composition chains dont happen to have lists14:42
tristanbut composition logic should not really make any assumptions about that14:42
* tristan perhaps overlooked a probable motivation behind the question: How can I create a real world test case to assert this ?14:44
jennisyeah that's what I'm going for, or something that reflects what someone might sanely do14:45
*** alatiera has joined #buildstream14:51
*** kapil___ has joined #buildstream14:56
*** tpollard has quit IRC14:59
gitlab-br-botmarge-bot123 closed issue #906 (The logic to calculate the disk quota seems to be wrong) on buildstream https://gitlab.com/BuildStream/buildstream/issues/90615:18
*** nimish has quit IRC15:18
gitlab-br-botmarge-bot123 merged MR !1196 (aevri/nonecach2->master: cascache: limit 'infinite' cache to volume size) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/119615:18
*** nimish has joined #buildstream15:23
aevriRuh roh,  500s from gitlab15:41
aevriPhew, it's back.15:43
*** phildawson has quit IRC15:48
*** phildawson has joined #buildstream15:51
adds68Who can actually modify gitlab, wonders if we can get: https://gitlab.com/BuildStream/buildstream/issues/925, ticked off? :)15:52
*** lachlan has quit IRC15:54
* tlater[m] can adds68 :)15:55
adds68\o/15:55
gitlab-br-bottlater closed issue #925 (Set GitLab logo to use the new BuildStream logo/emblem) on buildstream https://gitlab.com/BuildStream/buildstream/issues/92515:55
gitlab-br-bottlater reopened issue #925 (Set GitLab logo to use the new BuildStream logo/emblem) on buildstream https://gitlab.com/BuildStream/buildstream/issues/92515:56
tlater[m]Oh, nevermind15:56
* tlater[m] misread the issue15:56
tlater[m]Might still have relevant permissions, let me check15:56
juergbidone15:57
juergbiah, only for group, also need for project15:57
adds68\o/ nearly there :)15:58
tlater[m]ta juergbi15:58
*** lachlan has joined #buildstream15:58
juergbidone15:58
* tlater[m] will miss the beaver :[15:58
adds68woohoo!15:58
adds68tlater[m] he is still the mascot, we could add him to the about section?15:58
tlater[m]He does deserve to be somewhere!15:59
tlater[m]Have we ever named him?16:00
tlater[m]I think tristan referred to him as tristan at some point16:00
tlater[m]Which was cute16:00
tlater[m]But it does feel a little to egocentric.16:00
juergbitlater[m]: he named him after you, of course ;)16:02
tlater[m]That's my point x)16:02
adds68tlater[m] https://gitlab.com/BuildStream/buildstream/wikis/Mascot-Source-Files16:02
*** raoul has quit IRC16:03
gitlab-br-botjuergbi closed issue #925 (Set GitLab logo to use the new BuildStream logo/emblem) on buildstream https://gitlab.com/BuildStream/buildstream/issues/92516:03
*** raoul has joined #buildstream16:06
tlater[m]ta adds6816:06
* tlater[m] wonders how adds68 ended up becoming buildstream's PR manager16:06
adds68haha! i think someone hit me on the head16:07
* tlater[m] wonders if a junction element can be "transferred"16:12
tlater[m]I.e., create a local element that directly pulls in a junction element16:12
tlater[m]So that you don't need to use the wordy filename: x junction: y thing to refer to the base platform all the time16:12
tlater[m]I suppose it's possible16:12
tlater[m]I just see nobody doing that16:13
tlater[m]Do we want to promote this?16:13
juergbitlater[m]: you've seen !998 ?16:13
gitlab-br-botMR !998: loader: Allow dependencies to use ":" to refer to junctioned elements https://gitlab.com/BuildStream/buildstream/merge_requests/99816:13
tlater[m]Not yet...16:13
tristanI didnt name the beaver !16:15
tristanBut I made a wise crack at a talk, saying that we affectionately call tlater[m] "tristan" because he's so bright... and also because it happens to be his name16:15
tlater[m]Ah, right16:15
tristanWhich might have also been a bit egocentric heh16:15
* tlater[m] will need to start a ML thread to name the beaver16:16
tristanone day we could have cool beaver hats, maybe with aggressive looking beaver teeth16:17
tlater[m]I just want a giant wrench16:18
tristanthen we could compete with vlc guys !16:18
tristanat conferences16:18
tlater[m]Hehe16:18
*** deon has joined #buildstream16:19
tlater[m]Is cs-shadow around?16:19
cs-shadowtlater[m]: heya!16:19
tlater[m]He is!16:19
tlater[m]I just saw !998 - the change that makes junction elements accessible using <junction>:<element>16:20
tlater[m]Do you think that that should be how we always use junctions?16:20
tlater[m]I'm thinking through how we'd use something like freedesktop-sdk on a new project16:20
tlater[m]Aimed at really new users16:20
tlater[m]And I feel like even that syntax is a little confusing16:21
tlater[m]Any thoughts regarding that?16:21
tristanThe colon is confusing ?16:21
tlater[m]Well, I suppose it's already confusing enough to depend on an element you can't inspect too easily16:21
cs-shadowdo you have a different syntax in mind?16:21
tlater[m]cs-shadow: I was going to hide it behind a separate element16:22
tristanMy thoughts are that the dictionary form allows for extensibility and we should keep the dictionary expressions of dependencies valid16:22
tlater[m]I.e., import the base element in a base.bst file and depend on that.16:22
tristanBut that the colon notation is also convenient16:22
* tlater[m] likes the notation16:22
tristanI.e. one thing that we still need to add to dependency declarations is "always rebuild"16:22
tlater[m]It's just that it's a bit magic for an intro project16:22
tristanwhich was initially added only to element types (like compose for instance), but technically should be a semantic of a dependency16:23
tristantlater[m], I think that it is consistent to use colon notation, as it appears in many places16:23
cs-shadowAgree with tristan that dictionary version should continue to work. I noticed that in our projects, we had many cross-junction dependencies. Having a separate element wasn't reasonable for that many elements, and the bst files were getting rather verbose and repetitive otherwise16:23
tristanI think that before cs-shadow's patch, we already supported it on the command line no ?16:24
cs-shadowyes16:24
tristani.e. I can open cross-junction workspaces like this16:24
cs-shadowbst show etc already support this16:24
tristanand it is also used to display cross-junction element names in the UI16:24
tlater[m]Ok, I'll use that then, just wanted to get some other thoughts on it, thanks!16:24
tristanright, in bst show and in any bst command which runs a session16:24
tristancross junction tab-completion would be sweet too, but tricky and and sometimes impossible (before the junction is fetched)16:27
tlater[m]Ooh, that does sound rather cute16:27
tlater[m]It would make explaining junctions so much easier too16:27
tristanprobably not the most valuable use of developer hours at this point, but would definitely be nice to have16:28
cs-shadowit will be nice to have bash completions working at all when installed with `--user`16:30
gitlab-br-botmarge-bot123 merged MR !1198 (aevri/unused_color->master: runcli: rm unused 'color' and '**extra' params) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/119816:39
*** deon has quit IRC17:01
*** deon has joined #buildstream17:01
*** deon has quit IRC17:04
benschubertI'll assign !1195 to marge soon if nobody else wants to review it. let me know :D17:34
gitlab-br-botMR !1195: Remove dead code https://gitlab.com/BuildStream/buildstream/merge_requests/119517:34
gitlab-br-botaevri approved MR !1195 (remove-dead-code->master: Remove dead code) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/119517:34
*** phildawson has quit IRC17:35
benschubertidem for !1199 (as soon as I have aevri's approval)17:37
gitlab-br-botMR !1199: refactor: remove the need to decode output from subprocess https://gitlab.com/BuildStream/buildstream/merge_requests/119917:37
gitlab-br-botcs-shadow opened MR !1201 (chandan/remove-unused-pytestmark->master: tests: Remove unused `pytestmark` variable) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/120117:48
gitlab-br-botaevri approved MR !1199 (bschubert/no-subprocess-decode->master: refactor: remove the need to decode output from subprocess) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/119917:48
*** lachlan has quit IRC18:05
*** raoul has quit IRC18:18
*** jonathanmaw has quit IRC18:22
gitlab-br-botcs-shadow opened MR !1202 (chandan/remove-redundant-pytest-mark->master: tests: Remove redundant integration pytest markers) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/120218:41
gitlab-br-botcs-shadow closed MR !1201 (chandan/remove-unused-pytestmark->master: tests: Remove unused `pytestmark` variable) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/120118:43
gitlab-br-botBenjaminSchubert approved MR !1202 (chandan/remove-redundant-pytest-mark->master: tests: Remove redundant integration pytest markers) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/120218:45
gitlab-br-botaevri approved MR !1202 (chandan/remove-redundant-pytest-mark->master: tests: Remove redundant integration pytest markers) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/120218:45
gitlab-br-botmarge-bot123 merged MR !1200 (bschubert/more-pythonic-list-concat->master: refactor: Use [a, b, *c] instead of [a, b] + c when building list) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/120019:04
tristancs-shadow, I don't think that is possible (completions with --user installation, i.e. no system integration), but with some tox.ini hackery, we might get it to work in a shell launched with `tox -e venv -- sh`19:36
tristancould even do some fancy things like make the tox env modify $PS1 and make the shell easy to distinguish, and disable the part where tox installs a package for that env - seems an overall nicer developer experience than `pip3 install --user .`19:38
tristaniiuc, not doing the packaging thing would have the same effect19:38
gitlab-br-botmarge-bot123 merged MR !1195 (remove-dead-code->master: Remove dead code) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/119519:49
cs-shadowtristan: yeah, that's a bit sad. I am also not sure how practical is it to recommend tox to end-users (which is what I had in mind initally)20:24
* cs-shadow needs to go home now20:24
gitlab-br-botmarge-bot123 merged MR !1202 (chandan/remove-redundant-pytest-mark->master: tests: Remove redundant integration pytest markers) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/120220:31
tristancs-shadow, no but ultimately `pip3 install --user .` is not either21:23
*** benschubert has quit IRC21:38
gitlab-br-botmarge-bot123 merged MR !1199 (bschubert/no-subprocess-decode->master: refactor: remove the need to decode output from subprocess) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/119921:40
*** tristan has quit IRC22:02
*** kapil___ has quit IRC22:25
*** benschubert has joined #buildstream22:58
*** Kinnison has quit IRC23:05
*** Kinnison has joined #buildstream23:05
doras[m]Fancy new logo, I see.23:35

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