 Yeah, it's begin. Okay, cool. So yeah, so this was the configuration that we seen last time, you know, except from the JSON schema where we left off. So I'll just put in some value source message would be hello world. Okay. Okay, not that. Yeah, so put a maximum number of data say five and launch time out and SSH TCP no delay. I think it's a part of the configuration and you hit submit. So yeah, this was the page that you did not see. So this is these are two actually editors. So once he hits the, you know, generate configuration button, you'll get to editor. So one editor plays the configuration that we just entered. So messages, hello world, you set values and up. And this is the schema that we plan to generate. So this will be the jcast schema, and it will give you the option to enter. So suppose if I forgot in some configuration, I want to customize it, it will be allowed to customize it here. So this editor is an open source editor. It's an AS edit. And it gives you the gives quite a lot of flexibility and what do you want to put in and what do you want to configure. So this will be the initial jcast. And the second one that we have to generate is this one, the package of configuration. I mean, this is the this is the one that goes into the CWP that tomorrow package to be able to generate the custom bar package. Now this one is picked up as an example from Oleg's repository. And as you can see in the HTML URL right up here that you can see example.yml which picked up from Oleg's repository. Now we would generate this because obviously you cannot generate any sample or we can put in some default plugin as a, you know, as a base, but we would like to generate this from all of the plugin. Right now, this is just hard coded in the back end. I'll be going over the code in a few minutes. So I'm just showing you the demo first so that we know what's happening on the front end. So we got to generate this. So using the plugins group ID artifact. And I'm guessing that we can do this using the, you know, the plugins that he configures at the start, you know, he can just go in here and configure some of the plugins. One second, I think I'll just. So, there's two blue Texas card is editable, right? I'm sorry, I didn't understand. I mean, there's two demo text box is editable, right? Yes, both are editable. So if at all you want to edit something here, like you want to put in say this is, you don't want this to be, you want this to be false. Yeah, so this is editable completely. So after we generate this, you know, the user can edit as much as he wants to edit. So, okay, so once we generate this, the user has around 123454 So he has four options to download whatever he wants. So initially he can download the jcasc. So as soon as I hit download jcasc. You can see on the bottom left, I have the casc. So this is generated from here. Whatever the user entered here, he can easily just download and I opened up in my editor, you can see what we just entered is picked up here. Okay, so that's the first thing that he can do. He can download the yml. What another thing he can download the war file now downloading now as you can see I'm just going to open up my terminal. This is the server that's ran. Okay, so when I hit download war file, as you can see, you should be able to see it. Yeah, you can see the terminal right here. It starts the generation of the water. So I've included the library inside. And this one generation takes quite a long time because I'm not sure how the CW we work internally but the bar file generation takes quite a bit of time. So when you hit download war file, it starts building and once the build is complete, once I've done all the pulling, it will give you the option just like it had to. I mean, give me the jcasc yml. It gives you the option to download it. So I'm not going to wait for the entire download because it takes. Yeah, obviously the jcasc it give you an error because casc yml is not defined. I've just downloaded this and I'm not put in the correct position. So obviously the custom war package. But yeah, take my word that it does download the war package. Yeah, so two things done and you can also give the option to download the Docker file. So I see WP also generates a Docker file. And once the generation is complete, you can just hit download the Docker file and the Docker file also will be downloaded. Okay, so these are the three main options. I mean that we discussed in our POC, the start of the project, jcasc yml, war file and the Docker file. These were the three things that we needed to have in our, in our, in our project. And that those three things are there. This one takes a bit of a concern why because it takes a lot of time to download. So we'll have to come up with a way to, you know, show this time or time or whatever. But first I'll just be through the POC. So after this I'm talking about the people request right now because that's a bit of a another feature that I'll talk about. So yeah, the next option that they had demanded in the last and demanded in the sense suggested in the last video that we have is the prebuilt configuration. So yeah, these are the prebuilt contract picked up from the formula. I think next library, like repository has all of these formulas. So I've picked out all of these formulas. I've just put them in, you know, just most used, highlighted and just arbitrary. They're not, they don't actually mean what they mean. So we could have something like this where the user is on a set of configurations that are popular, most used, highly rated, and he can, you know, he'll get the name. I didn't get the description because I think the libraries don't mention the repository doesn't have a description for each of these. If you had a read me, I could have included each of them here. So that's not there. So I've left it blank for now. But yeah, as you can see, you have these three options where you will have all of the three, you know, ways to pick up configuration. And the other thing that you can have is right on top is what configuration are you searching for? You can have a search button. I'm not too sure if you can see properly. But yeah, search button is right on the top. I'm not if the function is not implemented, so if you put m6 doesn't come up. But yeah, you can have a search bar where you enter maybe configuration as code and it will show up all of the, you know, configuration that are already there. You can pick and, you know, choose. So right here, if you click view, I think it will take you to the, yeah, so if you can see, it has pulled in our previous JKS for ML file and it has pulled in this library. So Alex repository configuration. So as you can see zedge.vimel, this was the one that is actually printed in the repository. So as you can see his entire configuration is up. And the user can just enter whatever version he wants to enter, say 2.14.50 or whatever. So this gives us a cool neat feature you can see with the other configuration as well. If you see the cask plus pipeline plus ks, you can have that one also. So it immediately enters the name of the YML. So the user is not confused as to why ML is being loaded. And he can entirely, you know, edit and download whatever. So if he downloads it, you will get this entire one again. Probably I've not added a feature to, you know, download this file as well, the package, but I don't the point of downloading that because anyways, he's going to have to construct the war on his own. So I don't see the point of loading this one. But yeah, I think you can just have this one as well. So this is the other one. As you can see, so if let's choose any one out of the blue ocean plus mighty grand pipeline. Cool. So if you can see this, you have the create pull request feature. So now when you click create pull request, it'll give you two options. For now, I want to tell you how this feature is designed. So what I've done is I have a bot that I think it's on time. Yeah, it is called the Jenkins checks API bot. So the Jenkins checks API bot was created actually for my previous demo that I was showing to when the GSOG community bonding was going on. So this is the bot. It's an app actually. So Jenkins API, we can rename this to Jenkins custom distribution service. So what this app does is on behalf of the user, it will create a prequest in the Jenkins repository as we discussed. Initially, you could always obviously support private configurations, but initially we would love to have them at least save the configurations to the GitHub repository. So what I've done is the Jenkins checks API app just creates a pull request for it with the contents of whatever we want into a repository. So now I've just used sandbox. So sandbox is just a sandbox test repository. So what I'll do here is I'll show you on the front end. I'm going to put in I'm going to put in the pull request description. So this pull request is purely for demo purposes. And the branch miss, you know, maybe new branch demo. I'm not too sure this will work. Let's hit some. So yeah, reload the page and it'll give us. So as you can see here, we've got the pull request link as well. So when you click the pull request link, it will take you to the pull request page, which is, yeah, here it is. So this PR is purely for demo purposes. And if you see the file change, yeah, you have the entire, you know, the pull request. With the entire package of configuration. And you can have the jcast. Why am I not going to put it here, but you can have that as well. So, so this creates the pull request. And then once the containers up, this will be merged into the main repository. Can even give the pull request change. That's just a Maya feature, but yeah, you can have this configured as well. And you can have the author configured as well. So then the doesn't become Jenkins checks API. It becomes maybe Christian or maybe so it depends on whatever the user wants to enter. So let's go back to the local host. Yeah, okay. Yeah, that's about it for the demo. So you can even create pull request from your with their description and this and you can submit it. So yeah, that's just a prototype of what we planned for the entire application to maybe look like. So any thoughts, any ideas of the file we have been talking on for too long. This is awesome demo, I think it's great. How do you think Christie. I thought it was pretty interesting to be able to see everything and like it just being able to hit button. Yeah, that's cool. Yeah, yeah. Okay, so that was for the demo. This was maybe obviously you got to improve it on a large scale but yeah, this was just a prototype. Yeah, exactly. We've got plenty of time the curtain phases to be able to improve or if you want to polish or like polishing and figuring out how. So there's a lot of getting coordinated it's not built for maintainability purposes but yeah I just got a POC within a week. Yeah, so some of the questions that we would like to address that are valid in the agenda before we go on to the next step. So currently I've just been using pure vanilla JavaScript. I'm not a frontend. So what is your opinion on just using plainJS other than any framework. It keeps it lightweight and maybe encourage people to contribute as well. What do you think? Like instead of using React Angular. Any thoughts on that? Yep, go ahead. Currently I think it's totally okay to use plainJS rather than any other framework. Because there isn't too much sense in this tool. Especially it's just a POC project. The most thing is, we don't need to spend too much time on this project until we have a real project, I think. I was talking about the real one and I think you misunderstood my question. For the actual one, do you prefer using any frontend framework for the actual project and for the real one? Do you think it is? I mean, currently we just do some research on this area. So your question is, do we need a framework in the actual project? Yep, that's my question. So my opinion is that you can do some research like if you can like using plainJS is totally okay. So you don't need to use any other framework. But if you met some technical problems, which is not very easy to resolve by plainJS, then you might need to choose a JS framework. I'm almost of the opinion that you should use a framework. I actually think that would encourage more people to work on it than if you just use plainJS. And I know that sometimes a common complaint about some of the Jenkins stuff is that all the UI pieces feel very outdated. So being able to use a frontend would help make sure that you don't have to create elements in scratch. And it would just end up making the work of like actually putting the frontend together easier than spending a lot of time working in individual components to make things in the framework fairly easily. And then it can be you to focus on the more interesting problem of trying to get the YAML to work. I think I have some thoughts with Christine. We need to leverage the benefits from both plainJS or JS framework, especially on current stage. If you think you can implement some PLC feature in plainJS, so you just do it. Or if you think you can choose a JS framework, I think it's okay. But you still need to consider, I think that in most cases you still need to choose a JS framework in the actual project. Yeah, it's completely fine. I was just asking because it would be better for me to get an idea before we actually started and otherwise crap it and then start again. So yeah, perfect. So that's the conclusion I agree. I'm not going to add the conclusion right now, just put it so that we can move on to the meeting and not get stuck up on the framework. Yeah, so I think the last meeting when Rick wasn't there. No, I think he was there. I'm sorry. How do we handle the update of plugins? I couldn't understand the last time maybe you could cover me with some insight on this. So should it just be including the custom Y against configuration? I mean here or how is the update of plugins handled? Could someone explain to me? I'm a bit confused. Any one question Rick? Do I need to submit any patches to custom to the plugin installation manager or anything? This is a tough question. I can't give you a specific answer about this because I tried to do some research on the consumer project. There are too many plugins that exist so maybe it can be your next POC feature like in your page you can allow the user to choose some plugins. Then we start to think about the worsen problem deeply. But I think we still need to let the user choose the plugin and worsen. You can choose it currently because you can see if you can see here you can still edit the version. Please go back to the home page. There is no extra choose. Maybe in this picture you need to give some options that user can choose. For example, users can choose kubernetes plugin or SSH agent plugins or other plugins. Oleg suggested that we should just pick up the latest version. I will say that if you start getting to different versions of plugins, it might be confusing. What were you saying? If we use different versions of plugins, it would become difficult to manage. Could we just pick up the latest version? It is very difficult to make sure all those plugins are compatible. We had a whole project last summer trying to deal with the dependency matrix of versions of plugins. Eventually it was supposed to be pulled into jcash in order to be able to see downloads of versions and their dependencies. I don't think it is bad to default to the most recent version because that is what changes the behavior is going to be. It will take whatever the newest pieces are and then we can try to figure out how to leverage everything else. I don't know if we need to solve the world here with trying to do dependencies. I think for the initial round of trying to figure this out, we should start with whatever is latest and then work to specifying numbers and then seeing if that is going to change. I can imagine that this is just being read from a certain place in the POM. If you have a version, you will see it is a download that specific POM and then we won't worry about trying to download all dependencies and try to do everything. Whatever is specified in the file is what you actually want. Let's start with just latest for now and then we can just try to build the future in mind. I feel like this is like end of phase one phase two. Okay, cool. So yeah, that's completely fine. I mean, so yeah default would be just choose the latest plugins and then as and when we finish that I mean attain a certain level of comfort and using that for now. Yeah, when we go ahead, we can just give the user an option to choose whatever configuration wants to choose. Okay, so cool. If we can handle the update of plugins and sorted the frame of question. The next question would be storing private configuration. So like express concerns regarding a database. So I would just want to get some of the high level technical data. I'm not asking too many technical questions here because that would be determined as and when we progress with the coding case. So I would just want high level technical data so that we just don't change, you know, major parts of the workflow during the current day. So one more thing was should we store private configurations. So it would involve, you know, having a database. So should we include a database here or just, you know, just like this feature here. You see, you can just view the configuration or just, you know, along with options we could provide an option to the repository URL and you know just make a full request to that URL. So that you are in his fight whatever in his branch. What do you think of any thoughts of that. If you can connect to get half with this project like a guitar integration. Maybe you can post the first directly to a private repository. You might need to, you might need the personal token of Github or Johnson. That was the concern actually, you know, storing personal tokens and hence we have this entire the app, the GitHub app so that we don't, you know, bog down the user with that, you know, don't tell the user you give or what and we will put the configuration. So that just delegated to the app and the app will do whatever I mean do the necessary. So that was my thinking behind it if you have any other thoughts I'll put them down. Maybe. It's cool that if you can make a mechanism or interface about how to start it started the configurations. Maybe the. Maybe you can give it one or several implementation. And if someone want to extend it. So it will be possible. Yeah. Okay. So this is quite good. Anyways, so the last topic that last question that I had for the others was, should we provide a login or the start this was a question that I was thinking on, should we provide login or from the start or just allow all users to configure. So if you go to this page, it doesn't ask you for any login or an order and it just lets you configure. I mean, obviously this would not be the initial home page. The initial home page would consist of a set of plugins and configure, but do you want any user to configure or do you want us to, you know, provide an authentication. I mean, you just use Google or GitHub or and, you know, provide an authentication for every single user. I don't know how useful that information would be because you just get the username. But yeah, what do you think about that? I don't know. My opinion is we don't need it, but yeah, still open to ideas. Yeah, we don't. You're saying we don't need it, right? Yeah, exactly. I don't see any reason for having the, you know, I don't see any reason for us having the or because we would just get the username from the user. You may save the data into like a browser. Yeah, I mean, anyway, yeah, we would have to save the user because client configuration we would, you know, need to save the, I'll show you an example. So for example, the user is configuring this plugin. Okay. So he enters 45 when he enters 23 and, you know, hello world. And he hits save because he can't submit it right now. He hit save and he wants to configure a different plugin. So all this data has got to go somewhere. So we might need to, you know, this is would be stored on the client side using a redux state or whatever. But yeah, it would be, I don't know, we don't need it actually. Any of you have too much experience on the just framework, but I heard it's pretty easy to, to start the data into browser like how to say says and storage or local storage. I mean, maybe you don't need to do you don't, you maybe don't need to do much things on this. Right. I think this might be a place where you can highlight the fact that it's easier to deal with the framework because like Rick was saying that, you know, we don't have to try to reinvent something that's already been, we can either use a model for or like another package or something else is already, I guess, created. Another reason to use a framework. Yeah. Yeah. Anyway, yeah, yeah. Okay, cool. This was, these were some of my major questions. So apart from this one, the one question that I had was regarding this. Yep. So creating a pull request. So there are two ways to do this. Actually, I have done this currently using the app. So do you want me to take the token of the user personally or ask the user or provide him an award here so that, you know, he and there's a token or just put an app like this. What do you guys, I mean, obviously we don't have to do this now, but if it were to be done that way, we would have to include a get a board at the end. So any Yeah. Yeah, that we could just leave that later. I mean, yeah, just doesn't need to talk about right now when we get through it. Yeah, so what are the next steps you think so the POT is ready. It looks, it looks pretty okay, but yeah, I understood a bit of the workflows and stuff. So what do you think are the next steps. So this is where I asked mentors important advice, advice time. Yeah. So next episode, most important question. I want to talk about the second question. Please go back a little bit. Yes, yes, yes. Yeah, let's grow up a little. How to handle updates of plugins. I know it's, it's a little bit difficult to deal with Many plugins were there. But we We might can consider another solution is that we don't give the users a blank ui page. I mean, you will give it a simple In your case, like Like Like a pre-built formula. If the users can Change it and Change the plugins for them or add a plugin Or change the configuration She can save the The formula to Like Give it another name. Like maybe the I mean, we, we allow the users to modify the formula Yeah, exactly. And if there's the Conflict between different plugins for them. It is It is more easier to handle it because they are They are not too many different Maybe you're letting the user for entering our home. Maybe he just Change one plugins for them. So the problem is very obvious. Okay. Yeah, so actually, yeah, so that's why we've provided the prebuilt configurations page, you know, just provide the user with a With a prebuilt configuration and he can enter whatever we want. So yeah, obviously that that solution already exists right The prebuilt configuration maybe we could move this up so that, you know, instead of letting him choose the plugins, you know, you could provide an option that, you know, we have a Prebuilt configuration page you could go and move your plugin from there and then he could maybe just choose and edit from from here. So yeah, cool. That's a That's another solution. So I'll get it. Yeah. I mean, Maybe start from zero is In nonsense. Like, why, why do you want to start from zero? Like, why, why, why does the user will start to Oh, yeah. Okay. Start this like a distribution from zero. Yeah. Why would you build a configuration from zero? Yes. Good, good, good question. Actually, I never do this though. Question. Why would you build a configuration from zero? Okay, cool. Yeah. I was like, oh yeah, because you know when you install like the, when you if you're searching and some scratch and you go through the setup wizard. Maybe that's like kind of where we need to go. Like, like you figure out which that's a good face configuration. Yeah, it was I put it in my proposal as well, you know, you could have the setup wizard install a set of plugins. Yeah, maybe maybe start with the default. Start with the default for you saying Configuration And then and then move forward. Before I get the conclusion, I better put it here. So we can maybe start with a default set of plugins and then move and then let the user decide. Cool. Okay, so that's that's that. Also, another you mentioned that how would the, so how do we get the plugins? I think the update center provider with the plugin name and the latest version, just pick up the plugins from there. I don't know that happened. No, those are, I think hard. Like, because they've been kind of study to do some of the best one of the ones that are most commonly used by people who are Using using Jenkins. So you can think there's a problem with this, especially if you're setting up a configuration for people to use later, just default to use in the latest and then you can just provide them a preassembled list of Okay. Okay, got it. Yeah. Yeah. Okay, so, so for the next steps, so since we are almost ending, I think there are eight days remaining for the community bonding. This is quite a warning. But yeah, the next steps would be. So what do you think are the next steps would be one of the things would be to I should not talk to you guys to tell me anything. What do you think should be the next step? There are two things you might need can try to explore it. One thing is about the user login and like integration with GitHub. And so you can storage, store, store some data to GitHub. Another one is about how to come, compromise how to come, customize the formula like users can either plug in from default, default configuration. So you're telling me that should I user, user can either, either I'll remove some plugins from a default configuration or from a pre builder configuration. So do you want that in the UI because users can already do that right, you know, because they can just Yeah, like UI, because like you can list all the plugins. At least you can users can search the plugins by name or by keyword. Because it's hard to remember the is the artifact and the idea of a plugin. Yeah. So this is an action item that I've got to work on. Cool. I think this involves what so I'm just adding. Yeah. Okay. Yep. I think that's from you, Kristen. Okay, so I think that if we're still like in the community bonding phase and like working through a bunch of things, one of the key stakeholders in this project is going to be the configuration as code group. So we're going to I think I don't know when their office hours are off the top of my head but it might be worth it to see if we can, you can share this to that channel and kind of get some ideas about because especially to a lot of this configuration, hopefully we'll be able to be run with your JCASC configuration configuration just because your Jenkins configuration as code set up. So it might be good to kind of share some of the ideas there and see maybe get some interest with that group. They're pretty friendly group on Gitter. I don't know if you remember that group. Yep, yep. I was, yeah, I think I can join their office hours more. I was a part of the I forgot the community bridge. Yeah, so I was there. I know Tim mentioned it was a pretty well, so yeah, I could definitely get some Yeah, it would be fun to share some of the stuff, especially as since we do want to be configured, like, you know, to be able to work with configuration as code. And that would be just easier from Yeah, I think their office hours is tomorrow. So I could do that. Okay. Yeah, it looks we can ping the channel and we can start working and be like, Hey, I've got this agenda, like I've got this kind of pool like this is hoping to tie in maybe showing them a little bit of how we can figure it because the configuration should match. It's a good way to kind of like tie into some other community and then you might get some interest and then that they can provide additional help or just kind of like, you know, watch the project and you know, it's encouraging to have people who are, oh yeah, I can't wait for this to be working or, oh yeah, sure, I'll I'll test it and, you know, with a whole bunch of different configurations that, you know, Rick and I might not even come up with as a good way of making sure that everything is more resilient and then can be Okay, definitely. So I'll definitely do that. So I'll add it to the agenda, maybe ping the channel as well. Yeah, I don't know their version. I think it's on the drinkers. Yeah, once again, just give me a minute. It's especially good if you've already done some stuff with community bridge. Yeah, that way it's like you. Extra Okay, maybe the link's not working anyway. Yeah, so yeah, one more thing that we need to do is the repository hosting thing. So I think we have eight days remaining for the coming period would be good to get the hosting. I mean, on the hosting and we get the process started at me so that the hosting team could review and, you know, get started with the process. Should I just create a skeleton of maybe the reading me and stuff and then create a ticket for hosting and then later so that when the community born in pdds we have a repository. What do you think any opinions ideas on that strong opinion that I should not do that. Maybe Create a skeleton. Maybe we can just wait for a while. Okay. Get more feedbacks. Create the repository is pretty easy. The process is not too much. The point from Christine is great. It's very, very good. That small community bonding is very helpful. That in part, in part, impress me. Maybe you can try to have like meetup. You can connect with contact with Oregon. Show your PLC project to more people. Maybe this is a good way to collect more feedback. As we can see, we have a Sunday email in the mailing list, but still didn't get too much feedback. Yes, there is no feedback on that. It's just live. But if you just have meetup to introduce the project, I think it may be easier to get more feedback. Definitely. Cool. I think I'll do these action items for the next time. Is there anything that you want me to discuss or go through? I got the suggestions and I got the next steps. It was really helpful this meeting because now I know what to do next. Cool. Apart from this, anything else you want me to discuss? Anything you want me to go over, anything you're not clear about, or any questions that you want me to answer before we just wrap it up? No, it's from me. Okay. I don't have anything. If at all I get any updates, I mean, if we can progress, we can have the next meeting as scheduled. If at all it's inconvenient or you guys cannot make it, just tell me. We can have the meeting on the chat. Cool. Thanks everyone for attending this meeting. It's been really helpful. I'm stopping my screen share. I'll send your email in the GitHub channel so I can put you into the calendar. Okay, cool. Yeah. Yeah, exactly. Also, one more thing. I think the calendar does not contain the correct URLs for the invites. Oleg is pretty mad at that. So yeah, we could get that because that would be cool. Yeah, that's it. Oh, Oleg's here. Oleg, we can't hear you. We can't hear you. We cannot hear you. I think you're muted. What about now? Yeah, okay. Yeah, so the link which was provided in the Gitter, it doesn't work from my work laptop. It works on the, from my personal one, likely because of additional security requirements. I'm not sure. Okay. Maybe the link could be updated here. I'm not too sure why this link and the link that you provide in the chat default. Yeah, so the, yeah, originally I started from the links in the calendar. They didn't work at all. When I switched to the link in Gitter, it didn't work as well. Okay. Apologies for that. I'm very sorry. Yeah, maybe this link here could be just updated because Rick shared a different link in the calendar. Sorry in the chat. So this one is different. So I don't know how does this zoom in CDF and work. So if you guys, obviously I don't have access to the calendar. You guys can update this link. Okay. Yeah, yeah. Okay, cool. So yeah, that's about it. Yeah, actually we just finished discussing most of the things are like, if you need any updates on that, yeah, we could do that next time. Cool. I'm stopping my screen here. Okay, is that it then? Thanks everyone. Okay. Yeah. Thank you. So I'll try to join on the meeting next Tuesday. If you handle that. Yeah, yeah. So I think it's, it's unlikely, but I will break the platform seek. Yeah, definitely. I was hoping to join the, the take-off office as big questions in the state that I demonstrate the POC there and to get some additional feedback. I'll be joining that. So maybe if you needed, maybe most of what we covered today. Maybe I could demonstrate for a few minutes over there. That's it. So I think it is. Yeah, I think, I think we're. Thank you. Talk to you later. Bye bye.