IRC logs for #buildstream for Tuesday, 2019-08-13

*** tristan_ has joined #buildstream01:36
*** tristan_ has quit IRC01:38
*** tristan_ has joined #buildstream02:31
*** tristan_ has quit IRC02:38
*** tristan_ has joined #buildstream03:37
*** tristan has quit IRC03:39
*** tristan_ has quit IRC04:28
*** tristan has joined #buildstream04:36
juergbitristan: no second Sunday I'm aware of ;)05:16
juergbijust different time zones, afaict05:16
tlater[m]We'll have a second sunday on the 26th iirc07:19
tlater[m]Also guadec is coming up :)07:19
*** bochecha has joined #buildstream07:58
*** bochecha_ has joined #buildstream08:00
*** bochecha has quit IRC08:02
*** bochecha_ is now known as bochecha08:02
* tlater[m] wonders why `tox -e venv` takes so long08:10
tlater[m]Surely it should just reuse the same ol' venv every time08:11
tlater[m]But it looks to be rebuilding it constantly08:11
jennisInstalling pyroaring?08:11
jennisOh right, does it look like it's reinstalling into a venv each time?08:11
tlater[m]Yeah08:12
tlater[m]This is what I get, in case you're curious: https://pastebin.com/raw/KcKdpiPm08:14
tlater[m]Is it because bst is not installed as editable?08:14
tlater[m]The whole game takes about a minute :|08:15
jennis<tlater[m]> Is it because bst is not installed as editable?08:28
jennisPotentially08:28
jennisHave you tested without?08:28
tlater[m]jennis: Frankly, I have no idea how tox works08:29
* tlater[m] will need to check docs08:29
jennishehe, me neither, but having looked at the tox.ini, it doesn't seem too complicated08:29
tlater[m]No, but there's no setting for "don't reinstall the package every time I run you you dimwit" anywhere so far08:31
jennistlater[m], does your `tox` on it's own reinstall everytime?08:31
jennisSo running the test suite08:32
*** tme5 has joined #buildstream08:32
tlater[m]It looks like it08:33
tlater[m]Well, it reinstalls buildstream every time08:33
tlater[m]Which I don't normally notice because the test suite takes forever anyway, but I'm starting to use it for my one-off smoke test commands as well.08:34
tlater[m]And now that extra minute is too long x)08:34
jennisok, mine doesn't08:37
jennisMine seems to only reinstall if I pass the --recreate (or -r) flag08:38
* tlater[m] wonders if a bst remote key store in ~/.local/share/bst/keys would make sense08:39
tlater[m]Then just read the keys from a remote-specific dir with default names08:39
tlater[m]jennis: Hm, I missed that, does this also happen when you run tox -e venv?08:58
gitlab-br-botmarge-bot123 closed issue #1096 (BuildStream cannot show logs of a workspaced build) on buildstream https://gitlab.com/BuildStream/buildstream/issues/109609:19
gitlab-br-botmarge-bot123 merged MR !1536 (jennis/fix_failed_workspaces->master: Don't reset a failed (but cached) workspaced Element) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/153609:19
*** jonathanmaw has joined #buildstream09:21
*** lachlan has joined #buildstream09:26
jennistlater[m], I'll have a try09:29
jennistlater[m]: Error: No such command "bst".09:44
jennisha09:44
*** traveltissues has joined #buildstream09:44
jennis`tox -e venv -- bst --no-colors --on-error terminate -C tests/integration/project bst build target.bst`09:44
tlater[m]Beautiful09:45
tlater[m]Have you tried re, in case it already exists and is messed up??09:45
tme5how do I run tests locally? i'm getting setup errors with pytest09:48
tlater[m]tme5: Just run `tox -e py37` in the buildstream directory09:49
tlater[m]Caveat, you may need to have tox installed09:49
tlater[m]Refer to your distribution's package manager for information on how to install that09:49
tme5ahh ok, can i select tests with that?09:49
tlater[m]Yeah, it's something like `tox -e py37 -- tests/artifactcache/something.py::test_the_thing`09:50
tlater[m]And you can also do things like `tox -e py37 -- --no-cov --integration`09:50
tlater[m]See CONTRIBUTING.md for more :)09:50
tme5great, ty :)09:50
jennistme5, or just `pip install tox`09:50
* tlater[m] generally recommends distribution packages over pip if they exist09:51
tlater[m]But yeah, if there is no such package, pip will do :)09:51
jennisI do too, but I've sometimes had the problem of having a version which is not up-to-date enough09:51
tlater[m]Hehe, the downsides of ubuntu ;p09:52
* tlater[m] will not further engage in the distro wars, don't worry09:52
jennishehe09:53
jennistlater[m], didn't work with the recreate flag either09:53
adds68Could anyone give this review an look over, i think the CI that failed is a known failure? https://gitlab.com/BuildStream/buildstream-docker-images/pipelines/7598848909:53
adds68I think my non zero exit status errors may be being caused by this09:53
tme5tlater[m], jennis, unfortunately the case with pytest on stretch, two major versions behind09:54
tlater[m]jennis: I'm going to have to really dig into tox to get comfortable with it I suppose |:09:55
tlater[m]Yeah, these sorts of things is why I'm on rolling release stuff now. That and I have too much free time.09:56
tlater[m]tme5: tox will install the correct versions for you though09:56
tlater[m]If you can get the right version of tox, which is pretty easy with pip09:56
gitlab-br-bottpollard approved MR !1524 (jennis/push_unbuilt_artifact->master: Ensure push fails when trying to push an unbuilt element) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/152409:57
tlater[m]It also does everything in virtualenvs, so you won't end up with frankenpython09:57
jennisadds68, not sure about that one, perhaps retry that specific test to check?09:59
adds68jennis, yea i've just clicked retry, lets see what happens09:59
gitlab-br-botjennis opened issue #1103 (Implement `bst artifact show`) on buildstream https://gitlab.com/BuildStream/buildstream/issues/110310:16
*** traveltissues has quit IRC10:28
*** traveltissues has joined #buildstream10:28
tme5i'm getting a lint error for something I haven't changed :(10:32
tlater[m]tme5: Mind sharing the exact error?10:33
tlater[m]Preferably via pastebin ;)10:34
tme5there's a warning for "Redefining name 'artifact' from outer scope" on this line https://gitlab.com/BuildStream/buildstream/merge_requests/1541/diffs#48a5425791d6d9d502dfdb9fad1e14e38ec05629_962_96210:41
tpollardah, click funs10:41
tlater[m]tme5: Don't name your variable artifact :)10:42
laurenceBuildStream is now being tested in the RE-API test suite project ! https://gitlab.com/remote-apis-testing/remote-apis-testing10:42
laurenceBuilding against BuildGrid only for now10:42
tlater[m]tme5: The convention is artifact_ if you can't think of anything else.10:42
laurenceHopefully Buildfarm and Buildbarn soon as well10:42
tme5oh i see! line 962 is the *original* definition10:42
tlater[m]In a week or three laurence! :)10:43
tme51013 is the offending line, got it, thank you10:43
tlater[m]tme5: Yup. Unfortunately python shares scope between functions and also shares names between variables and functions, so these errors are pretty common.10:43
tlater[m]Especially in cli.py, because everything is an artifact10:44
tlater[m]Hehe10:44
tlater[m]Does anyone know if we ever pull anything from remote source caches?10:45
* tlater[m] only sees code to make buildstream push sources in `steam.build`10:45
jennisraoul ^10:46
*** alexandrufazakas has joined #buildstream10:46
jennisI'm looking at being able to load a dependency graph given an artifact ref and I'm wondering what dependencies we need to add to the proto10:52
*** lachlan has quit IRC10:52
jennisCurrently the proto stores build deps (their name, cache key and whether it was workspaced), now, I think to reconstruct the graph, I'm going to need build + transitive runtimes of the build deps and these will need to be stored in the proto10:52
jennisIs that correct?10:53
jennisIf so, i'm unsure whether I should maintain two dependency "messages" (artifact proto speak), one for build and one for runtimes, or just add another member the the Dependency message in the proto10:54
*** cs-shadow has joined #buildstream10:57
*** phildawson_ has quit IRC10:57
*** phildawson_ has joined #buildstream10:57
*** lachlan has joined #buildstream11:06
tme5am I ok to work on this? https://gitlab.com/BuildStream/buildstream/issues/107811:13
tme5asking because it's a breaking UI change11:14
raoultlater[m], yeah we should be pulling sources, it's just combined in the same queue as fetching. The logic for it is in `Element._fetch`11:22
tlater[m]Ta raoul11:29
tlater[m]tme5: That would be appreciated11:29
tlater[m]We're preparing to release 2.0, which obviously breaks UI/API11:29
tlater[m]We got some things wrong, 2.0 is the big "let's fix and get everything consistent" release11:30
adds68can i have a review of: https://gitlab.com/BuildStream/buildstream-docker-images/merge_requests/129/diffs11:33
adds68thanks11:33
*** lantw44 has quit IRC11:41
tme5this click parameter naming is so annoying..11:42
tme5you can give different names nicely for options but not arguments11:42
*** lantw44 has joined #buildstream11:47
*** phildawson_ has quit IRC11:58
*** lachlan has quit IRC11:59
*** lachlan has joined #buildstream12:14
*** phildawson_ has joined #buildstream12:31
traveltissuesjuergbi, i only had a few comments on your mr12:56
juergbithanks for the review12:57
tlater[m]juergbi: So, after that patch, expiry will happen entirely on the casd side?13:07
juergbiyes13:07
tlater[m]How does it keep track of what is being expired, is it still mtimes?13:07
juergbiyes but now on a per blob basis13:08
juergbii.e., like expiry already was in bst-artifact-server, but different from what it was on the client side13:08
tlater[m]Perfect, that means my issues with server expiry are entirely resolved with this :)13:08
tlater[m]Wait, bst-artifact-server did use artifact-wise mtimes last I checked13:09
juergbisounds good but, ooi, what issues do you mean?13:09
juergbiinitially, yes, but valentind replaced it with blob-based expiry a while ago13:09
tlater[m]juergbi: As part of splitting artifact proto/blob servers I needed to get rid of code that updated artifact file mtimes13:09
tlater[m]I assumed that was for expiry13:09
tlater[m]Is that just leftover deadcode then?13:09
juergbimight have been13:10
juergbiif you mean the artifact proto files themselves13:10
tlater[m]Specifically: https://gitlab.com/BuildStream/buildstream/merge_requests/1540/diffs#d10b1e972922f297b08c3c672d861e73ef4e75f1_445_45913:10
tlater[m](Yeah, horrible diff, I need to actually remove that code instead of commenting it out)13:11
tme5what's the difference between PipelineSelection and Scope?13:12
juergbitlater[m]: that's actually still relevant, and I understand why it's an issue for you13:15
tlater[m]juergbi: So I take it that's what's keeping track of what blobs where modified when?13:16
tlater[m]Instead of (what I assumed to be) something that sets mtimes on protos?13:16
tlater[m]In which case the server will need to know whether it's running in artifact or cas mode...13:17
juergbiyes, this updates timestamps on artifact files when clients ask for an artifact13:17
juergbieither bst-artifact-server has to have a connection to the external cas server and call FindMissingBlobs on these13:17
juergbior maybe it would be better to handle this client site13:18
tlater[m]Hmm, do we need to do that?13:18
tlater[m]Surely the cas server can itself decide when to expire files13:18
juergbiwell, there is one issue13:18
tlater[m]And we simply assume that files that aren't used are not part of artifacts often accessed?13:18
juergbithe client right now only asks for blobs that it doesn't already have in the local cache13:19
juergbiwhen these blobs are downloaded, the server indeed updates the file timestamps13:19
tlater[m]Yeah, but is it really a problem if we expire blobs that aren't being used? We can treat artifacts with missing blobs as "missing" on the server side.13:19
juergbihowever, the blobs that were already in the local cache would never get the timestamp updated (if all clients already have them)13:19
tlater[m]And if all clients already have them, that means that they probably also have the rest of the artifact13:20
juergbidifficult to say whether it would be an issue in practice13:20
juergbiwe anyway need to deal with partial artifacts, so it definitely shouldn't cause a fundamental issue13:21
juergbihowever, it might lead to some blobs being expired earlier than they should be13:21
juergbiprobably a non-issue for environments with sufficient number of clients13:22
tlater[m]IMO this shouldn't be that big of a problem, considering this is a cache and we're already expecting artifacts to randomly disappear anyway.13:22
juergbibut there might be cases where a server is used by very few clients and in that case it will not be optimal13:22
tlater[m]Hm, well, I suppose it's worth a larger discussion. I don't like the idea of making the servers talk to each other, and it might be a bit fiddly to do on the client end.13:23
tlater[m]Perhaps I should make a ML post about it.13:23
juergbian option could be to leave it in place for combined artifact/cas server but don't worry about it if the servers are separate until a use case arises where it's a problem13:24
tlater[m]Yeah, that was the approach I intended to take13:24
juergbiI'd assume we anyway want a flag for bst-artifact-server to disable the CAS part13:24
tlater[m]ooi, juergbi, is there something in the protocol that allows me to say "please realize that I asked for these artifacts"?13:24
juergbido you mean blobs?13:25
tlater[m]Yeah, sorry13:25
tlater[m]Because the alternative is downloading full artifacts and piping them to /dev/null13:25
juergbiFindMissingBlobs should be sufficient for this, although it's not its real use case13:25
tlater[m]Ok, maybe not that bad to try on the client end then.13:26
juergbiwe certainly don't want that13:26
*** phildawson_ has quit IRC13:26
tlater[m]Anyway, I need to run, -> dentist13:26
*** phildawson_ has joined #buildstream13:26
tlater[m]o/13:26
juergbigood luck13:26
jennisgood luck tlater[m]13:26
*** coldtom has quit IRC13:27
*** coldtom has joined #buildstream13:27
tme5what's the difference between PipelineSelection and Scope enums? they seem to have almost identical meanings, just PipelineSelection has more choices13:33
tme5ahh, got it: PipelineSelection is higher-level and uses Scope in Pipeline.get_selection13:38
*** dftxbs3e has joined #buildstream13:40
*** dftxbs3e has joined #buildstream13:40
*** dftxbs3e has joined #buildstream13:40
*** tpollard has quit IRC13:41
*** dftxbs3e has joined #buildstream13:41
*** dftxbs3e has quit IRC13:45
*** tpollard has joined #buildstream13:46
*** toscalix has joined #buildstream13:58
*** phildawson has joined #buildstream14:46
*** phildawson_ has quit IRC14:46
*** lachlan has quit IRC15:16
*** lachlan has joined #buildstream15:21
*** lachlan has quit IRC15:29
*** lachlan has joined #buildstream15:30
*** tpollard has quit IRC15:36
*** tpollard has joined #buildstream15:37
ironfootIs there a way to figure out what element is creating a given file?15:41
*** ChanServ sets mode: +o tristan15:47
tristannot a nice one no, that might be interesting to bring to the list (I think the `bst artifact show` thread is on topic of late)15:47
tristanironfoot, I have had that question before, and I use a rotten trick of `find extract_directory -name "file path"`15:49
tpollarddo we still have the extract directory though?15:50
tristanI know that's going away, I don't know that it's gone yet in master15:51
tristanprobably gone once all of the cas / buildbox stuff gets through15:51
tristanbuildbox / buildbox-casd15:51
juergbiextract directories have been gone for a while already in master15:53
juergbiwe directly stage from CAS to the sandbox directory15:54
ironfootoh, I might be able to use that trick :)15:56
ironfootalso, I was wondering, is there a way to inject all the metadata (like the elements, and files provided by every element) into the final system?15:59
ironfootso that you can look inside a buildstream built system, and at least have an idea of what it is, and how it was built16:00
ironfootwhere things came from, etc16:00
tpollardbst-external has a manifest plugin16:00
tpollardbut I don't think it produces detail to that extent16:01
tpollardit might meet your needs though :)16:01
tpollardhttps://gitlab.com/BuildStream/bst-external/blob/master/bst_external/elements/collect_manifest.py16:01
ironfootoh, ace16:01
tpollardsame for all integration commands too16:02
ironfootthanks :D16:03
*** toscalix has quit IRC16:21
*** tme5 has quit IRC16:22
*** tristan_ has joined #buildstream16:25
*** lachlan has quit IRC16:28
*** lachlan has joined #buildstream16:36
*** tristan_ has quit IRC16:38
*** lachlan has quit IRC16:46
*** lachlan has joined #buildstream16:53
*** jonathanmaw has quit IRC16:57
*** traveltissues has quit IRC17:14
*** lachlan has quit IRC17:17
*** tristan_ has joined #buildstream17:37
*** tristan_ has quit IRC17:38
*** phildawson has quit IRC17:42
*** phoenix has joined #buildstream18:08
*** tristan_ has joined #buildstream18:37
*** tristan_ has quit IRC18:39
*** tristan_ has joined #buildstream19:14
*** tristan_ has quit IRC19:15
*** tristan_ has joined #buildstream19:37
*** tristan_ has quit IRC19:39
*** tristan_ has joined #buildstream20:00
*** tristan_ has quit IRC20:01
*** tristan_ has joined #buildstream20:04
*** tristan_ has quit IRC20:28
*** phoenix has quit IRC21:40
*** tristan_ has joined #buildstream22:07
*** tristan_ has joined #buildstream22:08
*** narispo has quit IRC22:37
*** narispo has joined #buildstream22:37
*** tristan_ has quit IRC22:51

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