IRC logs for #buildstream for Thursday, 2017-07-13

*** tristan has quit IRC03:42
*** tristan has joined #buildstream03:58
tristanjjardon[m], it's on by default when connected to a terminal03:59
tristanjjardon[m], gitlab is an exception; it's not a real terminal but it has some hack to interpret ANSI color codes (but not other ANSI control codes, just colors)03:59
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 3 commits (last: _pipeline.py: Handle exceptions when checking out elements) https://gitlab.com/BuildStream/buildstream/commit/b9cfc6399d71db9764f1e167709dfe423b972b6604:33
gitlab-br-botbuildstream: merge request (jonathan/36-fix-ugly-stack-trace->master: Fix ugly stack trace) #53 changed state ("closed"): https://gitlab.com/BuildStream/buildstream/merge_requests/5304:38
gitlab-br-botbuildstream: issue #36 ("`bst checkout` prints a stack trace when it lacks permission to make symlinks") changed state ("closed") https://gitlab.com/BuildStream/buildstream/issues/3604:39
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 1 commit (last: _frontend/widget.py: Fixed stack trace found by Tristan Maat) https://gitlab.com/BuildStream/buildstream/commit/e54c28df429db38dd721c17fccc1229e729a526d04:44
gitlab-br-botbuildstream: merge request (inconsistent_trace->master: widget.py: Fix stacktrace on early pipeline failure) #54 changed state ("closed"): https://gitlab.com/BuildStream/buildstream/merge_requests/5404:48
gitlab-br-botpush on buildstream@dual-cache-keys (by Jürg Billeter): 20 commits (last: widget.py: Use _get_full_display_key()) https://gitlab.com/BuildStream/buildstream/commit/948f19f2e0cd483022f6b39fa17e96b185fc792605:32
gitlab-br-botbuildstream: merge request (dual-cache-keys->master: Dual cache keys) #55 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/5505:44
juergbitristan: ^^ it could probably use some more testing but feedback would be appreciated05:46
tristanalright06:00
* tristan has some weird phoning to do, might have to reschedule flights :-/06:00
tristanjuergbi, looking at element.py... looks... a bit crazy :)06:47
tristanjuergbi, So I wonder if we can reduce the codepaths for querying cache keys06:50
tristanIs there a reason that we want a separate path for strong_cache_key_for_build(), rather than an added KeyStrength type ?06:50
tristanI guess the tricky thing is that, cache key for build is resolved later on06:51
* tristan is just looking at this and trying to think how we can make it a bit more... readable and simple to understand, if at all possible06:51
tristanAlso I've been thinking a bit about the user experience, I think it makes sense in the codebase to be talking about weak and strong cache keys07:03
tristanBut I think we can use simpler jargon for the user07:03
tristanMaybe `bst --strict/--no-strict` would be nice07:03
tristanand in the config file, either strict-build-plan: True or False ?07:04
* tristan will add comments to the MR about these UX things, they are a bit more clear... I think I like 'strict' as a word for this07:05
juergbitristan: strictly speaking, cache_key_for_build is not a different key strength07:44
juergbifeel free to suggest different names, function structure. i wasn't sure what made most sense07:44
juergbii tried to be as descriptive as possible07:45
tristanjuergbi, yeah I understand... kinda sorta :)08:13
tristanjuergbi, the angle I'm thinking with that is basically...08:14
tristan  o Who are the callers of _get_cache_key() ?08:14
tristan  o If a caller of _get_cache_key() wanted a strong cache key, is it the majority of cases that they actually want a _cache_key_for_build() ?08:15
tristan  o If that is the case, maybe we should be having the cache key for build being the default cache key, except for the few exceptions where we want an idealistic cache key ?08:16
tristaninstead of the reverse ?08:16
tristanjuergbi, you are closer to this code than I am presently, but does that line of thinking make sense ?08:16
juergbias it is, get_cache_key_for_build is actually used very rarely08:17
juergbifrom_artifact is used slightly more frequently because that also covers the case of reusing a weakly cached artifact08:17
juergbi('weakly cached' might be a bit confusing but i take it you know what i mean)08:17
tristanI hope we're not saying "weakly cached" in the code, but yeah I know what you mean :)08:19
juergbiin the end all of these are mainly used in the artifact cache code or in element.py itself08:19
juergbinot much outside08:19
juergbiactually, except for one call to _get_cache_key_from_artifact(), none of _get_cache_key* are used outside these two files, afaict08:20
juergbiso it's mainly a question about what the best function names are, not really about how frequently they are called08:21
juergbithere is one place where key strength is really used as variable and then passed to get_cache_key(). for that it's convenient to have idealistic strong and weak keys via single function. but it's just one call site, afaict, so it could be changed, if desired08:24
*** jonathanmaw has joined #buildstream08:30
*** jude has joined #buildstream08:37
tristanjuergbi, so I gave some comments about the user facing interfaces, those I think are good important changes to make (and completely orthogonal to the inner workings of cache keys I think)08:38
tristanmaybe we can reconsider wording, but I think --strict/--no-strict CLI option overriding whatever is in the configuration, defaulting to `strict: True` in userconfig.yaml is the right approach08:39
tristanit will also help us poor devs in conversation; because we can speak of strict mode and weak/strong cache keys as separate things08:40
juergbiyes, sounds fine to me08:40
* tristan has found it confusing to use the same language for cache keys and for build planning modes08:40
juergbii definitely want to be able to set it on the command-line but like that we can have both08:40
tristanyeah we mostly have that pattern08:40
tristanexcept for some things which dont make much sense to put in config08:41
tristanbut it's mostly CLI option -> overrides user's config -> overrides default config08:41
*** tlater has joined #buildstream08:41
juergbiyes, that definitely makes sense08:42
jonathanmawtristan: I don't know if you saw https://gitlab.com/BuildStream/buildstream/merge_requests/37#note_3484173708:49
jonathanmawbut it looks like elements named with hyphens cause problems for documentation generation08:49
jonathanmawi.e. documentation doesn't build correctly and the linked warnings are raised during doc generation.08:50
jonathanmawchanging the filename of the plugin to use underscores instead of hyphens fixes that08:50
tristanjonathanmaw, python module names should not have dashes in them, actually08:50
jonathanmawah, I didn't know that08:50
tristanyou cannot `import foo-bar`08:51
jonathanmawthat clears that up, underscores only. I'll change my generation script as well.08:51
* tristan has been referring to it as 'dpkg-deploy` and `dpkg-build`, and never thought of that detail either08:52
tristanbut I ran into that very early on as well; I like dashes :)08:52
*** ssam2 has joined #buildstream09:14
tristantlater, so I've added some comments on your branch... most important of those are a.) since we're running a scheduler anyway; fetch if the source is not there, only add track queue on user request.... b.) click.prompt() user in the cases where their actions can delete data09:22
tristantlater, and there is one, I think/hope final consideration for that branch; which is how this plays into the artifact cache sharing09:22
tlaterAlright09:23
tlaterI'm working through the comments right now09:23
tlaterShould be done quite quickly I think, these aren't too big :)09:23
tristantlater, for that part, we probably want to avoid uploading A.) Any artifact that is tainted by a local workspace, and B.) Any artifact that depends on an artifact that is tainted by a local workspace09:24
tristanIt might seem like weak keys uploaded for reverse dependencies of workspaced elements can be reusable by peers; but I *think* that it's all around wiser to avoid that altogether09:25
tristanjuergbi, thoughts on the above ^^^^ ?09:25
juergbitristan: as workspaced dependencies might differ quite a bit, i tend to agree09:26
tristanSo quick touch base... juergbi you have been master of all things regarding encoding metadata into artifacts09:36
tristanjuergbi, I think that what makes sense and is forward viable in case of churn (I could envision a `bst push` command for instance, in the case one wants to upload results of a pipeline they built while offline)... I guess that workspaced state belongs in artifact metadata09:37
tristanAnd the decision of whether to upload an artifact or not should be artifact based, and not based on any kind of transient state (like whether it was built in this session or not)09:38
juergbiyes, i agree. when we can use the summary file, we should (be able to) remove 'built' state09:38
juergbi(as planned from the start)09:38
tristanyes I understand, but with or without that; should we still be tainting the artifacts themselves in the local cache ?09:39
tristanI guess that is the right way to make that decision of upload-or-not, right ?09:39
juergbido you mean tainting the cache key or just noting it in embedded metadata?09:40
tristanthe latter09:40
juergbii guess we have to09:40
juergbithere could be some odd consequences, though09:40
tristanlike ?09:41
juergbithe strong cache key with and without workspaces could theoretically be become the same at some point09:41
tristanAh09:41
tristanRight09:41
tristanNo09:41
tristanjuergbi, they cannot09:41
juergbialthough, i don't think it will be an issue in practice09:41
juergbicalculated in a different way?09:41
juergbicommit vs contents?09:42
tristanjuergbi, because cache key for workspaces is calculated based on contents exactly09:42
juergbiok, i see09:42
tristanso, possible, astronomically unlikely, though09:42
tlaterNot entirely sure how artifacts work, but couldn't they for local sources?09:42
tristanjuergbi, ok so the point of touching base here, is please keep an eye on tlater and walk him through that part :)09:43
tristantlater, I thought of that yes; but there is an easy solution for that; add something custom to the key09:43
juergbiwe should anyway do that for all keys that have different structure09:44
tristantlater, like; do a recursive checksum on content, and then just make get_unique_key() be { "workspace-contents": checksum }09:44
juergbito avoid accidental match09:44
tristantrue09:44
tristanwe could ensure that say, plugin name is always accounted09:44
tristanthat would put a stop to it09:44
tristanthere is not really much room for error currently, though, I think09:45
gitlab-br-botbuildstream: merge request (jonathan/dpkg-build->master: WIP: Jonathan/dpkg build) #37 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/3710:16
gitlab-br-botpush on buildstream@workspaces (by Tristan Maat): 12 commits (last: main.py: Add workspace commands) https://gitlab.com/BuildStream/buildstream/commit/7a4992f96c16accc55c7a0ae50e454de6bc3e7db10:52
gitlab-br-botbuildstream: merge request (workspaces->master: Workspaces) #50 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/5010:52
tristanooooo10:57
tristanno space left on device10:57
tristanon gnome710:57
tristanssam2, I suppose ~builder/gits/gnome-modulesets -> ../gnome-modulesets is an integral part of cgit config ?11:01
gitlab-br-botpush on buildstream@workspaces (by Tristan Maat): 8 commits (last: _pipeline.py: Add workspace commands) https://gitlab.com/BuildStream/buildstream/commit/c3a1e843295c2e398b794bca1c6e5788c51cbd9d11:12
gitlab-br-botbuildstream: merge request (workspaces->master: Workspaces) #50 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/5011:12
ssam2tristan, ah, no it's not any more11:16
ssam2~builder/gits can be deleted11:16
tristanssam2, ah thanks, was just cleaning house there11:17
tristanlooks like back in the days, I installed some flatpak runtime for testing, that cleared up some space11:17
tristanstill11:17
tristanthere is 78GB used11:17
tristanand the artifacts is only like 4GB right now11:18
tristanand the export is not huge either11:18
tristanthe buildstream cache is 20GB, artifact cache 4.1GB and debootstrap export and logs and all, collectively 8GB11:19
tristanthats only 32GB11:19
tristanI cant believe that the system installation is 46GB :-/11:20
tristancant be11:20
tristanssam2, if you're taking care of that gnu-toolchain thing, I just learned something interesting11:32
tristanssam2, flatpak sdks are actually a superset of the platform, and my original staging stuff is bogus and wrong11:32
tristanwe dont need to stage both the platform + sdk runtimes, just the sdk runtime11:33
tristan*but*, there is something weird about the rootfs11:33
ssam2ok11:33
tristanit seems that it needs to be staged into /usr with a manual /usr merge done in /11:33
ssam2you mean, /bin and /lib and /lib64 symlinks created by us ?11:34
tristanI have to look more closely what flatpak is doing to assemble the environment, but seems there are hard coded assumptions about slash there11:34
tristansomething like that yeah11:34
ssam2that's how OSTree-as-host expects to work11:34
ssam2Fedora atomic is the same -- / isn't committed to an OSTree repo11:34
tristanssam2, for gnu-toolchain, this only means for the part which provides the tools we bootstrap from11:34
gitlab-br-botpush on buildstream@workspaces (by Tristan Maat): 4 commits (last: Add `workspace reset` command) https://gitlab.com/BuildStream/buildstream/commit/e0cffe036ff2fcbc0ae05d311bfdb91e536672b411:35
gitlab-br-botbuildstream: merge request (workspaces->master: Workspaces) #50 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/5011:35
ssam2i can look at this, sure11:35
tristanWhat I think is very weird about this... is that things are built with --prefix=/usr11:35
tristanbut then only the content of user is collected into artifacts11:35
tlatertristan: Would you like to have another look at my MR or should I start working on the artifact stuff first?11:36
tristantlater, keep trucking11:37
gitlab-br-botbuildstream: merge request (jonathan/dpkg-build->master: Jonathan/dpkg build) #37 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/3712:32
ssam2juergbi, how do I get buildstream to push to an artifact cache ?12:54
ssam2i've added push-url and push-port to my config file12:54
juergbithat should suffice12:55
ssam2https://pastebin.com/QZv5WkSt12:55
ssam2when I run `bst build`, the builds succeed but nothing is pushed, and no errors12:55
ssam2bah, maybe i didn't  pull12:56
ssam2ah, things look different now indeed12:56
ssam2for one thing, the build is starting from scratch12:56
ssam2but I also see pulled and pushed counters12:56
* ssam2 goes for lunch while rebuilding12:57
juergbienjoy12:57
ssam2oh, new issue: https://pastebin.com/qRqyuzif12:59
ssam2looks like confusion between remote_path and remotepath, I'll do a fix13:00
jonathanmawhrm, I'm trying to replicate https://gitlab.com/BuildStream/buildstream/issues/41 and when I exit the shell, it handles it worse than SIGSTP https://pastebin.com/BKsGRX5r13:19
*** xjuan has joined #buildstream13:32
tlaterjuergbi: I've been looking for a while now, where is metadata for artifacts stored?13:33
juergbitlater: in Element._assemble()13:33
tristanssam2, you need to specify the port too13:34
tristanssam2, 'push-port' in 'artifacts' in the config13:34
tristanssam2, it's 1000713:34
tristanremote path :-/13:35
tlaterjuergbi: Ah, thanks13:35
jonathanmawhmm, it refuses to terminate after keyboard interrupts on exit from shell, but can still be killed13:36
tristanjonathanmaw, behaves differently for you ?13:41
tristanstrange, did you hit enter perhaps on shell exit ?13:41
tristanmaybe you are using a different runtime, too ?13:41
jonathanmawtristan: mashing enter doesn't do anything interesting, either.13:42
jonathanmawnot sure what you mean by a different runtime, but I'm using python3.4, whereas iirc you're using 3.513:42
tristanjonathanmaw, I dont recommend <enter>, what happens for me is... I get backgrounded13:43
tristanand then I hit fg13:43
tristanand see no feedback13:43
tristanif at that point I enter dskfj;dsof;sdof<ENTER>13:43
tristanI will be asked again what I want to do13:43
tristanIf I just hit <ENTER>, it does the default action and continues to build non-failing elements13:43
tristanjonathanmaw, what I mean about runtime is... that I suspect the result will be different depending on what you have staged in the sandbox13:44
tristanI have mostly been testing this with the GNOME builds against the debootstrap-ostree base13:44
tristanin there, default is dash too13:45
tristannot bash13:45
tristanssam2, sorry I didnt look your paste properly13:46
tristanssam2, so did you install buildstream on the host you are pushing to ?13:47
tristanssam2, and did you follow the instructions at  https://buildstream.gitlab.io/buildstream/artifacts.html#artifacts ?13:47
ssam2i did13:48
tristanssam2, if you have configured it with the ForceCommand as recommended, then any 'ssh -p <port> -l artifacts <url> command' invocation will be turned into the ForceCommand, and I would expect to see some output in the terminal from that13:48
ssam2i've got a new error13:49
ssam2    pushreceive: INFO: Executing ssh -l ostree -p None ostree.baserock.org bst-artifact-receive --verbose ssh://ostree@ostree.baserock.org/cache/13:49
ssam2    pushreceive: INFO: Receiving repository information13:49
ssam2    Bad port 'None'13:49
tristanbut it's a good place to start debugging, fondle the port13:49
tristanoh13:49
tristanthat's a bug13:49
tristanand I know why13:49
tristanssam2, push-port: ostree@ostree.baserock.org:cache13:50
tristanssam2, when you specify ssh://, the original ostree-push code uses urllib to try to do something... I dont know, a bit crazy13:50
ssam2oh, push-url you mean13:50
ssam2OK, will try that13:50
tristanit thinks there is some kind of way to specify the port in the ssh:// url13:50
tristanand tries to resolve it from the url13:51
tristaneven though, as far as I know, there is no such thing as specifying the port in an ssh:// url13:51
tristan(admittedly, it's not the kind of thing I would know, but I didnt find out how with some googling)13:51
tristanit does 'if netloc', so... there is apparently, some kind of obscure way called 'netloc' that elite people that I never heard of... use to specify URIs13:53
ssam2I think you can do ssh://ostree@ostree.baserock.org:22200/cache13:53
ssam2netloc is part of the uri, I've only ever seen the term in python's url parsing code though13:54
tristanI tried that13:55
tristanand failed13:55
tristanI was adding the 'push-port' attribute and thought, maybe we dont need it ? but I was unable to make that work13:56
ssam2ok, this time: host key verification failed13:57
tristanssam2, if you can make that work, feel free to patch buildstream to remove the push-port attribute and document how to specify it in the URI13:57
ssam2not much buildstream can do about that, but might be nice to remind in the docs that you should ensure host keys are valid13:57
tristanwell, that's pretty indicative13:57
tristanWe documented that you need to authorize the users with their public keys, is that not enough ?13:58
tristanWhat is a "host key" ?13:58
ssam2probably13:58
ssam2host key is the identity of the machine itself13:58
tristanthat you push from ?13:58
ssam2the first time you connect interactively to a machine by ssh, you see something like this:13:58
ssam2The authenticity of host 'ostree.baserock.org (185.43.218.170)' can't be established.13:58
ssam2ECDSA key fingerprint is SHA256:xTCKfsH5tNZSUN6tSw6IuIHlgBAWxYpktOk2lrbW3Nc.13:58
ssam2ECDSA key fingerprint is MD5:df:14:78:e0:a8:c3:83:ef:06:a2:bb:5f:a5:c8:ba:14.13:58
ssam2Are you sure you want to continue connecting (yes/no)? yes13:58
tristanRight13:58
ssam2in this case it's the machine i'm pushing *to*13:59
tristanAh, ssam2 so then you need to remove it from your known hosts13:59
ssam2well, I need to add it there13:59
tristan?13:59
ssam2I guess since BuildStream's SSH session is non-interactive, if the host key isn't in known_hosts then it tries to ask "Are you sure you want to continue connecting", can't because there's no interactive stdin, and raises an error instead13:59
tristanI thought the failure was the case where, the host you are contacting has changed14:00
ssam2that can happen too14:00
tristanI.e. you are resolving url to new machine14:00
ssam2but if you never contacted the host, the default SSH config is to ask, or fail if it's not possible to ask14:00
ssam2it's a minor thing really, but i'm sure i'm not the last person who will hit it14:00
tristanI thought maybe, in the course of your setting up this cache, that may have happened14:00
tristanssam2, if it does not work out of the box without interaction (in a subprocess not connected to terminal), then it's a bug in BuildStream14:01
ssam2ok14:01
tristanEither we need to use some extra option to ssh to --shut-the-hell-up-and-dont-ask14:01
tristanOr if thats not possible, we need to check that at startup, before running the scheduler14:01
ssam2that's possible, but it's a possible of a security risk because you aren't protected against man-in-the-middle attacks14:01
ssam2although since you're just sending an artifact that might not be an issue14:02
ssam2if the artifact is something secret that an attacker might want to steal, then it would be a problem14:02
ssam2I say check at startup14:02
tristanI see14:02
tristanyeah okay14:02
tristanDont know how it's done14:02
ssam2i'll see if I can fix it14:02
tristanssam2, probably we want to document that you need ssh-agent to hold on to your unlocked key too14:02
tristanIt seems that everybody just "has that" nowadays14:03
ssam2ah yeah, if your key has a passphrase you'll want that14:03
tristanbut I can recall in a not so distant past, that I needed to ensure that14:03
tristanmy desktop does it automatically, gnome-keyring or smth14:03
tristananyway, logging in unlocks it14:03
tristanpretty typical, but it's wrong to assume that people have that feature I guess14:04
tlaterMost of my desktops don't, I'd get really confused x)14:04
ssam2artifacts pushed \o/14:06
ssam2https://ostree.baserock.org/cache/refs/heads/baserock/14:06
tristanssam2, :)14:29
ssam2and successfully pulling them on a different machine14:29
ssam2nice!14:29
tristanhehe14:29
tristanyeah, holy shit it works !14:29
ssam2next stop: autobuilders!14:30
ssam2well, and fixing the issues I hit14:30
tristanyeah14:30
tristanSo I guess one annoying thing is we can have autobuilders with gitlab14:30
tristanafaics14:30
ssam2we can't have them? I think we can ...14:30
tristannot that it's a huge deal, I dont think gitlab is the right place for that anyway14:30
tristanBut, well... if we can, then I dont see how we can do it without exposing an acceptable private key for uploading artifacts14:31
ssam2i think we can set variables privately in gitlab config14:31
ssam2https://docs.gitlab.com/ce/ci/variables/README.html#secret-variables14:31
tristanSo we would have the whole private key as that, and then cat it invisibly into /root/.ssh/id_rsa ?14:32
ssam2yeah14:32
ssam2although seems that's not totally secure ... if someone pushed a branch with a .gitlab-ci.yml file that did `cat /root/.ssh/id_rsa` then they would see it14:32
tristantrue14:33
ssam2only trusted people can push branches I suppose14:33
tristanWell14:33
tristanthere are different levels of trust, but it seems the features on that page have limitations14:33
ssam2oh, or we could make them available only for "protected branches"14:33
tristanso you can share the secret only with trusted branches14:33
tristanright14:33
ssam2yeah14:33
tristanprotected14:33
ssam2i.e. just 'master', which nobody can push to14:33
tristanright, well in buildstream I have it so that you and a few others can14:34
ssam2you can trust us :-)14:34
tristanbecause I think it's totally stupid to go through the whole pipeline thing and waste time for trivial patches14:34
tristanwhich I can okay on irc at least14:34
tristanbut yeah I can :)14:34
tristanalso I suppose the policy would be different for a repository dedicated to building operating systems14:35
juergbitristan: strict as top-level bool option in userconfig or where should i put it?14:37
tristanhmmm14:39
tristanjuergbi, I guess toplevel, right there at the top ?14:39
tristanI guess this deserves high visibility, and I dont know where we could group it14:40
juergbisame here, let's do that, then14:40
tristanProbably it would make sense to put the work directories in a group and rename them14:40
tristandirectories: source, build, artifacts, logs14:40
tristanI'm sure nobody is using that (yet)14:41
tristanSo I have a fork of gnome-modulesets which has a stack to build everything in org.gnome.Sdk.json, except for vala-bootstrap, dbus-glib, libdatrie, libthai, gtk+-2, opus, libcanberra, enchant and python-gstreamer14:43
tristanBasically those are the only parts of the GNOME SDK that dont have declarations in the jhbuild modulesets14:44
tristanThe pipeline resolves, but those need to be added14:44
tristanAlso the pipeline resolves with variant conditionals, so that some things which we do build in GNOME, we dont in the flatpak runtime14:45
tristanSo one half of the deps is figured out, now I have to fill in the blanks of the other side of those variant conditionals, to depend on and build the other elements14:45
tristanThen, I have to figure out how I'm going to get jhbuild2bst to continuously churn out a converted modulesets with the added elements and variant conditionals; I suppose that will be a hard coded overlay of the conversion14:46
tristanFinal touches build-wise, will be to take some org.gnome.Sdk flavored configure options which dont match the jhbuild options, and variant conditionalize those14:46
tristanAnd after that; deploy a flatpak runtime, and test it in flatpak proper14:47
tristanGoal is; I should be able to take flatpak-builder, and tell it to build a gedit flatpak, against my buildstream-built SDK instead of the ones published on sdk.gnome.org14:47
tristanand of course run the result in flatpak14:48
tristanand that should be a good enough demo to win.14:48
tristanssam2, so do you like the updated UI and summary ?14:51
tristan:)14:51
tristanseen the utf8 arrows ?14:51
*** xjuan has quit IRC14:51
tlaterSo I assume the neatest way to prevent pushing artifacts made with a workspaced source is just to include a "tainted" file in its metadir, and looking for that when loading the element data?14:53
ssam2oh yeah, nice arrows... it's quite a lot of info now14:54
tristantlater, juergbi so I was hoping you guys would hash that out together, but I would prefer everything be recorded in yaml honestly, not flag files14:54
tlaterjuergbi: Opinion on adding this to public.yaml?14:54
tristanSo right now there is the public yaml, and soon there is going to be the keys14:54
tristannot public.yaml, thats public data14:55
tristani.e. straight up encoded public:14:55
tristanElement.set_public_data()14:55
juergbiyes, either we add it to keys.yaml14:55
juergbior create a new one14:55
tristanjuergbi, maybe there should be a general artifact.yaml, and add the general stuff in there, including cache keys ?14:56
tlaterWhat would this new one contain? I feel like it's too little info to really create a new file for14:56
tristanexactly14:56
juergbiwould be fine with me14:56
tlaterAn artifact.yaml with a node `tainted: yes|no`, so that there can be other reasons to exclude an element?14:57
juergbinot sure whether it's better to use a boolean here or tainted: workspace14:58
tristantlater, So stick with True/False I think for booleans, just consistent with config files14:58
tristanOr, 'workspaced: True' ?14:58
tristanand resolve the tainted state based on that ?14:58
tlaterThat's moreso my question14:58
tlaterI suppose `workspaced: True` gives more flexibility14:59
juergbiin a way it would be useful for the push blacklisting code not to have to know that detail14:59
juergbiit depends from what angle you're looking at it14:59
tristanRight14:59
tristanI think I prefer 'workspaced: True'14:59
tristanFrom the angle of forward compatibility of the yaml files15:00
tristanSo we could have an Element internal API that decides tainted state based on that15:00
tristanAnd buildstream can also be able to tell the user why (even if we dont right away)15:00
tristanif we dont lose the information15:00
tlaterYeah, I like that.15:00
tristanoh cute15:03
tristanI had suspended push task15:03
tristanand resumes beautifully haha15:04
*** tristan has quit IRC15:09
*** tristan has joined #buildstream15:26
*** ChanServ sets mode: +o tristan15:26
gitlab-br-botpush on buildstream@master (by Sam Thursfield): 1 commit (last: _artifactcache/pushreceive.py: Fix obvious typo) https://gitlab.com/BuildStream/buildstream/commit/eb67b93f14fe0b8b7882650f4e3ab5868c98401315:36
*** xjuan has joined #buildstream16:28
gitlab-br-botpush on buildstream@workspaces (by Tristan Maat): 16 commits (last: _pipeline.py: Handle exceptions when checking out elements) https://gitlab.com/BuildStream/buildstream/commit/b9cfc6399d71db9764f1e167709dfe423b972b6616:36
gitlab-br-botbuildstream: merge request (workspaces->master: WIP: Workspaces) #50 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/5016:36
gitlab-br-botpush on buildstream@workspaces (by Tristan Maat): 1 commit (last: WIP: Add workspace artifact cache metadata) https://gitlab.com/BuildStream/buildstream/commit/f57a9da9a79aa2dcb769f3599ec25d1c567216fd17:04
gitlab-br-botbuildstream: merge request (workspaces->master: WIP: Workspaces) #50 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/5017:05
gitlab-br-botpush on buildstream@workspaces (by Tristan Maat): 1 commit (last: WIP: Add workspace artifact cache metadata) https://gitlab.com/BuildStream/buildstream/commit/31610a50b6c95050b611d6ba49121f62bbe9a93d17:05
gitlab-br-botbuildstream: merge request (workspaces->master: WIP: Workspaces) #50 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/5017:05
*** tlater has quit IRC17:06
*** jonathanmaw has quit IRC17:40
*** ssam2 has quit IRC18:03
*** tristan has quit IRC23:36

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