 Welcome, this is the inclusive naming project in the Jenkins project as part of she code Africa contribute on 2022. It's the 19th of April. Thanks for being here. So topics I had on the agenda. How are we doing on startup tasks. How's the progress on the Google sheet that's collecting the data and timeline reminder and timeline reminder is mostly for me and for Nafisa. But I think it's good for us to remind ourselves of the timeline reminder of the project phases and be sure that we we know when we start things when they end, etc. A piece or nafisa are there other topics that you'd like to put on the agenda for me. No, I think this is okay. Great. All right, well then let's let's take a look. So peace had you had you let's take a look at your startup document. I think I've captured it. Let's be sure that it's there. And see if there are any questions you want to ask as a result of that so. Oh good. Okay, photo is updated. Okay, and installed Java eight connected to the contribute on channel. YouTube, blue ocean running those look those actually look very, very good piece congratulations. Thank you boy I had lots of difficulties in that. Thank you for going through those difficulties. I hope I hope you found them instructive and I hope as you as you go on in your career I suspect you'll be having opportunity to learn, learn Jenkins more elsewhere so I thanks for going through that anything you want to recommend where hey it would be better if we did this documentation improvement or that documentation. I have a notepad I am jutting down all my difficulties so maybe when I'm maybe one of these the meetings I will read them out because there are some things that I had to work on by myself and it's not in the documentation that was indicated. So in case someone else faces that kind of issue, so they'll be able to carry out the tax without having any problem. Good. Thank you thanks for keeping a notebook. And if in a future session, you'd be willing to share or walk us through your notebook. And that would be that would be absolutely great because then we can use what you learned to find ways to do better documentation on the Jenkins that I oh site, and better plans for these kinds of projects. Thanks for taking a notebook. That's really great. Thank you. But I want to have a question. Yes. Okay, while I was, while I was trying to. Okay, that was in number nine. Yeah. No no number nine number eight. Okay. Let me see. No, no that's not it. Let's go to seven. Okay, seven, where it says the whole process was different several hours. Yes, creating a pipeline using blue ocean. That it gave me a very, very big problem because when I did the first one I just did it I went through blue ocean. And then I, when I clicked on it, I went to create a pipeline and then I inserted the URL from the gets up pipeline plugin. And then it was giving me an error. So I had to, I had to go through our chat on Slack, and then I realized you already explained for catering. So I had to use the method you explained for catering. While using the method you explained for catering, I realized that my git wasn't the right is not the right. The git installed the git.exe installed on my system isn't the right git I'm supposed to use for the, for the for running the pipeline plugin. I had to delete, and then I had to reinstall from the one you sent from the link you sent I had to reinstall the git, and then I had to go to my environment variable. Well, and, and there's a missing step right here you you just highlighted for me I failed to fail to note it here this is missing, and I apologize for that missing the step to install get. It's completely missing. And, and here, here it's assumed later in this in step seven that get is installed and configured now on Linux computers it it commonly is but on Windows and Mac OS it's not. So, good, good catch Thank you very much. And that, and that certainly makes things much worse for your experience. Keep going. So, I had to go to my system environment variable, and I had to copy my git from my PC, my git name, like the domain variable for my PC. I had to paste it on my environment variable before I was able to run it through CMD. And then, yeah, that was when I was able to undo the issue. Because git was not mentioned in the in the document, it's made it very difficult because we didn't know that we were supposed to install git on our system first. Right, right, absolutely. And that is that is an example of me being contextually blind. The actual blindness is where I do something so often that I simply forget to describe the step. For me, no computer exists that doesn't have get installed but that's not the reality that's just my every time I start with a computer I immediately installed git but other people don't do that. Thanks very much for catching it. Thank you, Mark. But for the rest, I think, okay, I also had issues when I was installing Java. Because, okay, yeah, because, okay, not Java, when I was trying to run Jenkins, when I was trying to install Jenkins on my PC because after installing Jenkins, I tried to use CMD to check if Jenkins is loaded on my PC. Because it was not. So I didn't know that I was supposed to after installing Jenkins, after installing Java, I will have to copy the Java link and then paste it on my environment variable. I can run it because I realized that there's some PC that don't even need you to paste on the environment variable while there are some PC that when you use it you have to run some manual stuff by yourself. So maybe my PC is one of them. Everything I do I have to copy and paste on the environment variable, like my system environment variable before I can use it. So that made it very difficult because I was trying, I used different methods, I couldn't get it. I had to, then I had to use that method. That was when my CMD was able to read my Java, my Apache and the Jenkins before I load Jenkins on my PC. Another mistake I did again was I went to install Jenkins 17 version. Is it 17? 17.17 version instead of the right version of Jenkins. Yeah, I installed the wrong Jenkins version. So it made it difficult because why I'm trying to link my Jenkins file with my Java file. It was not compatible. Why didn't you notice until you corrected me on Slack that the version I was using is not the right version. So I had to, no, it's not the Jenkins version, the Java version, the Java version I was using was wrong. So I had to delete the Java version and then install version 11 because I installed version 17 also for my Java. So I had to delete and then install version 11 before I could run it. So it was a little tough, but I thank God I was able to cross pass those parts. Thank you. Very good. Thank you. And thanks for sharing. So, so I think we should plan to dedicate a session, a future session where we give at least 20 or 30 minutes for question and answer based on your notebook notes about hey I bumped into this I bumped into this, and then we can discuss our what's the best way to approach that because some of them it would be we update the Jenkins documentation and say hey the documentation on the Jenkins site should say this because it'll be used by more people. Others it may be that we update just these documents and say okay, this is very specific to to the she called Africa contribute on let's only update it here. Very good. Any other, any other observations you want to share. I don't know. I would say no, but I, for the, I had to fuck the other plugin. This, the, I was given some plug in, I, when I checked the Google Sheets. I was given some plug in. I was given to name. Then I fucked the mail up plugin. Well, I fucked it not because there was, there were any mistake in the name or any name correction I fucked it because when I was trying to work with the, with the pipeline plugin I was having lots of issue. I was thinking it's the plugin that is having the issue. So I had to say let me try another plugin and see if it will give me the same issue. I didn't know that I was the one having the issue from my configuration. That was what I had to fuck it, but after fucking the plug in when I went through the naming, I realized that there was no, there was no error in the names and I remember last meeting indicated that when there is no need to fuck a plugin, and when there is no correction or any changes to make we should not have any plug in. So that was what I had to tell you now so that I didn't fuck it not because there were there was any error. I was just, I was just trying to see if the plug in my mistake was from the plug in. That was what I had to fuck the mail up plugin. And very well done it's it's actually harmless. It does no harm if you fork extra plug in if you fork multiple repositories you are welcome to do that. My only reason for noting that you don't have to do it is you may not want to clutter your, your own GitHub environment with forked copies of repositories that you don't need. So, so there's no harm that you did a fork. It's good practice, and you can actually. So for instance, when I do, I can delete forks all the time. And, and so there's no, no reason that you can't just go ahead and delete it later if you don't need it, but no harm that you forked it good for you so so you're saying I think what you just said also is you looked at another and you didn't see any, any changes that were needed is that correct. Yes, I didn't see any change. Good, very good okay. And that's, I would have hoped for that, because many of the many of these very, very frequently used plugins have been visited by others trying to resolve issues with inclusive naming. The fact that you found no, no changes is is a good thing, and it's even expected. We may in the first 40 or 50 plugins may only find two or three that need any change. And that's okay that because that that's actually a big win because that means you'll be able to work on things that are lower on the list and help with them. Okay, thank you. That's really great thanks for thanks for looking at mailer and thanks for doing the checks. Very good. Hello, thank you. Hi Nafisa. Hello, I just, I need to direct this to peace. I notice I don't have access to view your reports file. So I appreciate that we can grant me the access to do that. And it looks like, well I should be able to grant it but I, I am not seeing your email address in my convenient location just a minute. It was. Well I can fix it or peace you can fix it later or I can fix it. It's easy to do. I should call your attention to that. Yes, thank you very much. That hints that there may be a challenge here because this link. This this shortcut in the Google Drive is not a guarantee that permission has been granted, whereas the permissions on the folder generally grant permissions but not for shortcuts. So, so that's a reminder that we've got to be sure that everyone gets access to those files so that they can see them. Thanks for catching it. That's great. Well, I have a question for just a minute about the reports. Okay. Yeah, yeah to Nafisa. Are we supposed to update the documents or update on Slack. Okay, and, and the reason the reason I've preferred the document it gives us a place to focus 100% on you and your experience. And you can take notes right there but, but if you have a question or a problem, then Slack is a is the best place to do it because then other people see your question and they benefit from the answer. So for me I like, I like the, the document as a notepad or a place where you, you scribble quick notes or, or make a comment oh this was broken or oh this didn't work the way I expected or well that was a surprise. And then when you hit a problem that needs someone else's help, then we do it in Slack because that way we can share the share the solution with others. Okay, all right, I think what I'll do is update for each of these steps is to update done so that even for Nafisa she can see what has already been done. Great. Yeah, thank you Catherine. That's great piece you had a question. No I wanted to tell Nafisa that I didn't have an email address to add that to this. Okay, I'll check that in the chat section. Oh, right that actually that's a good one if you can put that put your email address in chat or I can get it from this location right here I have a sheet that has this one has all the email addresses on it. So, if I open this. So now I can just do the share so peace do you mind if I share it with her. Yes. Okay, there we go. Got it. Share it with me too. Okay, you bet. Alright, so Catherine. Actually, I really should just share it with everybody but I don't know how to do that easily so we'll do the, the short one first. And actually we only want to allow others to comment not to be editors just a minute. Oh, and I don't really need to be an editor either. There we go. Good. Oh, oh no I don't want to stop my ability to share. Okay, editor. There we go. Save. Okay, got it. Excellent thank you. So any other questions on your getting started experience for me. I think that's all for now. All right, so then we had we had listed a. Let's see where. Oh, here it is in this one identified terminology errors in searching the Jenkins repositories looking for for things that need to be corrected and using this Google sheet now piece I see that you'd, you are you described that you'd worked on mailer. Catherine, have you had a chance to look at one of these yet or still in your startups startup phase. I'm still figuring out the pipeline issue that I shared on Slack, but tomorrow I should tackle at least one. Okay, well and and we could take time today to work on that pipeline issue that you had in Slack. If, if you're okay with that, I think that's a good, a good use of our time here. If you're willing. Go ahead. No, I'm saying that's okay. We can tackle that. Okay, great. So do you want to share yours. Are you are you on a computer so that you could share your screen so that we could look at it together. Yeah, I'm on my laptop. Okay, so I'm going to stop sharing. And I think you've got permission. Yeah, you have permission to share your screen so if you can share your screen let's look at it together, and we can talk about the problem you see. Okay, just a minute. All right, you can see it. Good, right. Okay, so this is, this is the pipeline bill. Okay, so, so this one highlights all sorts of interesting challenges. So the pipeline build step plugin if you'll click, click on the master thing here or on any one of the others, any one of those rows that say branch indexing click that. And now it opens to us. Oh, hey, something's gone wrong here scroll upwards. And let's look at what the message says. So it says branch indexing connecting to someplace zoom your screen. I don't think I can see. Is it clear now. Yes, it is. Thank you. Great. It says start of end of start of pipeline line for end of pipeline line five and then it says no such method error. That line six is this big long line of while there are a bunch of possibles that no such such method area so scroll back up to it says, Hey, it was looking for a method named build plugin. And your Jenkins right now doesn't have a method, a domain specific language that's the expansion for DSL a domain specific language build plugin method. And it doesn't have it because there are also there's a pipeline library that's used by all Jenkins my most Jenkins plugins to do their builds. And that pipeline library is specifically tuned to run on CI Jenkins that I owe, but it's, it's not ready for someone who's not really ready to run a full CI system, like CI Jenkins that I owe it assumes things like, you must have a windows agent available, and you may need to have Docker available and you may need to have cloud resources available. All sorts of things that. So using the build step plugin as your test case for a multi branch pipeline is is not likely to succeed because it's too comp it has too many complicated assumptions about what the, what the initial setup needs to be. But let's go up to the top level of of this. So let's see if, if you click in the top right hand corner, the, let's see where the X that's in the top right. And now if we go to pipelines top center and new pipeline, let's create an empty pipeline here. And instead of. Yeah, so GitHub is a good choice. And now it's going to look at your GitHub repositories. And this will probably tell us hey we don't have one that's really well suited. So scroll through this list. Is any one of these a project that you'd be willing to to create a new Jenkins file for. Yeah. Yeah, okay, so click create pipeline. So now what this is doing is it's checking Oh is there a Jenkins file already. And it says oh there isn't, since there isn't a Jenkins file, it's putting you into an editor that will let you create one. Now, you're sort of this is sort of advanced stuff here but click the plus sign and name this stage let's call this stage checkout. Okay and add a step with a big plus sign there. And here we're just going to print a message so print message. Fake checkout. This is this is just for experiments purposes so fake checkout and now. So the plus sign over on the center again on after checkout we're going to actually let's just save it let's save it for now and watch this so save, click save in the top right hand corner. And we want to and a good description might be something like add a skeleton Jenkins file. And we want to commit to the master branch so click save and run. What we're going to do is now it's going to say, hey, let's actually store this to get hub. It's going to now check out your master branch, and it's going to execute that pipeline. Now that pipeline that we executed is really kind of dumb right it just does nothing it says, I'm doing it gives one message and then it'll be finished. So, click on that master and let's see how it's doing. Good. Okay, so notice that it says check out from version control so if you click on that row it will expand it. And you can see what it's doing and here it is it's saying, I'm cloning your repository github.com Catherine Kiro e commerce site API. And now that it finished that checkout. I put a message in there that says fake checkout. I'm going to expand that one. You'll see the message says fake checkout. Okay, so there's step one. Now if we in the top right hand corner you'll see a pencil icon. This lets us add new stages to it so let's add after checkout we're going to add another fake stage we're going to cut you what you just did was you added one that's parallel. Okay, we want to add one to the right of it so what you did is great you okay you can also you can also cancel it but on the right hand side of the name your stage icon. Okay, that's great. So just click that pencil I yeah to the plus to the right. And now let's call this one build. That's a pretty common thing to do. In the add step we're just going to do the same thing again of echoing a message it's not going to actually do the build yet. So print the message and the message should be fake build. And now if you save that, and it will say yeah that's right add add a build step. And the reason we're doing these things as fake is it's so fast to run them. We're thinking about what should the pipeline be. So now if you click the master row there. It should take us to. Okay, there's one let's go. It should show us another one running. Okay, so let's go. Go back in the top left hand corner click e commerce site. There it is it's already run it it's already finished the run. Let's go look at it and see. We've got to check out and then a build and it gave your message. So now let's do one more up to that pencil icon again in the top right hand corner. And we're going to add another stage called test. So check out build and test. And again because because I'm, I like things to go very fast, just make it print a message fake test. And in your e commerce site, you may have real tests and you have a real build process, save this. And now because we used, because we use blue ocean, it actually did something for us. Could you click on the three that's running now, because there's one more change we need to make. Okay. Click the pencil icon. I made a mistake when I had you define this initially, that stage that's called checkout is actually not needed, because it's implicit. It's by the mere act of attempting to do a pipeline it by default does a checkout so click on the checkout node over there on the checkout step. Right. And now on the right hand side there are three dots, immediately to the right of the word checkout, click that and click the delete, because we don't actually need to do a checkout it's automatic. Now save it. And yeah remove the, I make the comment remove the useless checkout step. You could also put in their mark weight made a terrible mistake he told me to do something that wasn't necessary. Check out step. Okay. Right so what you've now defined as you defined a pipeline using Jenkins blue ocean that has two simple steps in it. Now, the, the, the other thing that this has given you and didn't even bother to tell you it's given you is this is what's called multi branch. And so that if on GitHub on your GitHub repository you create a new branch Jenkins can be taught to automatically create a new job to watch that new branch. So it makes it makes things much easier for you as an administrator of a Jenkins system because someone adds new work by creating a new branch on their repository and Jenkins will just automatically create the job. And when they're done with that work Jenkins will automatically delete the job. Okay. All right that helps it. Okay. Yeah this this. So one thing I'm wondering is this is that the point of this is to help to help developers in the pipeline of of of committing their work to get help. Correct. Yeah, so, so it's pretty common for developers to want to know that a recent change they made didn't break things. They don't want to break things by making a change that. And so what we do typically is on every change made by anyone. We rebuild the software and we rerun all of its automated tests. And that's what this is doing so the, the every time you commit a change to e-commerce site and Jenkins is running, Jenkins can see it and it will say oh I should run this this job to be sure that it's still okay. Now admittedly what we created here is is completely empty right it doesn't build anything it doesn't actually test anything. Okay. Alright that helps. Thank you. Uh huh. One last question. Does Jenkins work almost the same as Jira. They're, they're quite different in the sense of what they do so Jira is used to track track issues track tasks track work. So in the Jenkins project we use Jira very happily to track our bug reports and to track enhancement requests and to track effort on major projects like supporting Java 17. Those are all things that we do in Jira and Jira lets us track that progress very very well. What we use Jenkins for in the Jenkins project is to watch our development changes to be sure that they are stable reliable and that we can ship the product. Jenkins begins to compile the product to deliver the built the build results to various distribution places like the Windows MSI file, like the Debian or the Debian Deb file or the Red Hat RPM file. And each of those delivery activities happen in Jenkins, because Jira is not really focused on delivery Jira is focused on tracking bug reports tracking enhancement requests and helping us know when we're done with those kind of activities. Did that answer your question. If that answers the question because from what I understand now Jira is, is like a tool within Jenkins. They're they're two different they're two very different tools and they handle different different parts of the software development lifecycle, different parts of, of software development activities. Jira does, does issue tracking and it does work tracking very very well. What Jenkins does is automation of activities that are part of the software development process like compilation and test and deploy. Okay. That helps thank you. Thank you. No. Yes, if you're if you feel like you're done we can have you stop sharing and we'll switch switch back I'll start sharing again. Very good Catherine thanks very much for letting us, letting us look at your screen so you should see a worksheet on my shared screen is that the screen that I'm sharing. Yeah. Okay, good. All right, so we've got about 15 minutes left in our meeting today. We had, we had identified this getting you started it feels like you're both getting started very well. Maybe we could take a few moments and take a quick look at the timeline to be sure that nafisa and I know where we're at in terms of the timeline and, and I apologize in advance. I had, I should have checked this before we started our meeting I didn't so we're going to look at it now together. So this is the timeline, it was right. Okay, so here we are. We are in bootcamp phase. Working on a sign project ideas mentoring and weekly calls between mentors and mentees okay good. So we're we're we're started. And so I think we're ready for the two of you to get started on working through that sheet. And to identify places where a change is needed and then have you submit your first changes proposing fixes to those things. Now, now there may be I suspect there may be bumps and bruises, because we haven't yet in startup phase, had you submit any poll requests. That may be a challenge here and let you slack to encourage you or, or if you'd like, we could go through a demonstration of how to do a poll request. Now what whatever you would prefer. I almost said that that if you could guide us on how to do a poll request. Thank you. Okay, great. Yeah, let's do that. So that way we've got it recorded. And, and you can refer to the recording. So, so we need to find an example of something that has a that has a naming reference that's not inclusive right that's uses either the word master or the word slave or the word blacklist or the word blacklist those are all, all non inclusive terms that we would like to eliminate so let's, let's try one like. And this is me making making guesses, I'm going to try JDK tool because it's a relatively older plugin not very frequently maintained. So that's what I did is I click this link on JDK tool it took me to the plugin, the plugins own page and on this page over here in the link section is a link to the GitHub repository for that, that plugin. So I'm going to go to that repository. And now here I'm just going to look for master in this repository. Okay, that's that's the, and remembering. Let's say, if it's in Java source code, and it is a Java identifier. In this case it is master is a master to slave callable is in fact a Java identifier, we can't change it so that's not something we could change. Let's try slave. Nope, that's not a problem either white list. Blacklist. Okay, so my first attempt failed. I thought that would work sorry Catherine that one's no changes needed. Let's try a different one. How about let's try. Let's try something I'm going to jump further down because there are, there are probably things later on that I could use. Let's try Docker Commons, this one right here. Okay, so try here. And now master. Okay, so this one just has in a YAML file that's a configuration file. This one is just a comment, and this one is an identifier so that didn't help. This one is in a test, a test, a test, more tests. Found one. Maybe. Okay. So at least here it's, this is a Java dot comment, and Java dot comments are safe to change so I'm going to go ahead and propose a change to this one. The way I do that is notice that I'm, let's make this big enough to read is that is that readable text size on your screens. Yes, it is. Okay, so I remember that I found here a use of the word slave. And here it is. So I'm going to propose a change to this and I need to do that by editing this file. I want to click the pencil icon here. And now I'm going to search for slave. Oops. Has it already been fixed. No, there it is such as a slave. Okay. So the search facility is available here like this so I clicked over there and now it will show me that one. And then if I keep looking there it is so such as an agent. Okay, so that is a valid correction. It's safe to do because it's in Java doc. It's textual description not an identifier. So now I'm going to save this as part of proposed changes so slave. Use agent in the Java doc, rather than slave. Oh, excuse my fat fingers. How did that do that. Okay, there we go. And there is there is the correction. And now I've got this green button here that says create pull request so I'm going to click the green button create a pull request. This is an agent in the Java doc rather than slave. And now I'm going to fill out this checklist and this checklist that you see here is a fairly standard thing and the way you complete each checkbox is where you see open square bracket space close square bracket you insert an X between them. So it looks like that. At least I am definitely opening from a from an a branch, not the main branch because notice this says patch dash one. The title represents what I want to have in the changelog use the agent in the Java doc rather than slave. So I get to make an X there. Please describe what you did. I updated the text and so let's say that here update Java dot comment to use agent rather than slave. Whoops. Okay I don't have any relevant issues to link to so I can check it because there isn't a relevant issue. Likewise there isn't a relevant pull request and sure you have provided tests I don't have a way to test this. So I'm going to use this to till does the curly character, because what that doesn't get mark GitHub markup as it makes the text be strike out struck through so now notice that there's this preview thing here that will show how it looks to people who read it. So I went back to editing mode in preview mode notice that it wrote a line through the text because this is one I cannot. I'm not going to satisfy I'm not going to provide tests for a change to a Java dot comment. Any questions so far. I want to ask a question please. And doesn't mean we don't need to fuck your position for creating a full request. Well, it good question very good question because notice what this says it says that it's already forked the repository for me. And it did that for me as part of creating the pull request with this technique. So by my using GitHub to do the to do the editing the change it forked the repository for me. So let's let's see that that's the case. Let's go look. So, if we look at my GitHub repository, just to be sure get GitHub. And the repositories Docker Commons plug in so if we look at at my list of repositories oops bad, my list of repositories. The Commons plug in there it is it just barely forked it for me, updated three minutes ago. So, by my using the GitHub editor, I, it, it forked it for me. Did that answer your question. Yes, it does. Okay, any other questions before we go further. I do have a question, but I think it's great to ask this. So then I'm going to go ahead and create the pull request. So this now tells the, this now creates a pull request in the list of other pull requests. And now the people who maintain this plugin can see hey, here is a proposed pull request to update the this piece of text in the source code of this plugin. And now from for record keeping purposes it helps us if we record that that was done by putting that there. Nafisa what was your question. Okay, my question is on when you try to search for the names you're trying to change the master or the slave keywords. Sometimes it came up in method names or package names doesn't mean you don't have to change such or is there a particular step they have to take to change that. You cannot change them. So it's it's quite important that you don't. So let's let's look at one example and see that so let's let's search for for master. And for instance, if someone attempted to change this use of the word master in the object in the identifier master to slave callable. They will break compilation of this code. And we don't want to break compilation it's also not relevant to change this because these identifiers are typically not shown to users at all. Can I answer your question. Yes, very much. Yeah so so that part of this is, is why we need your software skills, so that you understand, oh, I should not propose a change that would break compilation, because if I'm going to break compilation that's not going to help the people who plug in. They're going to see oh you submitted something and it didn't even compile you clearly didn't didn't do the usual checks that are needed before you submit a poll request. So in this case because it's just textual changes and we choose narrowly which ones to do. I could avoid, I need to compile it locally and run tests locally. Instead, I just made textual changes there. Let's go back because there's another piece of this we're almost out of time but I wanted to show you one more piece so, so after I submitted my, my poll request and we see the poll request on screen. This commits tab shows me, here's the thing that I did. The next tab over checks shows me the checks that are running to see if my change is a good change. And what this does is it. This is Jenkins CI dot Jenkins that I owe running checks on Linux and on Windows to see if my if the change I made is a good change. And if I want to see more details about what's happening there. I click this link and it takes me right to right to CI dot Jenkins that I owe now I can even open blue ocean here and see how it's doing so you'll see here. Blue Ocean has done the checkout on Linux, it's done the checkout on Windows it's now building on Linux. And if I open this I can see the progress it's making it's by this point now running automated tests. And same on Windows we hope that Windows is a little slower so it's also running automated taste that's good. So, all of that, because I changed one word and submitted a poll request to make that change. I have a question. So that process of checking on Jenkins is that what it means to build a plugin and test and test it. Because that's, that's one of the ways. So this is definitely building the plugin and it's running automated tests. Now many of us like to also do interactive tests when we do significant changes but but these small changes of just changing text, it's okay if we just rely on the automated tests. So that means because in the, in the task outline, under the, under the task, under the task session, it says we are changing the terminology and building the plugin and also testing it. So does this process cater to it or is there another. Okay, right. Okay, so this one in this task list. This is would be used for the cases where you had to make a local change, because it was so large that you want to be sure that you can do all the tests locally so this very good question. This one is talking about how do we, if, if I have to make so many changes that I need to, that I need to do that locally on my computer then these are the steps I do locally on my computer. So what this is what this task is basically doing is replicating what Jenkins is doing for me on ci.jenkins.io. So did that, did that address your question. But just further clarification for this particular tasks that we have. Do we prioritize local testing or do we just rely on the automated tests on Jenkins. You should, my preference is that you would rely on the automated tests from Jenkins, so that you don't have to do these steps at all. So, particularly for your first several, it's best if they're relatively small, so that, so that I can work quickly with you and you can work quickly so in that case you would just do it from GitHub. Now you may find some plug in in your review here where you discover a plug in let's say, let's pick and a potential one like you might find that. There's no choice. Pipeline Maven is a relatively older plug in, and you may find it's got many, many problems in it. And it's got so many problems in it that you'll be faster doing the changes locally. And if that's the case then you'll need to do the build and test yourself locally. Let's see if I was right. Let's see how many cases it has. I don't see. Oh, oh, yes. Okay, there's a that's very good. Yes, so, so this one has a number of places where it's got interesting things. And this one may be one where you have to say I'm going to do this one locally because I have to evaluate the specific specific things. So preference first, first preference is use the GitHub editing UI first wherever you can. Does that help. Yes. So I'm thinking for the next session, we can do demonstration of that local build and test process. Yes, I wanted to say the next session please let's let's have an example of what you just talk about because it's kind of confusing. Yeah, so next session, next session let's go through this sequence and be sure that you're comfortable with this sequence. And absolutely, I like that. Now would you like to try for a next session later this week, rather than waiting all the way until next week or do you want the time this week to work through some of these so that you've got you've got time to make progress on them. And then we'll just meet next next Tuesday what's your preference. For me, I feel we should work on the plugins naming this week then next Tuesday will work on the other one. Great. Yeah, because it's the week is already short. So this week we could focus on doing the few tasks, a couple of tasks that we can manage and then on next week we do the demos. We'll do that then I'll look forward to meeting with you next Tuesday same time, and we will, we will review at that point, how to do this more complicated thing of a local change to test drive, revising terminology building the plugin and testing. Great. All right, thank you. Thank you. Recording should be available within the next 24 to 48 hours so that you can refer to it. Thanks very much. Thank you for your time. Bye and talk to you next week and in Slack between now and then.