IRC logs for #buildstream for Saturday, 2020-06-20

juergbitristan: we already allow plugins to add files with content directly. this has already been used before virtual directories in multiple element plugins, e.g., manifest and docker/oci image creation04:36
juergbiI would also prefer doing as much as possible in sandboxed commands and keeping the plugins very simple04:40
juergbihowever, we don't even try enforcing anything like that right now. if you want to suggest changing that, we'll need a larger (ML) discussion. and it might require some non-trivial plugin porting04:48
tristanjuergbi, I think the plugins in freedesktop-sdk which do this nonsense are buggy as hell and I don't think they should be considered a model citizen08:46
tristanThe fact that they write manifests in python code, is definitely 100% a bug IMO08:47
tristanThe fact that they crawl the dependency tree and make assumptions that they can call API on those plugins beyond Element and Source defined API, is unquestionably a bug08:47
tristanI dont know that it is up to us to support porting of those plugins either08:48
tristanIf they went ahead and employed hacks to get something done instead of properly communicating a need to us, and getting something implemented in core if they need that, that should not be our problem08:49
tristanWe should not be blocked on buggy plugins doing wrong stuff08:49
tristanjuergbi, The only thing we *could* really try doing to enforce it, is to change plugin code to something like starlark, or any formalism which *ensures* people dont use API which we do not provide08:50
tristanBut I think that providing API that people clearly should not be using anyway, is definitely a step in the wrong direction08:50
tristanI'd definitely want to make plugins not python, so that people (A) Could not import external python libraries *at all*, and (B) Could not issue any command which BuildStream core does not know about or implement08:51
tristanThat is how plugins really should be written anyway, nobody should be calling subprocess directly, or touching files in the sandbox directly08:52
tristanMaybe we didnt write that down anywhere, but I think the design makes it pretty clear that pulling that stuff is simply not allowed08:52
tristanjuergbi, if there is a need for an ML discussion, I'll raise one, I don't know why we're talking about it, and what sent us down a path to providing APIs for plugins to do stuff they shouldnt be doing anyway08:53
tristanIf you have a link to anything which happened while I was away, sending us down this path, that would help me try to set things straight08:53
*** hasebastian has joined #buildstream15:05
*** hasebastian has quit IRC17:15
juergbitristan: crawling the dependency tree and calling plugin-specific methods guessed to be available based on 'kind' I consider a bug as well, however, that's more or less orthogonal to direct filesystem manipulation, which was the topic19:16
juergbiSandbox.get_directory() has existed from early on, allowing direct filesystem manipulation. if we didn't want direct access, why expose the path at all?19:17
juergbithat's now replaced with the virtual directory API but it's pretty much the same when comparing what plugins can do19:18
juergbiwe could theoretically completely remove direct access to the (virtual) directory from the public plugin/sandbox API, forcing everything to be done by sandbox commands19:21
juergbihowever, that would be a big change for some plugins and we need to be sure plugins can be ported in a reasonable way19:22

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