IRC logs for #buildstream for Tuesday, 2017-10-17

*** bochecha has quit IRC00:48
*** semanticdesign has quit IRC01:47
*** tristan has quit IRC05:03
*** tristan has joined #buildstream05:51
*** jude has joined #buildstream07:35
*** jonathanmaw has joined #buildstream08:20
*** ssam2 has joined #buildstream09:10
*** tlater has joined #buildstream09:22
*** tiagogomes has quit IRC09:22
*** tiagogomes has joined #buildstream09:23
*** tlater has quit IRC09:45
*** tlater has joined #buildstream09:47
*** givascu has joined #buildstream09:48
ssam2tristan, do you consider the layout of an artifact to be an API surface of buildstream, or an implementation detail ?10:00
ssam2I don't mean its actual on disk representation, but the logical filesystem layout, i.e. a `files/` dir, a `logs/` dir, and a `metadata/` dir10:01
tristanssam2, it's a thing I've been thinking about more and more to be honest10:10
tristansome things in there clearly need to be stable, while it has originally been an unstable thing10:10
tristanmetadata needs to be stable, because of public data10:10
ssam2right10:10
ssam2i mean, the layout is simple enough that I can't really picture a situation where you'll need to break it10:11
tristanIf you want to run with a plan for signing artifacts, it will need to be stable also10:11
tristanRight, me too10:11
tristanAt least, backwards compat10:11
ssam2yeah10:11
tristanssam2, I'm not averse to declaring it stable and back compat10:12
ssam2ok cool10:12
ssam2i think adding source info to the metadata would be useful too10:12
ssam2so you could work out which repo(s) a project was built from, without having to manually parse the build log10:13
tristanYes, we can probably get away with literal dumps without any Source support for that10:13
tristanHowever, extra care would be needed for the tracking cases10:14
ssam2yeah, you want know both 'ref' and 'track' i guess10:14
tristanespecially when doing `bst build --track` without saving10:14
tristanssam2, that and, its just plain easier and more straight forward to just dump the source as it was originally represented10:14
tristanalso it's potentially reusable by buildstream10:15
ssam2makes sense10:15
tristanif ever we want some automation for any reason10:15
ssam2well, with variables and conditionals already expanded i guess10:15
tristanyes10:15
ssam2otherwise, we may as well dump the whole .bst file :-)10:15
tristanthat would not be bad, except such a thing doesnt really exist :)10:15
tristanah the unexpanded one, yeah; but would be irrelevant I think10:16
ssam2you'd need the rest of the context for it to make sense10:16
ssam2at which point, just... don't lose your source repo...10:16
tristanOh yeah; another hitch to that is expanding the aliases10:17
ssam2hmm, one other thing which I would really like, but is perhaps not something to go in the core, is a way of knowing details of the repo that contained the .bst files10:17
ssam2that can be really useful for working out how an artifact was built10:18
tristanyeah; I dont want that in the core either10:18
ssam2is there some way it could work as a plugin ?10:18
tristanbut if there is a way to integrate it or add support, lets think of a clean unintrusive one10:18
ssam2as a strawman, could there be a git_annotation plugin that sets public data on everything further down ?10:18
tristanone which doesnt assume anything about how you received your project, ever, or what VCS you used to revision it, if you did use one10:19
tristanNo plugins can see reverse dependencies10:19
ssam2right10:19
tristanAnd you're only allowed to programatically mutate your own element's public data (and read-only on dependencies)10:20
ssam2right10:20
ssam2what if we had a way to pass the annotation in from outside buildstream? so users could provide a 'describe-my-git-repo` script, and do something like `bst build --public-data=$(describe-my-git-repo)` ...10:21
tristanssam2, not sure where it's going, but if for instance; you wanted to dump random stuff buildstream doesnt care about into an element's public data; just because you might want to read it back from an artifact... that could probably be scripted10:21
ssam2ok, that sounds like a pretty good extension point10:22
tristanI dont think it needs to be with a switch10:22
tristanI mean, we dont really need any extra support for loading and rewriting files with ruamel.yaml10:22
ssam2i'm lost.. are you suggesting poking round in the artifact cache after the fact to extend the metadata?10:23
ssam2or saying users do this after `bst checkout` ?10:24
ssam2i guess that could work actually10:24
tristanI am assuming you want some annotation log of the element.bst to exist in each element's artifact, that you can read back from the artifact in some way later10:24
tristanor you want annotation of... something else ? I'm also thinking that annotation means `git annotate`10:25
tristanand I'm also thinking that you are talking about annotating the project, not it's sources10:25
ssam2I was using "annotate" to mean "attach any extra metadata that the user feels like attaching"10:25
tristanssam2, based on those assumptions; I am saying you can git clone the project, and run a script which annotates each element, and [over]writes the result in a special member of each element's public data10:25
tristananything that goes into public data, will just be in the resulting artifact10:26
ssam2so you have a script that edits the .bst files on disk before each build ? that sounds horrible...10:26
tristansure10:26
tristanssam2, another thing I've been pondering and desiring for a while now, is a way to stream a buildstream project10:27
tristanI.e. using the '--' built into yaml10:27
ssam2ah yeah, i remember discussing this before10:27
ssam2in the context of flatpak conversions10:27
tristanwith that; one could do it both ways10:28
tristanfrom project to stream, and stream to project10:28
tristanAnd buildstream could read a project stream in stdin10:28
tristanssam2, that could allow for ./run-annotation-script.sh | bst build10:28
tristanwithout rewriting the checkout10:28
ssam2right; yeah that might work10:28
ssam2best thing for me to do might be to produce a proof of concept in that case10:29
tristanthen; there is the question, which is happily outside of buildstream's hands, about reproducibility of artifacts10:30
tristanIf you put non-reproducible stuff in public-data, I expect it to effect cache keys10:30
tristanyes it will10:30
tristan(git annotations should be fine and reproducible, though, just making the note)10:31
ssam2right. which I think is what we want here10:32
*** adds68 has quit IRC10:32
ssam2if you want to store random data in the artifact, just store it *in* the artifact, after all10:32
ssam2the point here is to store extra stuff that is relevant for reproducibility/provenance10:32
tristanwe store non-reproducible stuff in an artifact, but only we do10:32
tristanssam2, in any case; I feel that if you want to construct a workflow like this, you dont really want annotations; commit shas should be better all around10:34
tristani.e. they are just as strong at knowing what the data was... and you can consume them in scripts10:34
tristanif you ever think of a reason to10:34
ssam2sure, I basically want each artifact to tell me, "this was built from commit xxxx of https://example.com/definitions"10:35
tristanyep, sounds sensible10:35
tristanbeware of recursive pipelines up ahead :)10:35
ssam2right, true10:35
*** adds68 has joined #buildstream10:36
tristanNot sure this is the right avenue to be honest - conflating what data is used to build with where it came from10:37
tristanthere may be a more practical workflow10:37
ssam2the only other method I can think of without sticking special cases into buildstream's internals, is having some kind of --extra-metadata commandline flag10:53
gitlab-br-botpush on buildstream@74-prevent-artifacts-from-containing-files-in-buildstream-build (by Tristan Maat): 16 commits (last: Ensure that artifact file permissions are set in the right order) https://gitlab.com/BuildStream/buildstream/commit/a968bab76201856a67c876be25745fee912c136b10:56
gitlab-br-botbuildstream: merge request (74-prevent-artifacts-from-containing-files-in-buildstream-build->master: Add warnings when staging to /buildstream/build) #93 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/9310:56
tristanssam2, yeah I mean - workflows to achieve whatever it is you want to achieve; just without trying to encode stuff into your artifacts to do it10:59
tristanas in, how does a group work with buildstream to do; what you wanna do11:00
tristananyway; maybe, maybe not, it's worth some thought, though11:00
*** adds68 has quit IRC11:01
*** adds68 has joined #buildstream11:01
ssam2one particular use case I have in mind for the artifact metadata is the sysroots produced by Baserock11:16
ssam2the idea is those will get committed to https://ostree.baserock.org/releases/ and used for many years to bootstrap many builds11:16
ssam2if they do get reused far and wide, eventually someone will be faced with this binary blob being part of their build and noone remembering where it came from. But if it carries a stamp that says "I was built from this commit of this repo!" then such situations are not so bad11:18
ssam2inside an enterprise or something we can perhaps mandate good practices, but in the open source world there will always be cowboys !11:18
tristanhmmm11:21
tristanssam2, I think there might be better ways around this11:21
tristanssam2, for instance; if we're talking about a sysroot deployment; we can do like we plan to do for flatpak, and design an element at the end which spits out some metadata11:22
tristanat the end of a pipeline you can read anything public on all dependencies11:22
tristanssam2, that could; at least potentially produce something more practical for that purpose11:23
ssam2but that element would need to get the details of the Git repo from somewhere11:23
ssam2which can by definition not be VCS agnostic11:23
tristanssam2, *would* it11:24
tristanssam2, if you can reconstruct what you had to come to that result - why do you need to know the git repo which produced that same data from some other origin ?11:25
ssam2i guess there's two things here11:25
ssam2one is being able to reconstruct how the artifact was build in order to make a change; the other is being able to find the upstream that produced it11:26
ssam2*was built11:26
tristanAnyway; I'm not specifically strongly against permitting third party stuff landing in artifacts11:26
tristanBut if we're going to land anything at all - those things should be driven by concrete use cases11:26
ssam2sure. is the baserock sysroots one good enough? or are more use cases needed to justify it?11:27
tristanssam2, I dont believe the use case necessitates knowing anything about the VCS, if any, which was used to store the buildstream project11:28
tristanI mean; you want to take that binary blob and be able to build it again, right ?11:28
ssam2like i said, there's two things11:28
ssam2one is including an identifier of the upstream, which could be any free form text11:28
tristanYeah, so I should also note - as a side - that project.conf already supports some general public data settings11:29
ssam2ok, cool11:29
tristanAlthough I suspect it's element-type-specifict11:29
ssam2so there's just being able to build it from sources11:29
tristanspecific*11:29
ssam2rather, being able to build it *without* sources11:29
ssam2seems difficult to achieve that without dumping pretty much everything into the metadata, no?11:29
tristanalso, reconstructing the source project from an artifact, is not exactly going to be easy :)11:30
tristanBut still; it's probably a desirable thing11:30
ssam2it seems a lot simpler to just allow adding a VCS stamp, and say "don't lose your source code"11:30
tristanssam2, regarding recursive pipelines; stay in sync with juergbi ... but there is going to be an element type for representing external projects11:31
ssam2interesting, OK11:31
tristanssam2, and that element type is going to have an abstract Source, like any element11:32
tristanThat Source being dumped is probably interesting11:32
ssam2right! yes, very interesting11:32
*** semanticdesign has joined #buildstream11:37
*** anthonywilliams has joined #buildstream12:08
gitlab-br-botpush on buildstream@list-composition-directives (by Tristan Van Berkom): 9 commits (last: _options/optionpool.py: Use _yaml.composite() instead of _yaml.composite_dict()) https://gitlab.com/BuildStream/buildstream/commit/24efda780d0843591ac592ebfc7b028f5dccf55712:18
*** sstriker has joined #buildstream12:25
gitlab-br-botpush on buildstream@remove-arches (by Tristan Van Berkom): 16 commits (last: _options/optionpool.py: Use _yaml.composite() instead of _yaml.composite_dict()) https://gitlab.com/BuildStream/buildstream/commit/24efda780d0843591ac592ebfc7b028f5dccf55712:26
tristanhmph... gitlab busy today :-/12:27
* tristan suspects this is not gitlab being busy, but that gitlab.com's runners are not responding12:31
tristanintegration_unix has been waiting an hour on tlater's merge request: https://gitlab.com/BuildStream/buildstream/pipelines/1288234512:32
*** sprocket has joined #buildstream12:45
*** semanticdesign has quit IRC13:09
*** semanticdesign has joined #buildstream13:11
*** sprocket has quit IRC13:19
*** tristan has quit IRC13:23
*** tristan has joined #buildstream13:26
ltuNB ALL: meeting is starting on this channel in 30 minutes.13:29
tristantlater, sorry for not mentioning that before; just added one tiny adjustment to the staging error merge request13:34
tristanmy bad, should have mentioned that before I guess :-/13:34
tristanthankfully, gitlab is chugging along again13:35
tlatertristan: What's the context on this?13:35
tlaterOh, !93?13:35
tlaterAh, alright13:36
tristanyup: https://gitlab.com/BuildStream/buildstream/merge_requests/93/diffs#note_4368706913:36
tlaterSorry, didn't notice, got a bunch of spam mail and hadn't checked yet...13:36
tristanI just commented now13:36
tristanbranch is perfect, just dont want error message checking in test cases13:36
tristanif we want to get more fancy, we can start creating more machine readable errors (ala LoadErrorReason)13:37
tristantlater, I think the ^C in bst shell issue fell through the cracks, or does it have a new revision up ?13:37
* tristan was looking forward to closing that one :)13:38
tlatertristan: I've been testing the different platforms quite extensively...13:38
tristanAh sweet13:38
tlaterI'll put up another revision in 1-2 hours13:38
tristanUnfortunately I dont see a way to regression test it13:38
tristanbut meh, a fix will be great :)13:38
tristanok... big rebase coming up13:39
tristanprobably no conflicts though13:39
* tristan prepares to merge list-composition-directives13:40
tristanpipelines have mostly passed, linux_integration did, and unix_integration is gonna take a while but there's no reason to fail there if it passes on linux13:41
tristanalso, /me excited to see updated docs13:41
tlatertristan: On the C-c merge request, it seems that killing the process in the exception handler is necessary13:41
tlaterOtherwise we get an error in the child python process13:42
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 9 commits (last: _options/optionpool.py: Use _yaml.composite() instead of _yaml.composite_dict()) https://gitlab.com/BuildStream/buildstream/commit/24efda780d0843591ac592ebfc7b028f5dccf55713:42
tristantlater, that doesnt make sense to me :-/13:42
tristanhold sec13:42
tristanummm13:43
tristanstill13:43
tristantlater, how do we know that that wont cause bash to exit when running `/bin/sh -i` in bst shell ?13:43
tristanI suppose bash will setsid() by itself ?13:44
tristanand is expected to ?13:44
tlaterOh, hm, that's annoying13:44
tristanyeah I think not, I made sure that works13:44
* tlater tries anyway13:44
tristanand annoyingly, it works by *sharing* the process group13:44
*** Angelos has joined #buildstream13:45
tlaterYeah, it dies, unfortunately13:45
tristanwhich means, if the bubblewrap child process receives a signal, so do we, cause we're in the same group13:45
tlaterJust 'pass' causes an exception in the unix platform and a zombie in the linux platform though :/13:45
tristanhmmm13:46
tristanunfortunate13:46
tristanneeds some more thought then :-/13:46
tristantlater, I knew this one would be a hard problem hehe13:46
tristanwelcome to signals and job control !13:46
tlater\o/13:46
* tlater will solve the checkout exception first instead13:47
*** cs_shadow has joined #buildstream13:57
*** hashpling has joined #buildstream13:59
ltuOK, shall we begin?14:00
tristanYay \o/ !14:00
tristannice turnout14:00
* tristan tries to resolve wiki... slooowly14:01
sstrikerindeed14:01
* tristan resorts to email14:01
tristansstriker, nice to see you around here :)14:01
ltutristan, shall we ask folk to confirm if they're taking part with a raised hand or something?14:03
tristanltu, lets start, I just realized14:04
tristanGNOME is having a mass reboot session14:04
ltuI'm not sure on the protocol: that may not be required.14:04
ltuok14:04
tristanhence lack of wiki14:04
ltualright so item one:14:04
* persia laments the lack of mootbot14:04
ltu=== Blockers for BuildStream 1.0 release ===14:04
ltuSuggested by: tristan14:04
ltu'No feature additions beyond the recent format changes we agreed on, we'd just like to shake the tree and get a hold on what bugs need to be closed for a 1.0 release. '14:04
ltu....14:04
tristanAlright thanks ltu :)14:05
ssam2o/14:05
tristanSo for me this has been an invaluable exercise when initially releasing Glade, it may be less intensive because we already have some eye14:05
tristans14:05
tristanWhat I'd like to get out of this agenda point, is a clearer picture of what we are comfortable with in terms of tidying up before 1.014:06
tristanssam2... go ahead14:06
ssam2was just going to suggest two things on my plate which would break things14:06
*** daniel has joined #buildstream14:07
ssam21 being the multiple cache support proposal, and the other being stricter errors on overlaps14:07
tristanRight, OK - as this is a bit more involved than agenda points... I have a scratch area I'm going to collect14:07
*** daniel is now known as Guest6428414:07
tristanOk, I think stricter errors on overlaps is reasonable14:08
tristanIs there a reason why we think multiple cache support should block 1.0 ?14:08
sstrikerOverlaps in terms of produced files?14:08
ssam2in terms of: i stage 3 dependencies and each provides /bin/sh14:09
persiasstriker: In terms of two elements that have the same file, where only one can be in a combined element.14:09
sstriker*nod* thanks14:09
ssam2multiple cache support could break user configurations14:09
ssam2i guess we could have backwards compatibility though14:09
ssam2so doesn't really need to block 1.014:09
tristanssam2, that is a good point14:09
persiaCould or must?  If must, I wonder if we can add something to make it could in 1.0.  If could, can there be a simple migration script for users?14:10
tristanHowever - I feel that one time breaking user configuration post 1.0 for this is not a huge concern14:10
sstrikerI concur14:10
juergbiwould be nice to avoid it, though14:10
ssam2fine by me14:10
persiaNice to avoid, but part of the signal sent by a new major version number is the potential to break config.  Difference between 1.1 and 2.014:11
tristanjuergbi, certainly - and I would like it to be stable in 1.2 (or whatever is "next stable")14:11
ssam2i think backwards compat is not too hard, the current proposal suggests replacing the dict with a list. we can handle both cases14:11
tristanBack compat for user configuration will be doable, but I believe we need to break it once for canonical URIs14:11
tristanWhich I believe is orthogonal to multiple cache support14:12
ssam2my understand is you want it as a prerequisite14:12
* persia is unconvinced that the canonical URI design is sufficiently complete to avoid delaying the 1.0 release for a long time14:12
ssam2but the old URIs would continue to work14:12
ssam2*my understanding14:12
tristanssam2, yes - would they ? that would be relatively high cost and annoying no ?14:13
ssam2on the server side, no changes needed at all14:13
ssam2client side... it doesn't /seem/ bad, but i have been wrong before :-)14:13
tristanssam2, however it imposes something on the server side which is inconvenient, I think14:13
juergbii also wouldn't expect it to be high cost but haven't thought about it much14:14
tristanssam2, I.e. we always have to continue supporting ssh push / http pull - for linux, forever14:14
tristanssam2, whereas, with a single uri, if we change things behind the scenes, no big deal14:14
tristanIn any case I think this is not a huge point of contention14:15
tristanMy thoughts are that A.) we can break configuration API once for the sake of canonical URI for push/pull ... and B.) that need not block 1.014:15
tristanBut a one time break will be expected and noted in release notes.14:16
tristan(for artifact client side URI configuration only)14:16
tristanThat would make it, not a blocker - Is that alright ?14:16
ssam2fine by me14:16
juergbiok, but i would keep compatibility, if it's easy enough14:17
sstrikerI can live with that14:17
tristanjuergbi, what I certainly dont want, is a gray area where we "try to keep compat" long term without a promise14:18
tristanjuergbi, which is why I feel like ironing out the kinks once and explicitly breaking, is nice14:18
tristanit allows for a point of no return, and stricter future14:18
persiaI want that.  I would like to see compatibility kept for everything, if possible, but only a few promises, as too many constrain too much.14:19
tristanAgreed, it is for certain that; when we make aggressive changes to the artifact server... sysadmin work will be required14:19
tristanHowever that should be doable without breaking client config14:20
juergbido we want a version number in config files?14:21
tristanAlright - I'm marking this down, we're straying off course - it's not a blocker, but further discussion may be needed on the policy of breakage of user configuration.14:21
juergbifair enough14:21
tristanjuergbi, My thought is no, until we do14:22
tristanThat is largely a bridge we can cross when we get there14:22
persiaIf we think we will want a version number in the future, better to start with one now.14:22
juergbiagreed14:22
persiaCrossing the bridge later is painful.14:22
juergbino version can be considered 'version 1' or so14:22
tristanpersia, a versionless configuration file, is version 0, or 114:22
tristanexactly14:22
* persia has crossed that bridge lots of times, and is always happier when someone has already thrown a rope over the span14:22
tristanpersia, in other buildstream cases, you are correct, I disagree about this one.14:23
tristanAs this was raised - I'm marking it down14:24
tristanInitial Revision for configuration14:24
tristanHowever, I dont think it's a blocker14:24
tristanI have only 2 blockers on the list as of now (I meant to spend time reviewing what I wanted to add, but then didnt :-/)14:25
tristanI should at least enumerate those14:25
tristan - https://gitlab.com/BuildStream/buildstream/issues/11314:25
tristanThe above is distinguish between `bst build --track` and `bst build --track-save`14:26
persiaGNOME finished rebooting: shall we use https://etherpad.gnome.org/p/buildstream20171017 for notes?14:26
tristanBecause `bst build --track` will have a possibly unwanted side-effect of rewriting the project14:26
tristanpersia, after the meeting, ltu will be updating the wiki with action points and such14:27
tristanltu, and here is one14:27
tristanACTION: Tristan to update the bug list with blocker bugs14:27
ltuok14:27
tristanSo, I dont think there is any contention for issue 113, I've discussed it with Sam, and it's fairly simple to do14:28
tristanAnd not doing it before 1.0 means we break things if we ever do it later14:28
juergbiagreed14:28
tristanThe other is https://gitlab.com/BuildStream/buildstream/issues/97 - Apply pep 3102 to all public API surfaces14:29
sstrikerwe should definitely do those14:29
sstrikerCan I continue on the track one for one more min?14:29
persia+1 on landing 113 before 1.014:29
sstrikerMore related, not the same14:29
tristansstriker, yes please sorry to get ahead :)14:29
sstrikerThe current behaviour of bst build --track is to do recursive tracking14:29
sstrikerWhich is not always desired (I'd argue it usually isn't)14:30
tristanAh, very good point14:30
tristanin contrast with `bst track`14:30
sstrikerRight14:30
sstrikerI suggest a behaviour change before 1.014:30
tristanYes, I concur, I'm not sure what it will be, but will file a bug14:31
tristanit could be multiple --track <element> --track <element>, or it could use a config file14:31
tristanbut lets brainstorm that separately14:31
sstriker+114:32
sstrikerAssume that is a potential blocker due to behavioural change14:32
tristanCertainly14:33
tristanSo... moving on... (mini timer in my head...)...14:33
tristanpep 3102 is a nitpik of mine, but means a stronger python API surface14:34
persiaI like pep 3102, but feel like it could be added later, if nobody gets around to the tedious bits.14:34
sstriker+1 on that one.  Will reap benefits later14:34
persiaAs long as there are no major API changes between 1.0 and 1.2, safe to defer.  If major API changes are expected, then we should do now.14:34
tristanWhat it means is: def function(positional1, positional2=default_value, *, keyword_arg1=default_value...)14:34
sstrikerNot sure that it can, given positional arguments?14:34
juergbistrictly speaking, it breaks backward compatibility, so +1 as blocker14:35
tristanSo, if everything distinguishes, and positional arguments (possibly with default values) are reduced, it means that we can always move args to become positional, but not the reverse14:35
tristanSo it really is a thing about back compat of API14:35
tristanpersia, yes it implicitly breaks API, and adds a measure of protection for future extensibility14:36
sstriker+1 for taking this hit now rather than later14:36
tristanOk, marked that...14:37
tristanHas anyone any other blocker ideas ?14:38
tristanI am tempted to consider things such as: Need early exit and comprehensive error when host kernel lacks CONFIG_USER_NS - https://gitlab.com/BuildStream/buildstream/issues/9214:38
persiaI would like a canonical artifact serialisation format, but I don't know whether that needs to be defined before the first release or can come later.14:38
tristanpersia, serialization format; do you mean: Stability of artifact content as an API surface ?14:39
persiaProbably :)14:39
tristanWell, ssam2 and I discussed this here today briefly14:40
tristanBut I feel like this is better punted to second stable line14:40
tristanLets take some more time to learn about this before calling this part stable14:40
persiaI'm fine with punting, if it is safe to punt.  Just wanted to check.14:41
tristanThoughts ?14:41
sstrikertristan: while #92 is annoying, I'm not sure it is a blocker.14:41
tristansstriker, yeah; I was going to ask if I should be considering these14:41
sstrikerThey can be addressed in patch releases14:41
tristanThere are annoying things, like the ^C behavior in the interactive shell, which are also annoying14:42
tristanBut things about not detecting the dependencies well and having unpleasant surprises, mean immediate fail for some new users14:42
sstrikerWon't break backward compat though.  Question is what do you want the experience bar to be for 1.014:42
tristanBut I'm personally ambivalent about calling that a blocker14:42
juergbimaybe mark it as nice to have for 1.0?14:42
sstrikerBecuase if we consider these things we open up the door for a number of others14:42
tristansstriker, that is also a _very_ good question14:43
tristanOk - so in the interest of sure footed progress, I will disregard those from blockers.14:43
persiaGiven the timing, I think 1.0 should prefer a safe and likely backwards-compatible API to user experience.  For 1.2, there are lots of things to make it better, but more users sharing how they experience it will help us make that list.14:43
sstrikerstaging performance, startup performance, incremental builds, would be what springs to mind.  Think that's better left for next point release if we are on a timed release schedule.14:44
sstriker+1, exactly.14:44
tristanI'll note that I will not tie GNOME to stable BuildStream 1.014:44
tristanBut will hope that in the future we can depend on stable BuildStream, perhaps via distro packages14:45
persiatristan: I think GNOME can move to 1.1 without an issue.  But I think long-term, it would be nice to release BuildStream simultaneously with GNOME, and have the released BuildStream work with the released GNOME for the life of both.14:45
tristanpersia, that still implies that GNOME will use unstable buildstream internally in advance of a release14:46
persiatristan: Yes, and intentionally :)14:46
tristanpersia, which I think is "okay", but will hope to avoid after one or two release cycles14:46
sstrikerI am not sure it is desirable to tether the releases14:46
tristanIf it does happen, it will be because of an explicit feature request from GNOME14:47
tristanindeed, it creates friction14:47
persiaI think it is important to allow GNOME to do that, but not to force GNOME to do either.14:47
tristanThat will be discussed in the next agenda point though I think.14:47
tristanSo... lets wrap this up first14:47
tristanI dont have other blockers on my plate14:48
tristanAnyone ?14:48
tristanOk14:48
* tristan simultaneously ran through the buglist to double check.14:48
tristanltu, since you announced the last one, would you like to do the honors ?14:49
tristan:)14:49
ltualright14:49
ltuI think a lot of it will have just been covered then14:49
ltusecond agenda point is:14:49
ltu=== Release Schedule ===14:49
ltu'We should discuss how/if BuildStream releases will align with GNOME releases. Also I think we should inform everyone about the release cycle and also the devel / stable branch (more of an 'announcement' than a discussion perhaps).'14:49
persiaI was under the impression that, as a GNOME project, BuildStream was strongly encouraged to follow the GNOME release schedule.  In practice, I don't think it matters much.14:50
tristanOk so before we split hairs, lets note the difference between following the GNOME release schedule, and tethering the relases14:50
tristanThe difference I see here, is that GNOME releases need not block on BuildStream in general14:51
tristanI.e. not tethered14:51
tristanFollowing the schedule for our stable releases, I think is orthogonal for that14:51
tristan*to14:51
tristanAlso persia is exactly correct; strongly encouraged but doesnt matter a great deal14:52
sstrikerConcur.  I also like the "strongly encouraged" vs "must"14:52
sstriker(not suggesting we don't at this stage)14:53
tristanSo, if people are unfamiliar with the GNOME release schedule, it's pretty simple: https://wiki.gnome.org/Schedule14:53
tristanI would posit that we target the *next* GNOME release... I think 3.30, as our second stable14:54
tristanGiving us more time for our first cycle, because we're late to the party anyway14:54
persiaSo, the concern I was expressing earlier is that I think that if GNOME modules have BuildStream definitions, the BuildStream version that supports those definitions should be maintained about as long as those modules, just from an end-user experience point of view.  It might take a couple cycles to get there.14:55
tristanAnd I would "generally" like to follow the hard dates14:55
tristanAh14:55
tristanpersia, that is not in our court, however14:55
tristanpersia, with my brand spanking new release team hat on however, I can say that in general there is some maintenance at least of last stable14:56
tristanjjardon[m], could enlighten us more, though.14:56
persiaHow is the length of support of some release of buildstream not in our court?14:56
tristanpersia, Ahh ok I misunderstood14:56
persiaRight, so I just want the BuildStream release & support model to be something that would allow the behaviour I described.  Whether otherr folk in GNOME decide to do so is up to them.14:57
tristanSo you mean, that we continue to backport bug fixes to our stable branches, for the stable versions which are still required by GNOME maintained modulesets.14:57
* persia may go discuss the matter with them, but that is outside the scope of this meeting.14:57
tristanpersia, does that match your thinking ?14:57
tristanI.e. "at least" as far back as maintained GNOME stable releases go14:58
persiaSome bug fixes: there's a difference between "crashes", "misspelling happens to be a disturbing word", etc. and "not as fast as I want".14:58
persiaBut otherwise, yeah.14:58
tristanOk, I certainly approve14:59
tristanIt may one day come down to a matter of resourcing :)14:59
tristanbut lets ride with that14:59
persiaIt always does :)14:59
tristanSo asides from this; When I say I would "generally" like to follow the hard dates - I also feel that some of this does not apply to us, in the same way as it does for GNOME15:01
tristanI.e. we wont have string freeze - until such a day that we might implement i18n properly for our frontend(s)15:01
tristanAnd, I dont think we care about UI freeze either, this is very centric to how documenters/designers are preparing what the next "GNOME UX" will look and feel like15:02
juergbiyes, i think we can ignore those15:02
persiaMore generally, I suggest BuildStream not observe freezes until there is a group that is separate from the developers that needs to do follow-on preparation work for release.15:02
tristanBut an API freeze one month before code freeze, and then release; seems reasonable to me15:03
persiaSo, if there are translation volunteers, honor string freeze, etc.15:03
tristanpersia, right; for translations; we would need to first do work to make it translatable15:03
tristanbut yes15:03
tristanFor us though, it means we can develop an internal model where we A.) Land bigger features early in the cycle... B.) Reject features after a feature freeze... C.) Leave us some time to address issues before release, without new features landing15:05
tristanpersia, this is something I want, and will reduce cost of maintenance overall15:05
sstrikerthat sounds sane15:05
juergbii agree15:05
tristanSo, to me, doing it on a 6 month cadence alongside GNOME, is not a problem; its all around good stuff to do :)15:06
ssam2+115:06
sstriker+115:06
tristanAlright, ltu; would you like to take the action of summarizing that somewhere on the wiki ?15:06
tristanor would it be rude to voluntell you that :D15:07
tristanheh15:07
ltusure, doing it atm15:07
ltu:)15:07
ltuthat's exactly what i wanted to email out after the meeting and confirm :)15:07
tristanACTION: ltu to summarize release schedule policy from our discussion15:07
ltualright, last point on the agenda, a nice easy one:15:07
ltu=== Next meeting date ===15:07
ltuExactly 4 weeks from now? That would be Tuesday 14 November. Then every 4 weeks re-occurring?15:08
jjardon[m]tristan: what is the question? R-T only maintains the current stable and the next release (current unstable)15:08
tristanltu, I think you're a bit quick on the trigger there15:08
ltuhhmm, ok...15:08
tristanjjardon[m], ok - good to know :)15:08
jjardon[m]tristan: actually, we support the current stable only for a while, until we release .215:09
tristanIn any case; I think we've spoken enough about that, but just in case - Anything that we should be getting straight about BuildStream's release cycle ?15:09
jjardon[m]then is the community who upgrade the modulesets, if needed15:09
tristanjjardon[m], please - this is not random discussion, we're having a monthly team meeting right now15:09
tristanjjardon[m], if you would like to join, just please follow the discussion :)15:09
jjardon[m]tristan: you ping me15:10
tristanI mentioned you yes...15:10
* jjardon[m] dissapears15:10
tristanOk... Any other points to discuss about BuildStream release schedule ?15:10
tristanJust wanted to give people a chance to ring in...15:11
tristanOk sorry ltu - next point then15:11
tristan=== Next meeting date ===15:11
ltuyeah, sorry for jumping ahead there.15:11
persiaI like every 4 weeks rather than every month.15:11
ltumakes more sense to me.15:11
tristanSo that is fine with me15:11
tristanAlso always lands on a tuesday, nice - no mondays no fridays is a rule I think15:12
sstriker+1 here too.  I'm assuming this is the best time for everyone?15:12
tristanI think so, I mean I have to be up late, but it's only me and I dont mind, and 10 am EST is nice and after first cup of coffee15:13
tristanwhile BST lands in midday15:13
* persia has lots of IRC meetings on Tuesdays, making it a very good day. This also happens not to conflict, if we assert it stays 14:00 UTC, and doesn't move.15:13
tristanOh !15:13
tristanWait15:13
juergbiDST is ending in Europe/US before the next meeting15:13
tristanYou guys are going to run one hour away15:13
juergbido we keep UTC or British time?15:13
persiatristan: 14:00 UTC will always be the same for you.  Just some folk have to change.15:13
tristanpersia, ah thanks :D15:13
tristanyes15:13
juergbiyes, probably best15:13
ltuI was thinking to always keep to UTC.15:14
ltuOK so that seems to be confirmed then. I'll remind everyone one week before the next meeting of course15:15
persiaNice thing about keeping UTC is that it avoids the annoying times when different governments do DST on different schedules.  Doesn't affect us now, as most folk change before the next meeting, but it could in the future.15:15
sstrikerkk, i'll need to change some things on my end to make that work.  UTC is a bit painful, as it tends to conflict with meetings that do move with US timezone15:15
sstrikerThere is exactly 4 weeks of the year where timezones are out of whack.  I'd rather take that than a meeting that is on a different time depending on half of the year15:16
tristanUmmm15:16
tristanI propose we move this to a side channel15:17
tristanFor future meetings15:17
sstrikerkk15:17
persia+1 on discussion of timezones after the meeting15:17
sstriker4 weeks we can settle on15:17
tristanI have no issue with lurkers at all, and encourage it; but better to avoid distractions from gitlab bots and those who, very understandably, have no idea we're having a meeting :D15:18
tristanso -> #buildstream-meeting, and log the minutes15:19
juergbiok, sounds fine to me15:19
ltuok15:19
tristanSo that's not a huge agenda point15:20
tristanshall we open the floor for any other points ?15:21
ltutristan, the other other thinh i had was: === Any other business ===15:21
ltuthing*15:21
tristanltu, exactly :)15:21
ltu:)15:21
gitlab-br-botbuildstream: merge request (102-run-ci-as-non-root-user->master: Resolve "Run CI as non-root user") #104 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/10415:22
gitlab-br-botbuildstream: merge request (102-run-ci-as-non-root-user->master: WIP: Resolve "Run CI as non-root user") #104 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/10415:22
tristanSo, in the future with a #buildstream-meeting channel happening exclusively for meetings; we can always just end with that15:22
sstrikerI think we would be getting ahead of ourselves if we discussed what the focus would be for beyond 1.0.  Maybe more for next meeting.15:22
tristanAnd people can feel free, but not obligated, to hang around longer15:23
tristanUnless there are any adamant points raised last minute, hopefully they can be raised directly before the meeting :)15:24
tristansstriker, agreed, that is also quite an open topic we cant discuss very efficiently right now15:24
tristanActually, we should probably be doing that next week yes15:25
tristan*month15:25
tristannext 4 weeks... because assuming we're closing in on first stable; we should be looking at those mountainous feature branches that contributors have their mouths watering and wanting to land :)15:25
tristanAnd thinking, lets get to merging this early-cycle15:26
tristansstriker, like that ?15:26
persiaIndeed: by next time, we should have released, and be able to merge a few things and discuss the remainder.15:26
tristanI had not observed the timing of it but indeed it's already close to "early next cycle"15:27
*** hashpling has left #buildstream15:28
*** Guest64284 has quit IRC15:28
tristanFor today, are we ready to adjourn ?15:29
ltunothing more from me15:29
ssam2nothing from me15:30
sstriker+115:30
juergbi_o_15:30
tristanWe didnt cover this in release schedule, but petty detail, I'd like to also follow GNOME style release numbering15:30
tristaneven minor number = stable, odd minor number = devel15:31
persia+115:31
tristanThat's all :)15:31
tristanOk - thank you all for coming in such great numbers !15:31
tristanWas a pleasure :)15:32
tristanjjardon[m], Sorry to have seemed to snap this way, we will use a separate channel for meetings in the future (and you're TOTALLY welcome to join in :))15:32
tlaterSorry for triggering the gitlab CI bot15:33
* tlater forgets it does that15:33
tristanyeah separate room will be better15:34
tristanWe'll make sure to announce here as well directly before starting15:34
persiaCan we have mootbot?15:34
persiaIs there a general gimpnet mootbot, or would it need a tender?15:34
* tristan doesnt know what that is, is it a funny quote bot ?15:34
* tristan always wanted a bot that starts randomly telling 'ur mamma' jokes when the channel gets too quiet15:35
tristanbut I think people wouldnt like it :)15:35
ssam2https://meetbot.gnome.org/ exists15:36
persiahttps://wiki.debian.org/MeetBot and https://wiki.ubuntu.com/ScribesTeam/MootBot and https://git.openstack.org/cgit/openstack-infra/meetbot are three instances I know of today.  There may be more.15:36
tristanpersia, there is something that Services does I think, about starting/stopping logging and minutes15:36
persiassam2: That's probably the right one to choose :)15:36
tlaterIs there an easy way to get an element with everything it needs to run stages/builds in the tests?15:37
* tlater is a little stuck on unit testing :/15:38
tristanpersia, here: https://wiki.gnome.org/Sysadmin/IRC15:38
tristanpersia, I think it's indeed proxied through Services15:38
tristanwho may be doing other stuff other than meetbot15:38
tristanlooks like there is a process for registering15:39
persiaIndeed.  It would be my preference to replace brlogger with logbot, and register a meetbot if meetings are held here.15:39
persiaIf meetings are to be held in #buildstream-meeting or similar, meetbot should go there.15:40
tristanagreed15:40
persiaIs that something you can sort?15:40
tristanhaha you caught that !15:41
tristansly persia15:41
tristanI am able, ok15:41
persiaCool.  Thanks :)15:41
tristanACTION: Tristan to arrange the bot for next meeting15:41
tristanRegarding brlogger ... I dunno about that one15:42
persiaWhy not?15:42
tristanmaybe requires a service I dont know if GNOME runs one15:42
tristanseparate things15:42
persiaIf GIMPnet typically provides a service, and BuildStream is a GNOME project, alignment makes sense.15:42
persiaThe same Sysadmin/IRC page explains how to add logbot15:42
* tristan rechecks the wiki15:42
tristanpersia, you should keep in mind we did have a semi-controversial discussion on d-d-l years ago, and concluded that if any logging whatsoever is going to happen, it _must_ be indicated in the topic15:43
tristanAnd I'm not sure that something other than the meetings bot was implemented15:43
tristanhowever, maybe we can use the same bot for constant logging of #buildstream too ?15:43
persiaYes.  The current /topic says "IRC logs: <<URL>>".  I would expect that to be true with a different URL.15:43
persiaYes the meeting channel should also be logged.  GNOMie/MeetBot/MootBot/whatever makes mistakes sometimes: while the summaries are lovely, backup is good.15:44
tristan"Other details: logbot"15:45
tristanappears on the wiki page15:45
tristanI dont know how long ago it's from, or who is Byron Jones, and if he still runs that bot15:45
persiaDoesn't hurt to email him :p15:45
persiaBot seems to be running, as is the log site.15:46
tristanok ok, I'll put aside some time for that - instead of spending time drafting crazy crypto features :)15:46
tristangood ?15:46
* tristan ducks15:46
*** Angelos has quit IRC15:47
* persia fails to submit a large relatively prime number to be logged by brlogger15:47
tristanSomething to think about... Creating BuildStream projects for creating distro packages, of BuildStream15:53
tristanwe could start with jonathanmaw's dpkg work and create a ppa with that :)15:53
tristanalso, might give me something to talk about at fosdem :)15:54
persiaheh.  Side effect of providing nice "hello world" examples of how to create distro packages with buildstream.15:56
tristanw00t !15:58
tristandocs update: http://buildstream.gitlab.io/buildstream/formatintro.html#format-directives15:58
*** sstriker has quit IRC16:01
jjardon[m]tristan: haha no problem at all! sorry I interrupted your meeting16:09
tristanjjardon[m], no worries :)16:11
tristanjjardon[m], I hope you will come 4 weeks later :)16:11
tristanbochecha was intending to lurk... I wanted to tell him about declarative list composition...16:12
*** jude has quit IRC16:27
*** ssam2 has quit IRC16:28
gitlab-br-botpush on buildstream@74-prevent-artifacts-from-containing-files-in-buildstream-build (by Tristan Maat): 1 commit (last: Add warnings when staging to /buildstream/build) https://gitlab.com/BuildStream/buildstream/commit/a8f3fcb146903fb19a2d6edd111f3fa820e3a81b16:36
*** bochecha has joined #buildstream16:36
gitlab-br-botbuildstream: merge request (74-prevent-artifacts-from-containing-files-in-buildstream-build->master: Add warnings when staging to /buildstream/build) #93 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/9316:36
*** bochecha has quit IRC16:40
*** bochecha has joined #buildstream16:40
gitlab-br-botbuildstream: merge request (102-run-ci-as-non-root-user->master: WIP: Resolve "Run CI as non-root user") #104 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/10416:43
gitlab-br-botpush on buildstream@102-run-ci-as-non-root-user (by Tristan Maat): 1 commit (last: .gitlab-ci.yml: Drop root privileges for some tests) https://gitlab.com/BuildStream/buildstream/commit/2a263d095cd4755feb1228220c1f83d723b186cd16:43
gitlab-br-botbuildstream: merge request (102-run-ci-as-non-root-user->master: Resolve "Run CI as non-root user") #104 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/10416:44
*** bochecha has quit IRC16:50
*** jonathanmaw has quit IRC17:08
*** tlater has quit IRC17:11
*** cs_shadow has quit IRC19:58
*** givascu has quit IRC20:49
*** tristan has quit IRC21:11
*** semanticdesign_ has joined #buildstream21:44
*** semanticdesign has quit IRC21:46
*** semanticdesign_ has quit IRC22:22

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