IRC logs for #buildstream for Monday, 2017-11-27

*** tristan has quit IRC04:24
gitlab-br-botpush on buildstream@juerg/recursive-pipelines (by Jürg Billeter): 17 commits (last: Only initialize remote artifact cache connections if needed) https://gitlab.com/BuildStream/buildstream/commit/f17ef1e47cfce604bcd93373eae9646a96e9122d08:52
gitlab-br-botbuildstream: merge request (juerg/recursive-pipelines->master: WIP: Junctions and subprojects) #160 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/16008:53
*** WSalmon has joined #buildstream09:18
*** bethw has joined #buildstream09:24
*** valentind has joined #buildstream09:33
*** jonathanmaw has joined #buildstream09:48
*** tpollard has joined #buildstream10:05
*** ssam2 has joined #buildstream10:16
ssam2the bst-external tests seem to have broken10:19
ssam2looks perhaps like an api break inside buildstream: https://gitlab.com/BuildStream/bst-external/-/jobs/4182388510:20
*** valentind has quit IRC10:21
gitlab-br-botbuildstream: merge request (132-loading-external-plugins-works-without-explicit-requirement-in-project-conf->master: Resolve "Loading external plugins works without explicit requirement in project.conf") #125 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/12510:21
*** jude has quit IRC10:32
*** jude has joined #buildstream10:48
gitlab-br-botpush on buildstream@132-loading-external-plugins-works-without-explicit-requirement-in-project-conf (by Jonathan Maw): 11 commits (last: setup.py: Add pytest-xdist dependency) https://gitlab.com/BuildStream/buildstream/commit/841f4e9e47ed4d7d14d8526a657600a6a67d731210:59
gitlab-br-botbuildstream: merge request (132-loading-external-plugins-works-without-explicit-requirement-in-project-conf->master: Resolve "Loading external plugins works without explicit requirement in project.conf") #125 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/12511:00
*** semanticdesign has joined #buildstream11:12
*** bochecha has joined #buildstream11:16
ssam2gitlab CI logs render so much faster with Firefox 57 :-)11:26
bochechaeverything is better with Firefox 57 :)11:29
*** bochecha has quit IRC11:32
tpollardoooh I need to try that11:58
*** cs_shadow has joined #buildstream12:12
*** bochecha has joined #buildstream12:36
tlaterGah, multiprocessing.Pool doesn't reap its processes when it's terminated T.T13:01
tlater*And* you can't actually access the processes it controls13:02
* tlater wonders who thought this would be a good idea13:02
*** bochecha has quit IRC13:21
*** nexus_ has joined #buildstream13:55
*** mcatanzaro has joined #buildstream13:56
*** nexus_ has quit IRC13:56
*** tristan has joined #buildstream14:00
*** tristan has quit IRC14:04
*** semanticdesign has quit IRC14:12
*** semanticdesign has joined #buildstream14:13
gitlab-br-botbuildstream: Jonathan Maw created branch 114-give-better-warnings-on-overlaps14:15
gitlab-br-botbuildstream: merge request (114-give-better-warnings-on-overlaps->master: WIP: Resolve "Give better warnings on overlaps") #165 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/16514:15
*** tristan has joined #buildstream14:28
*** bochecha has joined #buildstream14:44
gitlab-br-botpush on buildstream@event-hooks (by Tristan Maat): 4 commits (last: _hooks.py: Implement event hooks) https://gitlab.com/BuildStream/buildstream/commit/45027a041b63999f26d97439e35f02ba2216999d14:45
tristantlater, added some comments to your branch now15:27
tlatertristan: ta :)15:27
tristanmostly nit picks, but one thing I'm more confused and curious about15:28
tristanI *think* I understand what happened in _pipeline.py15:28
tristanbut it's getting hard to follow, so I dont really know15:28
tlaterAlright, reading right now15:28
tristanthe "I'm skeptical" comment yeah15:29
tristanIf it's becoming spaghetti because Planner.plan() doing 2 quite orthogonal activities in the same function, as I suspect, then we should change that function into two functions and make that more clear15:30
tlaterAh, yes15:30
tlaterI was thinking about that15:30
tristanin any case, as far as I can see there can only be "one plan"15:30
tristanand this makes it look like there are two, very confusing to the reader15:30
tlaterIt doesn't quite work that way here unfortunately, because the track plan is different from the build plan15:30
tlaterBecause we can track completely different things from the things we build15:31
tlaterI did think that perhaps splitting plan into two methods would work15:31
tristanThat just means that "the plan" encapsulates more elements in the case of building + tracking15:31
tristandoesnt it ?15:31
tristanRight, I think that is a very good idea to split that15:31
tlatertristan: Not entirely, because one of the plans is fed to the tracking queue and the other bit is fed to whatever comes after15:32
tlaterSo we really have two plans15:32
tristanOh ?15:32
tlaterThat just come together at some point15:32
tristanWhy would we have that ?15:32
tlaterBecause we don't always want to track everything we build15:32
tlaterAnd also not build everything we track (though this is debatable)15:32
tristanOh right and... ok I recall, but this worries me a lot15:32
* tlater also didn't like how this looked too much, franly15:33
tristanjust like fran15:33
tristantlater, ok so... the big issue which worries me about this15:33
tristantlater, is that I dont feel reassured that what we feed directly to the build queue is not discovering a cached artifact for it's dependencies, and building against *that*15:34
tristaninstead of being forced to wait for that cached dependency to become tracked first15:34
tristantlater, that has to be 200% certain15:34
* tristan has meeting...15:35
* tlater might be off a bit sooner than usual (not before 5/1.5 hours from now though)15:37
gitlab-br-botpush on buildstream@event-hooks (by Tristan Maat): 4 commits (last: _hooks.py: Implement event hooks) https://gitlab.com/BuildStream/buildstream/commit/e6a3d3672c7ce71a54aadd2d191dd01734fc9e1c16:10
gitlab-br-botpush on buildstream@event-hooks (by Tristan Maat): 2 commits (last: Add hook cleaning step after buildstream finishes) https://gitlab.com/BuildStream/buildstream/commit/9c2e38597709beb9ce890436d5a251a93de93f6016:10
*** bethw has quit IRC16:20
*** ssam2 has quit IRC16:20
*** WSalmon has quit IRC16:20
*** bethw has joined #buildstream16:20
*** WSalmon has joined #buildstream16:20
*** ssam2 has joined #buildstream16:20
tristantlater, probably me as well... anyway I think for the most part that branch is ready; it would be nice to clean that part up a bit if possible16:24
tristanI expect we have some assurance that building will not skip over something that needs tracking first16:24
* tlater will at least leave a giant comment explaining the situation16:24
tlaterAnd add a test for this...16:24
tristani.e. that depends on something being tracked first16:24
tristanbut maybe not16:24
tlaterI'm not 200% sure either right now.16:24
tristanbecause the old way assumed that we ran track unconditionally on everything16:24
tristanyeah there is a good chance it's not covered16:25
tristanbecause I think in the old way... we can simply say "dont build this unless it's passed through the tracking queue"16:25
tristanand then we just know16:25
tristanthis seems to be getting *again* into the issue that we need something more dedicated and reliable for managing pipeline element transient state16:26
tristannot just a scattered hand full of checks on private variables exposed by Element class16:26
* tlater is pretty curious how you would solve that16:28
tristantlater, after this coming up in a few places, I am starting to think we need to delegate events to Elements in the main thread16:30
tristanI think we add a private ElementState() object to centralize logic16:30
tristanlogic around reporting state, and handling of important events16:31
tristanSo, as things happen in the pipeline, we have the scheduler delegate some very generic events to the element (which internally delegates that to ElementState())16:31
tristangeneric events such as, successful completion of a given task (like pulling/pushing/building/fetching/tracking, etc, success of any of these is an event)16:32
tristanWhen we ask an element for a cache key, it consults the element state16:32
tristanwhere everything involved in reporting all of this stuff resides, closely together16:33
tlaterRight, that would make it less scattered16:33
tristangenerally I'm thinking that's the right approach, plus of course; analyze all of the possibilities, and handle it there16:33
*** tristan has quit IRC16:37
*** tristan has joined #buildstream16:38
tristanoops16:38
tristan<tristan> generally I'm thinking that's the right approach, plus of course; analyze all of the possibilities, and handle it there16:38
tristan<tristan> also, this should totally completely kill the approach we currently have for "force recalculation" of things16:38
tristan<tristan> tlater, build & track heavily relies on the principal that the cache key is unresolved initially, and force recalculated after tracking completes16:38
tristan<tristan> while this holds up pretty well in practice, its certainly delicate and not very future proof16:38
* tlater finds the new tests oddly satisfying to write16:50
gitlab-br-botpush on buildstream@tracking-changes (by Tristan Maat): 7 commits (last: Issue #113: Split tracking and saving in `bst build`) https://gitlab.com/BuildStream/buildstream/commit/fd188b94eb873e54c1615d3842686656e72b3d2e16:53
gitlab-br-botbuildstream: merge request (tracking-changes->master: Tracking changes) #119 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/11916:53
tristantlater, good !16:57
tristantlater, also satisfying to see the aggregated coverage report raise it's percentage :D16:58
tlater:)16:58
gitlab-br-botpush on buildstream@sam/multiple-caches (by Sam Thursfield): 2 commits (last: Remove the push-port config option) https://gitlab.com/BuildStream/buildstream/commit/bb6c5a5542198c97c83b41b1c55d11b09c884b2517:04
gitlab-br-botpush on buildstream@sam/multiple-caches (by Sam Thursfield): 1 commit (last: Add support for multiple remote caches) https://gitlab.com/BuildStream/buildstream/commit/efb70b3af625221a2719065efb5d7b4b170b959717:05
gitlab-br-botbuildstream: merge request (sam/multiple-caches->master: WIP: multiple remote cache support) #166 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/16617:06
ssam2juergbi, here's my multiple-cache support branch so far: https://gitlab.com/BuildStream/buildstream/merge_requests/16617:06
ssam2the fundamentals seem correct to me (review welcome of course)17:07
ssam2needs work on the test suite before it can be merged17:07
*** valentind has joined #buildstream17:07
* tristan thinks juergbi is at the airport getting ready to board a flight...17:07
gitlab-br-botpush on buildstream@sam/multiple-caches (by Sam Thursfield): 1 commit (last: Add missing keyword arg) https://gitlab.com/BuildStream/buildstream/commit/e04f703021b119d42fc1e687bab79776ca5ba2a417:08
gitlab-br-botbuildstream: merge request (sam/multiple-caches->master: WIP: multiple remote cache support) #166 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/16617:09
ssam2me too, but he has a bouncer :-)17:09
*** jonathanmaw has quit IRC17:30
tristanSo here is a goal17:38
tristanI want to have a buildstream project for packaging buildstream17:39
*** valentind has quit IRC17:39
ssam2of course !17:39
tristanI want one which uses multistrap to generate a base image against which we can automate builds17:39
tristanand output debian packages17:39
tristansimilar to the debootstrap-ostree17:39
tristanand I want the same for fedora17:39
tristanwhich means we need an rpm plugin similar to the dpkg one17:40
tristanand maybe we can use something like the docker thingy to generate the base that we use to package rpms17:40
ssam2yeah17:40
tristanso we can make a package targetting the right version of fedora or whatnot17:40
tristanAnd... I want it to be done by end of january17:40
*** bethw has quit IRC17:40
tristanPossible ?17:40
tristanssam2, I'm talking about this right now, cause I want to submit a buildstream talk for distros devroom at FOSDEM17:41
ssam2hmm, i have more questions17:41
tristanand that seems like exactly the right demo to make there17:41
ssam2is the goal a "nice" package which depends on distro pkgs to provide all our deps ?17:41
ssam2or a "fat" package where we can bundle things like recent OSTree releases, if needed17:41
ssam2the latter would be simpler17:42
tristanthe former is better, i.e. I dont need to roll it out for older distros17:42
tristanjust rather, something I can easily provide a ppa for debian based distros and a similar thingy for rpm based distros17:43
ssam2the former is better, but the latter is OK if needed?17:43
ssam2i also wonder about stuff that's in pip but not packaged in fedora/debian17:43
tristanwell; what would the latter be ?17:43
ssam2like ruamel.yaml17:43
ssam2the latter would be a package like 3rd-party app vendors often do, where it bundles dependencies17:43
ssam2only those needed of course17:43
tristanyeah that would be fine17:44
tristanthat sounds like the "correct" thing actually17:44
ssam2ok, seems feasible then17:44
tristanbecause doing your definition of the former, sounds like it requires "being part of the distro" itself17:45
ssam2that, or packaging everything in separate packages17:45
tristannot something that people who write apps and want to deliver onto a distro, normally are17:45
ssam2so we'd do a ruamel.yaml package for debian and upload it to our PPA, for example17:45
ssam2but that's more work17:45
tristanat this stage, just having a nice pipeline to show off, that we are reusing mostly the same dependency model and pipeline to build, but just a few conditionals on both ends (conditional base system and conditional package deployment elements)17:46
ssam2i made a start on a source plugin that can import from docker hub, which might help a bit17:46
ssam2as it saves us from putting distros into ostree repos that we have to host17:47
ssam2distros mostly already publish themselves to Docker hub17:47
tristan... would be a great demo to show off distro agnostic build system nature17:47
ssam2yeah, it could be cool17:47
tristanand push the narrative/agenda... that decoupling of build system and package delivery/deployment is a good idea17:47
ssam2this is what Omnibus already does17:48
ssam2although Omnibus doesn't do sandboxing, so you have to run it on the distro you are making a package for17:48
ssam2and its definitions language is just Ruby in disguise17:48
tristan(and yeah, docker source plugin + docker output are both good ideas !)17:48
tristanand both probably quite simple to do17:49
ssam2yeah, it would probably need only a few days to finish off what i started17:49
ssam2this all sounds feasible to me. and I guess the side effect is we can package BuildStream for everyone :-)17:50
tristanyep17:50
tristanalso maybe makes an eventual move from setuptools -> meson, easier17:51
tristanmaybe buildstream 1.2 wont be installed with pip, but via a ppa, or regular meson `ninja install` command or such17:51
ssam2sounds good!17:53
* tristan not sure that that part can happen so fast, but desperately hopes we can sever ties with setuptools17:53
* tristan is also wondering about releasing tarballs of buildstream17:54
tristanwe dont have a distcheck in our CI, I should probably try to add that this week17:54
tristanOr, maybe I should make the default CI do that17:54
ssam2is that a thing for python projects? surely `git archive` is enough ?17:54
tristaninstead of `pip install .` in the CI... do `./setup.py sdist`17:55
ssam2oh yeah, sdist17:55
tristanand extract the generated tarball, and ensure that it works17:55
tristanyeah, since the beginning I had tested that, but the MANIFEST.in may be missing some things17:55
gitlab-br-botpush on buildstream@sam/fixed-ci-image (by Sam Thursfield): 1 commit (last: .gitlab-ci.yml: Use specific version of buildstream-fedora Docker image) https://gitlab.com/BuildStream/buildstream/commit/5c37208c5c5df1925a0bb280933772feb04cb67417:57
gitlab-br-botbuildstream: merge request (sam/fixed-ci-image->master: .gitlab-ci.yml: Use specific version of buildstream-fedora Docker image) #167 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/16717:57
*** ssam2 has quit IRC17:58
*** semanticdesign has quit IRC18:03
*** semanticdesign has joined #buildstream18:03
*** tristan has quit IRC18:04
*** valentind has joined #buildstream18:47
gitlab-br-botbuildstream: merge request (sam/fixed-ci-image->master: .gitlab-ci.yml: Use specific version of buildstream-fedora Docker image) #167 changed state ("merged"): https://gitlab.com/BuildStream/buildstream/merge_requests/16718:53
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 1 commit (last: .gitlab-ci.yml: Use specific version of buildstream-fedora Docker image) https://gitlab.com/BuildStream/buildstream/commit/5c37208c5c5df1925a0bb280933772feb04cb67418:53
gitlab-br-botbuildstream: Sam Thursfield deleted branch sam/fixed-ci-image18:53
gitlab-br-botbuildstream: merge request (lzip->master: Add support for lzip in tar source) #162 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/16219:47
*** bochecha has quit IRC19:50
*** bochecha has joined #buildstream19:51
*** semanticdesign has quit IRC19:53
gitlab-br-botbuildstream: merge request (fix-compose-delete-with-symlink-in-path->master: Remove non canonical path from manifest after integration commands in compose plugin.) #161 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/16120:02
*** bochecha has quit IRC22:40
*** tristan has joined #buildstream22:46
*** tristan has quit IRC23:12
*** mcatanzaro has quit IRC23:51
*** tristan has joined #buildstream23:52
*** valentind has quit IRC23:55

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