Skip to content

Instantly share code, notes, and snippets.

@pronskiy
Last active February 19, 2024 23:07
Show Gist options
  • Save pronskiy/621bc8f8e901d4cd1f5a630c463be5b2 to your computer and use it in GitHub Desktop.
Save pronskiy/621bc8f8e901d4cd1f5a630c463be5b2 to your computer and use it in GitHub Desktop.

New PECL discussion 11-01-2024

Meeting started: 11/01/2024, 14:00:52 Duration: 45 minutes Participants: Andreas Braun, Derick, James Titcumb, Jordi Boggiano, Nils Adermann, Roman Pronskiy

Short summary

  • Nils stressed metadata compatibility with Composer for PHP extensions.
  • Consensus on using packagist.org for metadata hosting to align PHP extensions with Composer.
  • Aim for extensions to be searchable alongside PHP packages for better visibility.
  • Discussed simplifying Windows compatibility for PHP extensions.
  • Decided against a comprehensive extensions state file for the initial version.
  • Signing extensions postponed, considering ongoing work in PHP packages and Drupal.
  • In theory the tool could be a future Composer plugin but advised against early planning for it.
  • Agreed on using "composer.json" with Composer-compatible metadata, including PHP version constraints.
  • James to develop the tool, consulting Jordi as needed.

Bullet point highlights

  • Nils emphasized the importance of keeping the metadata format for PHP extensions compatible with Composer to leverage existing tools for PHP packages. Derick agreed, noting that compatibility was his original intention.
  • There was a consensus on the need to ensure compatibility between the metadata formats used for PHP extensions and Composer, with the possibility of using packagist.org infrastructure for hosting metadata.
  • The group discussed the potential for extensions to be discoverable and searchable on the same index as PHP packages, enhancing visibility and accessibility.
  • Derick clarified that creating a new package registry was not the goal; instead, the focus was on avoiding the creation of a new one and potentially integrating with existing infrastructure.
  • The team discussed the complexities of Windows compatibility for PHP extensions and the idea of simplifying the process by assuming that if a DLL is attached, it's compatible with Windows.
  • There was a conversation about the possibility of having a file that describes the desired state of installed extensions, similar to Composer's approach, but the decision was to focus on a first version that installs individual extensions.
  • The group discussed possibility of signing extensions. But concluded to leave out of the scope for the first iteration as there is some work going on signing PHP packages and Drupal and it possibly could be reused.
  • James suggested writing the tool in a way that could potentially be integrated into Composer as a plugin in the future, but Nils advised against planning for it to be a Composer plugin at this stage.
  • The group agreed to use the standard "composer.json" file name for the new tool, with adjustments to the metadata structure to align with Composer's format, including the use of "require" for PHP version constraints.
  • James volunteered to work on the development of the new tool, with the understanding that he would reach out to Jordi for any questions or guidance needed.

Transcript

00:00 Nils Adermann: Yeah, no good.
00:00 Roman Pronskiy: Sorry, do you mind if I start transcript just so we don't?
00:00 Nils Adermann: Sorry. I assumed that you already had. Yeah, so It kind of don't want to speak to the infrastructure part too much without Journey, but just generally I think our idea was a bit that in terms of the metadata formula that Derick proposed or as a basis room to work on that. I think it makes sense to try and keep this compatible with composer as much as possible simply like while
00:28 Nils Adermann: we're not like there's no plan to like use composer to install the packages. Right? I mean, that's not thing. It's just I think there's still potentially benefit from being able to use some tools that look at PHP packages to also look at the extension packet extensions in a
00:48 Derick: Sure.
00:48 Nils Adermann: similar way. And so I think if we can keep the metadata formats compatible I think actually really just compatible that would be beneficial overall. And that means that for example something like the the requirements should really be formatted the same way that they are in composer.
01:08 Derick: That was my intention from the start. So if I had not done that then
01:13 Nils Adermann: Okay, so I think there are a couple
01:14 Derick: I'm as understood something.
01:14 Nils Adermann: things that were that are incompatible and again, I mean get
01:17 Derick: Yeah.
01:18 Nils Adermann: the ideas. So I think one thing was just that we were thinking that it makes sense to make sure that they're compatible formats that basically you're actually using a composer Jason for an extension too. And if we do that it would become feasible to use. packages.org infrastructure to host the same the metadata for pegel2 then I think there was a bit of a discussion over and how far that should be like a separate thing. Just reusing code.
01:48 Nils Adermann: For packages that work on how far we want to maybe just have this on the same index which I think would be cool for things like discoverability search. Like if you have like just a page that you can search for PHP packages and it doesn't really matter if it's extensions or packages or you can pick which oh, he just reply to me with an oh s***. I think it's already happening.
02:10 Derick: Yeah, again, the intention of us not
02:11 Nils Adermann: You in a minute?
02:13 Derick: to necessarily not have a package gratitude, but not to have a new one.
02:18 Nils Adermann: Yeah fair enough.
02:19 Derick: Okay, I don't necessarily mind that that matter that at some point. I mean, it doesn't have to be the first iteration right that it makes it also packages. But what I was trying to avoid is create a new one and I thought I'd
02:30 Nils Adermann: Yeah, exactly. So I think basically our thought was
02:31 Derick: remembered from many years.
02:33 Nils Adermann: as long as we make sure that it like the metadata is compatible then we can easily. Do this at some point like it doesn't have to be the starting point.
02:39 Derick: Yeah.
02:42 Nils Adermann: Hey Jordy, here. You are.
02:43 Derick: Hello.
02:44 Jordi Boggiano: Hello.
02:44 Andreas Braun: Okay.
02:45 Jordi Boggiano: I'm sorry. I completely forgot.
02:48 Roman Pronskiy: hours
02:51 Nils Adermann: So I basically just said that. as a summary, I think we were it was just important to us that we that we try to really keep the form of compatible and dericks that if it was incompatible that was unintentional like that was actually his intent.
03:05 Derick: Yeah, so do you the only big one here
03:06 Jordi Boggiano: Yeah.
03:06 Nils Adermann: And I mean it was small differences.
03:09 Derick: is is that we have this extra key called PHP and it's from what I understood and we have this. I mean the pecock center just sometimes you configure Flags right which I don't think compose a package is normally have so we need some
03:24 Nils Adermann: no, so
03:24 Jordi Boggiano: right
03:24 Derick: additional of
03:26 Nils Adermann: yeah, so there's two ways of accomplishing that and one is that compose it does have the just an X the extra section in which you can put any additional configuration data.
03:35 Derick: sure, okay.
03:36 Nils Adermann: So you could use this for PHP extensions and basically just have a definition of what PHP extensions need to have in this extra thing and then it's already fully compatible and they know but at the same time, I
03:45 Derick: Okay.
03:46 Nils Adermann: think it's already I think adding another. Top-level thing that's only for the extension packages is also something that's totally feasible. I think.
03:55 Jordi Boggiano: Yeah, I don't think that's a big deal.
03:57 Nils Adermann: Yeah, I think it's just as long as the things that do overlap are not incompatible. I think that's really the only thing that matters.
04:04 Jordi Boggiano: Right, right.
04:06 Derick: So maybe somebody suggest how it should look like instead of what I've cooked up it. Like I don't exactly know where your
04:12 Nils Adermann: Yeah.
04:13 Derick: extra bits are.
04:14 Nils Adermann: Yeah. No, sure.
04:15 Jordi Boggiano: Yeah, I think I think that the bits which will not compatible. I already commented on mostly the name. I think what what this nice gentleman. Yeah commented on yesterday the name field. with the X prefix I think that. That's the main beta would still change from the from what I think the document the rest is like the PHP compatibility table. I think that's the main other gripe we had which
04:49 Derick: The thing is I don't like it either
04:50 Jordi Boggiano: yeah.
04:51 Derick: but I can't see any other way without having registry.
04:55 Jordi Boggiano: yes, so that's the next big Point like I don't know.
04:59 Derick: It's so the question there because Does that need to be there from the start or not? I mean having a part of the registry and it is something I was trying to avoid a little bit.
05:11 Jordi Boggiano: now
05:12 Derick: because it makes it probably much easier to get going. I also think that makes it easy to get. buy-in as not to be honest because pretty sure people are going to argue about us or at least some people.
05:30 Roman Pronskiy: To is another vice versa.
05:31 James Titcumb: If if we're using if you're going to
05:32 Derick: Oh.
05:32 Roman Pronskiy: I mean
05:32 James Titcumb: be using packages then having a list of the compatible PHP versions is something that's relevant to the tag that you make any way right just in the same way as all other existing packages on packages.
05:46 Jordi Boggiano: Yeah.
05:47 James Titcumb: So use using a tag and then the
05:48 Andreas Braun: Yeah.
05:50 James Titcumb: metadata is stored on packages about which versions are compatible with which versions of PHP. And that would negate it. I think if we don't want to initially push this thing to packages and just do it try to come proof of concept. I think it would be fine just to say. This is the current release and this is what it's compatible with and not have like a history of which versions of compatible with which versions of PHP.
06:18 Derick: But then how would you know that if you say you are running PHP 81? Sorry eight zero in my example. Sorry, no seven for my example. How would you don't know which a filter pool you don't know right?
06:37 Jordi Boggiano: so
06:38 James Titcumb: But that's the point. This is a proof of concept, right? I think in order to do a way with that that PHP compatibility list you
06:48 Derick: hmm
06:48 James Titcumb: would have to have some kind of. Metadata some kind of registry whether it's packaged or something else. I think it makes sense to be packages personally. You can't have that. One way or the other you have to have either.
07:02 Nils Adermann: so the thing is even with even with composer you can access the VCS repository directly, right?
07:09 Jordi Boggiano: Alright exactly.
07:11 Nils Adermann: And in composer simply goes looks at all the tags and checks out the metadata in each of the tags. And this is somewhat slower but still not like if you're doing this for one or two packages, it's not really a problem and it's a feasible way of doing this if you're trying to skip the registry, but then once you have a registry, it just gets a lot more performant because you can just have this all stored in one place and I
07:34 Jordi Boggiano: Yeah.
07:34 Derick: I mean, it's fine.
07:35 Nils Adermann: think that's
07:35 Derick: I mean, it's fine if it's over goes over all the text and does that. Sure, that's not a problem.
07:40 Jordi Boggiano: so
07:40 Derick: Really? I have hard one issue with that is that we only found out later that some versions didn't work with
07:47 Nils Adermann: Yeah, exactly.
07:47 Derick: Windows.
07:48 Nils Adermann: Yeah.
07:49 Derick: And you can't change tax.
07:50 Jordi Boggiano: smart Uh-huh. So yeah.
07:54 Derick: To be fair.
07:55 Nils Adermann: It's a two degree.
07:56 Derick: This is
07:56 Nils Adermann: That's a that's a problem that exists for PHP packages today, too. I mean like you kind of like you never quite know ahead of time if like compatibility has changed later on and the result the answer there is simply well if this changes you have to create a new tag and the question
08:11 Derick: actually
08:12 Nils Adermann: isn't how far that's feasible for extensions.
08:15 Derick: I just realized that it wouldn't have made a difference because it because it doesn't work with the speech B version's he couldn't build it with these features. And this is a thing, right? when extensions get built on GitHub actions, for example, I always build against the latest speech people.
08:39 Derick: pet version so yeah, it's something I don't think you can get around.
08:46 Nils Adermann: so what is
08:47 Derick: So I'm talking to myself out loud, and I shouldn't have done that.
08:50 Nils Adermann: Yes, right.
08:50 Derick: I should have thought about before saying words. Yeah, I mean, it's a problem you're going to have and then better you make it attack us the new tech. Might make sense. I mean
09:05 Jordi Boggiano: So I think to some extent to Windows
09:06 Derick: to trick you.
09:10 Jordi Boggiano: thing. I feel like this could be solved by just saying if there is dll attached to it then those compatible.
09:19 Derick: Yes, so Devil's my point of us trying to make because they're built against the
09:22 Jordi Boggiano: because
09:23 Derick: latest Peach pet version of 74. Say 7421 when that's out.
09:28 Jordi Boggiano: the
09:29 Derick: This dll would not have worked but early php74 versions even though you have Builders normally just listen to
09:34 Jordi Boggiano: okay.
09:35 Derick: the problem. But there was a specific thing in PHP
09:36 Jordi Boggiano: Yeah.
09:38 Derick: itself. That wasn't exported. That's why the dll that also have
09:41 Jordi Boggiano: I see.
09:42 Andreas Braun: right
09:42 Derick: worked did not work. This happened only once though so, I
09:44 Jordi Boggiano: I see.
09:46 Derick: don't think it's something we should optimize for.
09:52 Jordi Boggiano: But still I think yeah, I would just remove this Windows compatibility aspect and and just say if you have a dll it's Windows compatible. If not, it's not because this you can also add after the fact that I just compiling the dlls after the tag is done. You attach them and that, you know those windows.
10:11 Derick: that Australia
10:12 Jordi Boggiano: so that wouldn't because really like if you get this whole PHP compatibility table you have it's it all can be replaced by just a required on the PHP version. That's that's how it would be done normally with the PHP package. It's you have required PHP.
10:33 Derick: yeah. Yeah, it was pretty much a shortcut
10:35 Jordi Boggiano: some versions
10:37 Derick: to make sure that you didn't have to iterate all the text.
10:40 Jordi Boggiano: Yeah, that's fine. I get that.
10:42 Derick: That's one of us.
10:43 Jordi Boggiano: I'm just saying like the only other aspect in the table is this Windows compatibility, which I think you could also make away with.
10:48 Derick: But she said to you you don't need that if you you don't need it if you just check with a dll.
10:55 Jordi Boggiano: Yeah.
10:55 Derick: And then the only means only reason
10:56 Jordi Boggiano: So thing don't solve it.
10:57 Derick: that needs to mean that these dll files have the right formal name.
11:02 Jordi Boggiano: Yeah.
11:02 Derick: If you need to Define.
11:05 Nils Adermann: Yeah, but that seems a lot more
11:05 Jordi Boggiano: right
11:07 Nils Adermann: reasonable than trying to come up with this whole separate format for defining the PHP version number.
11:12 Derick: I agree.
11:16 Andreas Braun: The one question I have regarding Windows TLS since we were on the
11:19 Derick: Yeah.
11:20 Andreas Braun: topic is we so from all going to be we currently built the windows DLC and then attached them to the GitHub releases as artifacts.
11:29 Andreas Braun: How would we tell the installer where to fetch the dlls?
11:34 Derick: But if there are attached to the tech you can retrieve all the artifacts from Attack. So you already know?
11:42 Andreas Braun: Are they actually attached to the git tag, or is it a separate entity in
11:47 Jordi Boggiano: now it's a
11:47 Derick: You can do it.
11:48 Andreas Braun: GitHub?
11:49 Derick: You can do it.
11:49 Jordi Boggiano: it's
11:49 Derick: I looked into this. It's possible to retrieve all the artifacts for a tech.
11:54 Andreas Braun: For attack, okay.
11:55 Derick: Yeah.
11:55 Jordi Boggiano: it's a release like it's they have to
11:55 Derick: Oh.
11:57 Jordi Boggiano: concept of tags and really easy
11:59 Andreas Braun: Yeah.
11:59 Jordi Boggiano: things to release is not text.
12:02 Derick: yeah, the moment you actually
12:02 Nils Adermann: So this is a GitHub specific thing is I think more about Andreas questions.
12:05 Jordi Boggiano: Right, right.
12:07 Andreas Braun: Yeah.
12:07 Derick: the moment you attack something to attack. It becomes a release.
12:12 Jordi Boggiano: Yes.
12:14 Andreas Braun: Correct.
12:15 Jordi Boggiano: so the the one problem I see there is Windows is that so in let's say you have two sides of it here. You have the whole dependency resolution stuff. Which is what composer does typically and then you would have. the installation part which would be this new? New pickle whatever it's called. um So this is fine like that stage in the installation is stage. You could go and fetch the dlls from from gitoba wherever like that. This is easy.
12:54 Jordi Boggiano: The problem is if we need to to match the windows compatibility based on that. Then we need to know that at a dependency resolution time. We already need to know if something's compatible was Windows or not if you're running on Windows? so we probably need to build some amount of that in into imposes flash packages to kind of have a marker for this in the packages.
13:23 Nils Adermann: Yes, so true basically the part that we're like if we when one side you have the metadata protag, so there's the tool can directly access the git repository just iterate over the tags and then you can use this API to check are the dlls but then in the on the registry side and packages.org, we would have to adjust this so that when it ingests these composer packages that are actually for extensions it additionally also retrieves this information about dlls and then somehow adds this to the repository metadata for a packages because then you don't have to actually go check this out on each individually.
13:55 Jordi Boggiano: Hmm. Yeah. Yeah.
13:57 Derick: I would probably say that dependencies between extensions almost don't exist. right
14:06 Jordi Boggiano: Right. Yeah. Yeah, that's that's true. I think the but you still need to
14:10 Andreas Braun: read
14:10 Jordi Boggiano: select a version.
14:11 Derick: Yeah, I know.
14:11 Jordi Boggiano: Let's say it's it's a dependency resolution on one package maybe but it's still you still have like a set
14:17 Derick: Sure.
14:17 Jordi Boggiano: of tags and and you need to select which one goes with with your PHP version and your operating systems.
14:23 Derick: fair enough
14:26 Jordi Boggiano: It's very simplified problem scope. That's true. So maybe we could also do away with the whole solver stuff and just locate it in the installer and
14:36 Derick: Yeah, I know. There's a few extension. I do depend on others like Paco hbsp as an example depends on wrath and another one that can't remember now, but it doesn't happen very often. The the main issue on the Windows site is sometimes that you need to have to libraries that they link against install the zone.
14:56 Derick: Well, Mongo doesn't have the problem because as far as I know you you just embed everything so you don't link
15:00 Andreas Braun: we bundle everything.
15:01 Derick: against the dealer you bundle
15:02 Andreas Braun: Yeah.
15:03 Derick: everything else exactly.
15:03 Andreas Braun: Yeah.
15:06 Derick: Whereas I know some extensions link for example against open SSL, but it needs to be the same open as a cell speech be over to use anyway, so It's not really probably.
15:16 Andreas Braun: You can I saw that recently. I know that composer does allow you to specify some system libraries as dependencies at least those for PHP
15:25 Jordi Boggiano: yeah.
15:26 Andreas Braun: like lip open SSL. You can definitely specify as dependencies. So at least the basics for it are
15:32 Derick: Yeah X open until.
15:34 Andreas Braun: there. Yeah.
15:35 Derick: Yeah sure that works.
15:38 Nils Adermann: so then it
15:40 Derick: But my comment list is that if the dll if it's built against a different version of open SSL a PHP is a homework. But that that's going to be up to the
15:46 Andreas Braun: Yeah.
15:48 Derick: extension altar or PEC extension also, right do they need to just make sure that works?
15:54 Nils Adermann: so I think I have a bit of a question because I think I mean the way that
15:56 Derick: Yeah.
15:58 Nils Adermann: George was looking at this now versus so this is still going to be a tool that works like the old pickle in terms of I install one particular extension and then it uses this to get the particular right version Maybe. Is that actually we're we want to be with this or is the goal maybe to actually have similar to composer a file that describes my state of these are the extensions.
16:21 Nils Adermann: I'd like to have and to have a command that installs all of these extensions in those versions like is that actually like what we want to keep doing or do we want to maybe also transition this more to like a declarative State thing like composer does
16:37 Derick: The issues of course that they're differences that's composed package. You can start it can install per project and extension. She counts.
16:45 Nils Adermann: Sorry, like the the file that describes the state would have to be on a global level. So right like this is not a pro. I might say like you can do this on a poor project level but like you still want might want to like get this file from a colleague to have all the same
16:59 Derick: Sure.
17:00 Andreas Braun: I I think it's both like if I call
17:00 Nils Adermann: extensions installed on your machine like
17:04 Andreas Braun: newpackle install without anything and there is a composer Jason in the local directory. It would make total sense for it to look at all of the extensions that need to be installed and install us for example, or be able to point it at something on the other hand. I think a lot of people will most likely just replace calls to Petal install some extension name to newpack install some extension name. So I think both kind of makes sense.
17:30 Andreas Braun: But I get where you're coming from
17:31 Derick: Yeah.
17:32 Andreas Braun: with this that having this list of extensions to install would be quite useful.
17:37 Derick: Yeah, I mean in my non goals. I have specifically set for this initial release, right? That I didn't want to do that, but
17:43 Andreas Braun: Yeah.
17:45 Nils Adermann: Yeah, good point.
17:45 Derick: that doesn't mean not ever doing it.
17:45 Andreas Braun: Yeah.
17:46 Nils Adermann: Yeah, I forgot about nothing. Yeah, that makes sense. I think the only thing I was concerned about is in how far well, I mean, I guess this is clear enough that this is the first version and how far if you by come up with semantics for how certain commands work now that becomes a problem later to change like what an install means, but I think if we're clear about this
18:08 Derick: right
18:09 Nils Adermann: is like a first version and this may change later. And I guess that's kind of okay, and then we can rethink this after like actually installing a single one works.
18:20 Roman Pronskiy: I have a question. Maybe a comment a Derick is you you mentioned that it's for not for per project. Can we change that? This is per PHP installation because
18:33 Derick: Sure, that's what I meant.
18:33 Roman Pronskiy: user can have like yeah.
18:34 Derick: That's what I meant. That's what's currently Paco does so. Yes, you absolutely right.
18:38 Roman Pronskiy: Yeah.
18:38 Derick: That's for the Definitely needs to work with that but to do way how that works. Currently is that It uses the pecul in the same. Directory as PHP runs in the same part and that is that that's
18:50 Roman Pronskiy: What?
18:51 Derick: definitely should continue to work. Absolutely.
18:54 Roman Pronskiy: What I mean is that there are currently many tools that kind of give you away to have multiple PHP versions. So that means that these two will work with them transparently because it's just been under which HP around this tool, right?
19:10 Derick: Yes, exactly because the the location where it would install the extensions copy them pretty much is dependent on the PHP installation. Anyway, each piece binary has a part in there that expects to find the extensions and and there's no reason why that should change. Yeah.
19:28 Roman Pronskiy: Okay. Yeah, James.
19:31 James Titcumb: Just yeah, just add on to that part about sort of being compatible with composer. Essentially. I think it makes sense to try all this as a separate tool and but but
19:42 Nils Adermann: Oh, yeah.
19:44 James Titcumb: write it in a way such that, you know, if we wanted to actually transpose it directly into composer as some kind of a plug-in to compose it would basically look at all of your ex whatever in your projects composer Jason make sure that they're installed in your current version of PHP and if not go ahead and install them but I think that's certainly future scope. But if we make sure that it's written
20:08 Nils Adermann: I am not sure.
20:08 James Titcumb: in a way that it could be transposed then that gives us flexibility.
20:11 Derick: I was also hoping that
20:11 Nils Adermann: I'm not sure that's feasible at all. And I mean I said exact guys Derick
20:14 Derick: okay.
20:15 Nils Adermann: pointed out. I mean like the whole concept of it's not a for project like that always gets gonna remain tricky. There are cases maybe where users run a single PHP install for a single project and maybe can intentionally use this but Even then they're like, they're complexities in this and I think we looked at this so quite a while back and like I would basically really say let's keep that away.
20:37 Nils Adermann: Let's just make use of the infrastructure for the registry like to make use of the format for the Jason so that we can maybe like extra
20:45 Andreas Braun: Yeah.
20:46 Nils Adermann: tools that just analyze things can kind of look at these as if they were packages and like leave it at that for now only
20:53 Andreas Braun: So we actually discussed this quite
20:53 Nils Adermann: think
20:54 James Titcumb: A Greek completely. Yeah.
20:55 Andreas Braun: some time. It's in fully Conant. We I think we came to the conclusion at this makes sense as an opt-in kind of option later on after a first thing for exactly that use case like you're setting up a container that is just going to run a single project. Yes. Okay in that case totally makes sense for my development machine. That's a bit risky to always run extension installs whenever I do a compose reinstall.
21:20 Andreas Braun: so
21:21 Derick: Yeah. you know like
21:24 Roman Pronskiy: wouldn't it be easier to to write a plugin actually as a proof of concept instead of like a separate tool?
21:31 Nils Adermann: I don't think so because writing a composer plugin is actually somewhat complicated and it would in this case do a lot of things that are not necessary and like I don't think that makes any sense.
21:41 Roman Pronskiy: Okay.
21:42 Derick: I mean
21:42 Nils Adermann: Especially because I really I'm not
21:43 James Titcumb: I
21:44 Nils Adermann: sure that that makes sense long term. I think even though what Andreas said is like the solution may be something like there's a mode where you're composer just outputs how to run the other tool or something. Like it doesn't necessarily mean it's ever going to be a plugin composer like It's just there may be some interaction between these tools but like it doesn't necessarily mean it'll ever be a part of it.
22:04 Nils Adermann: so I don't think
22:08 Jordi Boggiano: But most likely I think you would need to kind of require composer inside your packet. I think you'll need to to have like a lot of the composer infrastructure. to build this so yeah.
22:28 Derick: I'm a big fan of using reusing code.
22:30 Jordi Boggiano: Yeah, no.
22:31 Derick: That's what you're trying to say the less code. We need to write it better.
22:36 Jordi Boggiano: yeah, the problem is I mean what what I find a bit annoying is that you're gonna need like, you know a few classes and your but they're like so Core classes that you we can't easily read this out into like a small reusable package. I think you're gonna have to put the whole thing.
22:54 Derick: I see.
22:55 James Titcumb: I think I already know the answer to this question, but is the satsova a separate component in composer?
23:01 Jordi Boggiano: Nope.
23:02 James Titcumb: Okay. I figured as much.
23:06 Nils Adermann: but that part is I think not really
23:06 Jordi Boggiano: now because it's
23:07 Nils Adermann: the issue is more.
23:09 Jordi Boggiano: No.
23:09 Derick: No.
23:09 Nils Adermann: Like how you work with the package
23:10 Jordi Boggiano: and I think it's
23:11 Nils Adermann: metadata, which is yeah.
23:13 Jordi Boggiano: yeah, you need the package classes to and the repository classes to talk to packages and load the packages in any you need like maybe some of the dependency solver stuff? And like, you know, you just need a little bit of everything. That's the problem. Thank you. Probably don't need a full scope. But but whatever like a thing let's let's try that way and see what this goes.
23:38 Nils Adermann: you can always still decide to maybe see if there's something we can split out into separate libraries if you want to try and reduce the
23:44 Jordi Boggiano: Right, right.
23:44 Nils Adermann: Scope but what's getting pulled in
23:45 James Titcumb: but
23:46 Nils Adermann: later on if we see what actually is necessary for this tool.
23:49 Jordi Boggiano: yeah, yeah, so
23:51 James Titcumb: Yeah, just figure out what's what's also internal API that we may need to hook into as well. You know if there's stuff that's about you know concerned with retrieving stuff from packages that we need to hook into that's marked private or internal or something then obviously that's a discussion. We'll we'll need to have
24:11 Jordi Boggiano: Yeah, maybe just to catch. Let's get you able. I guess there you can James because you weren't there in the discussion. We had I think. what's my To-do list would be there in terms of supporting like this. This scanning of the whole repository is all the tags and everything. I think we need to restore the kind of we have we had per support initially in V1. We deleted that easy too.
24:46 Jordi Boggiano: We probably should restore that class because the tackle format is pretty much like the performance as far as I understand. At least take that as a basis to be able to load like all the all the
25:00 Derick: But what do you mean with it?
25:02 Jordi Boggiano: tags.
25:02 Derick: What do you mean with the format is similar? I don't understand why you're trying
25:06 Jordi Boggiano: Yeah, okay.
25:06 Derick: to say.
25:06 Jordi Boggiano: So the point was how do we import historical data? That's the main challenge is if you take existing repositories. Either we say okay, you can only install like new releases from now on this new pickle.
25:21 Derick: I'd be okay with that.
25:21 Jordi Boggiano: Oh we say Okay. Well, we can also simplify and just say f*** f*** the past. It's also okay for me but on the other hand I find like it's it might be such a little for that. It's it might just be worth doing it.
25:39 Derick: I
25:39 Jordi Boggiano: So essentially looking at looking at historical tags and And seeing if there is a I forgot to like you just XML or something. If you find that filed in load it with the with the pair. Thingy and kind of pause the metadata and build the composer metadata out of that.
26:03 Derick: So I haven't thought about what to do with the package XML file yet. Whether we should keep that or notes, I would be quite pleased if we don't have to keep that.
26:15 Jordi Boggiano: Now, I mean, this is really just for
26:16 Derick: the
26:17 Jordi Boggiano: existing tags, like for new stuff.
26:20 Derick: I whatever I wouldn't.
26:20 Jordi Boggiano: I would say if there's a composer Jason we don't look at the rest, but if there's no composer Jason we can look at the package XML to
26:29 Nils Adermann: so I think this is maybe like a
26:29 Jordi Boggiano: to try and figure out the data.
26:30 Nils Adermann: second step. So maybe we just ignore that for the
26:31 Derick: Yeah, I wouldn't worry about it now.
26:32 Nils Adermann: moment. We make something that works for new
26:33 Jordi Boggiano: Sure.
26:35 Nils Adermann: releases and then we can look at whether we want to because I mean the code exists basically to already do this to a degree.
26:41 Jordi Boggiano: Yeah.
26:42 Nils Adermann: Like there's not that much effort involved in just having like a way to load old packages then into the tool that's dealing with composer. I think that's basically George's point is that there's actually a way of making that work maybe but they can decide about that later.
26:58 Derick: One question on my side does you composers of Jason first do they continue to take content change lock comments as well? Because that is sort of the only
27:07 Nils Adermann: It don't.
27:08 Derick: reason why we still use the package XML file for right it doesn't really
27:11 Jordi Boggiano: Yeah, no.
27:12 Derick: do much.
27:12 Jordi Boggiano: No, we don't have a notion of that at all.
27:16 Nils Adermann: So that's a bit of a thing. That's I mean like maybe that's something like a point where we should do something about this in composer too. So it's something that we build for private packages that we want to do on packages.org is to actually extract change login information for individual packages. And the way that we built this there is to Simply recognize well known formats like a change look MD file changed a lot of text file change or whatever and like parse these and so there's like different parts of all these formats and then you get like a standardized Jason API to access change locks across all these packages.
27:52 Nils Adermann: And so I I think something that may be worthwhile is to actually add a top level changed lock field to the composer Jason maybe I mean talking to Jordi have more than anything else to reference where this is and to then just I don't know maybe decide on a few supported four minutes and just The half parser for those because we want to have those in. Per packages don't work anyways, and so this sort of exists you wouldn't have to build this.
28:25 Nils Adermann: But basically the trip the idea would be that you then store your change lock in a separate file in your repository. And you just reference it from your composer to Jason and a more reliable way than us automatically detecting which file this may be. But I think that's maybe something that would work too.
28:35 Derick: Yeah, because that would probably mean we can get rid of the whole package XL file. We don't have to get rid of it, but we don't have to use it anymore.
28:44 Nils Adermann: Yeah.
28:44 Derick: And that'd be great because we don't really need it so much. So do you the only other thing is that that sort of means that you Outsource all your metadata to get up but comes to like release dates and stuff like that.
29:01 Nils Adermann: Well, you do it to any git repository, right?
29:04 Jordi Boggiano: Yeah.
29:04 Nils Adermann: It's not necessary to GitHub
29:05 Derick: Right.
29:05 Nils Adermann: conflict.
29:05 Derick: That's true. Yeah.
29:07 Jordi Boggiano: well, except for the dll part which
29:10 Nils Adermann: Yeah, that's the only one word don't have a better answer either like basic ideals only work.
29:15 Jordi Boggiano: no, there's
29:15 Andreas Braun: I I have an idea but I think it would
29:16 Nils Adermann: I'm good.
29:18 Andreas Braun: blow the scope of this meeting. So I'll probably just make an out of it and bring it up in a different
29:22 Nils Adermann: Okay. Thanks.
29:23 Andreas Braun: place.
29:25 Derick: I'm sure there will be a version to or at 1.1 at some point for sure.
29:29 Nils Adermann: Yeah.
29:31 Derick: yeah, okay, so Our convey with this that we need to re jiggle the this speckle.json file a little bit. get rid of the PHP version thing move to config and I think priority into extras.
29:49 Nils Adermann: Yeah.
29:50 Andreas Braun: Yeah.
29:50 Derick: And the standard correctly?
29:51 Nils Adermann: That'd be ideal. Yeah.
29:52 Jordi Boggiano: Yeah, so how your priority was about here? Yeah, I don't know if I would move it into extra or kind of have another
29:59 Nils Adermann: Okay.
30:00 Jordi Boggiano: key for extensions might make me.
30:02 Nils Adermann: I think that's fine. Yeah.
30:04 Derick: I mean that is that is
30:04 Jordi Boggiano: just because I made for any third party thing to check the random copying and I feel like it's gonna deserves it.
30:13 Nils Adermann: This is a top level.
30:17 Andreas Braun: Since you just mentioned it how much
30:17 Derick: yeah.
30:17 Jordi Boggiano: sounds
30:20 Andreas Braun: effort is it on composer side to support a new package type? Like or on packages side actually.
30:26 Nils Adermann: none
30:26 Jordi Boggiano: none the type is a free form thing like
30:30 Andreas Braun: Oh, it's a free form.
30:30 Jordi Boggiano: you can just
30:31 Andreas Braun: I didn't even know that.
30:31 Jordi Boggiano: Put anything you want in there?
30:33 Andreas Braun: awesome
30:34 Jordi Boggiano: like it's just that install time just
30:34 Derick: so
30:36 Jordi Boggiano: this has an effective install type but
30:39 Andreas Braun: Yeah.
30:40 Roman Pronskiy: Is a separate packages only needed
30:40 Nils Adermann: so
30:42 Roman Pronskiy: can be just composer Json.
30:45 Nils Adermann: Right. That's what I was gonna say. That's called the thing composer James and please let's not use a different name. Like let's keep this the same that's
30:49 Jordi Boggiano: Yes.
30:50 Andreas Braun: Yeah.
30:51 Nils Adermann: agreed upon and like now that we say like, this is compatible. I think we should also just have the same name.
30:56 Derick: All right. Yeah, I'm okay with that's not
30:56 Jordi Boggiano: Yeah.
30:58 Andreas Braun: Yeah.
30:59 Nils Adermann: And then I would say the type.
30:59 Derick: I mean
31:02 Nils Adermann: Oh, sorry good.
31:02 Derick: No, nothing.
31:04 Nils Adermann: I think I would I mean similar to what Jordi said about the names. Let's keep those same like X whatever also for the name, but then also for the type I would put something like zent extent where like xzent or just extension but something I don't know what makes more sense.
31:18 Jordi Boggiano: I don't know then.
31:18 Andreas Braun: Like Sent send extension and PHP
31:20 Derick: Oh.
31:22 Andreas Braun: extension.
31:22 Derick: Yeah, they need to be different.
31:23 Nils Adermann: Yeah.
31:24 Jordi Boggiano: Yeah.
31:25 Andreas Braun: Yeah, because there's the two
31:25 Nils Adermann: Sure voice.
31:26 Andreas Braun: different ones.
31:27 Derick: Yeah.
31:27 Jordi Boggiano: Yeah.
31:29 Nils Adermann: Just as long as it's clear that I think kind of scoping this into X something to make sure that this is like an extension related thing.
31:36 Andreas Braun: Yeah.
31:36 Nils Adermann: It makes it less likely to be an issue elsewhere. And then yeah, I think your stuff I
31:39 Derick: Yeah.
31:40 Nils Adermann: think a top level extension field is what you said Jordi and then just put the thing on things under there. I can instead of priority.
31:48 Jordi Boggiano: yeah, we have to we have to so just well.
31:54 Nils Adermann: What are you worried about?
31:57 Jordi Boggiano: More about this for for both the top level kids. I'm not so worried about just because I think the as long as we say, okay, this is results for that. It's fine.
32:08 Nils Adermann: Yeah.
32:08 Jordi Boggiano: But for the type, I'm just wondering. I mean, I would definitely check the like just told me to this first to see if there's any cash just because
32:17 Nils Adermann: Oh, yeah, let's yeah we can do it.
32:18 Jordi Boggiano: like X I don't know it.
32:22 Nils Adermann: There might be some random tool that says it's an extension.
32:23 Jordi Boggiano: You know many many CMS is have
32:24 Nils Adermann: Yeah.
32:25 Jordi Boggiano: extensions like the plugins like extensions. Not a very specific name.
32:31 Derick: Well, I'll leave that to you. Because I don't care all of this cold.
32:38 Jordi Boggiano: Yeah. Good. Yeah, let's you can bring some that later. It's
32:46 Derick: Yeah.
32:46 Jordi Boggiano: nothing not as much.
32:48 Nils Adermann: Okay, then that just to terms.
32:51 Derick: Somebody suggests that I am actually sing this suggests out on a conflicts. It is called conflicts like this, isn't it?
32:58 Nils Adermann: It's just single conflict.
32:59 Andreas Braun: Yep.
33:01 Jordi Boggiano: It's yeah.
33:03 Nils Adermann: Same as required quickly.
33:03 Derick: I guess.
33:04 Jordi Boggiano: Yeah.
33:06 Derick: But that will accept us. I'm not sure why it is greener.
33:08 Nils Adermann: and I think and sorry also about earlier with the requires. I think I read this really early on. I think that wasn't an example far yet. Maybe somehow in the in your description above it says require it always said it's a list of names of other extensions. And so I assumed that this was really just a list of names instead of the same as composer. So I think that's where my confusion
33:31 Derick: but
33:32 Nils Adermann: came from.
33:33 Derick: I think I fixed that I no still says that.
33:38 Nils Adermann: I think that's really just where my mix-up came from.
33:42 Jordi Boggiano: Same with the example below. It's probably clear enough.
33:44 Nils Adermann: Yeah with the example it's fine. It's just somehow I only ever read the text and I was about yeah this
33:47 Derick: Okay.
33:48 Nils Adermann: seems in competitive like this is not a good idea.
33:50 Jordi Boggiano: But that would definitely add the PHP require the require.
33:55 Andreas Braun: Oh, yeah.
33:55 Nils Adermann: Yeah, just to make it clear how to
33:56 Jordi Boggiano: Just for clarity.
33:58 Nils Adermann: Define dependency on which PHP
33:58 Derick: Sorry.
34:00 Nils Adermann: versions.
34:03 Derick: Oh, sorry. I missed that.
34:05 Nils Adermann: The PHP require like in required at a required for PHP and then there's a range of Origins.
34:10 Derick: Oh.
34:10 Jordi Boggiano: Yeah.
34:11 Nils Adermann: since you're dropping the other
34:12 Derick: Okay.
34:13 Nils Adermann: things
34:13 Derick: Yes. Which one do we pick how to I don't know how exactly this looks like.
34:21 Nils Adermann: And then you can just do arrange so
34:21 Jordi Boggiano: well, so you can
34:22 Nils Adermann: like greater equals 7.0 less than
34:23 Jordi Boggiano: do yeah.
34:26 Nils Adermann: 8.3.
34:28 Derick: It's like this something like this. The other way around yeah.
34:31 Nils Adermann: other way around and then I think typical format is no
34:34 Jordi Boggiano: I mean
34:36 Derick: That makes more sense.
34:36 Jordi Boggiano: everything's possible.
34:41 Nils Adermann: spaces and a comma or something like that, but it actually both works both
34:43 Jordi Boggiano: Yeah.
34:44 Nils Adermann: ways sentences.
34:45 Jordi Boggiano: right
34:47 Derick: I mean, this is the wrong number but
34:48 Andreas Braun: typical format is as not even consistent within single packages between double pipes and single pipes and stuff like that.
34:55 Jordi Boggiano: Yeah.
34:56 Andreas Braun: So
34:57 Jordi Boggiano: I think to be honest, I think for extensions is especially because you're gonna have typically a range versions you support probably using the the dash notation make more sense. So something like, you know, 742 - so yeah, I don't know there's 799 I guess would be the thing right you wanna
35:30 Nils Adermann: But I think that's something people have to figure out what the extensions this is just an example.
35:33 Andreas Braun: yeah.
35:33 Nils Adermann: You can use any constraint on there
35:34 Jordi Boggiano: yeah for sure.
35:34 Nils Adermann: that works with us some real.
35:37 Jordi Boggiano: I of course, it's just more of a thing about communication. You know, I think people usually look
35:44 Nils Adermann: Yeah, okay.
35:44 Jordi Boggiano: at stuff and start copying it everywhere.
35:47 Nils Adermann: So start with the right examples is
35:48 Jordi Boggiano: So
35:49 Nils Adermann: what you're saying.
35:49 Jordi Boggiano: exactly exactly.
35:50 Andreas Braun: Yes.
35:51 Jordi Boggiano: Just
35:52 Andreas Braun: If you're gonna put Curry 8.0 in there, then you're screwed for life.
35:57 Jordi Boggiano: yes.
35:57 Nils Adermann: well
35:59 Andreas Braun: There should not be a curry in that at all.
36:04 Nils Adermann: So I guess maybe make a suggestion on the document for Derick 30 like a
36:09 Jordi Boggiano: yeah, yeah, we'll see anything about
36:09 Nils Adermann: Hardy.
36:09 Jordi Boggiano: it, but
36:19 Nils Adermann: And yeah, the change that thing
36:19 Andreas Braun: Yeah, it does suggestions.
36:21 Nils Adermann: Derick I would.
36:21 Andreas Braun: So.
36:22 Nils Adermann: If that's okay with you, I mean in principle, yes, but I would skip that right now because for one thing it's not supporting composer itself yet and I'm not a hundred percent sure. It's gonna look like that or if it's going to be an array with that has like a type and a file name or something like that.
36:36 Derick: Okay.
36:37 Nils Adermann: Just let's not decide on that until we've actually got that in composer, too. and I mean even if we don't do that,
36:43 Derick: Okay.
36:45 Nils Adermann: like if you're using the same code as in composer, we can still do what we did there which is just this automatic detection where it just has like if there's a change lock file and it has like any of the known endings, but even that would work right like just not as ideal or fitting with the rest.
37:06 Derick: Okay.
37:10 Roman Pronskiy: guys, I had that one more question in my list from Symphony con is about I think Andreas and because Nicolas asked about the signing the Extensions. Is that something possible to achieve at some point?
37:26 Derick: Yep, that's an exactly from what I understood. The user workflow below should mention these things. And maintain a workflow as well. I mean you can tag the or signed attack, right? I don't get up.
37:40 Andreas Braun: Yes.
37:40 Derick: So that is this.
37:41 Andreas Braun: Yes.
37:42 Derick: but how many people have a local infrastructure to check these stacks? I don't know.
37:51 Jordi Boggiano: Yeah.
37:52 Derick: but I think
37:52 Andreas Braun: Not only that. So from at least from our point of view. This is something that comes from Partnerships with IBM and stuff. We're going to be required to sign pretty much all of the artifacts. So basically the dlls that we build need to be signed as well. So it expands a bit beyond the scope of tax, which I think for an initial proof of concept I wouldn't worry about it because as the composer ticket history proves and I've read a bunch of those over the past few days. It gets complicated quite quickly.
38:27 Andreas Braun: So I would say as long as we don't. prevent us from ever adding that let's just not worry about it at this time.
38:37 Derick: so for XD book
38:37 Nils Adermann: Yeah, I think so. I think this is definitely right set up in a way where this can be added.
38:43 Andreas Braun: Just
38:43 Nils Adermann: Theoretically questions just a bit how exactly it'll work. Yeah.
38:50 Andreas Braun: and the thing is since Derick this is now using a lot of composers infrastructure. And this whole thing is also going to affect composer which Jordi in the it's now find out that I'm gonna be harassing them about this as well. You may just be able to piggy back on to work that needs to be done for other packages. So yeah.
39:14 Nils Adermann: Yeah, that's true, too. I mean there's a lot of work going on like especially with the Drupal people and signing PHP packages and we'll see what comes out of out of
39:20 Derick: Oh, I think they do that.
39:20 Andreas Braun: Yeah.
39:21 Nils Adermann: that. And so maybe at some point that's useful the other way around to like we'll see.
39:27 Jordi Boggiano: Yeah, I think it's a long-term probably short-term. I don't want to talk about it.
39:34 Derick: like but
39:34 Andreas Braun: Can't play with you.
39:36 Derick: the first thing you can do is at least one if attack isn't signed right on get up. Let us the first thing I started.
39:43 Jordi Boggiano: Yeah, but this this you can do I guess this you could do in the installer.
39:48 Derick: the exactly
39:49 Jordi Boggiano: Like I guess, you know when you fetch the stuff and that's on your side and if you want for extensions.
39:54 Nils Adermann: No, there's definitely some some work
39:54 Andreas Braun: Yeah, yeah.
39:55 Derick: yeah.
39:55 Jordi Boggiano: You do that.
39:56 Nils Adermann: things. You can already easily do on top of that. Yeah.
39:59 Derick: Also, what I've done for actually
40:00 Andreas Braun: That's a good point.
40:00 Derick: work is that all the dll files? For example, they already have a shot to five six hash. Checking these together with a signed tag. Could also be know that actually doesn't work because the artifacts are not part of the science tax.
40:19 Andreas Braun: Correct.
40:20 Derick: So that ignore it.
40:20 Jordi Boggiano: right
40:21 Andreas Braun: So we would have to attach a
40:22 Jordi Boggiano: Yeah.
40:24 Andreas Braun: signature file for the actual archive that the dll is in.
40:28 Jordi Boggiano: Yeah.
40:29 Derick: So yeah.
40:30 Andreas Braun: to prove it
40:31 Derick: Something like that. Yes. I don't know how you currently have your artifacts. I mean for XD bug guard just dll but
40:37 Jordi Boggiano: It's right.
40:37 Derick: I think James mentioned for scout AP and our adult zip.
40:40 Andreas Braun: Yes.
40:41 Derick: At some point. We just need to come up with something that works for all of them and it doesn't particularly matter. Let us appoints adult zip with a signatures in there or adult dll is something that we just need to hash out. So I think James had some suggestions or opinions about how the dll Falls should look like, but actually ends up being is it that important?
41:07 James Titcumb: It it the only reason the dlls there is to include the readme and license
41:11 Andreas Braun: Yeah.
41:12 Derick: right, but the thing is she wouldn't have to do
41:14 James Titcumb: and stuff.
41:15 Derick: that anymore.
41:15 James Titcumb: You know, it's it's
41:15 Derick: Now. What if you already have the license
41:16 James Titcumb: not a major thing.
41:17 Derick: and a change lock?
41:19 Andreas Braun: Correct.
41:19 Derick: in the NFL to begin with some
41:19 James Titcumb: Yeah, yeah.
41:21 Andreas Braun: Yeah.
41:22 James Titcumb: I I'd rather not sway things by what necessarily existing extensions do but if we make it standard, you know
41:31 Derick: Yeah.
41:32 James Titcumb: repackage read changing the way we do the packaging is not a big deal at the end of the day as long as it's
41:37 Derick: exactly
41:38 James Titcumb: standardized. That's that's more important.
41:39 Derick: Yeah, so whether it's actually I I
41:40 Andreas Braun: Yeah.
41:43 Derick: for example because those field extensions I've actually now set up something that in GitHub actually that builds the windows elves for me.
41:53 Derick: And it would be nice to see whether we can standardize that or at least. Generalize that a bit more so that it works. For more people. That's automatically we do the right thing. That'd be good to do.
42:05 Andreas Braun: So we we do pretty much the same
42:05 Derick: But exactly how to do it. I don't know yet.
42:08 Andreas Braun: thing. So if you need input or want to try stuff, just let me know.
42:14 Derick: Yeah, I do. I know the format and Mongo used to be the same as XD book. And this but it's still the case.
42:19 Andreas Braun: I wonder why.
42:20 Derick: I don't know. Yeah, I want to
42:26 Nils Adermann: Okay, but this sounds like very
42:27 Derick: all right.
42:27 Nils Adermann: reasonable to me. So yeah, just make it a composition build a proof of concept that manages to use some of the composer code to load the list of versions from a git Repository. and install that I guess
42:42 Derick: Yep, that sounds great. One question. Somebody is already mentioned the name.
42:52 Nils Adermann: Uh-huh.
42:56 Derick: I don't care. It's my my point of view here. As long as it's not called composer I suppose.
43:03 Nils Adermann: Yeah.
43:04 Derick: or PHP because that be confusing
43:08 Jordi Boggiano: Yeah, you could call it like like Docker composing like we could go like PHP composed just to make it really confusing.
43:15 Derick: Yeah, let's let's continue.
43:15 Andreas Braun: If you want to or you can call it conductor.
43:19 Jordi Boggiano: Yes.
43:20 Andreas Braun: to completely confuse everyone
43:20 Derick: At least we already have the logo in that case, right?
43:27 Andreas Braun: I'm gonna never let you leave this down.
43:32 Derick: All right. Okay, I don't think of anything else.
43:35 Jordi Boggiano: We'll leave that as an exercise to the reader.
43:41 Andreas Braun: or we flip names the new tool is called composer and
43:43 Derick: Sorry, always.
43:45 Andreas Braun: composer is renamed to conductor since
43:47 Jordi Boggiano: All right about time.
43:48 Andreas Braun: that seems to have been the intention.
43:51 Nils Adermann: All right, I think that's my queue.
43:53 Derick: Yes, yes.
43:55 Jordi Boggiano: now just just not of curiosity who is gonna work on the on the tool then the nameless tool. Would that be?
44:06 Andreas Braun: the tool
44:08 James Titcumb: nameless tool
44:09 Andreas Braun: the nameless tone
44:10 Nils Adermann: Of derick's the one doing the actual
44:10 Roman Pronskiy: a little bit
44:11 Nils Adermann: work is the plan.
44:12 Jordi Boggiano: Yeah, yeah, that's what I'm doing.
44:13 Derick: No, no.
44:15 Jordi Boggiano: This is Andreas.
44:15 Derick: I I we don't know actually we haven't
44:16 Jordi Boggiano: Is that you okay?
44:18 Derick: really spoken about that it is Not very likely that it is me writing PHP code because that would not be a good way.
44:25 Nils Adermann: Yeah, okay.
44:26 Derick: I think.
44:26 Jordi Boggiano: Yeah.
44:28 Nils Adermann: fair enough I mean
44:28 Jordi Boggiano: I think
44:28 James Titcumb: agreed
44:29 Nils Adermann: You're more like organizing it.
44:30 Derick: Me. Thanks Andreas. I heard that.
44:34 Jordi Boggiano: everyone nothing hard like
44:34 James Titcumb: that was me.
44:35 Andreas Braun: that
44:35 James Titcumb: That was me.
44:37 Andreas Braun: it would be a waste of your valuable time. That's what I was nodding towards so.
44:40 Derick: Yeah, sure.
44:40 Jordi Boggiano: exactly
44:43 Derick: All right.
44:45 James Titcumb: I mean if if no one else mines, I mean, I'm quite happy to spend some time on this so
44:52 Nils Adermann: That sounds fine to me. I don't know Roman and how far you plant anything else for James, but I think you didn't write like this.
44:57 Roman Pronskiy: Yeah, I think we discussed it with James. It was part of the plan.
45:00 Nils Adermann: Okay, cool.
45:01 Roman Pronskiy: So James would help with this as
45:03 Nils Adermann: Yeah.
45:04 Roman Pronskiy: well.
45:04 Nils Adermann: That's that's good to me.
45:06 Jordi Boggiano: Okay. Well then James, you know where to
45:07 Derick: right
45:09 Jordi Boggiano: find me if you have questions.
45:11 James Titcumb: The nearest whiskey bar, right?
45:12 Derick: Yeah.
45:16 Jordi Boggiano: I wish.
45:18 Derick: Don't get me started on that. I mean Caden had said this but that
45:23 Roman Pronskiy: Okay.
45:24 Derick: is a discussion that considers Norm of you except for James and maybe Jordi. All right, good talking to you. We'll pick this up and I will see
45:33 Andreas Braun: All right.
45:33 Derick: some of you soon enough.
45:34 Jordi Boggiano: Yeah.
45:37 Andreas Braun: All right.
45:37 Jordi Boggiano: Yep.
45:38 Andreas Braun: Thanks everyone.
45:39 Jordi Boggiano: Thanks.
45:40 Roman Pronskiy: Thank you folks.
45:40 James Titcumb: Cheers.
45:40 Jordi Boggiano: Bye.
45:40 Derick: All right.
45:40 James Titcumb: Thanks.
45:41 Nils Adermann: know
45:41 Andreas Braun: Bye-bye.
45:42 Roman Pronskiy: Bye.
45:43 James Titcumb: Take a \

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment