IRC logs for #buildstream for Monday, 2017-10-30

*** tristan has quit IRC05:07
*** tristan has joined #buildstream05:16
tristanAnyone tried pdb with buildstream ?08:28
* tristan doesnt even know how to invoke, `pdb bst [args...]` exits with: Error: bst does not exist08:29
*** jude has joined #buildstream09:06
*** tlater has joined #buildstream09:11
gitlab-br-botbuildstream: merge request (list_relative_paths_opt->master: WIP: utils.list_relative_paths: avoid os.path.relpath) #128 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/12809:18
gitlab-br-botbuildstream: merge request (list_relative_paths_opt->master: WIP: utils.list_relative_paths: avoid os.path.relpath) #128 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/12809:18
tristanAha !09:20
tristanweird09:20
gitlab-br-botbuildstream: merge request (list_relative_paths_opt->master: WIP: utils.list_relative_paths: avoid os.path.relpath) #128 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/12809:20
*** adds68 has joined #buildstream09:20
* tristan is debugging https://gitlab.com/BuildStream/buildstream/issues/13709:20
gitlab-br-botbuildstream: merge request (list_relative_paths_opt->master: WIP: utils.list_relative_paths: avoid os.path.relpath) #128 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/12809:21
tristanAnd finds that... when we run `bst track --except foo.bst bar.bst`... and if the pipeline is rather large.... the place we are spending time after the whole thing completes is... calculating cache keys !!!09:21
gitlab-br-botbuildstream: merge request (list_relative_paths_opt->master: utils.list_relative_paths: avoid os.path.relpath) #128 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/12809:21
tristanfreaky09:21
tristanSo, since we loaded everything in a mode where the cache key is intentionally unset until we discover it... I suppose that the base element that is excluded with --except, never gets a cache key09:22
tristanand it causes printing of a highlevel cache key to become very expensive09:23
*** adds68_ has joined #buildstream09:23
*** adds68 has quit IRC09:24
tristanat the same time, I've learned to have `python3-dbg and python3-gi-dbg` installed, and it makes gdb stack traces of: "python3-gdb `which bst` [args...]" quite informative09:24
tristanahhha !09:28
tristanOk I can work around it at *least* - and I think it needs to be done anyway for tlater's work09:28
tristantlater, you are doing multiple targets right now right ?09:28
tlatertristan: yup09:28
tristanhttps://gitlab.com/BuildStream/buildstream/issues/12909:29
tristanRight09:29
tlaterI thought it was 131 for some reason but yes09:29
tristantlater, so there is one thing I intend to handle right away, which I think you need, not sure if you've considered it yet09:30
tristanThat is, if there is multiple targets; we no longer have a general element for general printing purposes (instead, we'd have multiple)09:30
tlatertristan: Right, I was about to ask you about that :)09:30
tristantlater, basically Pipeline.message() needs an element09:30
tristanAh09:30
tlaterWhat's your idea for that? I couldn't come up with anything and ignored it for the time being.09:31
tristanOk, well, if I rework that to not use an element, I think it does nothing to damage the logs - it will solve your issue of needing to decide on an ambiguous target element09:31
tristanAnd it will solve https://gitlab.com/BuildStream/buildstream/issues/13709:32
tlaterThat seems *very* handy, especially considering how often it turns up.09:32
tristanby not attempting to calculate a cache key09:32
tlaterWait, how is that related?09:32
tristantlater, I've updated that bug, it's not a hang - when you track a large pipeline and --except the root...09:32
tristanwhat happens is it takes a loooooooooooooong time at 100% cpu09:33
tristantrying to impossibly resolve a cache key for the target element09:33
tlaterAnd it does that only because it's trying to show it in the message?09:33
tristanbecause the cache key tries to get resolved but it never gets cached, it cant because dependencies have been chopped off09:33
tristanexactly !09:34
tlaterHeh, fair enough. Well, it's two birds with one stone I suppose :)09:34
tlatertristan: As an aside, do you know why there is an edge case for RUN dependencies here: https://gitlab.com/BuildStream/buildstream/blob/master/buildstream/_pipeline.py#L79 ?09:34
tristanmaybe not the ideal fix, but seeing as we need more generalized messaging at the top level anyway, better do that...09:35
tlaterI assume we want to build run dependencies with their parents, but looking at the run dependencies I actually get that doesn't seem to be it.09:35
tristantlater, I cant say I've ever understood that code perfectly09:40
tlaterOh, who wrote it?09:41
tristanjuergbi, wrote that part...09:41
tlaterFair enough :)09:41
tristanthe thing is, its a bit recursive I think, and ... if you require a build dependency, you require only it's runtime dependencies, but never build dependencies of build dependencies, in a build plan09:41
tristanthat will of course depend if all of your runtime dependencies of build time dependencies are cached, or not.09:42
* tlater seems to have misunderstood runtime dependencies09:42
juergbiyes, you want all runtime dependencies. build dependencies you need only for elements that you actually want to build09:43
juergbii.e., aren't cached09:43
tlaterAh, I understand. My actual question is why runtime dependencies aren't considered depth + 1 though09:44
juergbiah, you can build those at the same time09:45
juergbito build target element foo you don't need runtime dependency bar09:45
juergbiunless it happens to be a build dependency as well09:45
tlaterjuergbi: Awesome, ta :)09:46
*** valentind has quit IRC09:50
tlaterjuergbi: Does this mean that the root element is always planned?09:52
juergbiplanned, yes09:54
tristanthe root being the target ?09:54
juergbiit might not need to be built but it's never kept out of the plan right now, iirc09:54
juergbiyes09:54
tristanSounds reasonable - but I suppose desirable to exclude it (if only for the purpose of displaying a better session/total count in the logs and status area)09:55
tristanjuergbi, tlater is working on making buildstream support a target list in every command instead of a single target09:56
tristanwhich is the whole context behind this, he just needs to tweak the planner code to handle a list instead of one target09:56
*** ssam2 has joined #buildstream10:00
gitlab-br-botpush on buildstream@options (by Mathieu Bridon): 1 commit (last: doc: Explain how to configure project options) https://gitlab.com/BuildStream/buildstream/commit/2252e78b0d98508fe3e37ad9f8180a00a5bbc80310:11
gitlab-br-botbuildstream: merge request (options->master: doc: Explain how to configure project options) #130 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/13010:12
*** tiagogomes has joined #buildstream10:17
tlater\o/ I think I just re-implemented the planner using Kahn's algorithm, which manages multiple top level nodes correctly :)10:25
* tlater is off to meeting10:25
*** cs_shadow has joined #buildstream10:38
*** semanticdesign has joined #buildstream10:54
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 4 commits (last: tests/frontend/track.py: Added tests for recursive tracking and --except) https://gitlab.com/BuildStream/buildstream/commit/e472f5abd7f9aeff994a14e581c7a89199bd255f11:13
gitlab-br-botbuildstream: issue #137 ("buildstream hangs in operations with --except") changed state ("closed") https://gitlab.com/BuildStream/buildstream/issues/13711:13
ssam2this wacky FUSE error happened: https://gitlab.com/baserock/definitions/-/jobs/3794472111:15
ssam2luckily I can reproduce it locally, so i will dig into wtf is going on...11:16
ssam2i guess something has generated files with garbage names somehow11:16
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 2 commits (last: utils.list_relative_paths: avoid os.path.relpath) https://gitlab.com/BuildStream/buildstream/commit/4bc656c598d5eaa47bfe52c4956311a0ef64aacc11:18
ssam2interesting! this is the failed build log... https://pastebin.com/E9V5xjDs11:18
ssam2ldconfig is outputting line noise11:18
ssam2which triggers a backtrace in buildstream as it expects logs to be valid UTF-811:18
gitlab-br-botbuildstream: merge request (list_relative_paths_opt->master: utils.list_relative_paths: avoid os.path.relpath) #128 changed state ("closed"): https://gitlab.com/BuildStream/buildstream/merge_requests/12811:19
ssam2oh, the real problem is that i'm doing `/bin/sh ./tools/sbin/ldconfig` on a cross-built binary, which causes sh to try and execute it as a shell script11:25
ssam2but i guess there's a question on buildstream assuming the world is valid UTF-8; probably worth adding some testcases for that11:26
tristanWe should not make that assumption11:31
tristanWe cannot know really what the output is gonna be11:32
tristanSo that's worth being a bug11:32
tristanAlso, we dont have very good coverage of the fuse layer, we should add some integration test to exercise all the fs operations11:32
tristanI was thinking, we should probably stress test that, and consider enabling the multithreads option on it11:33
tristanI *think* the way we currently have it setup is to synchronize all fs operations through one single thread11:34
tristan(this doesnt matter *much*, because we intentionally dont use it in /buildstream/build, where we know we havent staged any hardlinks anyway)11:34
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 1 commit (last: context.py: Fixed project override validation to allow new 'strict' keyword) https://gitlab.com/BuildStream/buildstream/commit/459cc8a2c16c1485cf891485caa61fec51e91b2311:57
tristanssam2, you have push access to the artifact share correct ?12:00
tristanssam2, Can you try a handshake with: ssh -l artifacts -p 10007 gnome7.codethink.co.uk -oConnectTimeout=3 bst-artifact-receive artifacts12:00
tristan?12:00
tristanI've been refused pushes since friday, I think it's not fail2ban12:01
ssam2I get connection refused12:01
tristancrap12:01
tristanme too, ok -> broken12:01
tristannone of the local config has changed, must be something out of our control that's blocking us12:02
ssam2yeah12:02
ssam2hmm, i can't ssh to gnome 7 from the jumpserver either12:02
ssam2perhaps the node has crashed ?12:02
tristanI'm on it12:02
tristanssam2, I mean, I'm logged in to it12:03
ssam2ah, right12:03
tristannot like "I'm on it", as if I knew how to fix such a network related kind of thing12:03
tristanheh12:03
ssam2oh yeah, i was logging in wrong12:03
ssam2right, yeah it must be the port forwarding broken12:04
tlatertristan: Would you rather have the planner or the loader sort out which elements in the pipeline are the same? Currently I have two metaelements that don't at all link together, which obviously won't work... o\12:09
tlater-> They depend on metaelements which in turn are independent, so we create multiple metaelements from the same file12:12
* tlater thinks this is a loader issue, actually.12:12
*** bochecha has joined #buildstream12:12
tristanssam2, Dave says he'll look into it after a meeting he is in right now...12:14
tristantlater, neither12:14
tristantlater, rewind to our conversation last week: It must be the loader which accepts multiple filename targets, and returns a list of metaelements in the same order12:15
tristan* tlater thinks this is a loader issue, actually.12:15
tristanThat ^^^ ++12:15
tristanexactly12:15
tlatertristan: So, it should accept multiple filename targets and return a list of metaelements in the same order. The dependencies of these metaelements must overlap, rather than just blindly creating two trees?12:16
bochechahi, I have a module to build that only publishes its releases as... zip12:16
bochechais that a source plugin which would be acceptable in buildstream?12:16
*** givascu has joined #buildstream12:19
*** jude has quit IRC13:02
*** jude has joined #buildstream13:02
*** jude has quit IRC13:05
*** jude has joined #buildstream13:09
*** jude has quit IRC13:11
tristantlater, I dont know what you mean by "must overlap"13:16
tristanI.e. it's totally possible that you build two targets which dont overlap at all, there's nothing wrong with that13:16
tlatertristan: I want to create one graph, instead of as many trees as there are targets13:16
tristanbochecha, Naaaah I need to create one :-S13:17
tlatertristan: Ah, right, that scenario is fine. But if the graph contains dependencies that are common to some targets, they should be in the same graph.13:17
bochechatristan: not sure I understand13:17
tristanbochecha, I think we need a "download a file" kind of source, maybe we can support some features like auto-unzip if it's a zip file13:18
tristanbochecha, you mean you want a source which supports zip right ?13:18
bochechabasically I want the tar source, for zips :)13:18
tristanbochecha, that happens, I mean, we could treat it very similarly to how we do tarballs13:18
bochechathe release tarballs are zips for this project13:18
tristanexactly, and no... we dont have one13:18
tristanWe need one, that's what I mean13:18
bochechaIknow there isn't one, I found out when BuildStream refused my zip file :P13:19
tristanbochecha, I think maybe we want something even more abstract, though13:19
bochechaI was asking if it was desired, before I start working on it13:19
tristanI mean, just download a file and checksum it13:19
tristanbochecha, how would you feel about depending on having a program in your runtime that unzips ?13:19
bochechawhy would a program be needed?13:19
tristanWell, it's an easy feature to have, I guess no reason to omit it from a Source implementation13:20
tristanbochecha, so we could have one Source that deals with "whatever else you wanna download"13:20
bochechaPython has a zipfile module, with a very similar API to its tarfile module which BuildStream already uses13:20
tristanToday it's zip13:20
tristanTomorrow, it's I dont know what13:20
tlaterrar!13:20
bochechatlater: I.... I'm going to leave now :P13:20
tristan:)13:21
tristanWell, I dont mind a zip plugin, I think we discussed this before specifically about weird tracking options for tarballs13:21
bochechazip is unfortunately quite common for Python modules handled by distutils/setuptools (IIRC it's even the default format, or it used to be, I forgot)13:21
tristanbochecha, I guess it would be nice if we can internally code share between tar and zip plugins13:21
bochechaI wonder if it shouldn't just be a "tarball" source, which automatically handles .zip, .tar, .tar.gz, ...13:22
bochechaafter all, the "tar" source already handles .tar, .tar.gz, .tar.xz, ...13:22
bochechaeven though they really are different formats13:22
tlaterThat would be an "archive" source then, I suppose?13:22
bochechayeah, I couldn't find a better name than "tarball", that's the obvious one I was missing :)13:23
tlaterbochecha: I guess what tristan is saying, it would be really neat if that one eventually has a way to manage other formats besides .zip and .tar.* later down the line.13:23
bochechathat's what flatpak-builder does13:23
* tristan has to run... time to get a pizza before it closes13:25
tristanum um ... so no that's not *exactly* what I was saying13:26
tristanWhat I was saying... is that one day you need to download a .zip... another day, you might need to download a .ttf font somewhere13:26
tristanOr an anything13:26
bochechatristan: I have to run to, enjoy your dinner :)13:26
tristanI think it's close to what I was saying13:26
tristanWhat I mean is, if we're gonna put any effort, we should consider that it can be an "anything"13:27
tlatertristan: Add to that that unpacking is optional?13:27
tristantlater, or not even add to that ... just that13:27
tristanI.e., I would add to that some other thoughts, if I had space to think about it more :D13:27
*** kailueke[m] has joined #buildstream13:28
*** ssam2 has quit IRC13:30
*** ssam2 has joined #buildstream13:31
*** tristan has quit IRC13:34
*** jude has joined #buildstream13:35
kailueke[m]Hey, what do you think about adding options to bst shell for disabling bubblewrap isolation? Using the D-Bus session of the host makes sense as long as running in a VM is not ready (otherwise certain programs won't start)13:42
kailueke[m]bind mounting /run/user/ID seems to be needed, maybe more13:44
*** tristan has joined #buildstream14:03
*** bochecha has quit IRC14:06
*** jude has quit IRC14:13
*** jude has joined #buildstream14:14
kailueke[m]ah, --uid $(id -u) --gid $(id -g) might be enough14:16
tristankailueke[m], I think two things... for `bst shell --build` we want to maintain total isolation14:28
tristankailueke[m], and I think for regular relaxed testing purpose we probably want cooperation from the project.conf14:28
tristanBut yes, more relaxed at the bwrap level as well would be nice14:28
kailueke[m]ok, that's why I am asking. anyway it would have needed the content of /run/user and a writeable /run/user/ID14:28
tristanI was thinking maybe an interesting thing would be to let the project declare some commands to run at `bst shell` time14:29
tristanFor instance, if you want to muck about with /etc/resolv.conf14:29
tristanThen it would be up to you to know that such a file exists in the system you're developing14:29
tristanThere is also some hard coded pass through env vars that need to be gotten rid of, that should go into a project.conf declared "shell profile" or such14:30
kailueke[m]using the host D-Bus session has its downsides with different client library versions14:30
*** juergbi has quit IRC14:32
*** jude has quit IRC14:38
*** juergbi has joined #buildstream14:38
*** jude has joined #buildstream14:38
kailueke[m]the interesting thing with jhbuild is that running system deamons from jhbuild/install/libexec works and it finds the right libraries. developing is maybe a bit easier if the process you run is not isolated.14:41
kailueke[m]anyway, what is roughly the current state with building vm images?14:43
ssam2the 'x86image' element exists, so support is there in principle14:47
ssam2but it's not being actively used at present14:47
ssam2i would like to get a demo of VM image builds going soon though14:47
*** jude has quit IRC14:47
kailueke[m]ok, so just not exposed as bst subcommand14:48
ssam2right. it probably wouldn't be a subcommand but an element, whose artifact would be a disk image file14:50
ssam2so you'd do `bst checkout foo-vm-image.bst ./vm`, then run `qemu -hda ./vm/hda.img` or some such thing14:51
ssam2or the artifact could generate a script for running qemu with the appropriate commandline14:51
kailueke[m]thanks for explanation :) I hope to follow closer, but rightnow bst can't replace my current local-build/jhbuild usage14:57
*** semanticdesign has quit IRC15:02
*** semanticdesign has joined #buildstream15:03
*** jude has joined #buildstream15:03
*** bochecha has joined #buildstream15:20
tlaterWhat should the little header thing with the elements next to it be now that there is no clear 'target' anymore?15:23
tlater^ tristan, or anyone who wants to chime in I suppose. I can't really think of anything sensible, the project name maybe?15:23
tristanproject name sounds sensible15:24
tristan"project (session / total)" instead of "element.bst (session / total)"15:24
tristanthat's what you mean right ?15:24
tlatertristan: yup15:25
tristantlater, for the startup summary, probably better to actually list the targets, though15:25
tlaterA bit unfortunate that you can't distinguish between builds of the same project this way, but we don't have enough info to do that anymore.15:26
tristannot sure what you mean15:26
tristanthe header status thing is just user feedback15:26
tlatertristan: Well, if you have multiple terminals with running builds you don't really know which is which anymore.15:27
tristanthe startup heading goes into the log15:27
tristanmyeahhhhh15:27
tristanDo you really do that ?15:27
tlatertristan: Sometimes when testing things, I suspect most users probably won't.15:27
tristanI think right now it's not worth bothering about15:28
* tlater uses the project name15:28
tristanwe could one day create a unique token or something, and tie that together in the individual build logs or such15:28
tristanbut meh, for now I dont see the point unless there's really a need15:29
tlater"TARGETS DO NOT EXIST ANYMORE" was a cute heading. You will be missed little note written into the UI of buildstream.15:29
bochechatristan, tlater: so, I've got a bit of time right now, do I add a new dedicated `zip` source? an `archive` one which takes over `tar`? something else? :)15:32
tristanbochecha, Ok so - as far as Elements go, we have some abstract classes in the core which we use to simplify implementation of some things15:35
tristanbochecha, like ScriptElement and BuildElement, cant be used directly, but things in the plugins/ dir subclass them15:35
tristanbochecha, how about we create something like DownloadSource, and make tar derive from that15:36
tristanbochecha, that way the tar source only takes care of the staging, but the downloading and tracking of "downloadable files" is taken care of by the base class15:36
tristanAnd you can have an additional zip, suddenly it's not an explosion of duplicated code15:36
tristanAnd also, it will be easy to implement one that doesnt have any fancy un-archiving thing either (in the case that you want to download a font file directly from some hosting, or similar)15:37
tristanWe can later think about fancy tracking mechanisms in more specialized subclasses ... another time15:38
tristanfor now the download-every-track-and-raise-warning-if-checksum-changed seems alright-ish15:39
bochechatristan: pretty much every source except local ones are "download sources" (e.g ostree), but we probably don't want to factor them all?15:40
tristanTo me, what I wanted is A.) Not have to think about this all over again on the day we want to download a .ttf that is not in any kind of archive... B.) Not reimplement stuff we already have working15:40
tristanbochecha, they are not downloadable files, though - maybe another name would be more suitable15:40
tlatertristan: Couldn't a lot of these plugins just be handled with a clever (>)?15:41
tristani.e. the "norm" is a VCS, which provides features for tracking and fetching etc15:41
tristantlater, more context15:41
tlatertristan: If we have an arbitrary 'download' command that does no unpacking, there could be some sort of a 'post-download' group of commands that allow you to run whatever on the downloaded file15:42
tristantlater, it's not time to rearchitecture the whole world, but yeah I see your meaning15:42
tlaters/command/plugin/15:43
tristantlater, the truth is, we could rip the guts out of tar source, never make a zip source, and require that the runtime have a tar or unzip program15:43
* bochecha just wants to build pytz ^_^15:43
tristanbut meh, these are convenient anyway15:43
tristanbochecha, right now you can copy paste tar source into your project's local tree and implement a zip source based on that15:44
tristanto upstream it, we should do it nicely, and not duplicate code, though15:44
bochechayeah, I know... but I usually try to avoid downstream plugin and just get things done upstream when I can :)15:45
bochechaand I don't have any urgency on this thing, so I'd rather take the time to do it directly upstream, rather than work around it downstream (which is pretty much what I've been doing since I've started looking at BuildStream)15:45
tristanI think what I'm proposing is pretty sensible no ? its not time to start thinking of removing tar or any wild things like that15:45
tristanI mean, API is almost sealed15:45
bochechasure15:46
tristanSo seems logical, like 80% of what tar does, is what you'd want in zip15:46
bochechaI can't think of any difference I'd want between the two15:46
bochechaexcept the archive format15:46
tristanAnd is also useful for a no-extract-download-a-file thing if we want to create one (which we *definitely will*)15:46
tristanso that 80% goes into -> CommonSourceAbstractClass, tar unpacking and staging goes into one file (that exists) and zip unpacking goes into a new Source plugin15:48
tristanif you dont want to futz about with making a nice common abstract class API, we could keep that abstract class private until a later time, too15:49
tristan_CommonAbstractSourceWithSomeNameThatIsNotAsLongAsThisOne() :)15:50
bochechaI'll try something :)15:50
bochechayou'll tell me what's wrong in the review, and it will get good before it's merged ;)15:50
* tlater is watching two specified targets build in parallel :)15:53
tristantlater, awesome sauce :)15:59
tristantlater, I think depth-sort done by the planner is the most sensitive part of this16:00
tristanAlso, I think it wouldnt hurt if say; we broke it up into two parts - if that's more readable16:00
tristani.e. a depth sort, and a filtering process which removes elements that need not be in the plan16:01
tristanbut either way, not regressing depth sort is important16:01
* tristan has for a long time been hopeful that we can use Element.dependencies(), which are already *pre sorted* by the loader, to help us ditch at least some of the planner code16:03
*** ssam2 has quit IRC16:07
*** ssam2 has joined #buildstream16:09
tlatertristan: Probably a good idea if you had an initial look through what my solution is once it's roughly "working". I'll hopefully be far enough with that bit today.16:15
* tlater will have to write lots of tests, but is pretty confident this works from manual testing.16:15
bochechahuh16:57
bochechahttps://gitlab.com/BuildStream/buildstream/blob/master/buildstream/plugins/sources/tar.py#L17616:57
bochechaTarInfo objects don't have a `path` attribute... or am I missing something?16:57
bochechathey do, it's just not documented :o16:59
*** valentind has joined #buildstream16:59
*** bochecha has quit IRC17:32
*** bochecha has joined #buildstream17:33
*** bochecha has quit IRC17:35
*** bochecha has joined #buildstream17:36
* bochecha yells at tarfile/zipfile for having such a similar API, yet subtly different enough17:45
bochechatarfile has name, zipfile has filename17:46
bochechatarfile has getmembers, zipfile has infolist17:46
bochechatarfile has add (which recursively adds directories by default), zipfile has write (which doesn't recurse through directories at all)17:46
bochechalooking at the differences between TarSource and ZipSource makes me want to have custom Archive and ArchiveMember classes which just abstract both tarfile/zipfile differences17:48
bochechaand of course: isdir -> is_dir17:52
ssam2the Zen of Python  :-)17:53
tlaterOuch, that one's mean.17:55
bochechatlater: the worst was not adding directories recursively17:55
bochechaI copied the tar implementation and tests, adapted things, and all tests were passing except 2, due to this behaviour difference17:56
bochechatook me ages to figure out >_<17:56
tlaterCan we change the project name of gnome-modulesets to 'Gnome'? Lower case looks like a typo now that it's an actual heading :/17:58
ssam2and the same for every BuildStream project ? that would mean filenames like ./.cache/buildstream/logs/Baserock/...17:59
ssam2which is ok I guess, but i kind of instinctively dislike case in filenames17:59
ssam2uppercase, i mean17:59
bochechaand how does zipfile determine whether a member is a directory? easy! it ends with a /18:00
tlaterUmm...18:00
*** ssam2 has quit IRC18:00
bochechawhich caused all sorts of fun when buildstream was passing it members with empty file names18:00
tlaterWell, I it's simple at least.18:00
bochechabecause ""[-1] doesn't do well18:01
tlaters/I /I guess /18:01
bochechaheh, yeah, dirs in tarfile don't have a trailing /18:05
gitlab-br-botpush on buildstream@tracking-changes (by Tristan Maat): 20 commits (last: _pipeline.py: Make fetching of remote refs optional) https://gitlab.com/BuildStream/buildstream/commit/5c2ef6d076921bc0121e61efaa7a719c34ea191218:05
gitlab-br-botbuildstream: merge request (tracking-changes->master: WIP: Tracking changes) #119 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/11918:05
bochechabut in zipfile they do18:05
bochechaso here: https://gitlab.com/BuildStream/buildstream/blob/master/buildstream/plugins/sources/tar.py#L176-17718:05
bochechawith tarfile, the member whose path is base_dir doesn't have the trailing /, and therefore member.path.startswith(base_dir) is False18:06
bochechawith zipfile, it's true, and I was setting the path of a member to the empty string18:06
bochechajoy :)18:06
gitlab-br-botpush on buildstream@zip (by Mathieu Bridon): 2 commits (last: tar: Move most of the code to a new base class) https://gitlab.com/BuildStream/buildstream/commit/c850a1ac6387903f2e307bb4f728905f57f3d99c18:08
gitlab-br-botpush on buildstream@tracking-changes (by Tristan Maat): 5 commits (last: WIP: Add support for multiple arguments (*very* WIP)) https://gitlab.com/BuildStream/buildstream/commit/4346148f33a20d206620f5408b4e00f0818e6ad518:09
gitlab-br-botbuildstream: merge request (tracking-changes->master: WIP: Tracking changes) #119 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/11918:09
gitlab-br-botbuildstream: merge request (zip->master: Add a new zip source) #131 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/13118:10
bochechaanyway, here's the merge request :)18:10
gitlab-br-botpush on buildstream@tracking-changes (by Tristan Maat): 5 commits (last: WIP: Add support for multiple arguments (*very* WIP)) https://gitlab.com/BuildStream/buildstream/commit/3b5b0a10cfb22793c7030eb33424196009f9539718:12
gitlab-br-botbuildstream: merge request (tracking-changes->master: WIP: Tracking changes) #119 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/11918:12
*** tlater has quit IRC18:22
tristanbochecha, oh crap - I'm so sorry you fell into that trap too :-S18:34
tristanI just took a look btw, the code looks promising18:34
tristanbochecha, I need to remove tests/sources completely18:34
tristanthat old stuff is still lying around because the existing stuff covers a liiiitle bit that I still have to factor into the new, better way of testing18:35
tristanI'm not adding any more anything to tests/sources18:35
tristanbochecha, what you need to do, is add a new repo implementation (test scaffolding) for zip source in tests/testutils/repo, and update tests/testutils/repo/__init__.py so that it's a part of ALL_REPO_KINDS18:37
tristanthat action alone will cause your new source to be tested under all of the frontend tests18:38
bochechatristan: ah, ok19:33
bochechaI wrote that in the pull request, so I don't forget :)19:35
tristanbochecha, I'll take a look at the code tomorrow (very, very late here)19:46
* tristan will make sure to put up a big DONT_ADD_TESTS_README file in that directory, I think this is the second time19:47
* tristan is sorry to leave that around - it really is a trap that I should clean up19:48
bochechatristan: heh, starting wednesday I'll be in a timezone similar to yours :)19:51
tristannice !19:51
bochechaso I won't be bugging you at awfully unreasonable times ;)19:52
*** bochecha has quit IRC20:13
*** bochecha has joined #buildstream20:19
*** bochecha has quit IRC20:33
*** bochecha has joined #buildstream21:03
*** givascu has quit IRC21:43
*** bochecha has quit IRC21:52
*** valentind has quit IRC23:35
*** semanticdesign has quit IRC23:47

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