 So good. Shall I start? Okay. Okay. All right. So I, I like for this meetup. Okay. I want to talk about, you know, two of the recent modules, which I've contributed or worked on. And those are what's like in. Okay. One is the ignition error pages. And next one is the documentation generator. So just like, I observed, you know, two very common, like problems or issues. And then I thought about, you know, contributing these modules or like collaborating with, you know, other contributors to work upon. So I'll just take like five, 10 minutes to quickly show you, you know, what these modules are, what they do and how they help you out. And like main reason of talking about, you know, in these meetups or like any other, you know, events is to, you know, gather more feedback around the around these modules. How do you use, how, you know, these can be improved or what all alternatives or do you use, you know, in your projects. So I'll start with the first one. First one is ignition error pages. Most of you must have like seen or might be aware of, you know, this library called Ignition, which basically, you know, works with works well with symphony and Laravel projects and the name of this library is to, you know, beautify your error pages. So like this is the like a sample image of the of the error pages you must have seen like in Drupal, we just get a, you know, website accounted error and that's very not at all a good UI. As a developer, we can, you know, figure out the like, okay, we have to go to our watchdog or we have to check logs to get more details. With the help of this like package, you know, you get a lot, a lot of information and since the UI is good, you are, you know, always up for consumption and in a way it enhances your debugging as well as development skills. So this module is simply, you know, integrating this ignition package with Drupal so that we don't have that ugly error pages anymore. So once you install this module, you get like two very simple configuration, like you can enable disable it and then there is a dark mode, if that's what you prefer. Although we have a enable configuration, but then, you know, recommendation is to have this disabled in production altogether because wouldn't want, you know, your anonymous traffic or your production to, you know, give hints to, you know, like all those who do security attacks or your user to see this error pages. Okay, and right now in this is, this is my local website, and I've already, you know, modified code a little bit to throw this like exception, so that we are able to, you know, see ignition action. So once you do it, and this is the like the error page, you know, you get, you clearly get, okay, which line is throwing the exception, and then you get a very, you know, beautiful like stack trace. So you will see like, okay, what all is happening as, as you know, Drupal being a PHP app starts with index dot PHP then it goes to this class this class then your middlewares come into an action you get to know a lot of things about okay how your code exactly reached at that point. And to achieve this earlier you had to, you know, either set up X debug or some other sort of tools, but this package is just, you know, install the module enable it, and your error pages are like very beautiful. And it's not just about like getting info of this error, you get few other like useful information as well such as you know headers, which can be very useful. Let's say you you're debugging some issue related to you know varnish or you're in any other CDN, then you have to rely on various Chrome extension or any other tools, which gives you information of header. So that you know you can debug it header level, what what's happening with your cache. So it just simplifies everything. So this is the first module. Right now we have added a description and actually Kevin Kevin is another contributor who came up with the idea, who did the initial integration and then I have worked on it to you know add those configuration, as well as documenting it better. It's already ready and it can be installed and you can check only issue right now is you can see, we don't have a stable release right now we'll have it soon, but the main problem right now is, it will only work with Drupal 10, because this package ignition. I think it relies on symphony I think five or six and Drupal nine we are just I think is compatible with symphony for only so it will take up a lot of effort to make it work with Drupal nine and I'm not sure if you're going to do that. But anyway we will have Drupal 10 and I think five six months or maybe like you know, based on last timeline which I checked. Once that is there, you can you know have it in all your website, so that your error pages are beautiful. So that's the first project. So should we talk about right now have a Q&A because if I start talking about other module, then it might get confusing. So any questions, any feedback around it. I don't have a question but a statement. It is very cool. I'll definitely be looking at adding this into our back end stack. Okay, thanks. And another question which I had like, which I'm still you know checking up with various other user. Can it impact the way you know the 500 error pages are displayed, or can it somehow be used in production as well for you know beautiful 500 error pages or something like that, or anything you're doing right now. Could this be used by support, operational support websites to sort of trigger, trigger, you know, work or tickets, tickets to work. No, I didn't get your question like, are you saying whatever error it displays should be logged somewhere so that those can be resolved easily. Yeah, so these. Sorry, I'll rephrase the question. Could these errors ever appear post the site going live. Okay, I've been multitasking. Do you get my point Greg. Yeah, but sure, sure. Yeah, I'm going to give you an answer like response which is actually the reality you're going to scare people away if you show these errors. So the, the reason why the module has the enabled textbooks there and it warns you that you shouldn't enable it on production environments is that if something goes wrong, like with a module with your code, it usually throws an error, which end users should not be seeing and there's multiple concerns there. And the last thing is that it also some of these error messages might disclose information information that you wouldn't normally want to disclose to people. But this is a more beautiful way than the standard way of displaying these errors and a more useful one. That's, that's the point. So it could be used as part of QA and or possibly is there a way for us to hide the error information. So I include permissions in there so only like people from the service desk and see them. Yeah, like it like I get two questions. So one like will it help QA people for a better, you know reporting better testing yes, because now they have more information. And it is mainly meant for developers. It shouldn't like you know interfere with your QA test if QAC is this then it is probably like you know ticket rejected because that this clearly shows an error. Thank you. Yes, it is like think of airbags, you know, it is a good airbag. Now we don't like okay. Let's say you know like those come into picture whenever there is an accident only. So somehow you can you know, related with that it is something let's hope doesn't come into picture in production or something like that. I'm thinking out loud. So thank you in advance to everybody for their patience. Could this tool, could this be used as a tool as well to triage. If there's, if, if a website is down or something isn't working right to try and figure out what could be the possible root causes. Yes, yes. Okay, cool. Thank you. I'm with you now. Gaurav, I was just going to ask you about, like, what, what, what was your motivation to create this like were you continually doing projects and you know you thought oh gee I wish I had a nice like error page or how did it sort of come about like in terms of its need. Yeah, so I was working like I was exploring Laravel for another project. And in that, you know, there I saw this error. So that's when I thought of okay, this can be done in Drupal and when I, you know, Google ignition error in Drupal, somebody already you know had contributed this project, like a few months like you can see 29th of Jan only. So, so Kevin must have also, you know, got this idea of integrating recently only. So from that's where I, you know, got this motivation by working on one on a Laravel app, because that was displaying error very beautifully. Yeah, great. And, and just, just so I get a feel for, you know, the contribution space and every contribution is different. I can understand and appreciate that but how much of your own time would you have invested in this particular contribution, just roughly. Not much, I think you can like it, not not even a week I think to integrate it and get it running. So, you can see not not a lot of code base actually there is just one main event subscriber, which is registering your ignition. And it is just, you know, ensuring that configurations are respected. That's it. So it's a very simple contribution, but I believe it will be useful. And maybe it's a weird question but we would you envisage like a lot of further contribution to this like new features, whatever it might be. Oh, where could we take this is probably my open question to you. Like would we take this project forward? Yeah, like feature wise is to envisage a whole lot of new features if you only had time you can put them in or is it sort of, you know, self contained as is what got a feeling for that or not. Yeah, so let's, it depends on the main library itself. Let's say, you know, if that library builds new feature, then those can be integrated in this module as well. Let's say dark mode. Dark mode is not like a something which you know definitely need for this. So, so the main library, I'll show you the link for that this one. So if they keep on adding more features, we can you know add configuration in our Drupal module to have those. And that's how it goes. So there is one very good production mode as well, which which we are exploring. The production environment it kind of you know, gives a complete blank page. So that is something we can we were thinking of integrating. But then we were then, but then we thought, okay, it even if it's disabled and like if the module is disabled in production that also does the same thing. So this library will, you know, further define how much we can contribute on this project or what should we change. Great, thank you. I didn't show you the dark mode that's just like, can we toggle from here as well. And you can keep it enabled from your setting as well. That will just show it the dark mode. Okay, any other questions around it. I'll move to my next module then. I'll go ahead then. And all those who have joined recently I just talked about ignition error pages module. That's machine name ignition, you can check out the page, and you will, you know, get all the information, whatever I talk about. We have a question from Cameron on the on the chat and it says symphony has the pretty exceptional exception handling why what was the reason you didn't use symphonies exception system and you use this instead. Okay, okay, I haven't seen that. And I think it does. Like, as I told you, I checked the Laravel app, and Laravel was, you know, integrating this library. And this library was also in the top trending PHP libraries. That's why I thought of, you know, going with it. But yes, if symphony symphony also has something like that that might be a very easy integration in Drupal. And if it works with symphony for it might make sense to go with that only for now. So that's more of a, even that would be I think like open source as well like symphony or whatever that library has, we will have to, it then boils down to you know this repo versus that repo. What are advantages, what's what's different between them. And then only we can take a decision so this one has like I think 150 stars and not like, we'll have to check to compare it that way. Any other questions, okay, I'll check the chat once. Okay, no more questions in the chat. I'll move to my next project then. Thanks for you know all the feedback around this and I'll I'll explore that symphony error package as well. All right, so next module is let's say you know, this is the documentation generator. So basically solves you know two problems. One is one is like a knowledge transfer. Let's say you know you get a Drupal eight or nine website which has already been developed. And now you have been asked to you know, build new features in it or do a support and maintenance of it. And you have to you know, go install your website, go through all the content types go through all the views and go through all the taxonomies custom entities check out all the modules which have been created. And then only you are in a position to you know, do further development on it or debug something. So this takes up a lot of time and we have to you know, check out a lot of a lot of things for that. So that's one problem. And second is let's say you know, you have completed a website. And now you want to hand it over to your like content creators or editors. And you want to sort of you know, generate a CMS documentation or any kind of information which will be you know, helpful for them to understand okay what all has been developed in the website. So to make the to solve these two problems. I saw this module documentation generator it was already developed by someone but it was a sandbox module. So I took up the maintainer access for it and you know, fixed it for the group of eight and nine and added a stable release as well. So I'll show it to you let's say, so this is my website Drupal ABC dot XYZ and just ignore the ads for now. So I've installed this module and this is what this module does. You get a complete overview of your you know, the architecture of your Drupal website in single page. So you can see, it starts with taxonomy vocabularies right now I only have tags, and then it gives information of all the views, which are there. Then menus, and then you know your roles, what all roles are there in the website, what all content types are there, what all fields are there, whether you know fields have a description or not that also you can get that hint from this you know, this overview page only. And so this is what this module does. And let's say you have to you know, export this information so right now it does to integration one is with word. And one is with PDF so just simply generated I'll show you one generated PDF so you get a document like this of your website. And this information can be you know, used for for a for a knowledge transfer for handing it over to different developer or for final finally handing it to your client. Even if like let's say this document you know cannot be used as it is, you can you know copy paste information from this and prepare your CMS documentation around it. So this is what this module does, making knowledge transfer and you know, handing over the website are very easy. Other than that this module has okay. So, all the information which you saw, like taxonomy views menus, they are like sort of like plugins, which have been already written in this module, you can enable them disable them and the best part is, you can you know create your own plugin let's say custom information about my website, you have created that plugin. And once you add that plugin and enable it, your documentation gets improved further, whatever information that plugin is returning also gets added to this overview page as well as to the PDF document. So that's like a single tool to, you know, to document your website very easily. Plugins I've shown you and then there is a simple. Okay, then there is another option for you know disabling elements, let's say, if you want to hide something from your documentation if you let's say I don't want people to know about you know book content type, or that was just created for experimental purposes and I don't want it to be part of my documentation I can just uncheck it like disable it, and then it won't be shown. So this is what this module does right now like added like, you know made stable very recently only. And there are a lot of ways of solving this problem and every team prefers doing it their way. But to have a generic solution, this is what I came up with. And yeah, so, so that's the second module. I wanted to talk about any feedback or how we can improve it further or how you are doing, you know documentation that would be helpful for me. Where does it pull the information from is it like see how, when you create a content type it gives you it allows you to specify a description that when content editors create content of that type they see the guidelines sort of is that what it pulls and it adds there as information. Yes, yes from whatever is already in the CMS it will you know pull from there only let's say content types, and then it is just showing you the link. Then there is one content type article and this you are this description use article it is already provided by the developer or by anyone else when creating this content. And same goes for description as well. Just as a recommendation if I recall an old module it was called admin notes or something like that I'll try to find it which allowed, allowed the site builders to actually take notes of the things the way that they were configuring them. So maybe you can consider integrating that I'm not sure if it was ever. I recorded to drop late and beyond remember using it at some point for triple seven. But, but having that all that information from individual pages that the site builder may have added in a single report that that sounds something useful, like as I reported. Okay, thanks. I'll think about you know check that. There are other modules as well, which were you know, like I saw one module, which doesn't like give you information of this but allows you to you know edit all your description and from one UI. So, so that's also like another related module. But main purpose of this module is like making you know documentation easy. All right, any other questions around it. Oh sorry coming on. Sorry, you can go on. Thanks. Is there an API or some sort of a hook that allows to programmatically inject different documentation that we will if you want to specify something extra. Yeah, so, as I mentioned, these are like the enabled plugins. Okay, so you can create a new plugin. And then that can be used to you know, like add more information for modifying you will have to modify the existing plugin, or maybe check how you know plugins can be extended. I'll quickly show you one, like, okay, if you go to source code. Yeah, there is a sample plugin, you know, added in the module file. So, you can you know, indicate, okay, this module has to be there. And then basically there is this elements area where you are, you know, collecting all your information, which has to be shown. So, simple, like, you know, just add a new plugin and your whatever information that plugin is providing gets becomes part of the documentation. Yeah, so in the long run, let's say if this if this becomes a successful module or, you know, then let's we had hook help in all our modules, and we are doing various other things. So, maybe other developers would be encouraged to add this plugin as well. So, so that you know, our website is documented every time. Sorry, maybe I missed this. What's the use case for this as in like, what, who is the intended user? Is it a developer or is it more documentation for site admin? Who is it? Both actually, like, in case of knowledge transfer in case of, you know, moving website as a support project. And someone else if someone else is picking up, you know, support or maintenance of a project, they would want to quickly know how the website has been built. So it's useful in that case. And overall it's giving you a, like, it's a tool to generate CMS documentation which can be used by site admins or any other stakeholders. Yeah, thank you. Can you post the link in the chat please? Sure. All right, thanks, everyone. I don't have anything to add. You can, you know, collaborate with me anytime later on or check with me. Thanks, Vera. Brilliant. Thanks. Maybe we stop recording now. Okay.