IRC logs for #buildstream for Wednesday, 2017-10-04

*** paulsherwood has quit IRC04:14
*** paulsherwood has joined #buildstream04:21
*** tristan has quit IRC04:50
*** tristan has joined #buildstream05:13
*** jude has joined #buildstream07:29
*** anahuelamo has joined #buildstream08:29
*** jonathanmaw has joined #buildstream08:41
*** ssam2 has joined #buildstream09:05
*** tlater has joined #buildstream09:23
*** tristan has quit IRC09:31
*** tristan has joined #buildstream09:37
tristanjuergbi, So a couple things I wanted to raise about recursive pipelines10:45
tristanOne of them is project options; right now I have it setup so that you can specify project options on a per-project-name basis in your user's buildstream.conf10:45
tristan(and also using `--option option1 value1 --option option2 value2...`)10:46
tristanjuergbi, when an element or project can invoke an external project; the buildstream.conf becomes a bit ambiguous; do options in your local buildstream.conf override options which your project declares for building the sub-pipeline ?10:47
tristanit's a sticky area10:47
tristanThe other thing which has been flipping through my mind is; there has always been two possible strategies for recursive pipelines; both of them are useful and probably relevant10:48
tristanOne thing which would be interesting; is to have the project.conf define "ports" for a given project we depend on, and have one or more elements in that project refer to the project defined "port"10:49
tristanThat allows the kind of blending of two projects while asserting that the version and options for every dependency are the same10:50
tristanThe other approach is of course, that you are allowed to import the same project more than once with different versions and different options (imagine trying to build an OS with pre-installed flatpak runtime for instance)10:51
tristanI think the use cases for the second approach are less pressing, though10:51
tristan(and can be simulated with intermediate deployments in the meantime anyway)10:52
tristanAnd finally... I think the word "junction" is an interesting one :D10:52
juergbiyes, i was/am thinking about these two variants as well10:54
juergbiregarding options, it may make sense to explicitly forward them10:55
juergbii.e., a bit like a nested script10:55
tristanI feel like its dangerous to let userconfig effect nested projects yeah10:55
juergbiespecially for the second/import approach10:55
tristanI mean, it's of course possible to design your project, so that options control what options your project asks for on another project10:56
juergbifor the first one, not sure what makesa more sense10:56
tristanfor the second one, it becomes even more ambiguous indeed10:56
juergbiit looks like i might not have time to sort this out until beginning of next week10:57
tristanwhat happens next week ?10:57
ssam2fwiw, the way Meson deals with options for subprojects is that each option in the subproject gains a prefix11:01
ssam2e.g. if I embed tracker as a subproject, all its options are available as 'tracker:enable-docs', 'tracker:libdir' etc.11:01
ssam2that way they are separated from the parent project, but still controllable if need be11:02
tristanssam2, that makes sense indeed, and I suppose you can just split it and keep growing11:02
tristanssam2, I think that it's something that we can live without and rest in the knowledge we could do that later :)11:02
bochechatristan: if it helps, for recursive pipelines, my use-case is pretty much something like Flatpak's separation into sdk/apps: I'd like that when building the apps bst get the sdk from the shared cache artifacts where the sdk build was pushed (to avoid an export/import dance)11:03
bochechathat's pretty much all I care about :)11:03
tristanbochecha, yes that's the idea :)11:03
bochechaoh, and being able to say "the app depends on this specific revision of the sdk", requiring an explicit `bst track` to move to a newer build of the sdk11:03
tristanWe'll want to model the flatpak base runtime, freedesktop runtime and gnome runtime in that way too11:03
tristanYeah, that is a good point; if we have "ports" defined in the project itself, `bst track` can be tricky11:04
bochechawhat do you call "ports" ?11:05
tristanbochecha, I was just referring to the idea above, it's not a "thing" yet :)11:05
bochechaah, so a "port" would be an external module defined in project.conf, but there wouldn't be an element for it? just elements depending on it?11:06
tristanI was thinking a special element that cooperates with a project-wide "port" for the sake of ensuring the same version & options11:07
tristanof any element that depends on those11:07
tristanAs soon as two elements are, lets say "junctions" to another project, but refer to a different version or options; the pipeline doesnt really make sense anymore11:07
tristanUnless we're dealing really with just exports of built data11:08
tristanOne way to work this might be to have a "junction" element which is project exclusive (i.e. an invariant that there can only be one for a given project name in a given resolved pipeline)11:09
tristanAnother option would be to support `bst track` rewriting project.conf, and declaring Sources and options in a "port" in project.conf11:10
tristanwhich is actually probably not that difficult11:10
tristan(except that dispatched 'track' jobs are tightly coupled to elements)11:11
bochechayeah, `bst track element.bst` will normally only rewrite element.bst11:12
bochecha(unless with --deps=all of course)11:12
bochechaif I defined a "port: foobar" in project.conf, would I `bst track foobar`? would `bst track --deps=all myapp.bst` also rewrite project.conf? it might be a little surprising? (or maybe I'm just overthinking this :P)11:13
tristanyeah but I rather mean; all tasks in buildstream are coupled with elements (when we do --deps=all, we dispatch more jobs)11:13
tristanthat's just internals anyway11:14
tristansurely there is a way, with a little shifting of things around11:14
tristanOh also that is a good point11:14
tristanthere is no UX for even asking for it haha11:14
gitlab-br-botbuildstream: issue #103 ("Provide documentation to create a project from scratch") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/10311:17
gitlab-br-botpush on buildstream@options-refactor (by Tristan Van Berkom): 10 commits (last: _options: Initial iteration of OptionPool and friends) https://gitlab.com/BuildStream/buildstream/commit/29079357fda0670f3a38a40c2e4bb5ecade3a35712:06
gitlab-br-botbuildstream: issue #104 ("Rework loader and source tests") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/10412:16
* tristan starting to find I think a decent pattern for using labels in gitlab bug tracking12:19
tristanI've just changed the colors a bit and added a couple more labels - the dark solid colors are prioritized as in Blocker, Bug, Enhancement etc... and the lighter colored labels are not prioritized (and always show up after prioritized ones), and describe the nature of the issue (tests, documentation, frontend, etc)12:20
tristanOh strange, seems prioritized and non prioritized dont show up in specific order (but not too bad)12:23
* tristan wonders if it would make sense to add resolution labels12:25
tristanFixed, Wontfix, Invalid, Duplicate, etc12:25
paulsherwood+112:25
tristanits something I find useful in bugzilla yeah12:26
gitlab-br-botpush on buildstream@non-sandbox-builds (by Tristan Maat): 1 commit (last: Add tests for %{script} format) https://gitlab.com/BuildStream/buildstream/commit/36c575eef364d664dcecd435be2262ae2212afec13:03
gitlab-br-botbuildstream: merge request (non-sandbox-builds->master: Add %{script} format to `buildstream show`) #102 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/10213:06
gitlab-br-botpush on buildstream@non-sandbox-builds (by Tristan Maat): 1 commit (last: Add tests for %{script} format) https://gitlab.com/BuildStream/buildstream/commit/aa29a47d6c863f275c50acc653d190943301d00b13:22
gitlab-br-botbuildstream: merge request (non-sandbox-builds->master: Add %{script} format to `buildstream show`) #102 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/10213:24
gitlab-br-botpush on buildstream@non-sandbox-builds (by Tristan Maat): 1 commit (last: Add tests for %{script} format) https://gitlab.com/BuildStream/buildstream/commit/e070dfe9ac0e9a8ead0b31694c7ad726144dc1b013:35
gitlab-br-botbuildstream: merge request (non-sandbox-builds->master: Add %{script} format to `buildstream show`) #102 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/10213:37
*** tristan has quit IRC14:22
*** tristan has joined #buildstream14:44
*** semanticdesign has joined #buildstream14:53
*** adds68 has quit IRC14:57
*** jude has quit IRC15:00
*** jonathanmaw has quit IRC16:44
*** tlater has quit IRC17:00
*** ssam2 has quit IRC17:12
*** anahuelamo has quit IRC18:25
*** semanticdesign has quit IRC21:49

Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!