IRC logs for #buildstream for Thursday, 2018-07-19

*** Prince781 has quit IRC01:04
*** Prince781 has joined #buildstream02:07
*** Prince781 has quit IRC02:11
*** Prince781_ has joined #buildstream02:12
*** cs_shadow has quit IRC05:13
*** ernestask has joined #buildstream05:53
*** tristan has joined #buildstream06:27
*** Prince781_ has quit IRC06:37
paulsherwoodam i alone in wishing that the bst mailing list would add [buildstream] to email titles?07:11
tristanpaulsherwood, I'm ambivalent and not against subject line munging07:28
tristanlemme see if the UI lets me do that easily07:28
tristan"Prefix for subject line of list postings."07:29
tristanI'm not sure if I should put "buildstream" or "[buildstream]", and it has a bunch of obscure features07:32
* tristan tries "[buildstream]" and lets see what happens07:32
tristanit works :)07:37
paulsherwoodthat works, thanks07:37
paulsherwoodtristan: you've been notably silent on my 'need for backwards compatibility' comments...07:37
*** bochecha has joined #buildstream07:39
tristanpaulsherwood, is that on the mailing list ?07:47
tristanI was swamped yesterday trying to open up master for 1.3.x development07:48
tristanIs there an issue with backwards compatibility ? I noticed a comment fly by yesterday which I think valentind clarified at the time07:48
*** coldtom has joined #buildstream07:53
*** finn has quit IRC07:57
paulsherwoodon gitlab. i can email the list if that's better07:58
paulsherwoodhttps://gitlab.com/BuildStream/buildstream/issues/47407:58
tristanAh that one, about the cache key07:59
paulsherwoodto go a bit further, i think for the long term bst needs to be clear about its input versioning (schema of bst files) and output versioning (cache-key algorithm and artifact content rules)08:00
tristanright, I was actually thinking on that yesterday, I'm surprised we dont already have an issue for that08:00
valentindI might have misunderstood yesterday because of the context.08:00
tristanvalentind, different topic08:00
paulsherwoodand bst as a program needs to support historic 'versions' of both input and output, for as long as is possible08:00
tristanpaulsherwood, we did raise this in a meeting last year as a long term goal, it basically requires work08:01
paulsherwoodthis was one of the things we did not understand properly early in baserock... maybe i *still* don't understand it properly08:01
tristanFor input, we focus very strongly on backwards compatibility of the format, yes08:02
paulsherwoodtristan: i know it requires work, but it's not harder than what bst already does. ybd makes a reasonable attempt at it... but the code is ugly of course. lots of 'if version > x'08:02
tristanFor cache keys, I know we've been over this a few times, I think that it's wiser to wait for the big changes regarding caching of build trees etc but may be wrong on that08:03
paulsherwoodif we don't meet these 'contracts' we always risk making it impossible for users to upgrade, so they get left behind08:03
jmacI'd like to understand this problem08:03
paulsherwoodjmac: me too :-)08:03
jmacWhat are we talking about caching? Artifacts?08:03
tristanjmac, at the surface of it... we would want future versions of BuildStream to produce the same artifact cache keys in 10 years time, for instance08:04
paulsherwoodthis is not just artifacs... it's the question of backwards/forwards compatibility in general08:04
tristani.e. a version of BuildStream released 10 years later08:04
* paulsherwood would like to link to his original comment on this on the baserock wiki, but it seems to be down :/08:05
tristanjmac, currently we don't consider the cache key calculations to be stable, and the reasons behind desiring that cache key to be stable across versions are intricate I think08:05
jmacSo what's the key calculated on? Is it more than the directory treee produced after assembly?08:05
tristanjmac, one of the bigger arguments which persia raised, was that when you have to build a *lot* of software, upgrading BuildStream means you can no longer re-use your old artifacts... and that any newly created artifacts under a new key... *need to undergo validation again*08:06
jmacYes, #474 mentions that08:07
jmacFrom the code it looks like the cache key is calculated on a number of fields from the element, project and context08:09
tristanjmac, currently; the cache key algorithm is preserved as much as possible within BuildStream core and the core elements, adding new features to the project format sometimes changes the key, but this is always done in a backwards compatible way08:12
tristanjmac, i.e. "The key is only effected if the new feature is used"08:12
tristanHowever, the artifact container itself has supporting data for features that are orthogonal to the format08:12
tristanSo, the current procedure for "Caching build trees in the artifact" requires a core artifact version bump08:13
tristanThis is so that BuildStream can know that the artifact it's working with is compatible with the featureset08:13
tristanFurther than this, there is another gap related... which is that YBD allowed the user to provide the "DEFAULTS" file, for which we need to provide something similar08:13
tristanI.e. if we ever change a default value (in data/projectconfig.yaml or in the element yaml files), this changes how things get built, inadvertently also effecting cache key08:14
tristanThe user would need to also be able to specify the defaults on which to build; or support this in some way08:15
tristanThe harder problem to solve is how to add data and restructure the artifact internals in order to implement new features without bumping the cache key08:16
paulsherwoodto be clear, i'm not saying don't bump the key08:20
paulsherwoodjust that when we bump, we declare a new version, and distinguish from previous versions, and be willing to operate in previous-version-mode08:21
paulsherwoodversion bump has to happen for content changes too (e.g. if we change the structure/metadata/content of artifacts) we need to bump the key/version, even if we hash all inputs the same08:22
jmacAt the moment, the artifact version is hashed so we can't do that. We'd need to make the artifact key reversible so we can get the version out again.08:22
paulsherwoodthis led to needing to include the version itself in the hashing08:22
paulsherwoodjmac: not sure why?08:23
jmacYou're not sure why it's hashed?08:23
paulsherwoodwhy do we need reversibility?08:23
jmacIf you have two different cache keys for artifacts, how would you know whether one was from a previous artifact version if both keys are hashes?08:24
Kinnisonjmac: Make the key of the form: VERS-HASH-CHECKSUM or somesuch?08:25
jmacKinnison: That's what I mean by reversible08:25
Kinnisonaah :-)08:25
* Kinnison thinks paulsherwood meant you wanted a non-trapdoor hashing function08:25
Kinnisonerm, insert some more 'thinking' in there08:25
* Kinnison thinks paulsherwood thinks meant you wanted a non-trapdoor hashing function08:25
Kinnisonthere we go08:25
jmacThat sounds like a contradiction08:26
paulsherwoodjmac: not sure why we need that. ybd has elementname.hash where inputs to hash include version08:26
jmacHence the earlier question about how you'd know whether one was from a previous version08:27
paulsherwoodi'm not saying bst needs to work with multiple versions at the same time08:27
jmacOr if it had other changes in the inputs to the hash08:27
* paulsherwood suddenly wishes we had a whiteboard08:27
jmacRight, I've misunderstood something because I thought #474 meant exactly that08:28
paulsherwoodin the baserock approach, all of the metadata for inputs lands inside the artifact, so for a given artifact we can find out what we need by unpacking it, if tyhat's the usecase08:29
* tristan stepped out for a moment and reads backlog08:29
tristanright08:29
paulsherwoodbut we don't need to understand version in the cache-key itself08:29
paulsherwoodif ybd generates a given key for a given version, it will find that key. for a different version, it will calculate a different key08:30
tristanSo basically it means that whenever any feature which requires support from the artifact structure is introduced, the codebase needs to support the version with and without the feature08:30
paulsherwoodso if i want to operate on old artifacts (which have old keys) i need to tell ybd to use the old version08:30
paulsherwoodtristan: correct08:31
paulsherwoodhopefully, the rate of change/versioning reduces over time, as we iron out all of the corner cases08:31
paulsherwoodybd is at v14 now08:31
tristanessentially doubling the supported modes of operation with each change, which is expensive (i.e. I'm currently trying to view the "build tree caching" feature set as something which we can be sure is always in an artifact, but only optionally downloaded and used, this is already a big concern to me while we still dont support versioned artifacts)08:31
paulsherwoodtristan: hence the need for system-level ci that checks old versioning adequately08:32
tristanAs long as you don't grow features too much, it's not too expensive; which is also a decent reason for at least delaying this feature08:32
jmacSo you'd try to reuse old artifacts by iterating through previous BST_ARTIFACT_VERSION values and generating the potential hashes for all of them? Or would you remove BST_ARTIFACT_VERSION from the key?08:32
tristanjmac, no, you would have the project declare the artifact version it wants to use08:33
tristanpretty much08:33
jmacOh, OK, that would work08:33
tristanand only enable features based on that, and calculate the cache key based on that version08:33
paulsherwoodyup. https://gitlab.com/baserock/ybd/blob/master/ybd/cache.py#L94 shows ybd's ugly implementation08:34
tristanI dont mean to call your baby ugly paulsherwood ... sorry for that :)08:34
paulsherwoodand https://gitlab.com/baserock/ybd/blob/master/ybd/config/ybd.conf#L47 shows the actual descriptions of the various bumps08:35
paulsherwoodtristan: :-)08:35
paulsherwoodand https://gitlab.com/baserock/ybd/blob/master/.gitlab-ci.yml#L30 shows that ybd has only two tests to verify that it still calculates v1 and v6 correctly08:36
tristanwith the amount of churn going on this cycle I think that it's much more expensive compared to YBD's featureset, I feel like if we can get through the build tree caching and distributed building ordeals first, and reach something more mature; it would be a more opportune time for the project to implement this versioning feature08:37
tristanof course it's possible to do otherwise, but adds friction to development08:37
*** bethw has joined #buildstream08:37
paulsherwoodtristan: i'm ok with that, but i confess i'm a bit disappointed that this wasn't understood earlier08:37
paulsherwoodthe main thing i'm hoping that we can do is regognise that this is one of the 'contracts' required for super-long term support (afaict)08:38
paulsherwoodand hence, while we keepr breaking it, we're not ready for that usecase08:39
tristanRight, we probably need a place, possibly in roadmapping, where we can document and communicate long term goals as well08:39
tristansuch that both developers and users are aware of where we are going08:40
*** tristan_ has joined #buildstream08:43
*** tristan has quit IRC08:43
paulsherwoodin another context, we recently published this: https://gitlab.com/trustable/distros/overview/blob/master/intents.md#operating-system-definition-and-approach-to-release-and-maintenance08:45
*** jennis has quit IRC08:45
paulsherwoodnot so much roadmap, but i think there's a need to state in one place what we commitments the project aims to meet for users08:46
*** jennis has joined #buildstream09:02
juergbitristan_: any opinion on Python 3.5 type hints? https://gitlab.com/BuildStream/buildstream/merge_requests/445/diffs#note_8872948709:06
juergbiI generally like them but am not sure whether we need to establish a policy first or should just accept them in contributions09:07
juergbi(for consistency)09:07
tristan_juergbi, I think that if we're going to accept something which changes the current style, we should definitely establish policy09:10
tristan_juergbi, I think I probably do like the hints too09:10
Nexuserk, buildstream subject prefix, can we not? :/09:11
tiagogomesooc are they just hints or also establish some kind of type check?09:11
tristan_juergbi, that said, establishing policy should probably come with opening an issue as a "goal" to be closed once the codebase has been made uniform again09:11
jmactiagogomes: They are just documentation at the moment, but they follow a standard which can be used to do type checking in the future.09:12
tristan_I'm not sure what exactly they are, but I do feel it's more important to have a uniform style throughout the codebase, than to use the feature09:12
juergbithat sounds sensible09:12
juergbiI would like to also use them at some point / check them in CI09:12
jmacThe likely result is that I'll remove them from that !445, since that MR is blocking other work09:13
juergbijmac: as you apparently are already familiar with them, would you mind opening a gitlab issue about this as per above?09:14
juergbidepending on when !445 lands, this would mean that we don't have to remove them from there09:14
jmacSure.09:14
juergbithanks09:14
jmacPhil: What's the status of #436? It has the 'review' tag on it but appears to need some answers to questions09:17
* tristan_ has dinner appointment and will be back in a few hours...09:18
*** jonathanmaw has joined #buildstream09:21
*** qinusty has joined #buildstream09:25
gitlab-br-botbuildstream: merge request (franred/catch-exception-when-umounting-devices->master: _sandboxbwrap.py: Catch ENOTCONN when umounting) #539 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/53909:27
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/54909:29
juergbitristan_: you mentioned man-page generation fails for bst-artifact-server. do you have any further details? I don't see an issue here, man/bst-artifact-server.1 appears to get generated successfully09:29
noisecellhttps://gitlab.com/franred/buildstream/pipelines/26016896 -- test-fedora and test-unix failed in the following pipeline https://gitlab.com/franred/buildstream/pipelines/26016896 for unrelated reasons of the patches, have we experienced this before?09:29
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/53909:39
gitlab-br-botbuildstream: merge request (188-trigger-external-commands-on-certain-events->master: WIP: Resolve "Trigger external commands on certain events") #226 changed state ("closed"): https://gitlab.com/BuildStream/buildstream/merge_requests/22609:39
gitlab-br-botbuildstream: merge request (image-authoring->master: WIP: Image authoring documentation) #262 changed state ("closed"): https://gitlab.com/BuildStream/buildstream/merge_requests/26209:41
gitlab-br-botbuildstream: issue #482 ("Add type hints to code") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/48209:45
tiagogomesShouldn't 482 have the newcomer tag?09:46
tiagogomess/tag/label/09:46
jmacI don't think so09:48
jmacAlthough given the question I think the title should be changed09:48
jmacIt's now "Decide whether to add type hints to coding standard"09:49
tiagogomesaah09:51
juergbiconverting existing code base could indeed be a newcomer task, though09:51
juergbionce decided09:51
qinustyDoes anyone know what version of openssl is used/required by bst-artifact-server?09:52
tiagogomeseasy but quite tedious09:52
tiagogomesI have to update my PR for tarball due conflicts on NEWS. To which version should I add an entry there "buildstream 1.2.0" ?09:53
jmacHmm, interesting point about Sphinx09:53
juergbitiagogomes: if the MR targets master, it will likely be 1.3.109:55
tiagogomesNot 1.3.0 then? As there is a buildstream 1.1.009:57
juergbiqinusty: do you mean for the command line tool 'openssl'? no idea. for the library the dependency is exclusively indirect via grpc, afaict09:57
juergbitiagogomes: the plan is that tristan_ already tags master as 1.3.0 pretty much now to get sensible generated version number, but without actually doing a full release yet (as it would be almost identical to 1.1.4)09:58
juergbitristan_: btw: master has diverged from the 1.2 branch, so it's safe to tag 1.3.0 now, if we want to09:59
qinustyAh, I'm currently setting up a bst-artifact-server locally to look into some of the push/pull interactions. I'm getting "Handshake failed with fatal error SSL_ERROR_SSL: error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER." coming out on the server every time I try and connect the client. (Both ran locally on my machine)09:59
juergbiqinusty: hm, not sure why that's happening.10:00
juergbihttps://github.com/grpc/grpc/issues/9538 grpc forces TLS 1.2 and an error is raised if the other party does not support that10:00
Kinnisonqinusty: Odd, that sounds like you've got something compiled against one version using a library of another version10:01
juergbihowever, if they both ran on the same machine with the same openssl version, that's odd10:01
juergbiunless the same error message is raised if your openssl version doesn't support TLS 1.2 at all. what openssl version do you have installed?10:01
qinustyBoth are ran on my machine and run OpenSSL 1.1.0f (Which seems to be the latest debian has available without extra repositories)10:02
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/54610:03
juergbithat's definitely recent enough, assuming grpc supports the OpenSSL 1.1 API10:03
juergbiI'm still on 1.0.2 due to the API break10:04
gitlab-br-botbuildstream: merge request (phil/437-workspaces-tutorial->master: Phil/437 workspaces tutorial) #519 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/51910:20
gitlab-br-botbuildstream: merge request (phil/437-workspaces-tutorial->master: Phil/437 workspaces tutorial) #519 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/51910:31
gitlab-br-botbuildstream: merge request (Qinusty/scheduler_docstring_fix->master: WIP: scheduler.py: Correct some anomalies within the docstrings) #551 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/55110:36
qinustyCan someone review that when they get a minute? Only docstring changes to scheduler.py for some issues I spotted.10:37
jmacI will10:38
qinustyCheers10:39
gitlab-br-botbuildstream: issue #458 ("Update test suite images") changed state ("closed") https://gitlab.com/BuildStream/buildstream/issues/45810:41
gitlab-br-botbuildstream: merge request (chandan/use-testsuite-fedora->master: .gitlab-ci.yml: Use testsuite images for running tests) #531 changed state ("merged"): https://gitlab.com/BuildStream/buildstream/merge_requests/53110:41
gitlab-br-botbuildstream: merge request (Qinusty/scheduler_docstring_fix->master: WIP: scheduler.py: Correct some anomalies within the docstrings) #551 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/55110:41
jmacqinusty: Yep, all good!10:41
jmacI would merge that but I'm unsure how we do that10:42
gitlab-br-botbuildstream: merge request (Qinusty/scheduler_docstring_fix->master: scheduler.py: Correct some anomalies within the docstrings) #551 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/55110:42
*** bethw has quit IRC10:44
*** bethw has joined #buildstream10:45
*** jonathanmaw has quit IRC10:54
*** jonathanmaw has joined #buildstream10:59
*** jonathanmaw_ has joined #buildstream10:59
*** jonathanmaw has quit IRC11:00
*** jonathanmaw_ has quit IRC11:00
*** bethw has quit IRC11:01
*** jonathanmaw has joined #buildstream11:02
*** jonathanmaw has quit IRC11:09
*** jonathanmaw has joined #buildstream11:09
gitlab-br-botbuildstream: merge request (sam/pushing-fix->master: WIP: _artifactcache/pushreceive.py: Avoid premature 'done' messages) #532 changed state ("closed"): https://gitlab.com/BuildStream/buildstream/merge_requests/53211:38
*** ernestask has quit IRC11:58
*** ernestask has joined #buildstream12:09
gitlab-br-botbuildstream: merge request (phil/437-workspaces-tutorial->master: Phil/437 workspaces tutorial) #519 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/51912:12
gitlab-br-botbuildstream: merge request (valentindavid/331_include->master: Add support for include in project.conf) #471 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/47112:18
tlaterjmac: Since we don't have to wait for tristan / juergbi to merge things anymore, you're allowed to click the button :)12:18
gitlab-br-botbuildstream: issue #483 ("Buildstream should fail if ref: is not within the tag/branch specify in track:") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/48312:19
tlaterI'm also still to scared, though.12:19
laurenceif it's genuinely tiny / trivial, then don't be scared :)12:19
laurencei'm aware that 'tiny / trivial' is not 100% explicitly defined, though12:19
jmactlater: Is gitlab set up correctly to merge without merge commits if I do that?12:20
tlaterlaurence: This one is definitely trivial by any definition12:20
tlaterjmac: Let me check what this branch does12:20
jmactristan always merged outside GitLab, so I thought there might be something special needed12:20
tlaterjmac: For this branch, someone will want to `git rebase`12:20
laurencetlater, thought so :)12:21
tlaterjmac: But generally, I've not seen gitlab produce a merge commit. Tristan only sometimes merged from outside gitlab.12:22
jmacAll good then12:22
jmacqinusty: Please rebase !551 onto master (someone has made commits to master since this morning) and I'll merge12:23
paulsherwoodhmmm... is the project setup to include ff with merge commmits?12:23
* paulsherwood would prefer that12:23
* tlater ponders what ff means in this context... FireFox?12:24
jmacFast-forward12:24
noisecelljonathanmaw, https://gitlab.com/franred/buildstream/pipelines/2601689612:24
tlaterAh12:24
jmacI also prefer merge commits but tristan_ doesn't, AFAIR12:24
tlaterYep, we don't do merge commits at all - not in any of the other projects either afaik.12:25
KinnisonThere're arguments either way.  I tend to avoid merge commits where the patch series is clean/neat but will use them to bring something otherwise unwieldy/difficult-to-split in :-)12:26
jonathanmawnoisecell: very odd that whether an element is cached or buildable depends on whether it's debian or fedora12:27
*** bethw has joined #buildstream12:28
noisecelljonathanmaw, yup, it is a very odd behaviour maybe tlater or juergbi know anything about it?12:29
*** xjuan has joined #buildstream12:31
tlaterPhew, that's an odd one12:32
tlaternoisecell: Have you tried restarting the CI at all?12:32
*** jonathanmaw_ has joined #buildstream12:33
noisecelltlater, gilab CI?12:33
*** jonathanmaw has quit IRC12:33
tlaterYes - there's a chance it's a fluke12:33
tlaterObviously still something we need to debug12:33
tlaterBut at least that would mean the issue isn't caused by your branch12:33
jonathanmaw_tlater: this is a failure on the third retry12:34
*** jonathanmaw_ is now known as jonathanmaw12:34
tlaterThen it seems like it's somehow caused by the branch12:34
* tlater has a peek, looks to be related to expiry at least12:34
* noisecell clears the cache and re-runs the pipeline12:34
tlaterOh, yeah, expiry...12:34
noisecelltlater, I didn't add any tests, so if it is failing for my branch should be failing for others too?12:35
tlaternoisecell: It doesn't, hence my confusion12:35
tlaterIf it still fails after *that* retry, tell me12:36
tlaterI wonder if we're just running out of disk space on the runner12:36
tlaterThat might cause the expiry tests to go haywire12:36
noisecellok, I will keep you informed12:37
tristan_paulsherwood, jmac ... I'm ready to cave in to the semi-linear history with merge commits setting on gitlab, if only to slightly lower the bar for reviews in light of the new policies12:50
* tristan_ was also thinking about that this week too12:51
* Kinnison would prefer that each merge *could be* FF12:51
Kinnisoneven if it's then merged with a merge commit12:51
KinnisonSince it shows that the MR has been tested in combination with master12:51
Kinnison(unless the CI already does that, in which case I'll shush up :-) )12:52
gitlab-br-botbuildstream: merge request (Qinusty/scheduler_docstring_fix->master: scheduler.py: Correct some anomalies within the docstrings) #551 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/55112:52
paulsherwoodKinnison: ci does that12:53
tristan_Kinnison, the gitlab setting is a bit confusing in calling it "semi-linear"12:53
Kinnisonpaulsherwood: then I shall shush up :-D12:54
tristan_but it indeed does that (there is another non-linear setting which I would argue vehemently against)12:54
* paulsherwood would also propose set all commits to 2 approvers for now... to reduce the fear factor and increase the incentive for reviews12:54
paulsherwoods/commits/merge requests/12:54
* Kinnison nods12:54
Kinnison2 approvers makes a lot of sense to me12:54
tristan_I still dislike approvers for exactly that reason12:54
paulsherwood???12:54
tristan_in the end, someone has to hit the merge button12:54
paulsherwoodso what? second approver can do it?12:55
* paulsherwood has found this approach works reasonably well at scale12:55
tristan_having multiple approvers is fine, they dont need to block landing it, and they should not reduce the sense of accountability you take when you hit merge12:55
Kinnison+1 on accountability when hitting merge12:55
* paulsherwood doesn't get tristan's point12:56
Kinnisontristan_: think of it as A writes, B reviews positively, C reviews and hits merge.  All three are on-hook12:56
paulsherwoodif i propose MR, i'm placing myself on the hook12:56
noisecelltlater, it is still failing: https://gitlab.com/franred/buildstream/pipelines/26087728 -- see test-unix job12:56
paulsherwoodi don't propose MRs just so someone else will test/fix my stuff12:57
* Kinnison thinks that, at least short term, requiring a minimum of three humans to be involved will mitigate the (relative) inexperience of some of the humans12:57
paulsherwood+112:57
Kinnisonthe three being the author, and two reviewers12:57
noisecelltlater, do I need to configure or enable anything for the cache expiry to work? ...although are the tests which is what are failing...12:57
* Kinnison also doesn't think that it'd be unreasonable for a more experienced author to have their MR merged with only one reviewer if it's urgent 12:57
KinnisonHowever, I'll bow to tristan_'s decisions on the governance ultimately, obviously :-)12:58
paulsherwood:-)12:58
paulsherwoodseen elsewhere "4. YBD seemed a little faster than BuildStream12:59
* paulsherwood gives a silent w00T inside :)12:59
tristan_paulsherwood, the point is basically from what I've seen, multiple approvers as a requirement seems to share the accountability, or it re-enforces that perception at least12:59
paulsherwoodtristan_: i don't think either of us has more than anecdata for this13:00
tristan_this is what worries me about the approvers feature in general, person A is familiar enough with part of the patch, person B might be familiar enough with the same part13:00
tristan_two 50%'s dont amount to a 100%13:01
tristan_Still, this could just as well be communicated in comments on the merge request13:01
* paulsherwood doesn't see how 'no approvers, commit at will' fixes this13:01
tristan_which can be more effective than a button13:01
paulsherwoodalso seen elsewhere" "We found that by switching to BST, we gained a number of advantages.13:01
tiagogomesMore daylight at evening?13:07
paulsherwoodhah13:08
*** toscalix has joined #buildstream13:17
gitlab-br-botbuildstream: merge request (Qinusty/scheduler_docstring_fix->master: scheduler.py: Correct some anomalies within the docstrings) #551 changed state ("merged"): https://gitlab.com/BuildStream/buildstream/merge_requests/55113:22
paulsherwoodsome BST user feedback here https://lists.trustable.io/pipermail/trustable-distros/2018-July/000008.html13:24
tlaternoisecell: Any news on that test case?13:27
noisecelltlater, it is still failing: https://gitlab.com/franred/buildstream/pipelines/26087728 -- this time in all the systems13:28
tlaterGrr13:29
* tlater will have a look13:29
noisecelltlater, do you know if I need to enable anything or something has changed in the project.conf?13:29
tiagogomesnoisecell is your branch rebased on master?13:31
tlaternoisecell: Not as far as I know13:32
tlaterI suspect this is fallout from the artifact cache expiry branch13:32
tiagogomesAs the unit tests are passing for #26313:32
tlaterSo give me a minute to look at why this is happening :)13:32
noisecelltiagogomes, I think so13:32
noisecelltiagogomes, https://gitlab.com/BuildStream/buildstream/merge_requests/537 -- it doesn't show it needs to be rebased13:34
noisecelltlater, thank you13:34
tiagogomesnoisecell the MR comes from your own personal fork. Are you using runners set up by you?13:36
noisecelltiagogomes, no, the runners are the default runners from gitlab13:36
ironfootI believe that buildstream will let you be a "Developer" so that you can create branches within buildstream/buildstream.git that will be tested by their runners13:46
tlaternoisecell: I recommend you use the gitlab runners13:56
tlaterErr, the buildstream runners13:56
tlaterI'll give you developer access :)13:56
noisecelltlater, ok13:57
tlaterLooks like you already have full maintainer access13:58
tpollardAre there any docs for the frontend?13:58
tlaterYou'll just need to push your branch to the main repository - that should trigger the test runs13:58
tlaternoisecell: Even if that fixes it, I'm still concerned about the test failure13:59
tlaterBut it may well be that your runners are simply not configured to allow everything we need13:59
noisecelltlater, if that is the case, do we have documentation about how to set up our runners?14:00
tlaternoisecell: They're codethink-owned machines14:00
* tlater isn't sure how they are set up, but presumably there is documentation somewhere.14:01
noisecelltlater, sure, although if someone externally or even anyone in the team want to re-do the job I assume we would like to follow the same steps we did in the past ;-)14:01
tlaterYep, I'm aware :) I think it should be easy enough to get documentation from codethink for this though14:02
tlaterThat said, checking out your branch now to test this locally...14:02
noisecelltlater, I've pushed a rebased branch in: https://gitlab.com/BuildStream/buildstream/pipelines/2609620014:08
tlaterHm, simply running that docker container + your branch doesn't reproduce it14:08
tlaterThanks!14:08
noisecellis there any way to swap branches in MR?14:08
jmacnoisecell: No, you have to create a new MR, unfortuntaely14:09
noisecelljmac, ok, thanks14:09
*** Prince781 has joined #buildstream14:09
tlaternoisecell: Do you think you could give me write access to your fork so that I can try this out on one of your runners?14:13
tlaterMay be a bit too much hassle if it works in the main repository.14:13
noisecelltlater, Im fine granting you access to my fork, it is not an issue14:14
tlaterThanks :)14:14
noisecelltlater, done14:15
* tlater starts doing some diagnosis on this cache14:15
tlaternoisecell: Your branch on the main repository looks to pass14:21
noisecelltlater, yup... well at least I can re-submit the MR then :)14:22
tlaterYep, that's fine14:22
tlaterI suspect that this is related to the CAS cache requiring different network access14:22
tlaterThough if so that's a major PITA14:22
tlaterAnd really, I don't have a clue how that would affect expiry ordering14:23
tlaterOH!14:23
tlaterOf course!14:23
tlaterGitlab runners probably don't store mtime14:23
tlaterHaha14:23
tlaterDoes anyone know if you can set up a file system that wouldn't remember mtimes?14:24
gitlab-br-botbuildstream: merge request (franred/fix-except-argument-in-source-bundle->master: source-bundle: Enable --except option) #552 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/55214:25
gitlab-br-botbuildstream: merge request (franred/fix-except-argument-in-source-bundle->master: source-bundle: Enable --except option) #537 changed state ("closed"): https://gitlab.com/BuildStream/buildstream/merge_requests/53714:26
noisecelltlater, jonathanmaw, https://gitlab.com/BuildStream/buildstream/merge_requests/55214:27
tlaternoisecell: Not sure if you have discussed this, but do you think a test case for this would be appropriate?14:28
tlaterSeems like that would be fairly easy to write, since you're fixing a pretty specific bug :)14:29
noisecelltlater, when creating the patch I though about this, but I couldn't find a place where you were checking the arguments for the different commands you are using14:29
jonathanmawtlater: quite possibly, but iiuc it'll be a fair bit of work, since there's currently no tests that source-bundle works14:29
*** cs_shadow has joined #buildstream14:29
noisecellso I didn't found an example where to base the test14:29
tlaterAh, alright, I thought we had source-bundle tests14:29
tlaterRight, I won't complain then14:30
noisecelltlater, maybe we should open an issue to create the tests for source-bundle?14:30
tlaternoisecell: Yep, though I haven't checked if there is one yet.14:31
tiagogomesI think there's one already14:31
tlaterSo it looks like gitlab runners do atimes/mtimes right: https://gitlab.com/franred/buildstream/-/jobs/8297870814:32
noisecelltiagogomes, oh ok14:33
tlaternoisecell: I still can't figure out why this happens. My best guess is that gitlab runners don't store the modification times correctly.14:40
tlaterWhich is a little problematic14:40
tlaterPerhaps we should keep an artifact manifest around after all?14:40
tlaterjuergbi: Thoughts on this?14:40
noisecelldoes that mean that we have change the configuration on our runners to store the modification times correctly?14:41
paulsherwoodwhy do mtimes matter for bst?14:41
tlaterpaulsherwood: We figure out which artifacts to remove based on mtimes - essentially just because that was a convenient place to store the last access time.14:42
juergbitlater: on what specifically?14:42
paulsherwoodtlater: ack14:42
tlaterjuergbi: noisecell just ran into a bug with artifact cache expiry - it seems that on normal gitlab runners, the artifacts will expire in the wrong order14:42
tlaterI suspect they don't keep track of mtimes correctly14:42
juergbithat would seem really odd, mtime is crucial in many build systems14:43
juergbiatime can be fragile, but mtime should be reliable14:43
tlaterHrm14:43
tlaterI'm not really sure what else could change between our runners and theirs14:44
tristan_juergbi, note that subsecond precision of mtimes is not entirely widespread14:44
juergbitlater: is it possible the filesystem handles it properly but the CI cache zip doesn't?14:44
tristan_I think ext414:44
juergbithat's true, we should probably not rely on subsecond mtime14:44
juergbi(although I think ext4 supports this)14:44
tlaterAh, we do write very small artifacts14:44
tlaterSo perhaps there's a chance their mtimes aren't granular enough?14:44
tristan_for a test case, I'd expect a few artifacts created in the same second14:45
tlaterYep, that would also explain the slight bit of nondeterminism14:45
juergbitlater: the CLI tool `stat` should show subsecond precision, maybe use this as test14:45
juergbitristan_: btw: just a reminder, do you want to tag 1.3.0?14:46
tristan_sure14:46
tristan_I'll push one now14:46
tlaterLooks suspiciously like non-sub-second mtimes: https://gitlab.com/franred/buildstream/-/jobs/8298557714:48
* tlater will file a bug, this doesn't seem critical enough to need fixing immediately14:48
*** leopi has joined #buildstream14:52
tristan_tlater, in practice, it seems that that bug is doesnt really have negative side effects, but if it effects CI it's certainly worth keeping track of14:52
tristan_if you're going to nuke a least recently used artifact, and have to choose between two that were created in the same second... meh14:53
gitlab-br-botbuildstream: issue #484 ("Artifact cache expiry relies on granular mtimes") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/48414:58
tlatertristan_: I figure it's probably enough to skip that test if we're on a machine that doesn't support sub-second mtimes.14:59
tristan_tlater, I agree, but would hope that determining that is difficult15:00
tristan_of course, we're going to hit this again next year when intel ships meltdown free chips that are 1000 times faster than 8th gen15:00
tlaterMaybe it's enough to check if the millisecond points in are 0 ;)15:00
tristan_and all the artifacts are created in the same microsecond15:01
tlaterHehe15:01
tlaterI guess we can just sleep for a second between each artifact, too15:01
tristan_that would still be better to do conditionally, though15:01
tristan_(sleep 2 seconds, even)15:02
*** Prince781 has quit IRC15:08
*** Prince781 has joined #buildstream15:11
gitlab-br-botbuildstream: merge request (valentindavid/331_include->master: Add support for include in project.conf) #471 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/47115:11
tristan_noisecell, tlater, tiagogomes; for reference, it's: https://gitlab.com/BuildStream/buildstream/issues/31015:18
tristan_would be great to get coverage there indeed :-/15:18
* tlater even filed that issue15:25
tlaterHow did I forget?15:25
tiagogomesPunish yourself by fixing it now :)15:26
noisecelltlater, jonathanmaw, tristan_, happy for me to merge: https://gitlab.com/BuildStream/buildstream/merge_requests/552 ?15:38
*** Prince781 has quit IRC15:38
jonathanmawI am15:39
tlaterI should test it manually first, but I won't block you from merging if jonathanmaw agrees.15:40
noisecelltlater, I can wait for you to test15:42
noisecellit15:42
tlaterAlright :)15:42
gitlab-br-botbuildstream: merge request (Qinusty/275->master: Qinusty/275) #553 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/55315:46
tlaternoisecell: Looks good :)15:48
tlaterFeel free to merge15:49
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/55315:53
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/55316:09
rdaleis in possible to build a stage1 gcc with the tiny c compiler in the alpine tarball?16:11
gitlab-br-botbuildstream: merge request (franred/fix-except-argument-in-source-bundle->master: source-bundle: Enable --except option) #552 changed state ("merged"): https://gitlab.com/BuildStream/buildstream/merge_requests/55216:19
*** jonathanmaw has quit IRC16:33
*** Prince781 has joined #buildstream16:36
qinustyCan someone review https://gitlab.com/BuildStream/buildstream/merge_requests/553/ please?16:46
*** bethw has quit IRC16:46
*** qinusty has quit IRC16:58
*** coldtom has quit IRC16:59
*** tpollard has quit IRC17:16
*** toscalix has quit IRC17:24
*** ernestask has quit IRC17:27
*** leopi has quit IRC18:09
alatierawould it be possible to set it so when bst opens a workspace it uses an ssh url for the git remote instead of http?18:26
cs_shadowone approach would be to use ssh urls in the element instead of https urls18:32
cs_shadowif you can't change that for whatever reason, then a workaround would be to use "insteadOf" config like so: https://stackoverflow.com/a/2202773118:32
*** vraj has joined #buildstream18:57
*** vraj has joined #buildstream18:58
*** vraj has quit IRC19:01
*** tristan_ has quit IRC19:13
gitlab-br-botbuildstream: issue #468 ("source-bundle: --except argument is ignored") changed state ("closed") https://gitlab.com/BuildStream/buildstream/issues/46819:49
*** Prince781 has quit IRC20:05
*** jsgrant has joined #buildstream21:34
*** xjuan has quit IRC21:49
gitlab-br-botbuildstream: issue #485 ("RFE: Add "bst fmt" (or similar) to rewrite .bst files to canonical format") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/48522:47
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/54622:50
*** bethw has joined #buildstream22:55
*** cs_shadow has quit IRC23:10
gitlab-br-botbuildstream: merge request (franred/fix-except-argument-in-source-bundle->master: source-bundle: Enable --except option) #552 changed state ("merged"): https://gitlab.com/BuildStream/buildstream/merge_requests/55223:41
*** bethw has quit IRC23:45
*** lantw44 has quit IRC23:59

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