IRC logs for #buildstream for Monday, 2019-07-01

*** bochecha has joined #buildstream07:38
*** bochecha has quit IRC07:51
*** alexandrufazakas has joined #buildstream07:58
alexandrufazakasIs the CI still broken?08:03
*** tristan has quit IRC08:16
*** tiagogomes has joined #buildstream08:21
*** tiagogomes has quit IRC08:30
*** tiagogomes has joined #buildstream08:33
WSalmonvalentind, i think i got a bit confused by the gnome issue, but something about the filesystem seems to have changed in the standard x86_64 runners, if you look at the mtimes in the CI failure info they are all floats but integer values, If i recall correctly on a normal file system they would not be rounded to the closest second08:45
valentindWSalmon, probably depends on the filesystem.08:46
*** bochecha has joined #buildstream08:46
WSalmonyep, but i think something about the file system that the x86_64 runners used changed last friday08:47
valentindYep, I moved to coreos, like the nightly build. For the host os of the builders.08:48
valentindBut this is because fedora stopped working.08:48
*** tristan has joined #buildstream08:50
valentindProbably coreos uses overlay2 for docker backend.08:50
valentindActually no. It is probably using XFS.08:53
valentindYou need ext4 to get better than seconds. So I would suppose overlayfs on ext4 works.08:54
juergbixfs doesn't support sub-second file times?08:54
*** benschubert has joined #buildstream08:54
juergbiafaict, it does, although it might be optional when creating the filesystem08:55
*** jonathanmaw has joined #buildstream08:55
valentindI will spin up a coreos machine manually on DO and see how it is configured.08:59
*** lachlan has joined #buildstream09:01
*** tpollard has joined #buildstream09:04
WSalmonbrill, thanks valentind09:04
valentindI think though the tests should not depend on the filesystem.09:06
WSalmonjuergbi, tristan I think we want to fix this asap. but also do we want to have a test stage (maybe nightly or on master) that has the 1sec file system? we should be able to suport this kind of file system also09:07
valentindIf there is no other way to write the test, maybe you can try adding a conditional skip for those tests when it detects the filesystem does not support sub-second.09:07
WSalmonvalentind, agree09:07
*** phildawson_ has joined #buildstream09:08
juergbiwe don't want to skip tests because of that in CI, though09:08
juergbisubsecond timestamps should not be asking too much these days09:08
juergbishould be supported by all modern filesystems09:09
WSalmongiven how many os's we test, could we test more than one file system?09:09
*** lachlan has quit IRC09:11
WSalmoni think the short term fix is to get back to a 1sec file system asap i think valentind is trying, if you get blocked and you let us know so we can help :D but i think testing sub 1sec file systems regully and making bst resiliant should be a longer turm goal,09:14
WSalmonim gona be away for a bit if valentind gets blocked is juergbi a good person for him to reach out to?09:15
*** tiagogomes has quit IRC09:15
valentindI think Lachlan was supposed to help with infra.09:16
*** ChanServ sets mode: +o tristan09:16
tristanWSalmon, fwiw, the fact that the test fails doesn't really mean we don't support subsecond precision mtimes09:16
tristanyou may have already knew that... /me reads full backlog :)09:17
juergbiwe could add sleeps to test in environments where subsecond precision is not available. however, I wouldn't generally recommend such environments for production09:17
*** tiagogomes has joined #buildstream09:18
juergbibuildstream itself should also not fall over with low precision but actual builds might (and things like blob expiry will be less precise)09:18
tristanjuergbi, right... the way we rely on it is not such that it will fail us09:19
tristanWell, I guess it depends on your build scripts if they are going to fail, but rather also unlikely09:19
WSalmontristan, well given the way some of those tests fail, not all of our featchers work on these file systems09:19
WSalmonjuergbi, please see https://gitlab.com/BuildStream/buildstream/merge_requests/143909:20
*** lachlan has joined #buildstream09:20
WSalmonwe had added sleeps09:20
WSalmonand nice functions09:20
tristanthe vast majority of the linux lower level stack existed before ext4, I can vaguely recall some corner cases where typing `make` would do nothing :)09:20
WSalmonbut people were not adding them09:20
WSalmonbut when i added all the sleeps in were they should be it fixed the simple issues09:20
WSalmonbut we have 2 tests that are not fixed by adding sleeps09:21
juergbiWSalmon: that should mostly be race conditions in the tests themselves09:21
WSalmoni have to go now but have a look at the MR09:21
WSalmoni think they are nasty09:21
tristanI recall the original artifact server may not have been waiting for a reply... hence my second comment, anyway it rings a bell09:21
tristan`bst build` may be returning while the remote is still finishing it's work09:22
juergbithat would surprise me09:23
tristanjuergbi, it has evolved quite a bit since I originally did the tar streaming patches09:24
juergbiwith gRPC we generally wait for response09:24
tristanjuergbi, but at that way long ago time, I remember having trouble synchronizing the end of the transactions09:24
tristansure, just pointing it out as it was a way long ago issue :)09:25
juergbiyes, but we no longer use a custom protocol. there could still be a bug somewhere, of course, but I don't think we intentionally send off a gRPC request anywhere without waiting for the response09:25
tristanfor the record: I would much prefer testing how BuildStream behaves with real file systems, possibly adjusting our expectations for minor deviations like mtime precision... than mocking the environment in test cases and modifying BuildStream to fool it09:33
tristanFor instance, I still think it would be much better to call `mkfs` and fuse mount an actual filesystem of a size we control, and remove the calls to unittest.mock() in the artifact expiry tests09:34
juergbimounting e.g. an ext4 filesystem image via fuse is not completely trivial (can't use the ext4 implementation of the running kernel)09:38
tristanjuergbi, Then require root privileges for that specific test and loopback mount it ?09:39
tristanwe do have controlled runner environments which let us setup real environments under which we can test09:39
juergbithat would be a possibility but replacing the current test with this means, it will no longer be tested in (typical) local developer environments09:39
juergbiso I'm not sure whether it would be a net improvement09:40
juergbiwe could have both but not sure whether that would make sense09:40
tristanI think its rather fine if not every single thing can be tested as regular user on developer laptop... surely there are also windows specific tests incoming which I cannot run in linux09:40
tristanI just think it's more correct to test the real thing than to add local hacks and pretend09:41
juergbisure but I think we should also avoid such test gaps where we can09:41
juergbiI generally agree but we have to keep all factors in mind09:42
tlater[m]This would also mean that those tests don't work anywhere you don't have fuse09:42
tristantlater[m], I think the topic changed from fuse -> root09:43
tlater[m]Ah, right09:43
tristantlater[m], as juergbi pointed out that fuse is not going to use the same OS pathways as a real mount would09:43
tlater[m]Still won't work under windows and such, which is a bit annoying for tests like these that should really be a bit more generic09:43
juergbisomething like a quota fuse, emulating limited disk space, might be the best compromise09:44
tristantlater[m], I don't really understand why that would be true, on windows we would have an ntfs and we would want to have that tested as well09:44
juergbino mocking in Python and no need for root09:44
tristanI mean, WSL windows aside... each case is a valid use case09:45
tristanI suppose WSL windows is also different than ext4 on linux (as WSL stops at the syscall table, the FS drivers must be ntfs)09:46
tristanAnyway... no need to jump at the opportunity to test every single operating condition, but perhaps something to consider in an idealistic future :)09:48
juergbibtw: WSL2 will use real ext4 (via image file in NTFS), afaik. current WSL is indeed different from the filesystem perspective09:53
*** bochecha has quit IRC09:54
tristanInteresting09:59
tristanI wonder when they will port MS Office to linux :)09:59
tlater[m]tristan: *Technically* they sort of already have, given office36510:01
tpollardseeing microsoft put a linux kernel on a public vcs is still making me feel weird https://github.com/microsoft/WSL2-Linux-Kernel10:01
*** lachlan has quit IRC10:01
tristanAnyway... we can *ahem* always circulate MS Office flatpaks based on wine runtimes...10:04
*** cs-shadow has joined #buildstream10:06
tlater[m]https://winepak.org/ use disappointingly little buildstream :|10:07
*** swick is now known as admin10:10
valentindIs it still using Freedesktop SDK 1.6?10:19
tlater[m]valentind: Some of it still was last I looked. The maintainer has gone silent afaics10:22
valentindtlater[m], maybe you could build it with BuildStream.10:26
valentindThat would be nice to test the cross-compilers we have.10:26
valentindFor 32 bits10:26
tlater[m]Yeah, it's a thought I've had :)10:27
jonathanmawtristan: Following from your comments on TaskGroup / FrontendTaskGroup, do I gather that an appropriate solution would be for the subscribers to the task_group_added callbacks to just store the passed group, instead of registering to receive notifications when the TaskGroup changes?10:27
tristanjonathanmaw, I'm not 100% clear on the intended structure... and I think it is fine if we land an initial structure and tweak it slightly later10:29
tristanjonathanmaw, the main gist is that the core manages and drives everything it advertises to the frontend and the frontend widgets only register some notifications10:30
tristanjonathanmaw, So... it could be "task group added / task group removed"... it could be "task groups changed"...10:30
valentindSo it seems that the root filesystem on coreos is using ext4. On top of that, overlayfs is used. So it should work. But the root filesystem does not have nanoseconds.10:31
tristanjonathanmaw, Also, once the frontend has access to the main `State` object, it can always access `state.task_groups` in any notification it receives10:31
tristanjonathanmaw, So I think there would be no need to even store them separately10:31
tristanjonathanmaw, there could be a single `State` level notification for "task group details/statistics changed" (i.e. the data on the task groups and element counts have changed)10:32
tristanOr there could be per task group notifications10:32
jonathanmawso, frontend widgets are able to read State.task_groups, but also receive notifications that State.task_groups has changed?10:34
tristanjonathanmaw, My gut feeling about structure is this: We initially land something that is properly MVC style... and later we may remodel the notifications such as to optimize for the frontend (we may end up with global notifications and we may deliver them less frequently... in order to minimize UI updates)10:35
valentindinode size is 128. That should explain why it is not using nanoseconds.10:36
tristanjonathanmaw, Yes exactly what you said... and moreover... *how* those notifications are delivered is what I mean might change and that is rather okay10:36
jonathanmawtristan: ah, so the notifications that something has changed are so that the frontend knows if it needs to recalculate anything, not as a way to keep data synchronised with the frontend10:37
jonathanmawgotcha10:37
tristanjonathanmaw, Maybe we want a single notification that the task groups have changed in some way, perhaps distinguishing between "the list of task groups have changed" and "the values held by the task groups have changed"10:37
tristanright, the actual data is always on State10:37
tristannotifications that they changed means the view needs to reflect it10:37
valentindI will restart gitlab-runner to try a different image. So all the current job will fail.10:44
tristanjonathanmaw, I think one of my comments didnt make it to _state.py10:47
tristanjonathanmaw, or maybe the diff changed... did you get my request to add some comment blocks separating the frontend facing notification API from the core notification driving API ?10:47
tlater[m]valentind: About a 1:3 chance they will anyway ;p10:47
tristanAha10:48
tristanin my browser cache !!!10:48
tristansneaky gitlab :-/10:48
valentindI think we should complain to digital ocean that the coreos image that we are supposed to use with gitlab ci are broken because it uses 128 inode size for the root system.10:48
tristanjonathanmaw, I was just going to ask... now that we've had this conversation on IRC... does this comment make more sense ? https://gitlab.com/BuildStream/buildstream/merge_requests/1409/diffs#note_18701536210:48
jonathanmawyeah10:51
tristan:)10:51
tristanjonathanmaw, In a later iteration we'll want to look into frontend UI update throttling and such10:53
alexandrufazakastlater: Hey, please have a look at !1430 whenever you've some time :)10:53
tristanso we can decide then whether the throttling needs to happen at the core State level or in the frontend10:53
gitlab-br-botMR !1430: Add bst init argument https://gitlab.com/BuildStream/buildstream/merge_requests/143010:53
tlater[m]ooh, the br-bot is smarter these days, huh10:54
tpollard++ to UI throttling10:54
alexandrufazakastlater: I mentioned in the MR as well, that -C and directory test fails due to some unhandled_exception apparently :(10:54
tristanjonathanmaw, In the mean time... I really think that we prefer that notifications are not *too* granular10:58
tristanjonathanmaw, in the long term if we consider UI update throttling, it means that the frontend receives less callbacks and updates the UI less10:59
valentindOK, so unfortunately fedora images still fail like before.11:00
tristanjonathanmaw, actually you know... forget about my opinion on that... how the UI get's updated depends on a number of factors11:01
tristanso whatever really... for now lets just get the separation done :)11:01
valentindTrying with fedora atomic...11:05
tlater[m]alexandrufazakas: I think some git rebase mixups happened - your patch literally contains the same tests repeated once or twice11:12
tlater[m]I also think a handful of them are basically duplicates of older tests now that we've changed the semantics of `bst init`, and changed the old tests accordingly.11:13
tlater[m]Besides that, the patch looks good now11:13
alexandrufazakastlater: I think so too, yeah. Sorry about that, I'll fix them11:14
valentindFedora atomic does not work either.11:15
alexandrufazakasAnd yes, you're right the functionalities are similar, didn't realize the others are testing the argument behaviour too now haha11:15
valentindI will have to make an image for coreos with inodes of size 25611:15
alexandrufazakastlater: Would it be okay to include that small patch regarding str(None) in this MR and close the other one?11:17
*** lachlan has joined #buildstream11:19
tlater[m]alexandrufazakas: Absolutely :)11:26
alexandrufazakasSweet, cheers :D11:27
*** bochecha has joined #buildstream12:25
gitlab-br-botAlexFazakas closed MR !1437 (AlexFazakas/str-none-runcli->master: runcli: Don't set project to 'None' on no input) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/143712:42
alexandrufazakastlater: I think I fixed the issues with !1430, but I still have some issues with a couple of tests. For some reason, the max recursion ones keep failing. And the `bst init -C` one. If you could have a look at those when you've some spare time, I'd appreciate it :)12:52
gitlab-br-botMR !1430: Add bst init argument https://gitlab.com/BuildStream/buildstream/merge_requests/143012:52
tlater[m]alexandrufazakas: I can't spot any recursion, do you have anything to go off debug wise?12:57
alexandrufazakastlater: this is what I get running the max depth tests https://pastebin.com/sX98YBKe apparently the issue is in runcli at line 394 for some reason13:01
tlater[m]alexandrufazakas: Don't ask me *why*, but it's obvious that that would infinitely recurse13:02
tlater[m]setup_test() calls itself unconditionally13:02
tpollardalexandrufazakas: you can't join() None13:02
tlater[m]Oh, nevermind, maybe not, I misread that...13:03
alexandrufazakastpollard: Ah, is it line 324 in app.py then?13:04
alexandrufazakasdetail_dir = os.path.join(os.path.abspath(self._main_options['directory']), target_directory)13:04
alexandrufazakasThis one13:04
tlater[m]Yup, that's it13:04
tlater[m]`target_directory` is not set13:05
tlater[m]Something called `bst -C <something> init`13:05
tlater[m]alexandrufazakas: That means you'll need to check whether target_directory is None before joining13:05
alexandrufazakasOr we could just set the default to os.getcwd()13:05
alexandrufazakasSince that's what `bst init` should do, right?13:06
alexandrufazakasOh13:06
alexandrufazakasNevermind13:06
alexandrufazakasActually, it would probably fix this13:06
tlater[m]Hm, no, I don't think that's quite right13:06
alexandrufazakasBut I'm not sure if we want to do that?13:06
tlater[m]While we *do* set it to `self.main_options['directory']`, which should only ever be `os.getcwd()`, this might change in the future13:07
tlater[m]If you set `target_directory`'s default to `os.getcwd()`, you're duplicating code13:07
tlater[m]Also, I'm not 100% certain that joining `/foo/bar` with `/foo/bar` would result in anything sensible here13:08
alexandrufazakastlater: I think it results in /foo/bar. Join starts a new path if it encounters an absolute one13:08
tlater[m]alexandrufazakas: I'd suggest that you do the check *after* we resolve `directory`13:09
tlater[m]And simply raise the error with `directory` instaed13:09
tlater[m]alexandrufazakas: Yep, that's what should happen, but I'm not sure if that's the right thing to do in all cases.13:09
alexandrufazakasYeah, that makes sense13:09
alexandrufazakastpollard, tlater: Thanks for the help13:10
*** lachlan has quit IRC13:28
valentindWSalmon, builders migt be working correctly now.13:30
valentindThough I see a lot of the time builders do not manage to start properly. Probably because updating fedora and installing docker takes a lot of time and it fails with time out.13:31
tlater[m]Thanks valentind!13:33
*** lachlan has joined #buildstream13:33
alexandrufazakasAnyone have any idea what that assert fails? :(13:41
alexandrufazakashttps://pastebin.com/EqAM32du13:41
* tpollard stares longingly at gitlab13:43
tlater[m]alexandrufazakas: Not 100% on this, but I suspect that this is raised *before* "main" errors can be raised13:45
tlater[m]In other words, we expect assert_main_error to fail13:45
tlater[m]There should be another assertion somewhere that does the right thing here13:46
tlater[m]If not, I'm horribly wrong, and I apologize13:46
tlater[m]But I think it'll be something like assert_app_error?13:46
alexandrufazakastlater: `result.assert_main_error(ErrorDomain.APP, 'init-with-set-directory')` is what I'm using13:46
alexandrufazakasso just use _app_error instead?13:47
alexandrufazakasOh, apparently dont just use app_error instead13:47
tlater[m]I have no idea if that actually exists, skim through runcli?13:47
tlater[m]I just believe that that's how these exceptions work13:47
alexandrufazakasDon't think it exists13:48
alexandrufazakasNo other test has it13:48
alexandrufazakasBut I'll have a look through the exceptions sure13:48
tlater[m]alexandrufazakas: Reading through runcli.py, you'll notice that `self.unhandled_exception` is asserted to be true iff the exception is a `SystemExit`.13:50
tlater[m]There's a comment right above that that will tell you CLI errors should always look like that.13:51
tlater[m]Why do we get a SystemExit here?13:51
alexandrufazakasUhh13:52
alexandrufazakasNot sure13:52
*** lachlan has quit IRC13:52
tlater[m]Let me read a little into it then...13:52
tlater[m]If you scroll about 10 lines down from your code, you'll notice that we catch our own AppErrors and call `self.error_exit(e)`13:53
tlater[m]You should perform your check as part of that try block13:54
tlater[m]alexandrufazakas ^13:54
alexandrufazakasAh, that makes sense, yeah. I was thinking we might need a try-catch block but I wasn't sure where/how. Thanks tlater :)13:56
tlater[m](Note that AppError is a BstError)13:56
alexandrufazakastlater: Yep, that does it13:57
*** tristan has quit IRC14:08
*** tristan has joined #buildstream14:15
*** lachlan has joined #buildstream14:24
tlater[m]phildawson_: It turns out that cython files have headers, and whoever wrote that function did not expose it in the header - which meant that you *could* access it from python, but not cython.14:27
* tlater[m] kept wondering if there was a weird thing going on like you can only access cpdef stuff from cpdef stuff14:28
*** lachlan has quit IRC14:29
*** lachlan has joined #buildstream14:30
*** lachlan has quit IRC14:34
*** tiagogomes has quit IRC14:38
*** lachlan has joined #buildstream14:39
*** tiagogomes has joined #buildstream14:41
tlater[m]alexandrufazakas: One thing I keep forgetting to mention is that you'll need to write a NEWS entry14:41
alexandrufazakasAh14:41
tlater[m]Since we're breaking backwards compatibility14:42
alexandrufazakastlater: Tbh, you did mention it, I just didn't realize I was the one to do it14:42
alexandrufazakasI'll do that in a second14:42
tlater[m]I also think there's at least one piece of documentation that you'll need to amend14:42
tlater[m]To you the honors :)14:42
alexandrufazakashaha14:42
*** tiagogomes has quit IRC14:42
alexandrufazakastlater: Should probably update something in man/ ?14:43
tlater[m]alexandrufazakas: man/ is generated automatically using click14:44
tlater[m]You'll want to update something in doc/14:44
alexandrufazakasAh14:44
alexandrufazakasMakes sense14:44
*** ChanServ sets mode: +o tristan14:45
tristanalexandrufazakas, tlater[m] probably the first entry in the tutorial14:45
tristanshould be using_examples.rst I suspect14:45
tristanand perhaps any related session files in doc/sessions14:45
alexandrufazakastristan: I'll look into that. Thank you :)14:46
tlater[m]ta tristan, I rely too much on grep :)14:46
alexandrufazakasIs the whole man/ directory generated from click?14:47
*** lachlan has quit IRC14:47
alexandrufazakas'cus I was wondering why it's included in the source repository in this case14:47
tristantlater[m], nah, grep is the best14:48
tristantlater[m], probably more reliable than my memory, but I think that is the right place14:48
tristanat least the things in Using are using_*.rst files14:48
alexandrufazakasUhh, should I be updating the 1.3.1 section?14:48
tristanalexandrufazakas, possibly if that is the huge section at the top yeah14:48
alexandrufazakasIt indeed is the huge section at the top :)14:49
tristanalexandrufazakas, once we release a shapshot, we'll probably just change that to 1.91.014:49
tlater[m]alexandrufazakas: regarding man/, I'd just say read the makefile in there (or whatever other build construct lives there)14:49
tristanoh right14:49
tlater[m]iirc it was some hairy stuff tristan hacked together to get around the click author not wanting to take his patch14:50
tristantlater[m], CONTRIBUTING.rst has instructions for man regeneration14:50
tristanBut did someone integrate man pages into the build scripts anyway recently ?14:50
tristanbenschubert maybe ?14:50
* tristan vaguely recalls that being discussed14:50
tlater[m]I'm fairly sure tox runs that now, yeah :)14:50
tristanso if the files are not statically added in man/, no need to do anything14:50
tristanI think the idea was to have them generated in dist tarballs but not in git14:51
benschubertI don't remember doing that14:51
tristanOk14:51
tristanSo I think it was not done, all I remember was that it was *discussed* :)14:51
tlater[m]testenv:man14:51
tristanah14:51
tristantlater[m], So if that is there... hopefully CONTRIBUTING.rst was updated to instruct us to use tox to generate them14:52
tristanfingers crossed :)14:52
tristanalexandrufazakas, probably what that means is run `tox -e man` and commit the result of that14:53
tlater[m]tristan: It was actually updated!14:53
tlater[m]tox -e man is apparently enough to just regenerate them, but it does need to be run manually14:53
tristanyay \o/14:53
alexandrufazakasOh, that's awesome14:53
tlater[m]Really, IMO CI should do it14:54
*** lachlan has joined #buildstream14:54
tristantlater[m], it could but that has never been known to fail14:54
tlater[m]But I suppose you'd need to deploy it as part of a package then, because it can't commit the actual pages14:54
tristantlater[m], the important part is that `setup.py install` installs up to date ones... ideally we shouldn't have them statically in git14:54
tlater[m]Yeah, that would make a lot more sense14:55
tristantlater[m], that means going through the weird awkward process of integrating strange things in distutils14:55
benschubertright, sdist/bdist should be generating them ideally14:55
benschubertlike we have for cython stuff14:55
tristaniirc, it *should* be trivially enough doable, just that the click-man plugin which does it was not very condusive to that integration14:57
tristanOr, I just lost patience with it at some point14:57
*** lachlan has quit IRC14:58
*** lachlan has joined #buildstream15:00
*** tiagogomes has joined #buildstream15:02
*** lachlan has quit IRC15:06
*** lachlan has joined #buildstream15:09
*** lachlan has quit IRC15:19
*** phil has joined #buildstream15:32
*** phildawson_ has quit IRC15:33
*** lachlan has joined #buildstream15:39
*** bochecha has quit IRC15:43
benschuberttristan: https://gitlab.com/BuildStream/buildstream/merge_requests/1434#note_187161126 I think that's the correct behavior, but wasn't in the original discussion about that. Can you confirm?16:41
gitlab-br-botBenjaminSchubert merged MR !1434 (bschubert/node-find-target->bschubert/new-node-api: Replace 'node_find_target' by 'MappingNode.find') on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/143416:41
*** raoul has quit IRC16:48
*** alexandrufazakas has quit IRC16:48
*** tiagogomes has quit IRC16:54
tristanbenschubert, commented... what we should be getting is a warning (not an error), about refs which *are* present but will be ignored (not about refs which are missing)17:13
benschuberttristan: that was on master, not my branch that I ran this17:13
tristanbenschubert, I suspect that that is the behavior that you saw but just mistyped it in the comment (I don't think we *ever* had errors about missing refs at `bst show` time, that would not be an error)17:13
tristanor even a warning... it would just be elements with `inconsistent` state17:14
benschubertright, I might have gone too quickly17:16
benschubertso behavior is correct right?17:16
tristanbenschubert, note that that warning... in master might be an error (if that is configurable as a fatal warning in master, I didnt check)17:16
tristanbenschubert, Yeah :)17:16
tristanI think the behavior is correct17:16
benschubertthanks!17:20
benschuberttristan: also, quesiton about workspaces, do you know what the 'running-files' is? How can I populate this?17:20
tristanHahahahaha17:21
tristanAsk tlater[m] !17:21
benschuberttlater[m]: ^ please? :P17:21
tlater[m]Oof, that's a long time ago17:21
tristanbenschubert, I believe it is "The files in the workspace which differed since the last successful build"17:21
tlater[m]tristan is right17:21
tristanor rather, the files in the last successful build, which differ from the original unworkspaced thing ?17:21
tristanOh no, it's the former17:22
benschubertoh I see, thanks!17:22
benschubertgah I need to be able to build then17:22
tlater[m]benschubert: There is a big long comment about it somewhere17:22
tristanstory about making sure modified files are "newer" in the sandbox, for incremental builds17:22
benschubertI see, thanks a lot17:24
benschubertI'm checking that my node_sanitize rework doesn't break anything, and I was wondering how to populate this17:24
tlater[m]benschubert: Actually, it's just files created by *dependencies* since the last successful build - see element.py:76817:24
tlater[m]frontend/workspace.py has tests that ensure these things don't break17:25
* tristan always gets confused about that... indeed, dependencies can change in between workspace builds17:25
tlater[m]It's one of those test cases you only really "get" when you actually look at how it's reproduced17:27
tristanor when you read the elaborate book tlater[m] is going to publish on the subject ;-)17:27
benschuberttlater[m]: frontend/workspaces.py: would that get an error where I would be modifying the format without paying attention?17:27
tlater[m]benschubert: It would certainly break if the running files aren't populated correctly anymore17:29
tlater[m]And it should also break if you change running_files to foo_bar or something17:30
tlater[m]What kind of modifications do you mean?17:30
benschuberthttps://gitlab.com/BuildStream/buildstream/merge_requests/1438 :) removing the 'node_sanitize'17:30
*** toscalix has joined #buildstream17:30
tristanwhich is to say... if they are written out and read back in a different character encoding (silly example)... then the tests would still pass, but it would warrant a version bump in .bst/workspaces.yml17:30
tristanI really expect this to not impact running files in a bad way17:31
tlater[m]Yep, I agree with that17:31
tlater[m]It won't affect the actual behavior if the tests pass, and considering nobody should even consider modifying this stuff manually that should be enough.17:32
tristanJust... "If you upgrade to a new version of BuildStream and have open workspaces... that should not cause things to break"17:33
tristanas such the workspaces.yml is versioned and automatically upgrades itself17:34
tlater[m]Unless you have a running instance of buildstream, install a new version, and somehow get the two versions of buildstream to try and synch up on what running files they have while the two are running.17:34
tristanThat in itself is not tested afaik - it could be interesting to add a test with a committed workspaces.yml to ensure that it works when modifying code around that17:35
tristan(and add a new test with a committed workspaces.yml in every case that we modify/bump the workspaces.yml format version)17:36
tristanbut meh, it will probably never change, or change once or twice in the next 10 years17:36
benschuberttristan: https://gitlab.com/BuildStream/buildstream/merge_requests/1438#note_187177300 that's my current tests. If you seem something that I should test more let me know! tlater[m] actually your input would be good too17:36
*** lachlan has quit IRC17:50
*** phil has quit IRC17:58
*** lachlan has joined #buildstream18:24
*** lachlan has quit IRC19:11
*** lachlan has joined #buildstream19:14
*** lachlan has quit IRC19:25
*** lachlan has joined #buildstream19:26
*** lachlan has quit IRC19:30
*** lachlan has joined #buildstream19:34
*** lachlan has quit IRC19:46
*** toscalix has quit IRC20:05
*** jonathanmaw has quit IRC20:21
*** benschubert has quit IRC22:18

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