 Welcome everyone. It's the 3rd of August 2020. This is the Jenkins documentation office hours. Let's share my screen and we can talk about the topics. Alright, so first let's review the agenda. So permissions to update the migration sheet. We'll just give a brief summary on that. Thanks Jonathan for asking and happy to have granted permissions. Then plans to create a YouTube channel or a specific playlist for video tutorials and workflow to send and publish. Good question. How to handle third party references in our documentation or to our documentation. So this is a third party that is referring to Jenkins that IO documentation and then outdated Jenkins Docker image. I've written treasures of Jenkins. I think those are. I assume. Well, let's let's attach some names to these. I believe Jonathan, this one is from you. Did I get the spelling correct Jonathan. I'm glad. Yeah, right. Hello. Okay, so there is that one. Third party references in our documentation. Outdated to Jenkins Docker image Vlad, I assume that's you. Yes, I added a couple items. Okay, great. And then hidden treasures of Jenkins. Okay. All right. Any, so any other topics. Beyond those we've probably got an hour or more of material just for just for those. Just I'm interested in configuration as code in general, but in case it will have time, maybe we can cover those in this like list hidden treasures. Okay, yeah, that's a good suggestion. All right. Very good. Okay, so let's take a look at top of the list so there is a Jonathan had asked about a sheet that is stored it this is just a working spreadsheet that I had created. To help prioritize which existing Jenkins wiki pages should be transformed and how we're making progress on those it was not not intended to be anything perfect, but it's, it served us well enough that we've translated a few pages so the idea was that we use this to track. As we create a new issue we put a link inside the cell for that issue. And then we can jump to that issue and see how it's progressing if we need to. And Jonathan asked, hey, could he be allowed to edit it. Absolutely. So he's been given permissions. Anybody who wants permissions just open up the sheet. And click this, the button here on your view will be request access. And I'll happily granted. I'm more than happy to have other people help with proposing and thinking about where information should be placed in the documentation. Mark, do you want to call that. I don't know the wiki migration sheet or something I don't know does anybody other than us look at that. That's a good. That's a good idea. Yeah. They don't make migration more than it is. Right. Yeah, very good. Thanks. Okay, Jonathan, did that address the question you had there was there more to it. Exactly. The permission I needed to create new issues and update the existing one. Great. Okay, very good. Okay. All right. So next one then is create a YouTube channel or a specific playlist for video tutorials. I like this one a lot because there are already a number of. I like the idea a lot because there are many videos out there many tutorials already out there. And, and a playlist on the Jenkins channel would be great to on the Jenkins Jenkins channel would be great to have. I have a playlist for docs, but for me that's more about meetings, whereas I like a tutorials playlist as an idea to just capture tutorials there for people who look at that playlist will never see anything on it that's not a tutorial for something. So if we do that we so the someone needs to send a proposal, propose a new playlist to the advocacy and outreach. And unless you've got a better suggestion, I'm going to call it Jenkins tutorials. And so Jonathan, if you want to take the lead on this one that would be great. You could do it either through the mailing list, or through the Gitter channel. Or through the meeting the regularly scheduled meetings. Be one of those. So, I just need to send the request to create on Gitter channel. Yeah, well, and what I would suggest is not just a proposal to create the list, but also. I propose to create the list plus the playlist plus propose some initial content. And I believe playlists are allowed to contain links to other videos that are not actually in the Jenkins channel. And therefore, videos for the playlist. So initial videos for the playlist. And then lobby this thing right here the Jenkins minute playlist is some really elegant one and two minute videos that highlight how to use specific features of Jenkins pipeline in ways that people might not have considered. And it's an ideal candidate for something to. Oh, I've only got one minute I want to learn something about declarative pipeline, a Jenkins minute video is a great thing to do. Yeah, when I was working with another project. I created a playlist called a Greek food five minutes. I link there in my proposal. It's several videos with five minutes and with instructions to use that too. I don't know how it's working out at the YouTube, but it is possible as a collaboration collaborators, users on the Jenkins channel. We upload our videos and after some review, they can be approved like a process to send the content. Yeah, so so now you're highlighting I think the workflow for who gets access to that. And, and what we've got right now is today. Upload permission is granted to several people. Right so Jenkins Jenkins channel upload permission is granted. For instance, me Oleg five or six others. But so we may have to talk further about what would it mean to how do people submit a new, how do people submit a proposed video, because I don't think we want to give the typical video creator upload permission to the Jenkins channel there. I don't understand. So it's a kind of a decision to make because for example, if I make a video and upload it for a drive content. So you get a new responsibility to get the video approve it upload it is on the YouTube. Maybe it's a several new text to you, for example. But if you give us the collaborator role, we can already upload the video once approved that you just hit on the button publish. Right. Okay. Yeah, as a collaborator, I can upload and publish the video at the same time. I just upload it. Is there. I don't know maybe I'm being too, you know, I would like to see some sort of a process where nobody could upload a video that they created without somebody else saying yes. I thought that was what Jonathan justice. It wasn't that maybe I misunderstood. I see. Okay, so that's the upload but not publish. Okay. Yeah, so so tell us again describe it again so how has it worked for you in the past it's collaborators upload but cannot make it visible to the public. Yeah, exactly. Just the approvals can review the video and click on publish. So, so there there is a that gives a way for a collaborator to propose something, and they propose it in the context of YouTube so I can see the proposal by viewing it, but they don't have to make it visible to the public. So, no, no, no, not just that the law. It's the fact that it's similar to work work work for a word for a publish, publish, for you. I don't know how is right now on YouTube because there is a new tool for a visual edition that essentially they publish a new version of the other. Yeah, and I'm used to I'm so maybe if you're okay with it. Watch what I do here and you tell me if this looks at all familiar to you so I'm, I'm switching to the Jenkins account now. Oops, you don't need to watch the Jenkins minutes sorry. So I'm now in the Jenkins account. And there's a facility here where I can click create a video or post that lets me upload or create posts. So this is how I usually upload the meeting minutes, or the meeting recordings. Is this the kind of experience that you've had when you've submitted as a collaborator. Yeah, it's similar but the next screen maybe you can choose a private video, public video or not visible video as a collaborator I don't you and private videos. Yeah, this is as a collaborator I only can send the private videos. I see. I can share the link. I can do not there more than upload and if I upload the rob one. Interesting. Okay, so that that sounds, if you'd be willing to include that in your proposal to the to the advocacy and outreach. Okay, list would be great. Can I write a proposal with the instruction then please explain how work. Yeah, I think that sounds great to me so now in terms of oops there was playlist I meant to go there. Just a minute. Okay, so we've got playlist today let's see if we've got one that's called tutorials already. I don't see one called tutorial but their search is imperfect at best. Okay, no use of the word tutorial. We've got pipeline authoring for instance but this is again mostly used for meeting meeting recordings, not for demonstrations. I like the idea of a tutorials, a tutorials playlist. That sounds really good. Do we want to subdivide it like by pipelines versus admin or something like that or. I don't know depends how many we're going to have I suppose. Let's let's test it. We've got, we've got the Jenkins user experience special interest group so there's is there just their sig meeting and demonstrations. If we were to look at their demonstrations. Here we go, you are you I overhaul methodology in progress video. How to create UI themes. So these here are some that are tutorials. I'm not sure I would do a subset until, until the playlist becomes unwieldy. But, but I'm, I'm not an expert at this, Jonathan in your experience did the, the other organization you are working with have guidelines on how long they would allow a playlist to become. There is no limit, for example, tutorials, kind of generics, I, I liked it on the tutorials, but for example, you can subdivide it by years with hashtag, for example, tutorials 2020 tutorials 2021. Oh, by hashtag. Okay, so and so the hashtag is that tutorial. Got it. Okay, so for instance, that if there's a let me see if I can find one here with a label is the hashtag. Edition mode, just hit on the three dots. Okay. No, no, no, where is it. Well, and it may be that there are no labels on this one but but the hashtag just refers to a label. So we can categorize within a playlist by label. I like that. So if you're willing to take the lead on that and, and send that proposal that's great. Okay. Make the proposal. Yeah, what about maintenance and obsolescent issues with this. I'm wondering if it would at least help if each video was clearly identified as to the date it was made and the Jenkins release that it was done on would make it because I some of these things I some of these I'm familiar with and they are close to three years old and they're still very good. But there's going to be things that are obsolete in them. I mean, anything that's more than two months old, the whole manage Jenkins stuff looks different. Yeah, so here's here's the poster child of something that is horribly outdated and I still regularly get comments thanking me for it. Right. So, so I in 2014. What is that six years ago now, I created a video called Jenkins in five minutes. Notice the version number on this screen is 1.562. We are now at 2.235. So this is, this is ancient. And yet they're still periodically people who say, Hey, thanks. It's really, really, really old, but it's still ugly enough works. So, so yes, I think dated. I'm not worried about deleting dated but I think having some way of showing to the to the viewer, how old this is is a healthy thing. Right. So at least if I look at it, it's like my screen doesn't look anything like this. If it was made last week I'm concerned. Exactly. It's five years old. Yeah, so Good. Very good. Okay, so to advocacy and outreach with with workflow proposal. Great. It looks like we may have lost Jonathan or at least video. Yep. Okay, so we may we may want to, well, let's take the next one, because I think we can get the, wait a second. And I'll bet you I failed to do the recording of this just know we are recording good. You said you were recording. I will I have this is a win. That's great. Okay, so how to handle third party references to our documentation. The example here I would would use is cloud bees docs team refers to Jenkins docs docs in some of their material. And what I would propose is we borrow their technique whatever it is. And I haven't looked at it in detail. Mark to insert the technique, because they have a way of because all of our all of our content is creative comments. There is an attribution process attribution process exists. And we can, we can invite people who reference our materials to follow it. Jonathan. Yeah. Yeah, great. So Jonathan. My idea here is that there's, there is a product there's a team inside the cloud bees development organization that does this with cloud bees calm where they sometimes refer to Jenkins that I owe pages. And they, they've got a technique they use for for noting that this is taken from Jenkins that I owe. I'm not sure that is specifically your question so I was taking it as third party references to our documentation. The next question probably should be how to handle references how to refer to other people's documentation. Hey Jonathan. So this one we had a good to have you back so started started a discussion on the list on the docs list with cloud bees.com cloud bees source material. As baseline as a, as one example. I can link to that. Let's see we should be able to find that in the docs list. Google group stocks. And this was something like the Tammy is a good choice of how about attributing. That's interesting. What would I have done with that description Meg. Was it a recent one. It was. Yeah. Okay, so I'm perplexed I'll have to include a link to it into the doc separately. It's, it's odd that I can't find it so Jenkins Jenkins contributing documentation. Mark wait. See if Google will find it. There we go. Contributing documentation from other sources. Okay, now we just have to find that in the official interface. That's kind of sad that I couldn't find it with Google's but I can't. Oh, that's because it's in the Jenkins dev list. Got it. That's the problem. Okay, just a minute Google groups. Dev. Here we go. So this is the thing that I wanted to embed there that notes that they are willing to cloud bees is willing to allow the Jenkins project to take their documentation and rework it if we wish for use with Jenkins in those cases where it makes sense. And they were talking about alternatives there and what this, what how it could be used and how it wouldn't be used, etc. I think we've covered that topic. Any other questions on that topic before we go on to Dr images. Yeah, just one question mark. For sample. The past week I work on the migration of the page about the J meter and use with Jenkins. Okay. And that specific page, the original, the original page. It's a, a copy page from the outdoor post blog. Okay, so, but it's a kind of out of date content. So I use some videos from internet and some other posts to rewrite the content to a update one. Okay. But I, I, it's not a copy paste from the others, but it, the other content was used by source to create our content. We need to reference all the sources or not because it's a new content we, we can just publish without reference no one. Deep reference. Good question. So, I would think that you would, you would prefer to include a hyperlink at the end of the page to the original sources to the sources. Yeah. I, my thought was that if, if you found them useful in creating the content, others will probably find them useful if they need more information about it. Yeah, I think the same. There is another point. For example, one of the best videos I use it by reference. It's a video promoting a course from a direct. I don't know if you, you know it, but it's a open video where they make an live teaching how to use Janks with Jmeter, but in that video there is a good samples about how to use it. So I use some examples from samples from that video in our content. We can reference a direct for example, or because it's a school with financial interesting we can't reference to it. That's okay that's a good question and that's when I don't know the answer on because in this case, what you're doing is are you intending to embed the video into the page or you just taking the concepts that they were describing and describing them again. Yeah, yeah, take the concepts and describe it again. But if the reader want to know about the another source content, please visit the link, for example, or not. Yeah, that's a that's a good question and I don't know what the is a very good question I don't know the rules so that's invite them to click the link for more info. Yeah, yeah, because when everything is open source there is no problem we just put the link there, but when the content is free, but was recorded by a I don't know in English financial institution. It's not open source. Well, but now the, but the video is freely viewable from the internet. Yeah. Yeah, it's free was a event like a hack hack fast. And the record make a event like hack fast and publish the public open video there. So you can have for instance then or not. I think I think you'd be allowed to reference it. Even embedded. And, and include a link for more info. Meg or Vlad you have further guidance, I don't have as much legal experience in this boundary between open source and commercial entities, as I might like. I don't have as you mark legal and experience on that but like common sense to me is in case it is video format. As any author can implement this video in their own repository for instance or setup and comment on this say well this is implementation this is how performance testing using jmeter can be done. In case if you want you can reference I think the video from which you took but it seems it is different format. I like my first impression that it is not necessary to reference but it will not hurt. But again, there is on my side, there is no legal experience on that. But in case if it is the same format then of course you need to reference well, this is the video. But yeah, actually this relates to the question on clarification on the previous topic about video materials that we wanted to paste on YouTube after this process which Jonathan will initiate will be approved. We are talking about kind of official videos from cloud bees and Jenkins project. Yeah, yeah. Not from everywhere. I think this is very important mark because for sample. Maybe I use a link from Oracle from Microsoft from a authority institution for sample. I may, maybe I can trust at 100% because the link is pointed to a institution confer secret institution. For example, and I point the link to personal personal blog for sample, I can't guarantee the content from the link, it's always trustable. It's clear to you this this point. So, I so I think so, from from an individual. Not clear how trustworthy that is right. Yeah, because to to approval that the person can use a nice content but the content from the page maybe can change the future and become some bad issues to Jenkins for sample. So it's important to has a rule about this. Good insight and I, I've certainly seen what I'd call trivial examples of that. We've had simple examples where a wiki link is now broken work before and is now broken. As as an example or where I suspect in Vlad's tests of broken links on Jenkins that I owe some of the links there from six or seven years ago may in fact now be broken, because the page no longer exists. Yeah. Okay. Now I'm not sure, Jonathan, what's your, are you, you're proposing here how we handle that or what we should do or rather that we need to set a policy and get agreements from the governance board on. No, I just want the instruction, how I need to proceed with the point of links. Maybe I can send the links for revision. And if you approve it, it publish it just for make a warning about the talk. Good. Yeah, thank you. That's a valid question to good one. So, for instance, derivative text is the one that text that's really the clubbies.com the clubbies docs team question. But then you identified a really good room which is a good or concepts from videos or from a video or other source, or then literally embed the video from another source. Yeah, because we certainly have, we have already examples of maybe we put it here as a different embedded video from YouTube. We have those examples already, right, and they exist in the, in the solutions pages already do that some blog posts do that. And others. So, so that's already done but if we were embedding video, for instance, from Oracle.com or from adopt open JDK.net. That may be a different thing. Exactly. Exactly. Good. Okay. There is another point to about the links, because this is impacted the jinx IO seal Google seal robots about ranking and everything. So if you jinx IO it's pointing to a bad reputation site or issue sites maybe can be affect the populations of jinx.io. Right. It's important. We're about. And it's really search engine not search engine scoring is reduced if we have broken links. Yeah, exactly poorly formatted pages, etc. Yeah. Okay. Or search engine I guess it's ranking right just how they call it. All right. Anything else on that particular topic. Jonathan. No, no, no, no, thank you. Okay so Vlad replacing the outdated Jenkins Docker image. Let's discuss further. So this is a continuation of previous a follow up kind of previous discussions that we had currently we're using in our documentation and tutorials and everywhere blows and Jenkins CI image which is, I guess, officially outdated, considered outdated. How we approach of changing the quotation which my understanding is generated on Jenkins IO, we can implement on our own tutorials and I'm talking. Kind of on behalf of me but maybe it will be useful for any contributor any technical writer. We can implement tutorials using some kind of build Docker image based on this official image. And when we implement when we verify the tutorial works we can document it. Well, other approach we can just try to think different pieces of sources of our current documentation by replacing Jenkins, like kind of try and guess without implementation, first and do PRs and issues and so on. So, like, which approach would be the best one in general. What is the approach of replacing generated documentation, because I found out that when you are doing this. When you are doing a doc changing. There are different sources of documentation, which needed to be in sync. At least, well, the quotation our documentation points that in case if you're changing this piece of doc, make sure that another piece of documentation will be changed and so on. So, kind of different approaches like doing implementation first and after that, documenting it in some detached repository of your own and see if Jenkins project will adopt this and maybe include their own repository or sorry for this kind of messy explanation but Oh, no, no, no, I think I think your explanation is spot on I'm going to try to show an example of what is the phrase, the word generated documentation here and it took me a little bit to think what that means in the context of these tutorials. I wanted to show an example of the tutorials so that it's clear what that means because it's, I would call it derived, or maybe, maybe reused because what we've got is we've got some segments of source files, which are used which are written once and used many times. And because of that if we change one of those written once used many times, it will change it everywhere. And the changing it everywhere could be disastrous if we suddenly broke a tutorial. And related to this I have a question, which I'm not sure if you know the answer will be great. Do we have some pieces in our documentation which are generated by the code or not by the code I mean some some some programming language generates. We do also. Yes, so there are, there are pieces of the Jenkins pipeline, the pipeline syntax reference here, which is entirely generate oh no let's see not this one we need the pipeline steps reference. This one is entirely generated by code. And, and it's enormous. And if we look at some of its examples. Some of the things are absolutely huge. Here's, here's one of the poster children. It has a number of different steps, each with detailed documentation. This is for one tiny thing. If I then look at. There's another step called checkout that is probably 10 or 100 times bigger than that. So yes there is generated code definitely there's Jeff definitely generated content. This is a tutorial question that you're asking so back to the, what, what should our approach be in trying to replace the blue ocean image. The fundamental challenge is, we have one. Two, three, four, five, maybe only four I think one of those may not be but each of these this okay this is a skip this one, build a Java app with Maven uses very common steps. And I believe uses the same source file to describe those common steps to get started. These run Jenkins in Docker, and on Mac OS and Linux, or on windows, those things are relatively common. And then, yes, here's using the blue ocean container run the setup wizard. And now this is where we finally get into something that is distinct. The pattern follows here, where the standard description is there. And then fork and clone the sample repo. This is where it gets specific to this, this demonstration. Likewise for the Python Python code. And so, so I think that's what you're referencing when you're talking about generated did I understand correctly. I was not sure if, since there are a lot of links to different sources, and all the sources are included in different pieces. I thought maybe it is generated as well as the pipeline signature, which you pointed before, I was not sure about this, but thanks for clarifying. Just my understanding, it would again from the common sense, maybe it would be better to leave that current outdated image Jenkins CI blotion somewhere. Because maybe there are people and pretty sure a lot of people are still using this image in their well in in their everyday job or whatever. So maybe removing this completely would be not wise. Yeah, but I guess I will try to figure out the best approach here was just wanted to share some thoughts on this. So, so my, my initial thought anyway was, we leave blue ocean and its tutorials. As they are. Right. And, and admit that they are stable. The image will keep being updated because it's automatic, but then we create a one or we create new tutorials and just one at a time that uses the standard image, not blue ocean. And replaces one of the existing tutorials. Okay, for instance, Java with Maven might be an example or Java with Java with Maven or Python with pie installer. The idea being let's create that thing and then, once we've verified it all works and is well behaved. And well behaved means runs on Windows runs on Mac OS runs on Linux. Then we would replace the page with this new tutorial and we've, we've now got something that no longer uses blue ocean. We can iterate on each of the of the tutorials and current tutorials. Replace blue ocean image with the standard image. Is does that address your question glad. Oh yeah, well thank you. Thank you for talking about this. Mark. Mark, yes. Yeah, maybe in the future. And then we finished all the immigration work and be can be rise before we work in the kind of new template for documentation. For example, the, the rather showed us a issue we can, for example, a set a part of the documentation as the pregnancy, the pre-kate, like blue oceans. So we can put a flag, the alert to user presentation and this is the depreciated way to use Jenkins please use the new one or visit the link to get how everything works in the past. So maybe we need a workflow to move the old content for a new page and just put a link from the main content. Just for sample. Now we just use our Docker image Jinx Docker images. But if you're looking for a blue ocean image, please click here, for example. Yeah, so I don't know that we need a formal I wouldn't think of a formal deprecation process for that, because if we were to use this technique, we create a new tutorial, and use it to replace an existing so we create a new Java with Maven tutorial using the standard image instead of the blue ocean Docker image. And that standard image still has blue ocean installed in it. It still has all the capabilities, but it's just using a better image than the than the blue ocean Docker image. Yeah, it's a big problem to solve. It's not so easy. Agreed. Yes, wholehearted agreement. Yeah. Thanks, Mark. Thanks. Anything else there glad on that topic. No, I guess. Well, we can talk about this. Okay. All right. So then next topic was hidden treasures of Jenkins. Again, this is follow up on previous discussions. Maybe recall we spoke during last office hours about about hidden treasures of Jenkins, something that actually you mentioned, and I wanted to make sure that we're on the same page when released, which are those treasures and which are if they those are hidden. So we use the same terminology in this case, and I listed some of those but I'm not sure if those are considered treasures and just looking for approval from the panel. Yeah, so for me, pipeline syntax generator is one that the another is the blue ocean pipeline editor. Don't don't design pipeline state diagrams yourself. In a text editor, let Jenkins do it. Now declarative pipeline, there is also the declarative pipeline syntax generator. Oh, for me, at least I found the blue ocean interface to it, more comfortable. But they should be aware of it. So that's another good one to highlight say hey. Right declarative syntax. Let Jenkins do it. Now configuration as code. Oh, oh, actually, maybe that's a fun one pipeline installation manager utility. Is it plugin or is it utility. It's a separate program. It's definitely not a plugin because it has to be run before Jenkins is running. And but it will let you give you give a list of plugins and optionally their version numbers and it will install those download those plugins and their dependencies. So usually putting this inside Docker file and is it when you're referring to plugins.txt file which you copy in the corresponding directory and all these plugins with their versions will be dynamically installed from CLI kind of well not CLI but from after building Docker image. Yes, yes, that's you've you've understood an exact use case for it. Today, plugins.txt in the Docker image is actually installed by handle today by a script called install dash plugins.sh. And that thing does not do dependencies. And lack several other crucial features that pipeline installation though the plugin plugin installation manager program provides. In fact, it's coming, coming as a preview or coming as a preview to the Jenkins Docker image. There's a pull request for it. So that in your Docker image instead of you would have the option to say instead of running install plugins.sh, you could run the plugin installation manager program and let it do it's the computation work. Okay, so I need to take a look at this kind of alternative approach, instead of using utility or build the image using using copy this install plugins. Right. Exactly. Either for. And we don't have any suggestion to users what to use. Oh, oh, see, so for new users will either today use of Docker will either use install plugins.sh, or they'll use the plugin installation manager once it becomes available in preview. So plugin is not yet. Correct. Okay. And maybe related to this mark, if you don't mind the last question that I put configuration as code. I was. Well, it's kind of related to installation. It has very interesting demo configures code when using groovy scripts bypassing admin and admin from secrets location and just instantiate and this is Jenkins instance with already ready to preconfigured users with all their privileges, but he's using groovy scripts I guess is more for advanced users. It's I'm targeting more novice like new users. I was thinking, is it possible to use configuration as code with this. I guess using Jenkins here most of the bits. We can define users, all we need only to do this bypass admin login through groovy scripts. Can we do complex work of pre installing pre configuring users. Well, I'm talking about just one user for instance, using configuration as code. This is the question. Or should we ask this in special interest? That's a good question. I. So I think what you're really asking is what are the limitations of Jenkins configuration is code. Right. And, and I know, so no plugin installation. So it won't install plugins for you. I thought that it could oh it. Let's say it differently. What, what are the key capabilities. So for example, it can define the system configuration. That's which authentication scheme to use, etc. I don't know if it can define users but I suspect so. It can define the, it can actually define jobs. Using job DSL and the seed job concept. And I let's see, let me do a quick check. We could, we could look at Oleg's repository for instance, and I suspect we could see in his or I could check mine to see if which things for instance I'm pretty sure that I'm defining folders. But yeah, so the question then that you were asking and I don't know the answer is, let's put it here is open questions. Can jcast. Find users. Groups, etc. Right. And that would be by security realm to right, I think it does even configure LDAP with it, I think. Yeah, in this case, the LDAP would usually mean it would be using an external that source but but yeah the notion is still, can I define users and groups for this demonstration for this environment and I know that Oleg's demo can define users and groups, but I don't know if he's doing it with groovy scripting, or with just using jcast and if he's doing that for convenience of his for his own convenience or because of it was a limitation. Well a lot of times they just use the Jenkins user database or something and populate that, which is not your app to do and you know, in a production system that isn't what you're going to do. And Oleg has very specific roles that he's defined in his demonstration and they are quite elegant how they work, but I don't know which technique he's using to define them. And I'm thinking about just just one demo user demo demo who will be admin at the same time to do this tutorial something like this, like not not sophisticated kind of team of users and ten folders and so on. So for that level, there's there are already instructions in the existing tutorials that guide the user and the user just logs in as themselves. So, so that I think if it's just a single user use case, we've got that in the tutorials already that we can reference using UI, basically. So it relies on the Jenkins startup process that requires that they find and enter the initial default password. They have to find the generated password in the log file enter it and then create their own account so that it starts off by default secure. Right. So it create create account using UI basically creating user. So I was thinking like a little bit simplified this process so they can just start the demo. Yeah, and given given the pattern that we've seen in other systems. I suspect the Jenkins project won't take very happily to the notion of putting on Jenkins.io a default username and password, because secure by default has been such a such an important thing for as broadly as we're deployed. Oh, I see. So, we have, we have hit our hour any other things that we need to discuss here today. All right, let's call this session good enough. Thanks very much for joining I'll upload the recording of it later today. Thank you. Bye bye. Yes, thanks. Thank you.