 Welcome to Docs Office Hours. It's the 14th of October. It's actually the 14th of October, also in India Standard Time. Thanks to Dheeraj joining us. It's 1130pm his time. So it's very nearly the 15th of October, his time. Topics proposed for today. Today, adopt a plugin tutorial that Dheeraj and I are working on and a possible additional Hacktoberfest Progress Report blog post. Anything else you want to put on the list, Dheeraj? No, nothing from my side. This looks good. Okay, super. So let's take on this one first. We've got Mark and Darren did a live stream yesterday of the first three of three of the segments of the tutorial. Mark and Darren will do another live stream next week for more segments. We can embed those videos in the tutorial pages. Darren doesn't mind. He encourages it actually and so we'll do that and it will make it, I hope a little easier for people who want to contribute first time if they can see somebody doing it live. Now, Dheeraj, one of the things that I wanted to coordinate between you and me is I had started the pull request or started the commits on a giddy repository for collaboration and it didn't work out. The experiment just didn't work. Yes, although I'm not sure why because when I open a pull request on giddy, when I click on new pull request button, it just doesn't work. I think let's try the same technique today through GitHub and we'll just use my repository and see if I can make your collaborator on my repository. Because what we'd like to do is we want to be able to have you commit to the same branch that I'm committing to. And so I think I need to grant you some sort of permissions onto my copy of the Jenkins.io repository. So here's what I was going to do is I wanted to bring up this and try something like okay here's here's my copy of Jenkins.io. And here is my development machine and adopt a plugin tutorial and blog posts. We look at it it's not pushed to my remote server yet. So or not check not push to get up so get push origin set upstream so we're going to change this to use to put it there. So here is the blog and I'm not going to make it a pull request yet because it's not, it's not anywhere near ready. All I wanted to do was see get the branch wasn't as helpful as I wanted. No, no, no, no, no, no, no, it opened up the wrong place. I need my fork. Sorry, you're not driving really well. There we go. Now, here if we look at branches, we should see adopt a plugin tutorial and blog posts. So what I want to see is can you push checking if I know that's cool. So you were able to push to, to the branch. Oh, oh, that's cool. I missed that dirage. You were able to push to the branch on giddy. I think so I see the well, I, well, let's try and let's let's do some more experiments because it certainly will be more familiar to you and to me if we do it on GitHub. And so let's try it here first. So here's the here's the branch now I think I want to change the settings and somehow make you a collaborator. Grant, write permission to a GitHub repository. Inviting collaborators to a personal repository. Okay, navigate to the main page, click settings and manage access. Okay, settings, manage access, manage access. Oops, get out the security key. Just a minute. If you use security key button and then external security key, make sure it's me. Okay, it is good. Okay. All right, so I'm going to add you as a collaborator. Hey, now with that could. Oh, go ahead, what's that. Now this should have sent you an email invitation and it says the email the invitation is pending and in pending. The voice is breaking. I think it's fall from my side. Oh, okay. Well, sorry, so, so here, let's, let's, no, no, no problem. Let's let's just use written that's easier. So, granted collaborator. Access to marks Jenkins.io fork. Okay, garage needs to accept the invitation to collaborate. Can you confirm that email arrived with the invitation. Yes, I just received an email. Okay, so accept the invitation. Okay, so I should see it now. Yes. Okay, now let's check this. So now what we need you to do is add a remote. Okay, so then add a remote to your local clone of Jenkins.io. And the way you do that is get remote, add marquee wait. That is not very helpful breaking it online like that. There we go. Okay. If we make this career new. There we go. Fetch changes. And then we'll need to check out the marks working branch. And this is where we need that text. What was it. It's here. No, there it is. And then my wanted you to do is push a change there. And it can be any change. Let's see if I look at the file. There we go. Yeah, check out. And if that works, then we've found a way that you and I can collaborate on the same branch. So, it says when I do get full dash dash all it says to not read from remote repository, please make sure you have the right access site and repository exists. So that's interesting. You can't read from. So could you do a get remote minus V and double check that you've got the full repository URL. Yes, I have. I have the marquee way that you just suggested me to add this remote. And I do have one that I added previously. I have a lot. Okay, and so when you saw me, does it tell you which remote it cannot pull. So these six ones, I added in the chat. Okay, let me look at the chat. Okay, so the message is. And does it doesn't tell you which of those you so you could. Does it tell you which of those. It can't pull. I'm from HTTPS home dot mark weight dot net givey and weight chickens I own from. Oh, oh, okay that idea. Okay, so upstream so get remote RM upstream. And then we'll do a get remote ad upstream. It's an easy one up at upstream and upstream needs to be this one. Okay, that one worries me so the permission denied public key so when you push to get hub, you're using HTTPS. Yes. Oh okay well then then we need to give you an HTTPS URL so sorry about that I'm so I'm accustomed to using private keys. I can make it better by changing it to that fork and use HTTPS. Sorry I didn't realize you were using HTTPS that's great so instead your get remote get remote RM marquee weight, and then the thing we're going to add is this. Right. Yes, so all changes are done it says already up to date after fetching. Okay, and it did not say anything about pulling down a new branch by any chance I hope it did. Well, if you execute this command will know if that happened or not. This get checkout that one if you'll run that that will tell us if you've if you locally have a copy of the branch where I've started the work. A branch name adopt a plugin tutorial and blog post already exists. Oh okay good. So then you don't have to do that that's easy. So then the next stop is get push. Marquee weight minus set dash upstream. And then we need the branch name like that would help a bunch if I need this small enough fit on one line. And it may tell you nothing to push. If it says nothing to push that's good because then we need to do the next change. Actually I'm trying to authenticate. Okay. Yeah, HTTP authentication is that's that's one of the reasons I so like SSH is that then I don't have to don't have to wrestle with the HTTP authentication dance. So, so I think it's let's move forward you can tell me the next step I don't want to waste your time. Let's I think I think it will be the crucial next step we need to be sure that you can you can push. So if you'd like we could instead configure you so that you have a private key installed on your GitHub account if that would help because then you then you could use SSH. So if you're if you're willing to share your screen sharing mine and just in case there are things that are sensitive I'm going to. Okay, so let's let's work on creating the skeleton that we'll use I'm going to share my screen. Let's see oh I don't know which screen you're seeing or are you seeing big empty black screen. Yes, your desktop. Oh yeah I've got three of them so the one you're seeing does it now have a chat window in it. Oh no let's see what's a different one let's does it now have my file. Yes file explorer. Okay, so it's got the file explorer and okay good then I know which screen I'm sharing very good. Okay, so now it has a terminal window in it right. Okay, so okay so what I need is a site that we can use to see the changes that we're making. All right, and now we need to go find let me describe what I was thinking and you can guide me if you think that makes sense what I was thinking we would do is. Today there is this documentation developer guide and here is a link to tutorial. I thought we could either make this make this page have two links tutorial one and two or something like that. Or we could make this page have pointers to the this is just to create a plugin tutorial. The next tutorial we're going to create is adopt a plugin. So, you have a preference. I don't think I have a preference I can go on. Okay, so let's try one of them and we'll throw it away if it doesn't work for us. So here is that same thing in my development setup. Developer guide and so we want to change this I'm going to change this page. So, ask your question again. Sorry, dear as you didn't didn't hear your question. So I was asking, were you able to hear me. Oh yes, I speaking. I can hear you let me I'm going to turn up the volume a little so I hear you a little better. There we go. Yes. What is it here we go. Doc developer. That looks like it's okay sorry so so we've got tutorial. New plugin or create a plugin tutorial. Like this tutorial to create to create a plugin tutorial to adopt a plugin. Okay, let's see how that looks. Oh well that didn't look so great. Okay, let's fix that mistake. Okay. No, that's not very good is it. It's not good at all. Okay, how about something different. What do you think of this. Hello. Oh, you're not able to hear me. Oh, I'm sorry. That's okay. I will. I will just proceed with this. I'm not going to be. Yeah, understood. Rejoin. Sure. Yes. Okay. Hello, can you hear now. Yes, I'm very, very sorry for disturbance. No, that's that's great. You've got to be able to hear. Yes. Okay, so what do you think of this idea as a possible layout a tutorial to create a plugin. Tutorial to adopt a plugin. So this is. So first one is the old tutorial right and second one is the one that will be working on. Yeah. I'm just thinking yes. And it's not been written yet, but just, yes, that was the idea. Maybe we want better phrasing. Oh, and look, it should be title case. Obviously I missed that. Okay. Okay, let's try that again. Maybe it should start with the word. Like that. Yes. So that they see the. So what if it doesn't look any better like that. Create a, okay. Now the other thing we have to check is how does it look at lower resolution? Okay, it's not, not terrible at lower resolution. I think this one looks better. Okay. Like it draws more attention to what the tutorial is about. Right, right. And it's still clear that it is a tutorial. Okay, good. So let's, let's do that and let's test drive this and see that you can see my change. So. Okay, so I'm going to. Okay, so I added the entry point. Get push. Aha. And it tells me that I attempted to push. When I had not pulled your changes. That's good. Okay. Let's see. So we're going to do it like this. Why does it complain that that's not allowed. Get rebase minus, minus. Oh, no edit is not an option. Okay. Fine. There. Okay. Good. So that's what I wanted. So now I'm going to push it. Hey, do you Raj, could you pull that so that you can see it now that you've got. You have my change. So I'm not hearing you. I am now. Yes. Okay. Okay. So I've just run. All. And it's running. Long time. I don't know why. Hmm. Still running. And if you want to interrupt it, you can interrupt it and just say get space pole. You don't need the minus, minus all any longer. Get space pole. That's it. Yes. It probably will still be slow. So it's a. One file changed eight insertion. And deletion. Very good. Okay. We now know we can collaborate. So now we need to, now we need to create that. So. Yeah. Ellis files. Star tutorial star. We need to figure out where it is. Okay. So there is a directory named tutorial. So we're going to make a directory named. Tutorial dash adopt. Okay. And now. Because I'm lazy. We need this index. So adopt plug. Adopt. A plug in. Tutorial. Okay. All right. And now we don't need these references. Because those are references to. Yes. Something else and it's not a work in progress because we're going to finish it. Okay. So. Insert words. Let's see. Jenkins plugins. Sometimes need new maintainers. The plug in. Maintainer. May have changed. Or lost interest. Or no longer has time. To maintain. Plug in. The. The plugin program. Process. Allows other maintainers. To. Become. Maintainers. No, how do we say other allows other maintainers allows. Other individuals. Become plug it maintainers of the plugin. Okay. So blah, blah, blah, blah. Jenkins plugin adoption. It explains how to. Explains. Common steps. Common steps. That. Help a plugin. And help prepare a developer. To adopt the plugin. Fair enough. So now we need. The steps. Contributing to open source. There we go. Excuse me. No. Oh, good. No problem. That's great. Okay. Yeah, that's what I'm trying to do is add. A placeholder for those kinds of things. So then we know what file to put them in. So. Update the parent. Update the parent. To. Allow development with Java 11. So those are already two very good beginnings. Okay. So now I need to find the place where those things belong. I think they belong right here. So. Now we've got to insert the links to various steps. Interesting. Oh, hang on. I need to answer this call. It's my spouse. I'm back. Sorry for the interruption. So we are about out of time here, but I'm going to go ahead and do some initial and. And push this. So add a Jenkins file. And then the next step was what it was. Update the parent palm. This will get really mind numbing. I'm not sure we may want to find a better way to do this. So let me put something in here. With that text, how about. In the, let's see, this is at a Jenkins file. So, okay. So if we got that right. This should be somewhat better now. Adopt a plugin. No, not quite. Let's do it again. So what this will do is this, because I can't add new files automatically into the runtime like that, I have to. Restart the build process. There it is. Good. Okay. So add a Jenkins file. And there is the instruction. Create a file named Jenkins. Single line. Good. Okay. So this looks. Good enough that I think we ought to register it. So. Okay. So. Oh, now that's odd. Okay. So. So, dear Raj, I propose we call this the end. I'm going to push. My two changes. Could you confirm that you can pull them to your side? So did you push it? Yes, I did. Okay. So I can see two files changed. Good. That's it. So now we've got the beginnings of a place to put this content. And you and I could work on it somewhat independently actually. Excellent. Thanks. Sleep well. So just one confirmation. Sorry for that. It's just, you have added two points from the Google doc to the. Right. Update the parent. Right. Okay. So we'll be working together and adding the other parts as well. That's the idea exactly is we want to add. We want to release the things up through enable release drafter. And we may want to do migrate documentation and improve pipeline. The, the, those last two are much bigger. There. I'm not sure that they're tutorial sized. Okay. So how will we know which one we'll be working on? Okay. So you just want to put your name next to one. If you start working on it, just put a comment here in the document or even better. If you were to put a comment. Down here. So put a comment on this title, for instance. Say, Hey, I'm working on this. That would be better. Yes. Now, have I allowed you to comment on it? Oh, I've allowed you to edit. Yeah. So you can definitely edit. So I'll do this. Yeah. So if you, if by when you do it that way, now when I update the table of contents, it will put your text into the table of contents. If instead you click on the, the blue box over here to add a comment, then it doesn't change the table of contents. Yes, that's better. There we go. I'll do this. All right. Thanks. Thanks for being willing to help. Yes. Thank you. Have a great night. Bye bye.