IRC logs for #buildstream for Saturday, 2020-05-23

*** jude has quit IRC00:39
*** hasebastian has joined #buildstream05:47
*** ChanServ sets mode: +o tristan07:47
tristanjuergbi, I think I just had a good idea about the junction jungle07:47
tristanWhat if we said that, a junction could be allowed to *rename* a project when it gets junctioned ?07:48
tristanor at least rename it in the junctioning project and for all of it's reverse dependency projects07:49
juergbiI actually had a similar thought about it as well. however, not sure how we'd properly handle namespacing07:49
juergbii.e., what name should be chosen by the project to avoid conflict etc.07:50
juergbithat's why I suggested the 'option' approach where selected option values would become part of the junction key (together with the project name)07:50
tristanThat could be a matter of convention, but say I wanted to have a "private" or "isolated" junction, I might call it: "{myproject}-internal-{originalprojectname}"07:51
juergbibut that's just for one class of use cases07:51
juergbiok but if projects have to follow this convention to avoid problems, wouldn't it be better to have an internal/isolated option to let buildstream take care of it?07:51
juergbiand what about the diamond problem here?07:52
tristanThat's where it gets interesting :)07:52
tristanSo I've been thinking of two approaches here07:52
juergbiif BuildStream does it internally, {myproject} would automatically be different if {myproject} itself was also marked internal/isolated07:53
tristanThe first thought I had, was just allow a junction to rename it's project; and then in a diamond case, use overrides to override a project name of a deep junction07:53
tristanbut that idea led me to question "what if things get referred to by project name"07:54
tristanyou wouldn't want to damage the expectation of being able to address something by project name07:54
tristanunless you did it from the start07:54
tristanThe other idea was to say that "I choose to alias this project to a new name, so that from *my* perspective (and reverse dependency project perspectives), it is seen under a new name"07:55
tristanAn alias is a bit less straight forward than a direct rename, but provides more flexibility07:55
tristanregarding "referring to things by project name", I was also thinking of something like composite plugins, or templating plugins (plugins which allow expressing more than one element in simplified YAML)07:58
tristanit seems like it would be an interesting thing if we could refer to a dependency as "{project-name}:foo.bst" instead of needing the junction, that would be helpful in WSalmon's "reusing top-level elements" thread07:59
tristanthe 'option' approach is interesting, but also presumes that same-option-different-version is an invalid use case08:03
tristanI'd really like something utterly simple which forces the right actor to make a decision and only when necessary08:05
tristanAnd stay as far away as possible from presuming what is okay to stage together in an artifact08:05
tristanor a build, i.e. if I *do* have different versions of elements from the same project and they are getting staged somewhere in builds, as long as I know about it, I should be allowed to do what I want08:06
tristanThis maybe brings back the original "whitelisting" approach as desirable08:07
tristanjuergbi, interestingly the aliasing approach gives you the behavior of the "whitelisting" approach (by forcing the toplevel project in a diamond to make a decision to rename/alias), but also gives you the "internal" feature for free (by allowing a project to remove collisions from the equation for reverse dependency projects)08:08
*** hasebastian has quit IRC08:18
*** tristan has quit IRC08:40
*** tristan has joined #buildstream08:45
*** hasebastian has joined #buildstream09:47
*** ChanServ sets mode: +o tristan09:56
tristanjuergbi, I threw up a writeup on the list09:57
tristantake your time :)09:57
tristanJust would like to get this hurdle out of the way soonish09:57
juergbita, will take a look10:44
*** tristan has quit IRC10:53
*** narispo has quit IRC11:01
*** narispo has joined #buildstream11:02
*** hasebastian has quit IRC11:05
*** tristan has joined #buildstream11:18
*** narispo has quit IRC11:25
*** narispo has joined #buildstream11:26
*** narispo has quit IRC11:50
*** narispo has joined #buildstream11:50
*** Amelia5085 has joined #buildstream12:24
*** Amelia5085 has quit IRC12:26
*** aminbegood has joined #buildstream15:15
*** aminbegood has quit IRC16:54
*** aminbegood has joined #buildstream17:40
*** aminbegood has quit IRC17:50
*** narispo has quit IRC18:48
*** narispo has joined #buildstream18:49
*** narispo has quit IRC21:13
*** narispo has joined #buildstream21:13
*** aminbegood has joined #buildstream23:01
*** aminbegood has quit IRC23:15

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