IRC logs for #buildstream for Friday, 2020-10-02

*** tristan has joined #buildstream03:40
*** ChanServ sets mode: +o tristan03:40
*** jjardon has quit IRC04:27
*** jjardon has joined #buildstream04:27
*** ChanServ sets mode: +o jjardon04:27
*** jjardon has quit IRC04:28
*** jjardon has joined #buildstream04:28
*** ChanServ sets mode: +o jjardon04:28
tristanjuergbi, regarding https://gitlab.com/BuildStream/buildstream/-/issues/1398, I think I can get it to work at the expense of shallow loading every junction specified in the list of overrides, and only if those are local to the project being walked07:10
tristanthus incurring an additional LoadElement() load (only at _search_for_override() time) for each override in a junction's override list, but without ever incurring an unnecessary load of a subproject07:11
juergbiah, if we can do it without unnecessary loading of subprojects, that sounds reasonable07:12
tristani.e. in this loop: https://gitlab.com/BuildStream/buildstream/-/blob/master/src/buildstream/_loader/loader.py#L491 we would try substituted locally defined links07:12
juergbisorry I haven't commented on it yet. I took a look yesterday but noticed I need more time to fully wrap my head around it07:12
tristancheck if its a link, and see if it's a link to the subproject we're about to load07:12
tristanyeah it's not easy07:13
juergbialso finally need to get to your 'replacing elements through junctions'07:13
tristanThere we do `override_path = junction.name + ":" + override_path` every time, but we could check if any of the overrides in the list for that junction, are a link to something in an already loaded project leading to the project we might be about to override07:15
tristanits definitely a bit hairy, I have to work out how to express that and make it readable07:15
tristanbut I'm pretty sure the approach is sound in theory07:15
tristanwe have access to all the links in the loaded project, and all the override lists leading to the project, we only need to check if the overrides are links07:16
tristanyeah, I'm ofcourse stumbling on this bug while thinking of that other ML post07:16
tristanMaybe this will be easier if I were to build a reverse mapping of links to elements; so I could determine what possible links exist for any given element/junction07:19
tristanOnly for "used links" of course07:20
tristanRight, that would be the approach07:24
tristan * Add to a table of reverse mapping of link name -> element name upon loading any junction07:25
tristan * When searching for an override, we crawl up the hierarchy of projects as usual07:26
tristan * In this case, we always have real absolute element names (or junction names)07:26
tristan * Before trying to get a match, we normalize the list of overrides, resolving any links, making them absolute (to our knowledge, we don't know when it crosses the boundary of a not yet loaded junction)07:27
tristan * We compare our path of actual junction names to the normalized paths in the override list07:28
tristanThe overrides in a parent project override list can be altered by loading deeper junctions too, as further links might get resolved07:30
* tristan adds that to the issue for now07:30
gitlab-br-botvalentindavid opened issue #1399 (Hardlinks fuse mount has improper linking) on buildstream https://gitlab.com/BuildStream/buildstream/-/issues/139908:22
*** tpollard has joined #buildstream08:23
*** santi has joined #buildstream08:47
*** tristan has quit IRC09:36
*** benschubert has joined #buildstream10:33
benschubertif someone has time to review !2079 and ensure I didn't forget any asserts, it would be greatly appreciated!11:37
gitlab-br-botMR !2079: Ensure we are not calling methods with side effects on the element graph in jobs https://gitlab.com/BuildStream/buildstream/-/merge_requests/207911:37
*** tomaz has joined #buildstream13:20
tomazhow do I specify that a junction is in a subfolder from elements? this - junctions/freedesktop-sdk.bst:public-stacks/buildsystem-cmake.bst - does not seem to work.13:21
tomazI get a Could not find element 'freedesktop-sdk.bst' in elements directory '/data/Projects/Buildstream/kde-build-meta/elements' (without a line number of the error)13:21
tpollardinteresting, I'm not sure I've ever had a project with junctions in a subdir13:22
tpollardmaybe it's a limitation13:25
tomaztpollard: One thing that I'm struggling in buildstream projects in general is to discover "what" should I `bst build` to get the resulting build13:25
tomazmany projects have just a lot of .bst files on elements, anyone of them *could* be the "main.bst"13:25
tomazso I'm trying to remove as much as possible from elements/ leaving there what I want to give access to the users to build13:26
tpollardyeh I can see why you'd want that indeed13:26
tpollardunless there's a specific reason against it, I'm sure it'd be a trivial patch13:27
tpollardalong with some tests13:27
tomazfor this I tested something that depends only on freedesktop-sdk, moving it to another folder.13:27
tomazwould you like to test too - and see if I did something wrong on the file perhaps? (you don't even need to build, it fails in 2 seconds)13:28
tomazgitlab.com/tcanabrava/kde-build-meta , branch `test_subfolders`, the element I'm trying to build is libs/kf5/tier1/extra-cmake-modules.bst13:30
coldtomhttps://gitlab.com/tcanabrava/kde-build-meta/-/blob/test_subfolders/elements/libs/qt5/qtbase.bst is in the build tree which references the non-existent freedesktop-sdk.bst13:32
tomazaha. thanks.13:33
tomazcoldtom: but even removing the (wrong) dependencies to it, and leaving my depends just with:13:34
tomazdepends:13:34
tomaz- junctions/freedesktop-sdk.bst:public-stacks/buildsystem-cmake.bst13:34
tomazI have the same problem. Does buildstream loads all of the .bst files instead of trying to load only the ones I specified?13:34
tomaz(the lack of line number on the error message is bad, something like "Could not find element 'freedesktop-sdk.bst' in elements directory '/data/Projects/Buildstream/kde-build-meta/elements' specified in ElementSomething.bst` would be a great help :)13:35
coldtomhmm aiui it should only load those which are in the build tree13:38
benschubertIt only loads the files that are required indeed13:39
benschuberttomaz: for the missing line number, this seem like a bug to me. If you can have a small reproduction and make an issue, would help ensuring it doesn't fall through the cracks :)13:39
tomazbenschubert: ok.13:39
tomazI think I have the minimum necessary for the line number bug, sec.13:40
tomazcoldtom: I just updated my test branch with removed dependencies from extra-cmake-modules to make sure that I have a failure.13:40
*** muelli has joined #buildstream13:41
tomazalso, updating to bst 1.6.0 (I was on 1.5.1)13:41
muellihola. I was curious to learn about plans for 2.0.13:42
benschubertmuelli: hey! anything in particular in the plans?13:43
tomazyeah, minimal example ready (and bugged, cool).13:45
muellirather superficial reg. incompatibilities. We're discussing internally whether we should use a self-made wrapper (which, if you ask me, has grown out of control) around debootstrap or use something like BuildStream. The concern there was 2.0 was about to come and bring incompatibilities...13:47
benschubertSo, here is out of the top of my heads the incompatibilities between 1.X and 2.X:13:50
benschubert- project.conf has a few different keys that need to be set13:50
benschubert- artifacts are not compatible, if you have a cache you will need to rebuild your whole project13:50
benschubert- plugins API has changed, we ported all the previous core plugins, and we're moving them out of the core (might not be marked as 'stable' right now)13:50
benschubertOtherwise, the element files will have also some different configuration, but I don't think there are many changes.13:50
benschubertif I recall correctly, the Freedesktop SDK team have a test branch with bst master, that is rebased from time to time13:50
gitlab-br-bottcanabrava opened issue #1400 (Missing line number on error) on buildstream https://gitlab.com/BuildStream/buildstream/-/issues/140013:51
tomazcoldtom and benschubert: my minimal project that exibits both bugs (not being able to use a junction in a subfolder, and missing line number on error) https://gitlab.com/BuildStream/buildstream/uploads/511d96becbf3275f525beba44eaa8ae0/test-junctions.tar.gz13:52
tomazthe issue: https://gitlab.com/BuildStream/buildstream/-/issues/140013:52
*** jward has quit IRC14:34
*** jward has joined #buildstream14:34
*** jjardon has quit IRC14:35
*** jjardon has joined #buildstream14:37
*** ChanServ sets mode: +o jjardon14:37
*** jjardon has quit IRC14:38
*** jjardon has joined #buildstream14:38
*** ChanServ sets mode: +o jjardon14:38
*** jward has quit IRC14:42
*** jward has joined #buildstream14:45
*** jward has quit IRC14:47
*** jjardon has quit IRC14:48
*** jjardon has joined #buildstream14:49
*** ChanServ sets mode: +o jjardon14:49
*** jjardon has quit IRC14:50
gitlab-br-bottcanabrava opened issue #1401 (Buildstream does not work with junctions in subfolder) on buildstream https://gitlab.com/BuildStream/buildstream/-/issues/140114:52
*** jjardon has joined #buildstream14:52
*** ChanServ sets mode: +o jjardon14:52
*** jjardon has quit IRC14:53
*** jjardon has joined #buildstream14:53
*** ChanServ sets mode: +o jjardon14:53
*** jjardon has quit IRC14:54
*** jjardon has joined #buildstream14:54
*** ChanServ sets mode: +o jjardon14:54
*** jjardon has quit IRC14:55
*** jjardon has joined #buildstream14:55
*** ChanServ sets mode: +o jjardon14:55
*** jjardon has quit IRC14:56
*** jjardon has joined #buildstream14:56
*** ChanServ sets mode: +o jjardon14:56
*** jjardon has quit IRC14:57
*** jjardon has joined #buildstream14:58
*** ChanServ sets mode: +o jjardon14:58
*** jjardon has quit IRC15:05
*** douglaswinship has quit IRC15:06
*** douglaswinship has joined #buildstream15:06
*** jjardon has joined #buildstream15:06
*** ChanServ sets mode: +o jjardon15:06
*** jjardon has quit IRC15:07
*** jjardon has joined #buildstream15:07
*** ChanServ sets mode: +o jjardon15:07
*** tpollard has quit IRC16:25
*** tomaz has quit IRC18:05
*** santi has quit IRC18:22
*** santi has joined #buildstream18:22
*** santi has quit IRC18:27
*** muelli has quit IRC19:21

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