IRC logs for #buildstream for Wednesday, 2017-11-08

*** valentind has left #buildstream00:04
*** laurenceurhegyi has quit IRC00:09
*** paulsherwood has quit IRC00:10
*** benbrown has quit IRC00:10
*** laurenceurhegyi has joined #buildstream00:11
*** paulsherwood has joined #buildstream00:15
*** benbrown has joined #buildstream00:15
*** jude has joined #buildstream00:25
*** tristan has joined #buildstream06:16
*** jude has quit IRC06:35
gitlab-br-botbuildstream: issue #133 ("Bash completions dont complete `--except` arguments") changed state ("closed") https://gitlab.com/BuildStream/buildstream/issues/13307:59
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 1 commit (last: _frontend/main.py: Fix #133 - make completions work for --except arguments) https://gitlab.com/BuildStream/buildstream/commit/2780cdbde866a65108d10d030fe7d40015df1b2707:59
gitlab-br-botbuildstream: merge request (sam/overwrite-list-with-empty-list->master: Allow overwriting a list with an empty list using (=) operator) #141 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/14108:03
gitlab-br-botpush on buildstream@sam/overwrite-list-with-empty-list (by Tristan Van Berkom): 2 commits (last: _frontend/main.py: Fix #133 - make completions work for --except arguments) https://gitlab.com/BuildStream/buildstream/commit/2780cdbde866a65108d10d030fe7d40015df1b2708:03
*** jude has joined #buildstream08:03
gitlab-br-botbuildstream: merge request (sam/overwrite-list-with-empty-list->master: Allow overwriting a list with an empty list using (=) operator) #141 changed state ("merged"): https://gitlab.com/BuildStream/buildstream/merge_requests/14108:39
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 1 commit (last: Allow overwriting a list with an empty list using (=) operator) https://gitlab.com/BuildStream/buildstream/commit/34ba445fd1963acada0733c196483c98a57fd75308:39
gitlab-br-botbuildstream: Sam Thursfield deleted branch sam/overwrite-list-with-empty-list08:39
gitlab-br-botbuildstream: issue #147 ("Compose element loses symlink modifications from integration commands") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/14708:57
gitlab-br-botbuildstream: merge request (compose-integration-delete->master: Handle removed files from integration in compose plugin) #142 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/14208:58
*** adds68 has joined #buildstream09:37
*** tiagogomes has joined #buildstream09:53
*** valentind has joined #buildstream09:53
*** ssam2 has joined #buildstream10:02
*** givascu has joined #buildstream10:14
*** givascu has quit IRC10:18
gitlab-br-botbuildstream: issue #148 ("Leaked directories when failing to push") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/14810:23
*** givascu has joined #buildstream10:23
*** ssam2 has quit IRC10:33
*** ssam2 has joined #buildstream10:33
tlatertristan: Do you mind mixing old-style tests with new-style tests in the same module?10:42
tristantlater, Nah I dont mind, they should all become new (I suspect what you mean by module, is in the same test directory)10:44
tlatertristan: Same file, rather than directory10:44
tristantlater, I migrated the source tests like this; one by one until the last one was gone, and then removed the fixture10:44
tristantlater, I kind of mind that10:45
tristanyuck :-/10:45
tristanwhich are we talking here ?10:45
tlatertristan: pipeline loading10:45
tlaterI think the except stuff groups well with that10:45
tlaterThough I suppose I can make a separate file for that10:45
tlatertests/pipeline/load.py, to be exact10:46
tristanweird10:47
tristanI wonder why those tests have skipif not HAVE_ROOT ?!10:47
tristanWhy would we need root to load a pipeline and check the order ?10:47
tlatertristan: That is pretty weird10:48
tristantlater, on the other hand, how about pitching in with the technical debt and just convert the whole tests/pipeline/load.py case ?10:48
tristanIt looks ridiculously easy to do with `bst show` output and keeping the same test data around10:49
tlaterWell, I was going to suggest that, but thought you'd consider merging the except stuff higher priority.10:49
tlaterSo yeah, happily :)10:49
tristangreat, thats better10:49
* tlater will also try and see why on earth this has HAVE_ROOT10:49
tristanyeah that should go, I have no clue why10:49
tristanjuergbi, since you're taking over secretary this month, can you just set a wee bit of time aside to figure out how to use GNOME's "Services" bot to do it's meetbot features and use that to log the meeting ?11:06
juergbiwill take a look11:07
tristanit should hypothetically make life easier, anyway11:07
juergbisure11:07
gitlab-br-botbuildstream: merge request (git-element-origin->master: Change origin to point at source repo) #143 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/14311:16
*** nexus has joined #buildstream11:39
gitlab-br-botbuildstream: Sam Thursfield deleted branch sam/manifests11:53
*** valentind has quit IRC11:53
*** jonathanmaw has joined #buildstream11:59
tristanjonathanmaw, btw, regarding the pep 3102 issue, your API surface is shrinking once again12:02
tristanjonathanmaw, I'm obliterating Context from the public API at the moment12:02
jonathanmawtristan: good to hear! I couldn't see anything that needed changing, but that's a lot less uncertainty for me to deal with12:03
tristanyeah so the map is basically http://buildstream.gitlab.io/buildstream/pluginauthoring.html#core-framework12:04
tristanbut Context will disappear very soon :)12:04
* tristan also spotted an inconsistency, or something I find rather weird12:05
tristanwe have --message-lines (amount of lines to print in large messages, typically file overlap warnings for instance)12:06
tristanAnd we have --error-lines (amount of lines to read from the end of the build log and display when an error occurs)12:06
tristanThis seems too much no ?12:07
tristanI mean, couldnt we just have *one* config option / CLI param for these, instead of two ?12:07
tristanAny opinions about this ? and what would be a good name for it ?12:08
* tristan cant think of a good reason to really need to configure one without the other12:09
ssam2i had never really thought about either12:19
ssam2the default is obviously pretty OK12:20
ssam2so yeah, condensing into one option makes sense for me12:20
tristanyeah, I'm in pre 1.0 API cleanup mode12:20
tristanI'm thinking... maybe --context-lines ?12:20
tristanas a name ?12:20
tristanor --max-context-lines12:21
tristanor maybe not context...12:21
ssam2--log-preview-lines ... ?12:24
tlaterIs there any way to get the 'kind' of an element using `bst show`? I have a feeling I won't manage a 100% conversion...12:27
gitlab-br-botpush on buildstream@refactor-private-context (by Tristan Van Berkom): 1 commit (last: Refactor: Move context.py -> _context.py) https://gitlab.com/BuildStream/buildstream/commit/213d9072b684d2dff78d8b4f1c7cfa9d6335b0d012:27
gitlab-br-botbuildstream: merge request (refactor-private-context->master: Refactor: Move context.py -> _context.py) #144 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/14412:28
tristanhrmmmm12:35
tristanpreview sounds not bad either12:35
tristanmaybe it's a winner with preview vs context12:35
tristanwhat other logging related options do we have, maybe we can improve consistency12:36
tristan--verbose, --debug, --log-file12:37
tristanssam2, or just --log-lines maybe ?12:38
tristan--log-max-lines ?12:38
ssam2those are ok, but the name kind of implies that i might lose some log content altogether if i set it wrong12:39
ssam2log-preview-lines is too long, but it makes it clear that all the log gets written to disk no matter what value you set it too12:39
tristanAlso... there is --colors/--no-colors12:41
ssam2could reasonably be an env var, since it's only really useful in CI ?12:43
tristanEh, I rather not have env vars in API at all12:44
tristanRight now we do observe, I think only one12:44
tristanand it's internal to test cases12:44
tristanwhile running CI, is a use case12:45
tristan(i.e. running CI of a users project)12:45
tristanssam2, I dont think we should care about that length of cli option name fwiw, bash completions are there for this (and it's not that horribly long either)12:48
ssam2true12:48
tristanalso it's a matter of consistency, seldom used option but user should expect to have similarly named option in CLI as in user config12:49
tristannot dramatically important, although I do find myself using that option12:49
tristanwhen building full builds of GNOME with `--on-error continue` and `--log-file build.log`; I like to crank that number up12:50
* tristan still doesnt know if he likes the word 'preview' that much, though - but takes the point that it's more descriptive12:50
tristansigh, names12:51
tristan(/me is jumping back and forth and doing a huge build in the background at the same time, at least)12:51
*** paulsherwood has quit IRC13:00
*** benbrown has quit IRC13:00
*** nexus has quit IRC13:00
*** benbrown has joined #buildstream13:03
*** nexus has joined #buildstream13:03
gitlab-br-botbuildstream: merge request (refactor-private-context->master: Refactor: Move context.py -> _context.py) #144 changed state ("merged"): https://gitlab.com/BuildStream/buildstream/merge_requests/14413:08
*** paulsherwood has joined #buildstream13:08
*** anahuelamo has quit IRC13:10
*** nexus has quit IRC13:10
*** nexus has joined #buildstream13:10
*** anahuelamo has joined #buildstream13:10
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 1 commit (last: Refactor: Move context.py -> _context.py) https://gitlab.com/BuildStream/buildstream/commit/213d9072b684d2dff78d8b4f1c7cfa9d6335b0d013:13
gitlab-br-botbuildstream: Tristan Van Berkom deleted branch refactor-private-context13:13
*** nexus has quit IRC13:14
*** nexus has joined #buildstream13:14
gitlab-br-botpush on buildstream@sam/compose-log-splits (by Sam Thursfield): 4 commits (last: _frontend/main.py: Fix #133 - make completions work for --except arguments) https://gitlab.com/BuildStream/buildstream/commit/2780cdbde866a65108d10d030fe7d40015df1b2713:24
gitlab-br-botbuildstream: merge request (sam/compose-log-splits->master: Log details of artifact splitting when building 'compose' elements) #140 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/14013:24
*** givascu has quit IRC13:30
*** tristan has quit IRC13:37
tlaterShould this be Scope.RUN? https://gitlab.com/BuildStream/buildstream/blob/master/buildstream/element.py#L21913:47
tlaterI get that runtime dependencies of build dependencies are required to build build dependencies13:47
tlaterBut if that's what this is for then that should be Scope.ALL13:47
tlaterAnd if not it should be Scope.BUILD13:48
tlater^ line 221 for that13:48
* tlater assumes it's correct for now and doesn't touch the related test -- `bst show --scope run` unfortunately shows the behavior of Scope.BUILD there.13:56
*** tristan has joined #buildstream14:12
ssam2i have a buildstream where ctrl+c won't make it quit14:23
ssam2the ticker has also stopped, so that might be related14:24
ssam2and it's running lots of track and fetch tasks14:24
ssam2and is also at 100% cpu, and has been there my whole lunch break14:24
ssam2strace shows it continuously stat()ing the files/ subdir of the project repo (which is gnome-modulesets.git)14:27
tlaterssam2: That's #12814:27
tristantlater, what's the issue number for that ^^^^^^^^^^^^^^^ ?14:27
tristan:)14:27
tristanwe might promote that to critical I think14:27
* tlater hasn't run strace on it yet because I'm stupid, ta ssam2 :)14:28
paulsherwoodtristan: did you mention an alternative to sloccount recently?14:29
tristanpaulsherwood, I dont know sloccount, but I think it was radon14:30
tristanit does some interesting features besides SLOC/LLOC counts14:30
tristanssam2, did you setup a git view http thing on gnome7 ?14:31
tristanssam2, I forget how to access that14:31
ssam2yeah14:31
ssam2https://gnome7.codethink.co.uk/cgit/14:31
tristannice !14:31
tristanthanks :D14:31
ssam2i guess the continual stat() calls are caused by calling LocalSource.get_unique_key()14:32
*** tiagogomes has quit IRC14:35
* tlater has to learn the strace magic14:35
*** tiagogomes has joined #buildstream14:35
ssam2`strace -p <PID>`14:35
ssam2and then you just kinda guess what's going on from first principles14:35
tristanI also learned about python3-dbg package14:35
* ssam2 upgrading that right now :-) although i find it sometimes causes GDB to lock up14:36
tristanon debian anyway, if you install that, and reinstall buildstream with that14:36
tristanyeah, then gdb reports more interesting things14:36
tristanbut, you wont be able to infer from an already started process which was not started with the debug python14:36
ssam2oh, i think it works differently in Fedora14:37
tristanI tried pdb but, I wasnt even able to get off the ground14:37
ssam2pdb can't attach to running processes AFAIK14:37
tristanlost patience, went for real debugger14:37
tlaterThat one is a little tricky with an installed package unfortunately - I still haven't figured out how to use pdb sensibly outside of tests.14:37
ssam2buildstream seems to break pdb, actually14:37
ssam2i think we must do something to stdin that causes it to exit as soon as it starts14:38
tristanquite possibly, we do system level stuff and fork() without execve()14:38
ssam2the debug integration seems better in Fedora 26 actually :-)14:39
ssam2no more lock ups when doing `bt`14:39
ssam2so, here's my problem: https://paste.baserock.org/johigihoxe   :-)14:42
tlaterEww14:43
tlatertristan: Could you explain why we want Scope.RUN here: https://gitlab.com/BuildStream/buildstream/blob/master/buildstream/element.py#L221 ?f14:45
* tlater feels like that should probably be Scope.BUILD, but then it has been in the code base for 7+ months14:45
paulsherwoodtristan: radon looks like just the thing, thanks!14:48
tpollardis their any active/documented work in terms of reproducible with buildstream?15:01
tpollard*there15:04
ssam2all the bits should be there to do bit-for-bit reproducible builds, but i don't know of anyone rigorously doing them15:07
ssam2"all the bits", hah15:07
ssam2in particular, SOURCE_DATE_EPOCH is supported: https://gitlab.com/BuildStream/buildstream/blob/master/buildstream/data/projectconfig.yaml#L8915:07
gitlab-br-botpush on buildstream@except_intersections (by Tristan Maat): 17 commits (last: _pipeline.py: Adjust Planner.plan to multiple targets) https://gitlab.com/BuildStream/buildstream/commit/c05dff5457833afeb9887eee3177daeebc3528bc15:10
* ssam2 continues digging into the hang15:31
ssam2seems we have been waiting for pid 2097015:32
ssam2which was a track of apps/evolution.bst15:32
ssam2which succeeded15:32
ssam2there seems to be a callback running in the sigchld handler that is recalculating cache keys15:33
tpollardcheers ssam215:35
gitlab-br-botpush on buildstream@remove_dummy_dependency (by Tristan Maat): 1 commit (last: _pipeline.py: Remove DummyElement hack) https://gitlab.com/BuildStream/buildstream/commit/1599d13838d24f214719f7b290ea6e93786d9c9c15:39
ssam2this make sense so far; the track job completes, and then we recalculate all cache keys15:41
tristantlater, was having very late supper sorry I missed your question :-/15:41
tlatertristan: nw :)15:41
ssam2however, if i `continue`, wait a while and `break`, it looks like we are still always recalculating the cache keys for apps/evolution.bst15:42
tristantlater, thats an easy answer, it's a recursive function; what does the docs say about build time dependencies again ?15:42
tlatertristan: I know that they include their RUN dependencies for builds, but don't they need their BUILD dependencies?15:43
tristanAbsolutely not15:43
tristantlater, to build an element, you need the build time dependencies of that element only, to run15:43
tristani.e. the build time dependencies of the element need to run15:44
tristantlater, following build-of-build ends up with... all; then you completely lose the concept of "I only needed this to build something, so it goes out of scope when I need to run that something"15:45
tlaterAh, alright. The odd thing is then that `bst show --scope build` *does* include build dependencies, but not run dependencies15:45
gitlab-br-botpush on buildstream@remove_dummy_dependency (by Tristan Maat): 4 commits (last: _frontend/main.py: Fix #133 - make completions work for --except arguments) https://gitlab.com/BuildStream/buildstream/commit/2780cdbde866a65108d10d030fe7d40015df1b2715:45
tristantlater, it includes build dependencies *of the element*15:46
tristantlater, not build dependencies of build dependencies of the element15:46
tristanRight ?15:46
tlatertristan: `bst show --deps all --scope build` includes build dependencies of build dependencies of the element - but maybe that's expected?15:46
tristanUnless of course, they are *also* runtime dependencies of build time dependencies (which is the default)15:46
tristanwhat the hell15:48
gitlab-br-botpush on buildstream@except_intersections (by Tristan Maat): 1 commit (last: load.py: Migrate to new test style (WIP)) https://gitlab.com/BuildStream/buildstream/commit/1e16eada580ee3aa941f0b6de08792eba20b410415:48
tristantlater, there is no `--scope` argument to `bst show`15:48
tristanthere is no --scope argument, anywhere afaict15:49
tristanthat might have existed months ago, before I implemented proper symmetry for the --deps argument15:49
tlatertristan: ... For some reason I was convinced I was calling that, but I actually meant `--deps`15:49
tristantlater, if there is a bug there is a bug, the way you are explaining it; I'm not convinced there is a bug15:50
* tlater isn't either, but I'm at least sure the bug isn't where I thought it may be :)15:50
jonathanmawtristan: hrm, looking at the methods we expose, I can't find Plugin.node_provenance() being used anywhere15:52
tristanjonathanmaw, not sure if that is worth removing15:53
tristanthe semantics of node_get() only assert that the loaded stuff is of the expected type15:54
tristanso if you need to print a load time error because of something else that is wrong with the data, you need that15:54
tristanmaybe if it's not there, we might end up raising an ElementError or SourceError at Plugin.configure() time while neglecting to use the readily available node provenance15:55
ssam2so the cache key recalculation that keeps happening seems to be driven by PullQueue.skip()15:57
ssam2the situation my process is in seems to be... evolution.bst tracked successfully, so it's added to the pull queue, so we check if it's cached, so we calculate its cache key15:57
tristanssam2, that happens for various reasons15:57
ssam2i've followed the backtrace up from pipeline.build() to here15:58
tristanssam2, we definitely need to improve the code for reasoning around when a cache key cannot be calculated, and when it becomes ready to be calculated15:58
ssam2ok15:58
tristanssam2, I also noticed that when you are lacking a cache and sources - and you run `bst anything`, thats when you hit that regression where you load...... then at the end you have <unexplained pause>, then show the pipeline summary15:59
tristanthat is after calculating keys the first time, and before showing the summary; certainly before any queues are in play16:00
gitlab-br-botpush on buildstream@except_intersections (by Tristan Maat): 1 commit (last: load.py: Migrate to new test style (WIP)) https://gitlab.com/BuildStream/buildstream/commit/27b9790058d4f5e43de681a5b29c1c471dab643716:00
tlatertristan: Gah, looks like it's a regression from the multiple targets branch, because I added an intermediate dummy element... I already have a branch that fixes that because I realized there was a better way to do that.16:00
tristantlater, then that just became the priority16:00
tristanbackgammon16:00
tristantlater, lets use this upgrade of the test case to fix that :)16:01
tlatertristan: Include it in the `--except` branch then?16:01
tristantlater, I would prefer: take that upgraded test case, and the fix; rebase your --except stuff on top of that, which is right now the fire in the building16:02
ssam2ok yes, I think the infinite loop we're in is that Element._get_cache_key() never returns16:11
ssam2so makes sense that the bug is to do with knowing when we can actually calculate a cache key16:12
ssam2i think i have enough info to file at least a semi-useful bug report now16:12
tlater\o/16:13
tlaterPerhaps making an entire new one is worth it; the other bug report was somehow conflated with 2 others.16:13
tristanssam2, great one sec... I have a note for you...16:16
ssam2the other bug report seems actually unrelated16:17
tristanssam2, https://gitlab.com/BuildStream/buildstream/merge_requests/126#note_4628643516:17
tristanwith incremental builds, this is going to get *even more tricky*16:17
ssam2hooray!16:17
tristanwe have a /somewhat/ reasonable functionality... but I dont think I feel comfortable with that complexity hiding in a private function in element.py16:18
tristanwe need to rethink how we cache and reason about this state, that comment suggests a bit more boiler plate and care around that16:18
ssam2right16:19
tristanI dont know how or what, maybe it's a delegate object, maybe not16:19
tristanthe pieces of the puzzle are there, but we've been a bit too nonchalant about state16:19
tristanjust a tad ;-)16:19
gitlab-br-botpush on buildstream@except_intersections (by Tristan Maat): 2 commits (last: load.py: Migrate to new test style (WIP)) https://gitlab.com/BuildStream/buildstream/commit/df4e905c1eef7ea2b2752a57356342f77ce2480e16:21
gitlab-br-botpush on buildstream@except_intersections (by Tristan Maat): 20 commits (last: doc/source/formatintro.rst: Fixed duplicate link anchor) https://gitlab.com/BuildStream/buildstream/commit/0363cd99497e2c620d75f4a60f6ca39ad37fac5616:23
jonathanmawhrm, looking at Plugin.node_get_member, we're using its default_value arg as a positional and a keyword arg in the codebase16:36
gitlab-br-botbuildstream: issue #149 ("Busyloop while calculating cache keys in `bst build --track`") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/14916:36
jonathanmawand we use it positionally more than as a keyword16:36
tristanjonathanmaw, something to think about: How do the docs get rendered for these changes ?16:38
tristanjonathanmaw, can we also improve the doc strings to that it is perfectly clear what is A.) A positional argument... B.) An optional positional argument or kwarg... C.) A kwarg only  ?16:39
tristanwith sphinx16:39
jonathanmawhrm, I'll have to have a look16:39
tristanjonathanmaw, I feel like that one in particular, deserves to be an optional arg16:39
tristanI think I made an example of exactly that method in the bug report or MR comments16:39
tristanjonathanmaw, I think it's also worth renaming that, perhaps s/default_value/default16:40
gitlab-br-botpush on buildstream@migrate_pipeline_load (by Tristan Maat): 2 commits (last: _pipeline.py: Remove DummyElement hack) https://gitlab.com/BuildStream/buildstream/commit/d9d84097d71e6fe582c23f9eba1099f9ca17191616:43
tristanI think the only time I've been writing out default_value="foo" in Plugin.node_get_member(), is because of how many times I've been bitten by calling _yaml.node_get() with a positional default value, and it being interpreted as the 'indices' param instead16:44
gitlab-br-botbuildstream: merge request (migrate_pipeline_load->master: Migrate `tests/pipeline/load.py`) #145 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/14516:45
gitlab-br-botpush on buildstream@migrate_pipeline_load (by Tristan Maat): 1 commit (last: load.py: Migrate to new test style) https://gitlab.com/BuildStream/buildstream/commit/9921b72dd7d517fcd43561a79985b9c65659473716:45
gitlab-br-botbuildstream: merge request (migrate_pipeline_load->master: Migrate `tests/pipeline/load.py`) #145 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/14516:45
tristantlater, there is a problem with that16:48
tristantlater, look at this line: https://gitlab.com/BuildStream/buildstream/merge_requests/145/diffs#029d46ba7e1b2197fd4337e31e3d8422a390dad5_216_20016:48
tristanwhich you just changed to track 'visited' outside of Element.dependencies()16:49
tristantlater, then look at this line: https://gitlab.com/BuildStream/buildstream/blob/master/buildstream/element.py#L20016:49
tristantlater, which presumes that the function is recursing because visited was set16:49
tlaterAck16:49
tristanthe visited parameter (which is hidden from the docs) is really a private detail of that function, however it doesnt mean there is no way to internally cooperate with that16:50
tristanyou are probably on the right track16:50
tristanbut need to detect recursion separately16:50
tristansorry for hovering over your shoulders from the other side of the globe ;-)16:51
* tristan backs off now ;-P16:51
tlatertristan: Heh, thanks :)16:51
tristanif we have better tests which ensure this is really correct as a result of this exercise, that will be really great :)16:52
gitlab-br-botbuildstream: Tristan Maat created branch except_intersections16:53
jonathanmawtristan: looks like "*" appears in the list of args that gets generated. It's in good company with the python docs, though16:54
jonathanmawfor example, https://docs.python.org/3/library/multiprocessing.html#process-and-exceptions16:54
jonathanmawor rather, https://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process16:54
tristanjonathanmaw, thanks for checking it out :)17:04
tristanlooks good enough anyway17:04
tlaterIt looks like this case is going to be hard to test, since it only results in issues if recurse=False is set17:10
tlaterThe frontend can't do that atm17:10
tlatertristan: How do you feel about a `--deps direct` flag?17:10
gitlab-br-botpush on buildstream@migrate_pipeline_load (by Tristan Maat): 2 commits (last: Remove DummyElement hack) https://gitlab.com/BuildStream/buildstream/commit/8b3831b68bef9537d4b41158d1265c184841466717:20
gitlab-br-botbuildstream: merge request (migrate_pipeline_load->master: Migrate `tests/pipeline/load.py`) #145 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/14517:20
tristantlater, what does "direct" mean ?17:55
tristantlater, oh you mean, just one level of dependencies17:55
tlatertristan: Only exactly the dependencies of the target element, but not their dependencies17:55
tristanthat would kinda be weird wouldnt it17:55
tristanthis is to test the specific edge case I raised ?17:55
tlatertristan: Yup, basically. I don't see another way to do it17:56
tristanare you really sure its only an issue when recurse is false ?17:56
tlatertristan: Yes, because in all other cases recurse just overrides anything did_recurse tries to say.17:56
tristanI was rather thinking of when you wanted build dependencies of two elements, one which build depends on the other17:57
tristannot sure but that was my intuition of where it might break17:57
tristantlater, to be honest I dont care about testing that edge case so much - it looks like its impossible to hit if your findings are correct17:58
tlatertristan: It can potentially be hit in the planner17:59
tlaterBut I can't figure out a pipeline that does it :/17:59
tristanfrom a real world standpoint, if the frontend cannot reach a given case, then that case cannot present a bug, so it's not testable17:59
tristantlater, `bst show --deps plan` ?18:00
tlatertristan: Yup, that's what I'm trying to use now18:00
tristantlater, it depends on which of the targets get fed to Element.dependencies() first18:01
tristantlater, I think that if you have 2 targets A and B, where A depends on B... and you want the build dependencies of both A and B...18:02
tristanthen one of them would suffer18:02
*** valentind has joined #buildstream18:02
tristantlater, in which case, a test case which does `bst show --deps build a.bst b.bst` AND `bst show --deps b.bst a.bst` (assuming that effects the order here)... should ensure that bad things wont happen18:03
*** jonathanmaw has quit IRC18:03
tristani.e. they should both produce the same result18:03
tlatertristan: I am fairly sure in that case did_recurse is not even evaluated18:03
tristantlater, and probable both A and B need to have individual build-only dependencies to hit it18:03
tristanWell, it's not like I've been sitting here thinking about it18:04
tlaterhttps://gitlab.com/BuildStream/buildstream/blob/master/buildstream/element.py#L210 and https://gitlab.com/BuildStream/buildstream/blob/master/buildstream/element.py#L229 are the only spots where that variable is hit18:04
tlatertristan: Yeah, it's alright, I think I can figure it out a pipeline that hits this with a bit more thought.18:05
gitlab-br-botbuildstream: merge request (compose-integration-delete->master: Handle removed files from integration in compose plugin) #142 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/14218:05
tristantlater, it's possibly not worth the effort, if you fixed the regression and are testing the dependency order much better than we ever did before; that's already great18:06
tristanof course, thorough testing of these core things make us much safer in the long run, though18:06
tristanmaybe I have a hope in hell of ever passing on the maintainer hat to someone else, if things are really well tested :D18:07
tlaterOne day... ;P18:08
* tlater will probably have to think this through again tomorrow... Brain is a little fried by now18:08
gitlab-br-botpush on buildstream@migrate_pipeline_load (by Tristan Maat): 2 commits (last: load.py: Migrate to new test style) https://gitlab.com/BuildStream/buildstream/commit/d9a876eb2565497b463f0df876a6d48bf18e95e618:11
gitlab-br-botbuildstream: merge request (migrate_pipeline_load->master: Migrate `tests/pipeline/load.py`) #145 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/14518:11
tristantlater, really though, maybe it's not the best approach to testing18:12
tristantlater, I mean, I pointed out a piece of code that could potentially cause things to be incorrect; that you probably fixed by now by treating 'visited' and 'did_recurse' separately18:13
tristanthat's pretty much a no brainer18:13
tristantlater, going ahead and trying to guess at "what exactly might that have broken" and testing for that case, is not immensely productive18:13
tristani.e. its better to start with just knowing that pipelines testing various features produce the results we expect, on a wide variety of combinations18:15
tristana @pytest.parameterize() case with (target.bst, expected_ordered_list) tuples which just does a ton of interesting things is a much better use of effort18:16
tristanI'm very happy with what I did here for instance: https://gitlab.com/BuildStream/buildstream/blob/master/tests/yaml/yaml.py#L25718:17
tristanif we had a test battery for each --deps option of `bst show`, using single and multiple targets; thoroughly testing the surface; that makes us damn safe in general18:18
tlaterYeah, I suppose having something like that and then just adding freak cases when they happen is probably better.18:18
tlaterIn any case, ta for the help tristan :)18:22
* tlater will have to go18:22
tlatero/18:22
tristanlater o/18:23
gitlab-br-botpush on buildstream@sam/git-fetch-prune (by Sam Thursfield): 2 commits (last: Allow overwriting a list with an empty list using (=) operator) https://gitlab.com/BuildStream/buildstream/commit/cb6df173ef00b28bdc5c0055fbd6f111d23217e918:55
gitlab-br-botpush on buildstream@sam/git-fetch-prune (by Sam Thursfield): 4 commits (last: _frontend/main.py: Fix #133 - make completions work for --except arguments) https://gitlab.com/BuildStream/buildstream/commit/2780cdbde866a65108d10d030fe7d40015df1b2718:59
gitlab-br-botbuildstream: merge request (sam/git-fetch-prune->master: git.py source plugin: Prune remote-tracking branches when fetching) #146 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/14618:59
*** tristan has quit IRC19:23
*** laurenceurhegyi has quit IRC19:23
*** tlater has quit IRC19:23
*** tristan has joined #buildstream19:23
tristanvalentind, sorry I didnt make a full review of that MR today as the test was failing, will do tomorrow19:30
tristanvalentind, I did open a related bug report though: https://gitlab.com/BuildStream/buildstream/issues/14719:31
tristanand tried to detail the issue19:31
valentindThat is fine. My fault not checking "git status" before pushing.19:32
valentindtristan, would integration commands the use install-root variable?19:33
valentindI am not sure how a EEXIST would be triggered.19:34
tristanvalentind, I'm not sure if EEXIST is actually triggered, when I mention that, I'm referring to when you call utils.move_files() in the compose plugin, but the file has already been moved (the source of it is then missing)19:35
tristanI suppose it would be an EEXIST19:35
*** laurenceurhegyi has joined #buildstream19:36
valentindI scan for missing files before calling move_files.19:37
tristanvalentind, that is likely to happen when say, two artifacts contain the same file (overlaps), or when integration commands modified a file (so it changed, and was moved once by virtue of split rules, and then moved again by virtue of being a file modified by integration commands)19:37
tristanMeh, in that case I guess it's unneeded - it might be simpler to ignore the error, though19:37
tristanor, maybe you compose a list of everything you wanna move and just call move_files once19:38
valentindAh, I use a set. So paths given to move_files are unique.19:38
tristanI did take a brief look, I'm not sure I want to expose that splits API in that form19:38
tristanmaybe just a rename or maybe some change for public API... I'll give it some thought when it's not 4:30am :D19:39
valentindOK19:39
*** tlater has joined #buildstream19:43
*** ssam2 has quit IRC20:04
*** valentind has quit IRC23:00

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