 Welcome to Jenkins documentation office hours. It's the 13th of September reminder that we follow the Jenkins code of conduct. So it'll be nice to each other while we're in the session. Here are the topics that I had. So the change log review for tomorrow's Jenkins weekly release, a review of the change log proposal that I've done for the 2.310 release that we skipped. DevOps world is a possible topic, contributor summit as a possible topic. Are there other topics that people would like to add? No, nothing for myself. Oh, yes, Hacktoberfest is one. Okay, well then let's take on the change log review for 2.312 and take a look at it first. So right now it's got just the one, replace the old icons with the new SVG icons in the job trend page. So it needs a full stop, but other than that, it looks pretty close. Whoops, Jenkins core. See that was five, seven here. So replace the old icons with the new SVG icons. And then we've skipped the one on prevent J unit for chip test from being skipped and update and use Jenkins.io for internal links to issues. Those all look good to me. Any concerns with that change I made or any adjustments you'd like to make? I don't see any. All right, job trend page. Okay, so this is, we should note it as resolved, unreleased because it's been fixed and not yet released. Okay, good. So that was a useful step. All right, so then next item was the 2.310 change log review. So this one, if we look at the Jenkins site, what we'll see here is the regular weekly releases show a 2.311 and a 2.309 and someone might wonder what happened to 2.310. So what I did was submit a proposal. Here's a proposed change log to put a placeholder in for 2.310 that says this release build failed while release up and down. It says this release build failed while release uploads were blocked. Installers, native packages and Jenkins were not published. And then I used the same type of text as it was used in the past when we skipped the release. So this was not published because the release build failed, right? Correct, yeah, so and the release build failed because we were blocking uploads to the release repository. Oh, okay, okay, see if this looks good, okay. Yeah, and there truly were no components delivered although if we look in the repository, so if we look in core at the tags, we see that there is a tag for it. If we look at tags here, here is the tag for 2.310 and two days later the tag for 2.311. And the 2.311 tag has a release associated with it and downloads, whereas the 2.310 correctly does not have anything associated with it. And here's tomorrow's 2.312 draft. I tell you, this change log automation is working brilliantly. It's very nice, yeah, so even just being able to see the stuff played in advance, it just looks great. Right, well, and not having to run it, good. Totally, yes. All right, so okay with the team and ready for review and merge by someone else, great. And this Jenkins 2.312 change log will be published seven days from now, right? I know it should actually publish tomorrow. Now, why would you think it would publish seven days from now? Oh, I think because, oh, I thought since Tim just merged the previous one yesterday, so there has to be seven days gap, that's why. Oh, no, okay, good point. And there's a bit of an embarrassment there because I should have merged the 2.311 change log several days before and I got distracted by the issues related to the wiki problem and didn't do the merge of the change log. No, quite. So yeah, you're absolutely correct. The delay on this merge, this thing only merged less than 24 hours ago, but it actually released five or more days ago. We just, we didn't get it merged. And so we had that awkward phase where there was this change log entry didn't exist even though we were already delivering 2.311. Right, okay. Good observation, all right. So the next release will be, should be tomorrow and the automation should run it. Let's see, I should actually approve this because we've approved it there. So we don't see any problem with that. We think it's ready to merge and off we go. Great, okay. Next topic is Hacktoberfest. So here we've got, okay, we've got contributor summit October 2 that will be the launch for Hacktoberfest but docs topics for Hacktoberfest are a great choice of places to work and let's look at some of the hot ones because of the recent challenges. So docs topics for Hacktoberfest could include transition, docs from plug-in documentation from Wiki to GitHub repositories. And there, if we look at the Wiki exporter, we can see that there are still probably a thousand, yes. There's still a thousand plug-ins that need their documentation transformed. And if we, you look to scroll down the list, you can see which repositories still need it. Like, let's see, the Ansible plug-in or Groovy Post-Build or Deploy. I happen to like Groovy Post-Build, I use it. So that is a good candidate for an intro session and for Hacktoberfest contributors to make a positive impact. So now the question is, we have videos that show how to do it. We have webpages that show how to do it. Do we need lists of plug-ins to perform the transition and should we check with plug-in maintainers and ask maintainers if they're willing to review the changes? Right, because, finally here, I think we've got uneven quality in those, right? Oh, that's the most delicate way of saying it. Yes, indeed. Uneven quality is a great delicacy. Well, let's look, let's actually look at top of the list. Ideally, this should just be an exercise in coding ASCII doc, right? And even that isn't perfect. And even that isn't particularly required. So because the ASCII doc already exists, now that, so what you see here is the Ansible page and this previously, I think would have said something about, oh, hey, go see, go read the Wiki but Gavin Mogan has made the transformation already. And so now it may be a, actually, we may need to improve our description. Right, where do we- We need a different video then because it might look different. Right, well, where do we find the- We need to reference the video but it's like it's definitely to highlight that it does not look like this anymore. Right, right, exactly. It's the videos assumed the example of the existence of the Wiki site, it's gone now, right? There is a, I think it's already a conversion site that the plugin site is reading. So now we may need to ask Gavin, hey, what is the process? Because if I open this GitHub repository, I'm sure I'll see in the palm. Yes, notice this palm file has a URL that points to the Wiki but if I try to open that page, that page absolutely does not exist and will probably never exist again or if it does, it will be at some other location. Maybe now this is a great excuse to go check community.jankins.io and see where, what the transformation has been. Okay, okay, I don't, ah, yes, okay, here we go. So here is the, I think this is the location. So if I search for Ansible, what we'll see here is read me and there is the documentation for the Ansible plugin. This really though belongs inside the Ansible plugin not here. So we do need new instructions on how to do this change. And then we need to publicize, like I'm one of those with limited abilities. So describe what you need to know or be capable of doing to be worthy of participating in this activity at Hacktoberfest. Right, right, exactly. So I need to know about this particular, about these plugins. Are we looking for people with expertise in the plugins? Are we just looking for writers? I think in this case, we're just looking for writers because already the act of transforming this ADOC file or in this case, this MD file, this Markdown file into the Ansible repository will help the Ansible plugin maintainer. So let's go find the Ansible plugin and. And sort of along these lines, maybe it's a good idea to also highlight that like all we're doing is copying what is already there. We're not adding anything different. So Meg, if you were making this conversion, they wouldn't be like, oh, can you detail this process that, you know. Right. You're not gonna have, it's like no context into the plugin because you know, you've never used it before or anything like that. And it's like, I can't do that. So it'd just be good. It's like, look, I'm just doing this. We're copying it. If you have any other suggestions. Now, you can. Now's a good time to file an issue. Exactly, like in that way, it's tied to your repository. A lot easier to get feedback. Right. And it actually makes a lot of sense actually to do it that way. Even if the information's really bad, let's get the old information up in the new form. Right. It could be good too. This could help prompt some of these plugin maintainers to even, you know, if it's out of, in another place, out of sight, out of mind, it's a good idea. You have a chance now to go and I was like, oh, this is a good time to review our doc. Like let's make sure it, now that it's here, let's make sure it's accurate. So it's nice. Right. And that's at least been the thing for me with the git plugin has been, oh, because it's there, I can put myself a reminder. Be sure you update the docs when you add new capabilities. And there's a regular reminder now for me. That's awesome. Yeah. So this, this, okay. So let's, I'm going to capture this into the notes. So what we've got is, okay, transform from the, from whoops conversion site to repo. So we just gave, we just did that example. Let's, let's, I mean, we could, we could even go through that here right now. If, if, if that would help, because Meg, someone's going to need to know how to do it and we'll probably want an intro segment in the, in the, either the Hacktoberfest launch or a separate video of it, or we could potentially take a copy of this video of the video of a subset of the video for today and, and publish that. Raj, would, would you be okay if we did that? If we looked at this transition process? Yes, that could be really great. Okay. Good. Then, then let's, let's go ahead and do that. So, so what we've got here is let's show the steps first as, let's see if I can describe them and then Meg, you and others can help be sure that. So the, the transition steps are choose your plug, choose the plugin from the wiki exporter. Choose a plugin from the wiki exporter list. And where was my wiki exporter page? Here it is, this one. Okay. Progress page. Okay. And, and the crucial thing here is choose one that is not yet done, is not done and is not in progress. Check that it is not done and is not in progress, right? By looking, review other pull requests, then fork the repository, fork the plugin repository, clone the repository to your local computer. Open the transition readme.md for the plugin and the repository is this one. And then create slash update the readme in the plugin. Oh, whoops, whoops, missed one. Create a working branch. Get checkout minus b move docs to github and then create update the readme and create a pull request. And then if I remember, there's something about tag the pull request for Hacktoberfest. Kristen, can you help me with that one? How is, is, is there, there's some marker we apply to it or something like that? I think it's a github label. But. Oh, okay. Yeah. Yeah, good point. Okay, good. So there's an outline of the steps. Now, okay, if we go through those steps together. Yes. Yes. All right. So let's first then go to the wiki exporter progress page. That's this page right here. And you'll notice that what I did was start from the top and scroll down looking for the first area that's neither green nor blue. We're still seeing the steps, not yours. Oh, oh, interesting. Or I am. Okay. Has it, has it caught up? There it is. There it is. Okay. Great. My network is a mess, so. All right. So the first one I see is the Ansible plugin. So I'm going to, first I'm going to close all the tabs to the right. All right, I'm going to open this one. And this shows me the documentation from the plugin site. That's good. And then if I find over here in the link section, the github link, I'll open it in there. And I go to pull requests. And here in pull requests, I was worried, oh, here's this pull request from two years ago now. Move docs to github. Oh, maybe somebody's already started this. Well, let's look and see. So move docs to github. What was the total change made? This one change in the, oh, guess what? There's a step missing. Update the palm.xml file. URL tag with the github location. Replace the wiki location. Cool. So I missed a step. So this is all that was done two years ago. And this is, well, certainly this is necessary. It's completely insufficient. So what we're going to do is we're going to try to supersede this. Now one of the dangers is I don't know if this plugin is actively maintained, but we're going to do it and accept that we'll hope that the maintainers will review the change. So let's see the next step. We chose the plugin. We checked that we're not done. Oh, time to fork the repository. So fork and fork it there. Okay, so here's my fork. Now I'm going to clone it to my computer locally by copying the URL to the, okay. And there is, and I like to add the upstream just because I like to have them both available. All right, now the next step was create a branch. Oops, the next step is create a working branch. Get checkout minus B, then... Should we stick in again? Ask your question again, Meg. We lost part of your order. You should, should we stick in and then we lost the last word? So Meg, we didn't hear you. I'm going to go ahead and assume that you'll, when your audio is back working, you'll come back to us. Okay, so... Hi, can you hear me? Oh, go ahead, Meg. Yes, we can hear you. Yeah, should we stick a git pull step in there in case they clone and then go back the next day and create their branch? Oh, sure. Yeah, that's a good idea. It won't hurt anything. I mean, if you do it right after your clone it's a waste, but if they really know what they're doing, they'll know that, right? Uh-huh. But I'm just, my experience with novices is just to tell them when in doubt do a git pull before you do anything. Yeah, good. Yep, very good. And this is, this is me. I don't know if others object or not, but for me it was, I really like, I like having them both. Okay. Now, if we go to that, so our next stop was open up the transition read me and Ansible is right here. So doc slash image, oh, oh, there's another step. We're going to need, we're going to need to copy images from the transition, copy images from the transition repository. Because we don't want to lose those pictures, right? So here's images and here's this picture that, I don't know if that picture's actually that valuable, but it's in there. So we'll certainly want to copy it. Okay, so then, and now what's the easiest way to get that content probably to clone this myself, right? Because it will help me if I do a get clone of that, then I've got all the files locally. Okay, so now I have locally a directory name, plug in wiki docs that I can use to copy files around. So we should probably put that. What do you think? Is it helpful for them to clone that big repository? Kristen, Diraj, I'm going to guess, yes. Oh, okay, I was like, I was almost going to say, I'm not entirely sure because it's so much and they're just doing one. They may be able to just copy things from the webpage. Yeah. Okay, let's go with that and we'll, we can certainly show as an advanced topic, hey, this is how you do it, but the easy way is just copy it from the webpage because it very much is easy. Yes, I just want to encourage people to go like, to make it less of a load, I don't know, or at least like my opinion is like, the less they have to try to figure out how to stop the cutter. I was like, you're just kind of like, encourage people to move stuff over really. Right, right, I like that. I think that's great. So let's take a look at this one. So what I do is I'm going to go to readme.md, I'm going to click raw, and all I'm going to do is copy that content and now I'm going to paste it into that readme file. Voila. Okay, now it's complaining that there are some unexpected encodings what wants to do ISO Latin one. I don't really need it to be ISO Latin one. Those are just fine. We would like it encoded as UTF-8, if you please. There we go, okay, set. Okay, so we don't actually need this thing because this is going on the plugin site. So having a big blurb that says, look at the plugin site isn't going to help us. And the older plugins could be dangerous is added automatically by somebody else. So I'm taking that out. And now table of contents, is that automatically generated by GitHub? No, that's just, since that's not auto-generated, I'm taking that out. I don't think it's useful to say table of contents and then I'll actually have a table of contents. All right, so now the one thing that we, oh, okay, here's another one we can transfer. Issues.jankins-ci.org should be issues.jankins.io. And let's look if there's ISO and wiki, any references to the wiki, that doesn't exist. So there's no reason to talk about that. And the ANSI color plugin. So let me put a note in here, replace references to the wiki with plugin site references or other docs references. Reasonable so far? So for instance, the ANSI color plugin link that's here should be replaced by going to the plugin site, Jenkins plugins and looking up ANSI color. And there it is. And now we'll just paste that into here. It looks dark. Okay, so no more wiki references. And Jenkins.io. Oh, well, that's a good one. Okay, so docs.ansible.com, that's cool. Okay, oops. Okay, there is no reason for us to have these things doing markup like this. The readme or the markdown already does all that kind of thing. So we don't have to make them bold. Okay, and the open issues thing, this says data cannot be retrieved due to an unexpected error. I don't see any benefit to this, but the issues queries probably work just fine. Still one more to fix, change log. Sorry, this is getting boring. This is no fun. I should have done a regular expression for it. All right, so we've taken the steps then of revising the file and what is that line for? Table, I don't know what that purpose is. Okay, so for better or for worse, there it is. Also, we can check the links, the directors to the Ansible website, whether they work on it or not. Very good, yes, that's a very good one. Okay, so ansible.com, that's a good thing to include in the instructions here. Check the links work, very good. So let's do that. Yes, that's good. Ad hoc commands, that's good. Yep, that's good. Also good, help if I didn't fat finger. Ansible, good, playbooks, okay. Okay, and this one refers to itself, right? Let's double check that it works, which it does. Though oddly enough, it doesn't link to the read me, okay? Steps reference, steps reference without the trailing. Yep, okay, that's good. And then an SSH keys reference to the Ubuntu site. Oh, oh, here we go. Okay, SSH credentials plugin, that should work, but then we're going to get one that's broken very soon here. This one, source forge probably is broken. Nope, nope, there it is, okay. Yeah, okay, SSH credentials, okay, that works. And this one we had checked previously. So I think we've completed a reasonable series of, now I don't know what this table thing here is. Again, that is, there's missing information there that I don't know what should have been there, but the word table is not help, not helping. What other things should we be checking while we're here? Any graphics or tables display correctly? Right, right, image, that's a very good one. Okay, so here's an image and I didn't copy that yet. So that's certainly, and that means we need to create a directory for it because it has a place where it would like to be and it's called docs images. And now we need to copy that file from this, whoops, from this site here. And this is the one we need and we need to copy that link address docs images. All right, so what have we got? So we've got a modified readme and we've got docs showing two files, readme.md and docs images deploy Ansible console. Is there a way they can see it formatted from here or do they need to? They're from here immediately, no, but they can push it. So let's go ahead and push it. First, let's give ourselves a commit. Okay, so at move, whoops, one more thing missing. I made a mistake. The thing that's missing is palm.xml change. We also need to change this thing instead of pointing to the wiki, it should point to the Ansible GitHub repository like this. Okay, now that's strange because that's just wrong. Okay, so we've got some more work to do while we're here. Readme, palm and this one, update, no use. GitHub or docs, not wiki. Okay, now there was one additional problem that I just detected. I'm gonna fix it while I'm here. This URL is pointed to the wrong place, right? It's pointed to the original, that the Jenkins project forked. Now the thing that we don't yet have, so we've done create the working branch, open the readme, create, update the readme, replace the wiki references, copy images, update the palm. Okay, now we're ready to create a pull request. Okay, and the, oh, whoops, yeah. So the easy way is get push, origin, set upstream, move docs to GitHub like that. And then it tells me create a pull request by going here. So I'm double clicking this and go there. And here's the pull request. So move docs to GitHub. So I'm opening a feature branch. The pull request title represents that, yes. Describe what I did, copied and edited. See, and if I remember right, Kristen, don't they prefer that that be somewhere else like down here, so. So as long as you mentioned that, yeah. So move the docs, as long as you mentioned Hacktoberfest apparently in this, some of the, yeah, don't forget to. Submission, right, right, exactly. Okay, good. To move documentation from Jenkins wiki to GitHub. All right, describe what you did, link to relevant issues. So there's no relevant issues, so I can put an X here. And the reason for the X here is it will fill in the checkbox. Link to pull requests, don't need to do that, provide tests, don't have anything that needs to do tests. Okay, and there we go. So this I think is ready. Oh, and now Meg to your question, is there a way to see this? And the answer is absolutely. I click the three dots over here, right click, open link in new tab, and here is the documentation. And we should see that picture. There it is, there's the picture. So this is the material that was there. And here's, oh, the changelog looks horrific. Okay, I'm sorry, that changelog has to be fixed. That's not. That's one of the benefits of doing this, look at it. Now we see, oh boy, that looks awful. Let's fix it. So we'll go fix that, but. Also, can we go back to the image? Sorry, go back to what? Go back to the image in this page. Oh, to the image, sure, absolutely. This one. Here you can see this height 250. Is that needed at the bottom of the image? Oh, good catch, very nice, well done. So let's go fix that. That doesn't belong there at all. So that is useless. Thank you, very good, Dheeraj. Okay, so we noted that that's fixed. Oh, I have to push it and then we should see it. Okay, now when I refresh this, oops. Now I have to do something a little different. I have to go back here. I refresh this, I may not even be able to refresh because I haven't submitted the poll request yet. Let's submit the poll request and then we'll go do the repairs later. So poll requests ready, create it. Okay, so thanks to Docs Office Hours for the help. Oh, Dheeraj, well done. Yes, there is some hope for me someday in the future. I may be able to. Okay, now let's see. All right, good. All right. So now we should, as an added thing, this thing should probably note that it supersedes number 33. Super seeds number 33. Okay. And I can't do the labeling. So somebody else will have to label it. But. So now we've. Yeah, don't worry. I looked at the documentation. I says as long as you mentioned not hacked over fest, someone can come and find it for you. Oh, good. Okay. Excellent. We're good. All right. Super. Then let's see, there was something else we said. There was something that looked horrible here. What was it? It was. Change logs. Ah, right. Okay. So if we look at the change log. Yeah, I noticed that it's got three, three levels of indentation. That's just, that's just immoral. We need to fix that. Okay. So. Change log. All right. Oh yeah. Okay. And we can see why. Okay. What's the easy way to fix that? Okay. First fix. Okay. So. Add support for Ansible vault. And I don't know why it's adding the square. Oh, it's adding square brackets because. That's what was there before. Okay. Right now. And I'm going to lay out this better. Okay. So now we've got. Things that look sort of like a list. So. Fix the change log. And there probably is some weight of you mark down on my local computer, but in my case. It's just easier if I. Read it online. Let's get help. Show me how it looks. I agree. I did it once. And I'm going to lay out this better. I agree. I agree. I did it once and it was really convoluted. Okay. So the change log. Here we go. So. Okay. At least to me, it looks better. There are fixes that are needed in the. That is useless in my world. That let's see how it looks. Yeah. Fixes only hyperlinks. The hyperlinks are now no funny square brackets on them. There we go. The issues query for Jira. Didn't, didn't actually do what they wanted it to do. Okay. Definitely did not do what they wanted it to do. So. I'm not sure. I can claim that that Jira query is particularly useful. But. Okay. I was like, I put a link in our document. Yeah. That's not. Okay. That one works. That one at least works. The first, but the second one. So the view these issues in Jira. Oh, view these. So that's just phrased wrong. It's not view these issues. View issues in Jira. But all open issues, that one just doesn't work. And Jenkins. We confirmed all the other links were working. Okay. Good. Any objections so far to the techniques we've used. No, did you record those last sections after you had pushed the PR. That you check the formatting of tables and images. And change log. Oh, good. No, let's do that. So. Check the formatting. Of the documentation on GitHub. Fix as needed. So that it. Looks reasonable. Don't make the maintainer. Do a lot of work. Good. Very good. Also do you want to mention that. About the links that Kristen has shared in the chat. Oh, I missed those. Okay. So. Okay. So you say mention the. Yeah, I put a link to the. Hacktoberfest getter and then also one about like. The hack. The official. Yeah. Request reviews. Good. Okay. So mark the. It looks like it's a tag thing, but I think that this. Again, we're really early on top of it. At least. Yeah. Yeah. Yeah. Well, and, and, and most, most submitters don't have. Mention Hacktoberfest. In the, in the comment. In the pull request description. Because most cannot apply a tag to the. To the pull request. And then. This, this one was it. Okay. I'll just mention it in the getter chat. Okay. Mention the PR in the Hacktoberfest. Get her chat. And that is here. Good. Anything else we need to capture here. I think it looks good. Just I have one generic question. So what we have done is we have. All of initially was the everything was on the wiki site and we didn't want it to be there. We want to shift it from there to each. Plugins GitHub repository is read me file. And now if you talk about it, we have a repository called plugins wiki docs where all the. Plugins have their documentations in the read me file, but we want all those read me files of specific plugins to be rated to their individual repositories, right? Yes. You said it brilliantly. Okay, I got it. Now it makes sense. Great. Yeah, it's, it's very someone might say, oh, but why don't we just maintain things in that transition repository? Because there are hundreds and hundreds. There are over a thousand plugins in that thing. It's just unmanageable. Whereas if we do it in the individual plugin, it's very close to the plug in near its, its, its own changes. Good. Just make sense. All right. Well, our, I didn't realize how much time we taken or we've passed our time. I think we should call this done for today. Thanks very much for helping go through the steps. I will. I will capture a copy of this and that way we've got it ready. We can always consider doing a re-record or having a session where we talk to each other and invite others to join us. I think we've got a good mix. Definitely sounds good. All right. Thanks everybody. Thanks.