IRC logs for #buildstream for Friday, 2018-07-20

gitlab-br-botbuildstream: merge request (fedora_update_deps_docs->master: Docs: Update the required build packages for fedora based systems.) #542 changed state ("closed"): https://gitlab.com/BuildStream/buildstream/merge_requests/54200:01
*** lantw44 has joined #buildstream00:06
*** lantw44 has quit IRC00:11
*** tintou has quit IRC00:12
*** tintou has joined #buildstream00:12
gitlab-br-botbuildstream: merge request (willsalmon/documentation_dependency->master: Added dependency to the Docs) #534 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/53400:15
*** lantw44 has joined #buildstream00:16
gitlab-br-botbuildstream: merge request (willsalmon/documentation_dependency->master: Added dependency to the Docs) #534 changed state ("merged"): https://gitlab.com/BuildStream/buildstream/merge_requests/53400:59
*** leopi has joined #buildstream02:30
*** Prince781 has joined #buildstream03:00
*** leopi has quit IRC04:04
*** jsgrant has quit IRC04:22
*** jsgrant has joined #buildstream04:23
*** leopi has joined #buildstream04:39
*** tristan_ has joined #buildstream04:42
*** jsgrant has quit IRC05:03
*** ernestask has joined #buildstream05:04
*** Prince781 has quit IRC05:05
*** Prince781 has joined #buildstream05:09
*** mohan43u has quit IRC05:27
*** mohan43u has joined #buildstream05:31
*** tristan_ has quit IRC07:32
*** Prince781 has quit IRC07:46
*** tpollard has joined #buildstream07:53
*** coldtom has joined #buildstream07:56
*** finn has joined #buildstream08:00
*** thomascoldrick has joined #buildstream08:00
*** bethw has joined #buildstream08:01
*** coldtom has quit IRC08:01
*** finn has quit IRC08:06
*** finn_ has quit IRC08:06
*** finn has joined #buildstream08:06
*** qinusty has joined #buildstream08:09
*** jonathanmaw has joined #buildstream08:12
*** ernestask has quit IRC08:42
gitlab-br-botbuildstream: merge request (phil/437-junction-tutorial->master: WIP Phil/437 junction tutorial) #550 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/55008:44
gitlab-br-botbuildstream: merge request (Qinusty/275->master: Indicate where artifacts are going to and coming from in the log) #553 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/55308:46
gitlab-br-botbuildstream: merge request (Qinusty/275->master: WIP: Indicate where artifacts are going to and coming from in the log) #553 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/55308:56
gitlab-br-botbuildstream: merge request (tiagogomes/tarball_checkout->master: Add support for creating artifact tarballs) #546 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/54609:07
*** mohan43u has quit IRC09:13
*** mohan43u has joined #buildstream09:14
gitlab-br-botbuildstream: merge request (phil/437-junction-tutorial->master: WIP Phil/437 junction tutorial) #550 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/55009:18
*** tristan has joined #buildstream09:19
gitlab-br-botbuildstream: merge request (phil/437-junction-tutorial->master: WIP Phil/437 junction tutorial) #550 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/55009:21
*** CTtpollard has joined #buildstream09:22
tristanrdale, regarding building gcc with the tiny C compiler, I haven't tried it; theoretically I suppose it can work, but remember that since fairly recently gcc needs to be built with a C++ compiler09:22
tristanwhich significantly changes the bootstrapping process09:22
*** tpollard has quit IRC09:22
*** CTtpollard is now known as tpollard09:23
tristan(I'm not sure if the tiny c compiler is even a C++ compiler)09:24
tiagogomesOne thing I didn't find properly explained in the documentation is the relationship between elements and sources09:24
tristanhttp://buildstream.gitlab.io/buildstream/format_declaring.html#sources ?09:27
tristanclosest I can find09:27
tristanI think the reference needs a bit of a restructuring though, I dont like how the introduction ends up containing everything about the YAML directives09:28
tristanand the whole "Element Basics" section http://buildstream.gitlab.io/buildstream/format_declaring.html#element-basics, while attempting to provide a single all purpose example, ends up being a little redundant with later, more complete explanations of concepts09:29
tristanThe sentence at the end: "refer to the Source specific documentation for meaningful attributes for the particular Source", should certainly link to http://buildstream.gitlab.io/buildstream/core_plugins.html#sources09:32
tiagogomesMaybe "At the core of BuildStream is a data model of Elements which are parsed from .bst files in a project directory and configured from a few different sources.09:35
tiagogomes" should be rephrased to give a stronger idea that Elements can contain Sources, and Sources are not usable by their own09:35
gitlab-br-botbuildstream: issue #263 ("Allow checking out an artifact as a 'tar' stream") changed state ("closed") https://gitlab.com/BuildStream/buildstream/issues/26309:37
gitlab-br-botbuildstream: merge request (tiagogomes/tarball_checkout->master: Add support for creating artifact tarballs) #546 changed state ("merged"): https://gitlab.com/BuildStream/buildstream/merge_requests/54609:37
rdaletristan: i'm trying to build gcc-4.5.3 but i need to build gmp, mpc and elf utils with tiny c and i don't think it is possible, but shall carry on trying for a bit09:38
tristantiagogomes, no objections here :)09:38
tristanrdale, note that if it's a system with gcc that you're after, attempting to bootstrap one with tiny c might not be the most practical approach09:39
* tlater thinks using a different base platform is definitely the way to go, having attempted just this09:40
tristanrdale, i.e. the way we've started out with this in freedesktop-sdk, is to use a more complete runtime for the initial bootstrap but then make it circular09:40
paulsherwoodhmmm09:41
tiagogomestristan when fixing 263 on bst-1.12 as well, is there anything different to do regarding the NEWS file? Or should still have an entry on "buildstream 1.3.1" mirroring what's being done on master09:41
tristanI think freedesktop-sdk project still uses a foreign runtime for the bootstrap but it's beside the point09:41
tristani.e. they just didnt get around to closing the loop09:41
paulsherwoodin other contexts we have a purist argument that we don't want the circular shortcut09:41
tristanrdale, the point is; once you've done the exercise once, you've isolated yourself from anything else and the base runtime need not change too often (until you need to bootstrap something which requires new toolchain features)09:42
tristanpaulsherwood, I suppose it's a purist argument from both sides yes, you should be able to always seed the bootstrapping with a different runtime09:42
tristanbut if you've completed the loop, you don't require anything external anymore either09:43
rdaleyes - baserock bootstraps from a larger gcc based tar ball than the buildstream alpine one - i might try that next09:43
tristanrdale, I do suggest however that you look at the freedesktop-sdk bootstrap instead; because it solves an interesting problem09:43
rdaleah ok, that might be a better choice then09:44
tristanrdale, which is that it separates the part where you first build the initial tooling, and the part when you have to first start using that tooling09:44
tristanwhich means... you can cross build the first stage to use on a foreign architecture and then continue09:44
rdaleright, that's what i want to do certainly09:44
paulsherwoodflatmush: ^^ what is your view of this?09:47
tristanpaulsherwood, for complete purism in that sense, it makes sense to seed the initial bootstrap with a compiler that is not self hosting, if you can get your hands on one (is tiny C one ?)09:47
tristanit does sound like an interesting exercise, though09:47
tristaneven if you can only get off the ground initially with an architecture specific assembler, at least you start with assembly09:47
tristanNexus, so today my main objective was to unlock this git history thing in whatever way possible; I'm confused though what happened to the issues09:49
tristanNexus, my understanding was that 455 was the workaround where we just nuke .git/, did you reverse that in the issues ?09:50
flatmushI'm not sure really, I mean you could always build gcc with clang, but I don't know what it gains you09:50
* tristan 's suspicion is that this is in the context of provenance, trustability and being able to audit the full build09:50
tristanflatmush, i.e. the desire would be to ensure that you are not using a compiler with a built-in backdoor somehow09:51
tristanwhich I think requires you dont use a self hosting compiler09:51
jmacThat's right09:52
flatmushit's a difficult scenario for me to entertain really, and if someone was so determined, they could make a tarball of clang that puts a backdoor in gcc09:53
flatmushseems highly theoretical09:53
jmacflatmush: You can get around it09:53
gitlab-br-botbuildstream: merge request (Qinusty/275->master: WIP: Indicate where artifacts are going to and coming from in the log) #553 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/55309:53
jmacIf you want to do diverse double-compilation you need at least two compilers both capable of building themselves and each other09:53
jmacYou would almost certainly want to do this as a test, you wouldn't want to do it to build software normally09:54
gitlab-br-botbuildstream: issue #486 ("Capturing binary output using pytest capsysmodule doesn't work") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/48609:57
tristanif you had a minimal, well audited C compiler in assembly which you trust, you could roll back to an old enough version of gcc which can build with that; and then use that gcc to compile modern gcc, and recompile itself with that09:57
tristanthen, if gcc is a reproducible build, you could compare the results of that crazy build, with a normal one to detect binary changes09:58
jmacRight, the problem is that it's not just the C compiler. Compiler is just the common example, but you can put a self-perpetuating backdoor into the assembler, shell, terminal, hard disc controller, you name it09:58
tristanjmac, it's an interesting question whether it's turtles all the way down or not09:59
flatmushwell I'm happy to start writing an assembler in machine code if we want ;)09:59
jmacSo writing a compiler in a language other than what it's hosted in doesn't get you that much09:59
tristanWith perfect isolation, you might find a way; but it might require rewrites of a lot of the lower levels of the stack09:59
Nexustristan: it stil just nukes .git, but it also does some other things to allow it to not break things unnecissarily10:00
flatmushI think we're going a bit far down the rabbit hole here, we can't be perfect, how would we determine which level of risk is acceptable for bootstrapping? I guess in the past, baserock considered the 3 stage approach and using tarballs to be good enough.10:01
flatmushMy thought is that removing the tarballs is fairly easy, so it's worth doing10:01
flatmushI guess compiling gcc with clang and vice versa is also easy enough to consider?10:02
gitlab-br-botbuildstream: merge request (bst_workspace_open_force_does_nothing->master: _stream.py: Added functionality for workspace open -f) #549 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/54910:02
jmacflatmush: Yes, that would be a good experiment10:03
tristanNexus, ok, I was going to do something different with the issues; e.g. I was going to: A.) land and close the workaround where we nuke .git/, B.) Open a regression bug about git describe not working any more (probably with a supporting freedesktop-sdk build failure), C.) Point that new bug back to #37610:03
jmacI don't know what your goal is here flatmush10:04
tristanNexus, how do you suggest we proceed, then ? I still want to do things in that order, I mean just with the issues10:04
tristanNexus, also, I don't see an MR with passing tests, which MR has the workaround to start with ?10:05
Nexustristan: so #455 will still need fixing, and will still be the first once closed10:05
flatmushjmac: me neither yet, the ultimate goal is to certify a linux distribution and hardware as safe, does the Buildstream project itself have a requirement that's applicable to this?10:05
Nexusthere currently isn't one10:05
gitlab-br-botbuildstream: merge request (Qinusty/275->master: WIP: Indicate where artifacts are going to and coming from in the log) #553 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/55310:05
Nexustristan: when i finiush #455, git describe still won't work, there will be either all history or no history, so nothing has changed on that front, but the plan that is currently on the issue avoids things like, having ro rebuild even if you opt to not remove your history10:07
tristanNexus, that's not what we're going to do, though10:08
jmacflatmush: No, we've got a longstanding desire to support and test for bit-for-bit reproducibility but I don't think anyone is working on it now.10:08
tristanNexus, the first step is no configuration or anything, just the breaking change of removing all history, unblocking other things while we deal with that separately10:08
tristanNexus, also, reading through the proposed changes now appearing on #455, it appears that you think we can behave differently based on what minimum format version the project requires10:09
tristanwhich is also incorrect10:09
tristanFor right now, we just need to unlock development on build tree caching, for the git part of this, we have a less developped approach which still needs some more discussion, i.e. juergbi & skullman's scripts do it, but there is the issue that we cannot consider the .git/ directory in cache key calculation10:11
*** tpollard has quit IRC10:11
*** tpollard has joined #buildstream10:11
tristanI should note that allowing this temporary breakage on master is basically the main motivator behind early branching of 1.210:12
skullmanI thought the point was to allow the regression of the stored git history when we *do* need history, until reduced history was possible.10:13
skullmanWouldn't BuildStream be effectively broken if it can't build its usual systems, since they need history.10:14
tristanskullman, that would imply that creation of artifacts with build trees included would have to be conditional10:14
tristanHaving alternative definitions of what an artifact is, is something we really want to avoid10:15
skullmantristan: not as I understood it, just that we'll have awkwardly large artifacts until we have a reduced history option.10:15
tristanskullman, seeing as it amounts to about the same, I'd rather live with broken freedesktop-sdk builds from bst master than carrying over an extra 6GB for every webkit push I think10:16
tristanIt will still be important to support git describe for the modules who need it, of course10:17
*** Phil has quit IRC10:18
tristanskullman, in the BoF, I thought we could just go ahead with the script approach; but as we can't calculate it in the cache key as we had discussed, I think the faster way to unblock things is just employ the workaround of nuking .git/ unconditionally10:18
tristanNot to mention, we can unblock things without having to add any option, or figure out how the option works10:20
skullmanI can't say I'd consider the work complete if it breaks everything, and pushing an extra 6GB seems like a less worse regression than not being able to build it at all.10:21
skullmanMy concern is that while it unblocks things it'll cause us more trouble until reduced history is completed.10:25
*** Phil has joined #buildstream10:27
gitlab-br-botbuildstream: merge request (Qinusty/275->master: WIP: Indicate where artifacts are going to and coming from in the log) #553 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/55310:28
skullmanMostly I don't want us to be blamed for everything breaking as a result.10:28
tiagogomesI don't understand the NEWS usage on BuildStream. I was expecting to see a "buildstream 1.2" section on both master and bst-1.2, but that section isn't in either10:35
tristantiagogomes, we have not reached 1.2 yet, that's in... a bit over a month; with feature freeze of 1.2 stable coming up in about a week or two10:36
tristantiagogomes, the early branching is a special case because of all the on going work which needs to integrate10:36
tristan1.2 NEWS section will appear with the 1.2 release10:37
tristanskullman, there are a few ways to look at it; one of them is that: Having the full .git/ being a part of a build tree is something we dont want to accept at all for stable 1.4, ensuring that we never go there at all and instead have broken builds is a higher incentive to fixing it properly10:39
tristanthe temporary breakage is entirely expected, though10:40
*** Prince781 has joined #buildstream10:40
tiagogomesIn master there is "buildstream 1.3.1" for the tarball support, but not 1.2. Which is odd10:41
tristantiagogomes, good point10:42
tristantiagogomes, I expect this will happen with a few features we backport to 1.2 branch; we can tidy up the NEWS in 1.2 to reflect this better10:42
tristanwe probably need to before the next 1.1.x release10:42
tiagogomesOk, so should I merge the tarball thing in 1.2 without doing anything different regarding the NEWS file10:45
tristantiagogomes, since we branched early, I think factual story is that in bst-1.2 branch; the feature was added in 1.1.510:46
tristaneven if in master, it will have appeared in 1.3.1, it's not a big deal I think, and accurately reflects what happened (a backport to the early branched 1.2 series)10:47
*** tpollard has quit IRC10:50
*** tpollard has joined #buildstream10:51
gitlab-br-botbuildstream: merge request (franred/catch-exception-when-umounting-devices->master: WIP: _sandboxbwrap.py: Catch ENOTCONN when umounting) #539 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/53910:58
gitlab-br-botbuildstream: merge request (Qinusty/275->master: Indicate where artifacts are going to and coming from in the log) #553 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/55311:01
qinustyReady for review @ https://gitlab.com/BuildStream/buildstream/merge_requests/553/11:03
tlaterqinusty is just churning out MRs11:05
* tlater is impressed11:05
* qinusty is churning out one MR which didn't go well11:05
tristanqinusty, nice ! I suppose the INFO lines will show up for every artifact remote which is contacted ?11:05
tristanit has been a pretty confusing living without this :)11:05
qinustyYes! You get one for each remote.11:06
qinustyObviously, an individual remote might skip etc11:06
qinustyThe question is, does this fix https://gitlab.com/BuildStream/buildstream/issues/481?11:06
tristanqinusty, I dont think it does11:07
qinustyYeah the whole SUCCESS Push thing, is pretty confusing when it actually just skipped11:07
tristanI mean, there are multiple ways of seeing it of course... currently there are a few things which can "skip", a lot of those things are detected before ever launching any job11:08
tristanso you don't get START/SUCCESS messages for obviously skippable things, but when you do (whether it's for pull or whatever), it seems desirable do 48111:08
qinustyBut from what I can tell, SUCCESS Push comes from MessageType, which only really has START, SUCCESS, FAIL for that type of message11:08
tristan*to do 48111:08
tristanuhhh11:09
tristanyeah11:09
tristanqinusty, I think enhancing that is what 481 is about, right ?11:09
qinustyIt seem so11:09
tristanso one of the activities would be to add a new MessageType I would expect11:10
tristanthe brunt of it seems to be to communicate that to the parent Job instance at the right time11:10
qinustyYup, then theres the task of figuring out when a job actually skipped from within _child_action()11:10
tristanso that the generic Job harness will be able to know more than whether a job failed or succeeded11:10
tristanqinusty, if you've got your mind in that area... I think I have another sister issue for you...11:11
qinustyYeah, child_process() and related functions will require a slight revamp from True/False11:11
qinustySounds good11:11
tristanwhere is it...11:12
qinustyjob.py11:13
gitlab-br-botbuildstream: merge request (sam/fix-debug-crash->master: Fix crash when --debug is passed) #530 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/53011:15
tristanfound it11:16
tristanqinusty, https://gitlab.com/BuildStream/buildstream/issues/39711:16
tristanqinusty, a nice way to word any feature around that would be... whether a job failed temporarily or permanently11:17
jonathanmawtristan: Is https://gitlab.com/BuildStream/buildstream/merge_requests/404 still on your radar as something to review? Given the new reviews policy can I find someone else to check it over if you're busy?11:17
tristanjonathanmaw, this week I've mostly been trying to squash the pressing issues causing panic; I will try to get into full review mode after unblocking this build tree fiasco11:18
jonathanmawokie doke, ta tristan11:19
tristanjonathanmaw, on a similar note, I recall leaving all of the filter element related stuff strictly in juergbi's hands since it was pretty complex and he was already reviewing that11:19
tristanjonathanmaw, I suppose that landed already by now and we can sleep soundly without worrying about filter elements biting us ? ;-)11:20
qinustyOkay tristan, So overhaul the job results to be more specific. This will allow us to solve the retry problem and allow for more descriptive messages when skipping etc11:20
jonathanmawtristan: yep.11:20
tristanjonathanmaw, great :)11:20
tristanqinusty, basically that issue touches a very similar part of the code yeah; so I thought if you look at one, might as well consider the other11:21
qinustyAlright I'll take a look today11:21
tristanqinusty, for 397, I think we can communicate that through the SourceError and ElementError classes (allowing elements and sources to communicate that to the Job class)11:22
tristanfor the SKIP messages, harder to say; maybe it could also use an exception ?11:22
tristanraise Skip("reason why I skipped this job") might be nice API for plugins ? hard to say11:23
qinustyPotentially11:24
gitlab-br-botbuildstream: merge request (tiagogomes/tarball_checkout_1.2->bst-1.2: Add support for creating a tarball on bst checkout) #554 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/55411:29
tristanjuergbi, unfortunately, the regression where test_push_pull fails 100% of the time is not related to the racy thing11:41
tristanjuergbi, commit a161c746b4a0774c1799e4c7c0e0bdad1141c437 adds the line "pytest_cov.embed.cleanup_on_sigterm()", which is an AttributeError on the pytest_cov.embed object11:41
* tristan thinks requiring a new pytest-cov will fix it, but waits for tests to pass...11:43
tristanthe fact that ArtifactShare.run() (in testutils) crashes in a blocked SIGINT state is also a bit weird11:44
qinustyHmmm, Would you say retry by default of retry explicitly?11:47
tristanqinusty, I think the wording I suggested for the proposed API for SourceError / ElementError is bad, we probably want the error to identify whether the failure was permanent or temporary11:49
tristanqinusty, then we want our retry logic to only retry things which failed temporarily11:49
qinustytristan: In that case, which would be the default? Would you want to explicitly declare your failure as temporary?11:49
qinustyor should you have to explicitly declare as permenant11:50
gitlab-br-botbuildstream: merge request (tristan/fix-artifact-tests->master: setup.py: Specify minimum required version of pytest-cov plugin) #555 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/55511:53
tristanqinusty, yeah... naming things is always a pain... I guess the former; by default errors are permanent11:55
tristanthis does constitute a minor API break on the plugin surface, though11:55
tristanwhich is something else to consider, although seeing the clear lack of many Source implementations outside of BuildStream and the fairly low impact, maybe it's not too bad of a break11:56
tristanqinusty, currently Sources behave in such a way that all failures are temporary; that behavior would be changed basically11:56
qinustyyes11:56
qinustyI agree, on a similar note. ElementError and SourceError are based on BstError. Should they be based on some other Error type which can be Permenant or Temporary?11:57
qinustyI don't think adding a permenant/temporary state to BstError is necessary11:57
gitlab-br-botbuildstream: merge request (tiagogomes/tarball_checkout_1.2->bst-1.2: Add support for creating a tarball on bst checkout) #554 changed state ("merged"): https://gitlab.com/BuildStream/buildstream/merge_requests/55411:59
tristanqinusty, Probably it makes more sense to have ElementError and SourceError derive from PluginError, which tends to be raised by the common base class11:59
tristanof course it means separate handling of PluginError / BstError in job.py12:00
qinustyexcept PluginError, BstError as e?12:00
qinustyCurrently job.py just handles BstError and a broad Exception (for bugs)12:01
tristantrue, then "temporary = isinstance(e, PluginError) and e.temporary"12:01
qinustyYup12:01
qinustyMy thoughts exactly12:01
tristanqinusty, it might be better to put it in BstError and document it as something only considered when a Job is handling the error12:07
tristanqinusty, well, not sure; just keep in mind that generic push/pull tasks can fail temporarily too12:07
tristanqinusty, and if you *do* have it in a separate class, there would be no need for the "except PluginError, BstError as e" part (as PluginError is also a BstError anyway)12:08
*** Prince781 has quit IRC12:10
qinustyYes, ofcourse. Which leads us to ArtifactError too.12:12
qinustyI'll take a first shot at it after lunch. Is there an easy way to recreate the bad checksums issue?12:13
* qinusty realises he can just make up a checksum12:13
gitlab-br-botbuildstream: merge request (tristan/fix-artifact-tests->master: setup.py: Specify minimum required version of pytest-cov plugin) #555 changed state ("merged"): https://gitlab.com/BuildStream/buildstream/merge_requests/55512:23
*** ernestask has joined #buildstream12:39
gitlab-br-botbuildstream: merge request (tristan/remove-history-from-build-trees->master: Remove history from build trees) #556 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/55612:49
gitlab-br-botbuildstream: merge request (reduce_history_in_cache->master: Reduce history in cache) #482 changed state ("closed"): https://gitlab.com/BuildStream/buildstream/merge_requests/48212:53
gitlab-br-botbuildstream: issue #487 ("Implement a mechanism to allow builds to leverage git describe") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/48713:01
gitlab-br-botbuildstream: issue #376 ("Sources to only stage what is required for building, omitting large parts of VCS history") changed state ("closed") https://gitlab.com/BuildStream/buildstream/issues/37613:09
* tiagogomes doesn't understand why there is a filter element when compose seems to do something similar13:10
skullmandifference in defaults IIRC13:10
skullmanand intent13:11
tristanAlright, time to get dinner, https://gitlab.com/BuildStream/buildstream/merge_requests/556 will close #455, #376 is also closed, new regression issue to track at https://gitlab.com/BuildStream/buildstream/issues/48713:11
*** tristan has quit IRC13:16
tiagogomesI can't see the filter element being used on either the freedesktop-sdk or baserock13:16
noisecellI've tested https://gitlab.com/BuildStream/buildstream/merge_requests/530 and it resolves the issue which describes, is ok for me to set it as "merge when pipeline succeeds"13:17
noisecell?13:17
gitlab-br-botbuildstream: merge request (sam/fix-debug-crash->master: Fix crash when --debug is passed) #530 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/53013:17
gitlab-br-botbuildstream: merge request (sam/fix-debug-crash->master: Fix crash when --debug is passed) #530 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/53013:17
* noisecell press the button13:20
tiagogomesI wonder if one of the tests you use `--debug` to catch regressions13:21
tlaterYep, I agree, we should have added a test case for that bug13:22
tlaterAlthough arguable we should *also* have a look at reducing the number of tests13:23
tlaterBecause our suite is starting to just blow up in terms of test time...13:23
noisecelltlater, maybe breaking them and run them in parallel in the pipeline?13:28
tiagogomesPossibly the integration and not integration tests could run in parallel easily. I have no idea about the gain though13:29
tlatertiagogomes: That might speed up CI, but I'm more concerned about the number of tests devs need to run13:31
tlaterAnd devs already don't run the "integration" tests13:31
tlater(We also should change terminology here, all our tests are technically integration tests, these should be referred to as "tests that require sandboxing")13:31
tiagogomesIndeed. That name is misleading13:32
gitlab-br-botbuildstream: merge request (sam/fix-debug-crash->master: Fix crash when --debug is passed) #530 changed state ("merged"): https://gitlab.com/BuildStream/buildstream/merge_requests/53013:49
paulsherwoodi'm looking at https://gitlab.com/trustable/distros/minimal-distro/-/jobs/8324102814:08
paulsherwoodand wondering, not for the first time...14:08
paulsherwood- why lines are duplicated14:09
paulsherwood[00:00:02][61cc39ce][build:gnu-toolchain/stage2-binutils.bst] SUCCESS Running strip-commands14:09
paulsherwood[00:00:02][61cc39ce][build:gnu-toolchain/stage2-binutils.bst] SUCCESS Running strip-commands14:09
paulsherwood- why all the space given over to empty and zero timeastamps?14:09
paulsherwood[--:--:--][61cc39ce][build:gnu-toolchain/stage2-binutils.bst] START   Running strip-commands14:09
paulsherwood[--:--:--][61cc39ce][build:gnu-toolchain/stage2-binutils.bst] START   Running strip-commands14:09
paulsherwood- why can't i see how long the whole task has been running14:09
paulsherwood(from the logs)14:10
paulsherwood- why no record of the actual config in the logs?14:10
paulsherwood  Configuration File:      /root/.config/buildstream.conf14:10
paulsherwoodno idea what that contains14:11
paulsherwoodactually maybe i should mail the list14:12
persiaIssues might be better for some of these things.14:12
persiaDefinitely for the config (as it is essential for reproduction)14:12
persiaLogging issues are likely to be more amenable to discussion: might just be a docs issue.14:13
paulsherwoodlast time i raised an issue tristan closed it and called my baby ugly :)14:14
* paulsherwood won't forget this :-)14:14
persiaWhich issue?14:14
laurencemaybe add to https://gitlab.com/BuildStream/buildstream/issues/47814:14
persiaIs the issue with the terminal output, or the logs (from bst log and similar)?14:15
paulsherwoodthe things i'm mentioning are both, i believe14:15
tlaterHm, half and half14:16
tlaterPrinting the configuration to stdout feels like it would just add *more* clutter to the output14:16
tlaterBut it would be good to have in logs14:16
persia+1 on config in logs and not output14:16
tpollardhas anyone had 'AttributeError: 'AutotoolsElement' object has no attribute '_Element__cache_key'' before?14:19
persiaIs there any documentation on how the cache works?  Alternately, are there known issues about caching for which reading provides good insight?14:21
persiaI'm working on a comparison of BuildStream to some other tooling, and am hitting the limits of my knowledge in this area14:21
*** noisecell has quit IRC14:22
tlaterpersia: There is https://buildstream.gitlab.io/buildstream/additional_cachekeys.html14:25
tlaterNot sure how up to date or how relevant it is14:25
tlaterI don't know of any open issues I could link; or at least they're not active memory right now.14:26
persiatlater: My questions are different, like "what sorts of things are cached?" (the answer to which I think depends on the status of the source caching work), when/how is cache expiry triggered, etc.14:26
tlaterYep, I think most of that is documented in comments around relevant code, unfortunately.14:28
persiaHeh14:28
gitlab-br-botbuildstream: issue #488 ("Follow-up from "Remove history from build trees"") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/48814:28
gitlab-br-botbuildstream: merge request (tristan/remove-history-from-build-trees->master: Remove history from build trees) #556 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/55614:29
KinnisonAt some point I'd like an answer to the question "How does the CAS anchor things?" but I think I should go rummaging for docs on the CAS on-disk structure first14:29
paulsherwoodpersia: https://gitlab.com/BuildStream/buildstream/issues/19314:30
persiaHrm, and no code map in the docs either.  Will I likely find most of what I want in buildstream/_artifactcache/ ?14:30
jmacKinnison: What does 'anchor' mean?14:30
tlaterpersia: Yes, code in there should detail everything you want to know14:30
paulsherwoodi still think that ybd's time logging is better than bst. takes up less space, covers more usecases14:30
tlaterIf you have specific questions, I'm happy to answer too :)14:31
persiaKinnison: Be careful with that: my impression (which may not be correct) is that CAS only specifies a means to interact with objects, but any implementation ultimately depends on some other backing store (which would itself deal with on-disk layout, if it was an on-disk store).14:31
Kinnisonjmac: in this context i'm using it to mean "How does the CAS know what entries are needed and what can be expired"14:31
Kinnisonpersia: any such backing store would still need some kind of strong concept of anchors, no?14:31
jmacpaulsherwood: BST's logging is configurable, although we lack documentation for it, and I don't think it can be configured to the extent of providing a running record of total elapsed time.14:32
persiaKinnison: Depends on the number of abstraction layers between the physical storage medium and the CAS interface.14:32
Kinnisonjmac: think like how the refs in a git repository anchor the set of objects which need to be present in the object store, and how git gc can remove all the rest14:32
jmacKinnison: There is no expiry.14:32
Kinnisonjmac: aah, okay, cool14:32
jmacYet.14:32
tlaterjmac: There is as of two days ago!14:32
Kinnisonsuch time travelling code changes!14:32
tlaterHaha14:33
jmacOh! Apologies tlater!14:33
paulsherwoodjmac: out-of-the-box experience is more important than config options ime14:33
jmacpaulsherwood: Yes, I agree14:33
persiatlater: The four specific questions I'm currently trying to answer are 1) "What sorts of things does BuildStream cache?", 2) "When/how is cache expiry triggered?", 3) "Is there a prioritisation of types for expiry? (e.g. if build results are cached (for incremental build support), are those evicted before binary artifacts used in sandbox construction?)", and 4) Is the cache cleared in a separate thread/process from other operations?14:35
tlaterpersia: Is this looking at a *remote* caching perspective or local developer machine caching?14:35
tlaterThere are slight differences between the two, currently14:36
persiatlater: Local.  For remote, I think I have to learn a lot more about the remote protocol, etc. to understand the actual questions I want to ask (or the answers to them).14:36
Kinnisonpersia: My understanding (loose though it is) on 3 is that an 'artifact' consists of all of its cached outputs (to include cached work trees etc) and is considered integral -- i.e. there will be no partial removal14:36
tlaterpersia: 1) Buildstream stores sources, built artifacts (or the relevant build tree if a build fails) and build logs for each element in a pipeline.14:37
persiaKinnison: Do you know if there is support for partial transport to/from a remote?  For example, if I want to compose something, do I need to download the build logs for each element used to construct the sandbox?14:37
Kinnisonpersia: I'm not sure about that, since I've not yet learned about that side of things, sorry14:38
* Kinnison has only been looking at the project for a few days14:38
persiatlater: What about build trees for successful (but maybe incorrect) builds?14:38
tlaterpersia: That's WIP still14:38
persiaKinnison: No worries :)  Thanks for trying to help answer as you learn.14:38
persiatlater: WIP as in I can look at code on gitlab, or WIP as in "someone intends to get around to that"?14:39
tlaterpersia: Nexus is currently working on it, it was one of the main driving forces behind our git history removal discussions14:39
tlaterI *think* we're a week or so away from caching those trees on the unstable branch14:40
persiaOh, I thought both success and failure trees were stuck on that, but happy to have my understanding corrected.14:40
tlaterpersia: Remotely we don't currently cache either14:40
tlaterFor remote caching both are blocking :)14:40
tlater2) Cache expiry is triggered when buildstream runs out of disk quota - this is configurable, and the entire disk space by default. There is some fuzziness about what "running out" is - we try to be sensible here.14:41
Nexusdid someone mention buildtrees?14:41
persiaWhich addresses a good chunk of (3): I suppose I need to watch the proposal queue to get the answer to that (over time).14:41
persiaNexus: Yes, but incidentally, as part of a list of the things BuildStream caches (or intends to cache).14:41
tlaterYep, we currently just remove any old data14:41
* Nexus goes back into iding until needed14:42
Nexushiding*14:42
persiaFor (2), is there also a user interface for "clear cache now" or docs on how to use rm(1) to achieve that?14:42
tlaterAlso, 4, the cache is indeed cleared in a separate process. For atomicity it is in practice usually synchronous with any other build processes, however.14:42
persiatlater: synchronous is a tricky word: do builds block on cache expiry completion?14:43
tlaterpersia: Yes14:44
tlater*But* only build/pull/push operations14:44
tlaterTrack/fetch don't block14:44
tlaterIn practice that still means usually everything blocks14:44
tlaterWe do not currently have a UI for cache clearing. To manually remove cached artifacts with fine granularity is quite difficult, there is UI planned for this but not yet being worked on. To remove everything `rm -rf ~/.cache/buildstream/artifacts` works.14:45
persiaAha, so the model is that commands that depend on cache state need the cache to have a consistent state from the time they check cache until they complete, but other commands may operate at any time.14:45
persiaAnd "~/.cache/buildstream/artifacts" is stored in config somewhere discoverable?14:45
tlaterpersia: That's almost correct substitute "commands" with "operations" - any command may fetch, after all :)14:45
tlaterpersia: Yep, user config defines that directory, that's just the default14:46
persiaYes.  "operations" is a better word for that.  Thanks for the correction.14:46
persiatlater: Thanks a lot.  That answers my questions for today.14:46
tlaternp - we should get documentation about this up at some point, lots of what you asked about is still very very fresh feature wise14:47
persiaThat's part of why I'm not asking about remote caches yet :)  I know I don't know enough about the changing landscape, and I'm not even very confident of whether current answers will remain unchanged for the next couple weeks.14:49
persiaI do remember hearing about a good chance of stability there in the next couple weeks at GUADEC, so I'll probably return with more questions after reviewing the schedule, etc.14:50
gitlab-br-botbuildstream: issue #455 ("Remove VCS History") changed state ("closed") https://gitlab.com/BuildStream/buildstream/issues/45514:52
gitlab-br-botbuildstream: merge request (tristan/remove-history-from-build-trees->master: Remove history from build trees) #556 changed state ("merged"): https://gitlab.com/BuildStream/buildstream/merge_requests/55614:52
gitlab-br-botbuildstream: merge request (caching_build_trees->master: Caching buildtrees) #474 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/47414:57
qinustyAnyone know the max line length for our pylint config?15:15
Phil120 chars I believe15:15
qinusty<120 or <=120?15:16
tlaterqinusty: Should be <=15:16
tlaterThe actual configuration is 12115:17
qinustyCutting it close with an inline comment :/15:17
tlater;)15:17
tiagogomesThat looks quite high15:17
tlatertiagogomes: We do have a longer length than pep suggests15:17
tlaterqinusty: For such a long inline comment, just put it on a separate line and line wrap it15:17
qinustyThat is a better idea than trying to figure out which words I don't need15:18
* tlater admittedly also often falls for that trap ;)15:18
qinustycomment golf best golf15:19
tpollardheh vscode defaults to 119, presumably as it's github review width15:23
tlaterHm, odd, I expected IDEs to respect our linter configuration15:24
*** leopi has quit IRC15:25
*** jennis2 has joined #buildstream15:57
*** rdale has quit IRC15:58
*** jennis has quit IRC15:59
*** finn has quit IRC15:59
*** jennis2 has quit IRC16:21
*** tpollard has quit IRC16:40
*** jennis2 has joined #buildstream16:52
*** qinusty has quit IRC16:52
*** jennis2 has quit IRC16:53
*** thomascoldrick has quit IRC16:56
*** jonathanmaw has quit IRC17:03
*** toscalix has joined #buildstream17:03
jjardonHi, trying to upgrade to 1.1.4 I keep getting this error: https://gitlab.gnome.org/GNOME/gnome-build-meta/-/jobs/6757617:07
jjardon(I've never seen that before with 1.1.3)17:08
*** toscalix has quit IRC17:08
jjardon"GPGME: Too many open files" I think someone had the same problem the other day?17:09
*** toscalix has joined #buildstream17:13
*** bethw has quit IRC17:16
gitlab-br-botbuildstream: merge request (jmac/virtual_directories->master: WIP: Abstract directory class and filesystem-backed implementation) #445 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/44517:21
*** tiagogomes has quit IRC17:34
*** xjuan has joined #buildstream17:39
*** Prince781 has joined #buildstream18:06
*** Prince781 has quit IRC18:08
*** Prince781 has joined #buildstream18:24
*** toscalix has quit IRC18:34
*** Prince781 has quit IRC19:13
*** ernestask has quit IRC19:46
*** xjuan has quit IRC20:25
*** mohan43u has quit IRC20:35
*** mohan43u has joined #buildstream20:39
*** bochecha has quit IRC20:50
gitlab-br-botbuildstream: issue #489 ("Install instructions don't mention how to get 'grpc'") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/48922:13
*** bethw has joined #buildstream23:46

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