 Do I can I actually see the clock as well? Okay, awesome Hi, everyone My name is Juliette Reindersformer, and I'm gonna talk about dependencies for plugins and teams How many of you are into users of WordPress? Have an own blog or website built with WordPress Nearly everyone How many of you build teams? Good for a few. What about plugins? also good for a few Well, anyone was developed for WordPress might have come across the you know hang on I've built an add-on for something else Now, how do I make sure that the actual something else is installed? You know feeling And what about how the end user feels if you ever thought of that an end user goes and looks in the repository and Goes and hang on. That's an interesting plug-in. Let me install it and They install it And they go it doesn't work Well most end-users at that point quit they just uninstall remove the plug-in Some might think hang on didn't it give an admin notice and say you need something else Go back to the repository search for something else install something else All together it's a very frustrating experience So I think we should solve this What sort of dependencies am I talking about dependencies between plugins and teams? This might be a child team which has a parent team but this might also be a Plug-in like a bb-press add-on which needs bb-press to function or a bridge plug-in Which needs Yoast SEO and ACF To function and there's thousands of examples where this already happens. These add-ons are there. They exist Ignoring them. I think it's a bit silly because we're ignoring a reality And I know it's not an easy problem to solve There's quite a lot of complicated factors there But the fact that it's difficult does that mean that we shouldn't attempt it? Are we so complacent that we only want to solve the things which are easy? Or should we at least try and make that part of WordPress? More user-friendly as well. I Am fission that if we solve this we will create a new spring for the development of the wordpress infrastructure around WordPress some teams and plugins Basically something like the rest API which is now going into call when that was being developed For add-on plugins which needed the rest API to be there It was really difficult to say hang on but we need rest API So you need to install the other plug-in before this plug-in can work I am fission that if we solve plug-in dependencies that Those kind of situations will be easier and that it will actually accelerate Creation of new features with new possibilities for something like the rest API even before it was merged Sounds good Okay, now some of the problems we run into when you want to solve it is first of all to make it the most user-friendly We need to have information available about dependencies Before a plug-in or a team is active How do we do that? Do we add an extra line in the header? But hang on I mean if we want a little bit more configurability Than just a name of a plug-in That's not enough. We might want to add a minimum version. How do we do that? So we need to think about how to make that information available Can we adjust the WordPress API to provide that information? What about dependencies of dependencies? So that's an issue we need to solve Another issue is figuring out whether something is active If something is installed it might have been renamed the folder might have been renamed By a user so we don't we can't reliably use a slug To determine whether a plug-in is active It might also be installed as a library shipped with another plug-in Again, we cannot use is plug-in active to determine whether something is active and what about must use plug-ins No concept of activation so Interesting puzzle to solve that as well and then next thing Let me find my train of thought and we quickly grab at the ring The next thing is that we actually need to make sure that the user interface is user friendly How can we make the user experience for this as friendly as possible? Should we make it invisible to the user? Should we make it visible so they have the responsibility. They know what's going on but you see Where do we draw the line and The short of it is we need your input for that There are a couple of projects which have attempted to solve this puzzle Well any developer knows about composer, but composer isn't really suited for WordPress Another project which has tried to solve it and full disclosure of being involved without one is the plug-in dependencies plug-in But for that plug-in to work and and to give information about plug-in dependencies. It needs to be active itself So that doesn't really work at this moment The next one is TGM plug-in activation again full disclosure. I'm involved with that project as well TGM currently is used by an enormous amount of teams and plugins already and One of the problems you run into at that point is that you get conflicts between different versions included with teams and with other plugins But what that solves is the installation and the update process for plugins and teams which are required and dependent on So there are a number of Projects out there and none of them solve it completely So what I propose is that we mix and match pick the best bits out of each of these and Make a hybrid which might be suitable for core Who's with me? Anyone want to join me in this project? Tomorrow I'm gonna be at the contributors day and I very much invite you to join me there I'd love to discuss Well, I am fishing how we can do this to get it with you get inspired by your ideas and Maybe work on this together with you to make this happen Thank you