 Welcome to Docs Office Hours. This is the 8th of November in North America. It's the 9th of November in India. And reminder that we abide by the Jenkins Code of Conduct. So here are the topics that I had on my list. Status report on, oops, status report on adding more copy editors and review of the 2.320 change log. I think those are the change log. I think it's the single most important thing to do today. And if that's all we've completed, I would feel good about this session. If we get to it, adopt a plugin, Meg, would you like to put a topic on relative to security or other? The one I have for security is part of adopt a plugin actually. So other than that, we don't have much. I heard from Daniel that he survived the security release and he was like, I'll get into this and I'm like, Daniel, take a break. We know what you've been through. Can't build on any more people. So that's there. I have one for after adopt a plugin if we get to it. And that is a high level discussion of what we want the opening of managing Jenkins and the first section and that is configuring. There is an old, more than a year old PR out there that I reviewed and it was done before the UI changed. And I'd been thinking about working in this space anyhow. So sort of a high level discussion and then I've got some ideas and I can get to work. Oh, good, okay. But also part of that PR was like as a apprentice copy editor, it would be interesting to just glance at that and see what one should, if I wasn't trying to write in the same area, what one should do about a PR like this, so. Great, okay, very good. Any other topics? Dheeraj, any topics that you need to add? No, my main important point is the adopt a plugin tutorial. Okay, great. All right, so then let's do the topic. So copy editors, I sent the request to the developer list. All the responses were positive, so it's approved. You'll all be members of the triage team after a mentoring period and we'll choose what that time is, then we'll make you members of copy editors. I haven't yet added you to the triage team because OLEG has started the process of implementing an easier way to submit your contributor license agreement. It's not done, but I would love to have you be the part of the test drive. The change, because it should be much easier than the current technique. The current technique requires that you sign a PDF file with your physical signature and scan it or know you have to do something with a GPG key, all sorts of complexity and this EZCLA sounds a lot better. Definitely. So when we're members of the triage team, does that mean we'll get notified when there is a new PR that needs review and this sort of stuff? I don't know that you'll get any notification on new PRs. It's a good question. I think you can edit issues, so you might also get notified on new PRs. Because I have gone through a few of the PRs and I wasn't sure what I was supposed to do, just leave my comments and figure somebody else will find them when they need them. Yeah, and that's the right approach. Leave your comments, because the original author of the PR will likely act on your comments, no matter what your title is or what team you're part of. Yeah, cool. Great, okay. Change log. Next topic then, let's look at the change log. And I do not have this one running right now. Let's get it running. Just a minute. It is change, 46.92, okay. Okay, so while that's running, getting itself ready, let's look at it and make it big enough to read. Okay, is that readable to everyone? Good to me, yes. Okay, so first we've got a to-do type on PR 55.24. So let's go ahead and fix that. Let's see, where is GitHub Core? No, yeah, GitHub Core. So pull requests, pick one, replace it. Okay, so this one is listed as dependencies. So why didn't it, oh, oh, because dependencies doesn't tell us whether or not it's RFE or this one is definitely developer. Okay, it's a developer. And I think we want to call it, what do you think, an RFE, a request for enhancement? I'm hesitant to call it a bug. Because nothing was broken, this just makes it run better, right? Yeah, this is, I mean, I guess we, yeah, it's just, this is an improvement that will reduce our risk and our overhead in the future. Now there's this link that we'll have to fix after the fact, but I think that's a reasonable thing to do and just to accept that we'll fix that off because what this needs to be is a reference. And there isn't a way right now in the change log to do references. And we'll have to move the developer items down to the bottom, right? In order to have the right ordering. So then category developer, now use the upstream version of Ant. This for me is ready and good enough. Okay, next one, bump JNR POSIX from, okay, no comment in the proposed change log. So I think this one is probably needing to be noted as a skip change log. Yeah, this one is, it's a nice fix, but there's no reason for us to require it in the change log, agreeable to everybody? Okay. This one fixed a problem on system 390. Kind of cool, IBM mainframe. Huh. Okay, next one, this one's got a really strange character there that I do not understand why it got there. So we've got to fix something there, but I'm going to look for others to help me understand what we need to change in order to fix that. Somehow or other, it got an extra thing inserted prior to being called a major request for enhancement. Okay, so does anyone see anything here that might hint ampersand one? No, there's no ampersand one anywhere in that thing. And yet here it is in the, and then there's an asterisk one, huh? Okay, so let's make a guess as to what might be causing it. I'm going to bring up another PR with a more traditional, no, that's not. Oh yeah, here we go. Okay, let's use one that's closed so that we can know how it looks. So for example, what if we looked at this one? I don't see anything particularly suspicious in the difference between that. Is there any possibility that there's a hidden character in one of those fields? Entirely possible, I just don't know how to find it. Right. Okay, so here's the proposed change log entries. I was thinking maybe what we need is let's change this to a level two heading. And now are there other things in here that? There's not a space between the second number sign and links is there, the header. There is as there should be. So that should be, okay. Yeah, that's correct as far as I know. Okay, I was thinking I saw something didn't have, and it's someplace I saw one that I think didn't have it. I can't, I always have to look up Markdown syntax. I don't know it. Updated, okay, upgrade guidelines. Wait a sec. Oh, maybe this, maybe, I don't know if that would be it because I love what that does is that makes it a link to the, although let's see there's something suspicious hiding in there. No, that's perfectly reasonable. I don't know what's causing that to fail. So I've made a guess and we'll have to see. Could you delete those two special characters and rerun it? Because you said there could be the fact that we don't support the route. It could be, yes, that's true. So this is all that would remove it. And so I could replace this with a link to the poll request that presents it in a different format. So it's 4640. The one that he used is really nice because it presents an actual textual description. Oh, it's already there. Okay, there it is. Ah, and that might be it, making a wild guess. No, because look, it just put in the same thing. I'm looking at what's in proposed upgrade guidelines or something. Uh-huh. And I have no idea what those characters are. Proposed upgrade guidelines here. Yes, what it is is this text gets converted by GitHub into this description of the poll request. So GitHub is providing those two funky things. Exactly, and that's their icon. So that's not anything we can actually fix. So my hunch right now is we may have to edit this one after the fact, after this. I'm not sure how to fix that because I don't know what's at the root of it. So how about we go to the next one and see if we can do, okay, something similar here. So this one is add ability to upload a plugin via the URL. And he says, okay, so I disagree with this one. I think there should be a change log for this one because there's lots of discussion about how it's changing the UI. He updated the documentation, et cetera. So for me, I think this should be in a change log. Is that okay with everybody else? Yeah, it is. It's very much user-visible. Allow plugin upload by URL in addition to plugin upload by file. How about that? Better phrasing? Okay, and this is an RFE. And a full stop in the end. Oh, and a full stop. Thank you very much. So is there a better phrasing for that? Allow plugins to be uploaded by URL? The URL doesn't upload it. It's the reference to the URL, right? Right, exactly. So help me, better phrasing. Identified, but okay. How about add a URL upload, support URL upload in addition or upload, upload from a plugin upload from a URL in addition to file upload, plugin file upload. Still not working, huh? What about plugins to be uploaded can be identified by URL as well as file? Okay, how about a slight rephrasing of that? Except plugin upload by URL in addition to plugin upload by file name. Just by file name, right? Upload by URL in addition to file name. Sure. Yeah, I'm not sure you need to. Like that? What do you think? Dheeraj? I think the first one is more beef and to the point. Yeah. Okay, let's go with it. Hi, Kristin. We're reviewing the three. Sorry, I forgot that we started this earlier and I was like, I feel like there's something happening right now. Like, oh, no. There is your government meddled with clocks. You should complain to your elected representative. Tell them to stop doing that. Yes, that's great. My government did it too. 19 states have approved not doing it. Oh, wow. That's good. Keep it up. Yeah. All right. So I think we're set with this one and that should repair. Oh, let's see. Did this was RFE? Yeah. So that is correct. Okay. Now, next one, 5889. Actually it looks pretty good. RFE, improve, oh, nope. Needs us hard stuff, full stop at the end. Yes. Okay, so here. All right. Okay, next. 5898, bump the bouncy castle API. I would almost hide this one. Any objections? Because I don't know what users will do with the fact that we incremented an API version for a crypto library. Yes, unless it's a very important library, right? It certainly is an important library, but there are lots of libraries that are important that we've intentionally filtered out. Could anyone have code that is the, is this update that would break something? I've not heard, seen any reports of that. Good question though. What's interesting is this comment here and it says we would like to eventually use as the default class loader. And I don't, normally I would say it's a dependency update. We probably don't need to do it, but I'm wondering if we want the historical tracker of coming back and saying it was in this release is when we did this. Ah, okay, good, right, right, valid point. So let's take the skip out of it and we will leave it in the changelog. If it's staying in, then I think it should be, should say update two. We don't need to say what it came from. That's a good point. Well, so one of the patterns we've used in the past is to help people in the reading, we state the from and the two versions. Oh, okay. But in this case, it states neither. And so let's to 2.25. And usually we will include a reference link to the changelog for that version. And here, where is the changelog for? Okay, so now I need to find, we need the changelog for bouncy castle. Okay, release notes for bouncy castle. Okay, see, it was 2.2. No, not that one either. 2.20, okay, 2.20. Oh, that's terrifying. Okay, so how do we find, okay, needs links to the release notes. And yeah, for right now, I think I've got to go find how to do this thing as viable links because it doesn't appear that the page actually has workable link locations in it. Are you looking for the release that we upgraded to? What I was actually looking for was hyperlinks that would take it through all of the different things. So 2.25 and they don't have ID tags on any of their headings. So there's no way we can link to them. Okay, so they'll just have, they truly will have to just refer to the bouncy castle release notes. Okay. Okay. So I'm at the point of, I don't know what else to do with this and accept include a reference to the bouncy castle release notes. Oh, wait a sec, we did say from 2., yeah, 2.2 and 20 to 2.25. We did not put a period after the second sentence, I think. Oh, need to do that, thank you. Okay, good. All right, next, 58.71, UCSS animation looks like all it needs is a full stop. It would help if I use the correct. No. Okay, really truly copy and paste works this way. Okay, done. Next, modernize the new view and new node pages. This one, by the way, is really quite cool. So other than the British spelling and modernize that we'll leave as is, that I'm soon as familiar to you, Dheeraj, and surprises the rest of us. Yes, that's true. So there we go. Will that be highlighted, the new view and new node? Yeah. So as in make it a major RFE instead of an RFE? Not really, like we have this new view which is under the... Oh, oh, I see what you're saying. Yeah, this, usually we would, so we could do them in, well, I don't know how to do bold. The quoted, the single quoted is, I think typical for how we describe a heading for a page. And we would not do them in code, typically, because they're not actually code. Okay, then it looks good. Okay, then this one is, I think pretty well described, a race code in class loading could result in linkage error and it's correctly labeled as a regression. 5870 needs a hard stop. Then any comments there, anything you want to improve on that phrasing? You know, but go back to the previous one. Okay. That looks like the description of the problem, not the result of the PR. I mean, is the PR that a race condition in the class loading no longer results in the linkage error? Right, it is that class loading no longer reports a linkage error when, yeah, the class loader no longer reports linkage errors. That sounds like better wording to me than what we have. Okay, so let's go there. This sounds to me like we did a PR so that the race condition would implement that. Okay. All right, so how about? What you said was perfect. Okay, let's find that. Okay, so, okay, so prevent class loading linkage error during class loading. Yeah, that's good to me. Or fix or resolve or avoid. Sounds like prevent might be better. How many people are using it or how many things were using this? Cause it sounds almost like maybe we, no, it's not, maybe it sounds like a lot. Okay, I was saying. Yeah, so the prevent might be better if you're trying to like get ahead of it or if you know, there's not too many. Right, which this really is a regression fix. And so it is, and it's this technique is being proposed as part of, it will be back ported to 2.319.1 so that the problem is not visible in the next LTS. So yeah, this one is, this one's important. Then maybe prevent works, is it better? Okay. I'm okay with that. All right. Oh, and regression in, and now we need to look up and see what version it had the issue in, 309. Okay, there we go. Agreeable? Yes. Very good, yes. Okay, then next one. Okay, add space between icon and project name or build number in all links to build. So this one I think may also be a regression. Let's take a look at it. Yeah, so I don't know whether we call UI layout flaws that came from earlier changes as a regression or not, but it's, you can see here, if you look at the distance from the yellow exclamation point to auto grading, that there's no space there. Right. Yes. And it says it's a follow up to this one, which probably is the one that, this was doing something similar. Oh, oh, okay. This is, this was an attempt to fix it that it didn't, didn't apparently this did not entirely resolve it. So the Uli's comment is, this is the next step in order to make the same technique work. So I don't know that it's a regression or not. Let's take a look at the bug report. Okay, so it looks like, I don't know. Okay, it's hints that it's in 2.314, which was where the, there definitely were changes made, but I'm not sure I can tell if there was actually a regression or not. So I, since I can't tell that there's a regression, I'm gonna go ahead and just leave the text as is. Sounds good. Reasonable to everybody else? Yes. Yeah, cause yeah, that works for me. Okay, great. All right, next was a bug fix forms of submission for file access rules of agent control to controller subsystem. And now we've got to just a minute, I've got to get regression in 2.11. Wow. Okay, this one will need editing after the fact to include the reference to the upgrade guide, et cetera. But the text itself looks good to me. Any objections to the text? Nope. Okay. No. Sorry, you're being very kind as we go through all these, all these changes, 2.320 has significant changes and that's impressive. Okay, add space. Yeah, good. Okay, now, fix missing hyperlink in build history. Okay, now that's weird. This one did not detect that there's an issue in it, that it's got a bug report for it and yet here is the hyperlink to the bug report. Hmm. Okay, so let's go make some wild guesses to see if we can figure out why not. Oh, yeah. 67.028, maybe. Okay, and then let's change this one and put this link just like that. Any objections? Looks good. Good with me. Okay. And this is one that is proposed to be backported to the LTS baseline. Okay. Oh, did we miss a, no, it's got fix missing. Oh, there it is. Okay, regression 2.314. Okay, good. All right, now 5874, replace dated URLs with working redirects. So let's go add the full stop at the end and try to put the bug in the, okay. 67.032. And okay, and is it more common to replace to use the word outdated rather than dated? Yes, I think outdated would be good. Yes. Okay. Oh, and then the other one, we did not embed the bug number into the text. So like that. Agreeable so far? So far. Yes. Okay. Next. Okay, Meg, this is, this one's going to need additional help in phrasing it in user terms. Okay. An exception thrown by a restart listener would leave Jenkins in a zombie-like state. Could change would leave to no longer would be an easy one. I don't know if it's the best. Okay. But instead of would leave, so it's no longer leaves. Oh yeah. Good. Also. Go ahead. Yes. And do we need to have a dash after zombie between zombie and like you're right. Very good. Okay. Looks good. Good enough. Yes. Yes. Okay. All right. And next is admin users now see users own time zone when updating behalf on behalf of a user rather than their own. Okay. That's a little muddled. Yeah. I was like, there's a lot of users going on here. Yeah. At least they don't use use as a verb in there too. I'm finding that in a lot of the text. Whenever two users use each users. Okay. At the beginning. All right. So. Okay. And admin sees their own time zone. Right. I think they see the user's time. Exactly. They see the user's time zone. Okay. So is it, is it display the user time zone when updating a specific user? No. What is updating on behalf of a user mean? That's exactly what I was about to ask. Good question. Let's go read the bug report. Okay. If I could get to the bug report just a minute. Nope. We need Jira. So Jira. And let's get to this one. Just anything. Okay. So in all user configuration pages, user defined time zone always shows the logged in users time zone instead of this. Oh, okay. So it is that when I'm editing a particular user, it was previously misleading me to show my time zone instead of the user time zone the user had selected. So isn't it that it's display the user, the time zone of the user when updating, how would we say it? When updating that the account of the user? Is that a way to say it? It's not actually a display problem though, is it? Oh, yes it is. It's just a display problem. So here, let's make the text big enough to read. Okay. So it says in user config pages, user defined time shows the logged in users time zone. So it would show my time zone even if I was editing your account. And then when I change it, it changes it but still shows me my time zone. Oh, wow. And what if the user is not logged in at the time you're doing this? No, no difference as far as I read it. It is that the admin user is changing someone else's account information. And while changing the other person's account information, it is showing the admin user's time zone. So the logged in is a red herring out of the. Yeah, because the admin is taking actions on behalf of the user. Right, right. Yeah, it's a theorist's behalf of the user, so it's like. So how about this? How about display the time zone of the user when updating a user account? As an admin, because do we have to throw that in there as this is only for the admin page? As, oh, yes. Yeah, oh, that's good. Well, but okay, isn't this still accurate? It's describing the old behavior for users. They would see their time zone. Right. And nobody but an admin could update another user, right? Right. That's my understanding anyway. So we don't need to specify though but it's not a question of admin. See, it's, we could certainly, as we could say it like that, display the time zone of the user when updating a user account as an administrator, or when an administrator updates a user account. Kristen, what do you think? Oh, updater. Yeah, it's like, updates, okay. Let's get the right word. Yeah, I think. I'm thinking about what exactly defines an administrator. Which I think is sort of sloppy. But I think that that's a defined thing within Jenkins, right? Like that's a role. So, yeah, so I think that if we know what the role is, if you have that role, then you've probably seen this bug if you're trying to take this action. Right, I guess I'm thinking that there, I think most people just take the default permission, like on the matrix for an administrative user but they could change them. That's what I'm thinking is that, but that's me. Well, and so we could, this could be expressed as when someone with the system.administer or system.contribute permission, but for me, that makes it less clear. I like. It makes it, yes, it does. So that's probably good. I'm not in love with it, but I think it's probably good enough. Okay, all right. So we'll go with it for now. And if we find better phrasing, we can come back. Okay, next one. Oh, that's it. So now it's just look carefully at the others that are, we had reviewed all of these previously, the, a waitility because I remember that one, Meg asked, what's that word? Great. And this one, now that's a little surprising. Why would a, because there is no user visible change on this one. This is, this is a, the beginnings of the content security policy changes, but the user perceives no change and that's good. So any objections, if we call this thing, we approve it? Good for me. Do we have a few things that we need to do after the change log has been approved? Yes, yes, we do. Can you tell me quickly, like, if we can do this later? Like, let me know if each other- Additional changes will be needed after the release, including, okay, now help me remember what they were. Let's see, add reference links for change logs. And that's in bouncy castle. And there was one other, right, Dheeraj? Bouncy castle and, oh, and ASM. Okay. And we also need to move the developer entry to the end. Right, right. Right. Good. Other minor changes. Outs, that, outs. Yeah, let's just leave it at that. Okay. Acreable so far? Mm-hmm. Yes. Okay, good. So we completed task number one. Now let's, should we spend the last few minutes on adopt the plugin? Sounds good. Okay, so Dheeraj has done this amazing marvelous thing. I wanted to show it to everybody because I think it is so cool. All right, so, all right. So rebuilding the site and it will be ready just very soon. Not quite yet. There, now it's ready. All right, so developer guide now has the adopt plugin tutorial. This is on our working development copy. And notice all of these sections, each of them, a step in a modernizing a plugin as part of adopting it. So here's the first one, add a Jenkins file with a video link, create a pull request and instructions on how you do this. Likewise, update the parent palm. Likewise, review build status. Now this one we've got to fix some images but update the minimum Jenkins version, okay? Add more spot bugs checks and it just keeps going like this. Now, Dheeraj was there, I think there are some here that don't have the embedded video yet, but video's available. So I need to go through and do the, add the video connections because Darren's videos are there, we just have to find the right location to insert them. Like this one, he and I, I know did this. Okay, so would you be adding it to the document, Google document? It's, so they are in the Google document, but they are, let's see, let's contribute. Let's open the Google doc and you can see where they are. Contributing to open source. What I did is I put them live stream videos here. So here are part one through five. And then if you open that individual video and let's see, how do I, no, I do not need to see that. Yes, I have to wait for the ad. Okay, are we done? Okay, there. Now, if we go down here into the show more, here are the hyperlinks to the specific topics. Oh, nice. Oh, nice. And so if I copy this link address and paste it, it puts in the time when that segment starts. Oh, nice. And so in the page, when the user is, it clicks here, if they click this play button, it actually jumps inside right to that segment. Okay. Oh, nice. So the hope is that, okay, for people who prefer a video tutorial, they get it. Others can just read the text. The text we think is self-explanatory as well. Check out a branch, increase the spot bugs checks by doing this, create a poll request and off you go. Looks good. So I'll update it as well. Okay, great. Thank you. And thanks very much. So just to highlight what Dheeraj has done, this is, okay, so for instance, here's one that we've got to do more work on because I haven't described it yet, the JSR 305 annotations. This is used to be called Java X dot annotations and the Java X annotations project never finished. So now we use spot bugs annotations instead. And this one is JUnit has deprecated this method. We prefer Hamcrest, those kinds of things. Can you click on the storing secrets section? I wanna see what you've got. Storing secrets. Under security. You've got a security section. Oh, this one, yeah, this is just, that section is just the current developer guide. Okay. And you're linking to the current developer guide. Well, what it is is this navigate, that's one of the topics for our discussion is this navigation bar on the left is fully, or the navigation thing is fully expanded. And that makes it hard to see because in order to get to the adopt a plugin stuff, I have to go all the way down here. So we really need this to contract, to collapse like it does in the user handbook. So that there would be an architecture thing and initialization, but that hasn't, that work hasn't been done yet. Oh, okay. So that's not actually part of this. Okay. I would like it to be part, but I think first, Dheeraj and I have to be sure we believe the content and we think the contents got the right things in it. Then fixing or improving the navigation here on the left side, that the code is already there in the user handbook. We just have to figure out how to apply it to the developer guide. Right. And in the third section, there's a problem related to images as well. So I was wondering in which folder do we need to put the images so it gets reflected here? Sorry, I missed it. You said there's a problem where? The third one, review CI Jenkins IO build status. Yes. So I was wondering like, where do we need to put the pictures in which folder so that it comes up here? Got it, right? That makes sense. And that's a good one. I don't think I've embedded any pictures yet. And so there's no example. So I think what we need to do is I'll just go look at it, figure it out, submit it as a change and then you can see what the pattern is. Okay, sure. Because it's, I think if we look, let's go grab that file. That's not it. That's it. Okay, so here we are in this file and here is the image. And now where did you actually put the image? Is it in that directory? Yes. Yes. Okay, so. Okay, so I don't see an image there. That's in the images folder, main one. And it was image two.png. Yes. Ah, okay, right. Images slash image two. Got it, okay. So it would need to go into content but I think we'll want it in a subdirectory of content slash images. And I'm not sure what that subdirectory should be because there's a content slash images slash developer and it, and there's a, yeah, so it's probably to match everything else, we should probably put it in tutorial dash adopt and create a new directory like that. Oh, okay. So like a specific directory for little to deal. Exactly, here and let's just do it now. So let's do it, get MV images star to there. Okay, so image one to image six. And now we've got to figure out how to reference those. And I think we reference those like this. Yes. And that was image two. And then we just take that out and this one. Now, if we're lucky, this will just work. Didn't get lucky. Try it again. Did you write the file after you saved it? I did, yes. Okay. Having been burned on that a few times. There we go. Okay. All right, so we just need to commit that and push it. Sure. So for now, I need to update the YouTube links and then we need to, then we'll be waiting for the content, right? For some sections that are remaining to be done. Yes. There are definitely sections that still need, still need content. Okay. What have we got? What ones did I, okay. So, okay. So get add content. Okay. So I think I'm ready to commit it. This is move images, tutorial images to destination directory, matching directory. There we go. Okay. So that's available. You should be able to see it now, Dheeraj. Yes, sure. Okay. Good. All right. Excellent. Okay. Able incrementals. So one of the, oh, go ahead, Dheeraj. Sorry. So for now, we'll just wait for the content, right? I think so. I don't think we're ready to merge yet. We definitely want content. I did have one other question here. So when I look at this list of sections, that's a long list. And I was wondering, should we envision a curated way of partitioning these somehow into separate subsections where the list of all sections goes at the end still, but subsections might have headings like, I don't know what we would call them even initial stuff. And then, or maybe it's basics. And then it's automation. Okay. And then it's code changes. So like subcategories. Yeah, that was, the question for me was, are there, you know, documentation seems like a subcategory. And automated testing is a sub, could be a subcategory. And I thought was, will it help the reader if they see subcategories and could navigate to them in addition? Now, this one, if I remember right, no, it doesn't have the navigate. Okay, the other thing that's missing here for my taste is navigation links at the tops of the page. Exactly. But that we've already got in the user handbook. So we can do it in the user, we can just steal it from the user handbook and make it fit here. Yes, because if I need to move to next tutorial, I would need to always come back to this page. Right, which is kind of a hassle. Whereas in the user, in the user handbook, there's a top, there's navigation across the top of the page to go to the next thing. Sure, that would be better. So maybe we can add- What about breadcrumbs? Like is there like a way to get, well actually if you have the navigation back and forth, probably have like a way to get back to like- Yeah, but you're right. There isn't a breadcrum concept on the site right now and it would probably be a really nice thing if it had it. At least we have an index. That's kind of nice from that perspective. Like there's the index, I think that will take you. Where does that take you? The index link takes you to a top level page that shows all the pages. Okay, so at least it's better than nothing. You know, like being able to go back to where you were before. Well, and if you fix the left frame too, if you can collapse it, so you're just seeing this book. Right, see, and that's the nice city here of the user handbook does have the collapsing and expanding based on your current page and current section. So when I go here, it bolds this and the navigation bar up here will let me get to the next page and the previous page. So there is, we know the code exists to do this navigation. And I think the developer guide would benefit from it. Exactly. Now, we've got a contributor guide. Oh, I know what that is. Okay, got it. It's not a guide, that's just a bunch of links, good. Okay. What are we doing about security in the tutorial? Haven't done anything yet, except let's see, we've got one, I think we had one thing which was, which may not be here yet, which is on enabling automated security scans. Yeah, so it's not here, but it is in this document. So that's when we've still got to add, which is just where did Darren and I do that? It was code QL, no, code QL. Here we go. Enable Jenkins specific security scanning. This thing hasn't been added yet, but we have a video segment on it that shows how to do it. What, I don't know if you saw the discussion, Deraj and I were discussing, but there's a whole bunch of stuff that plugin developers need to do for security. Right. And what I was gonna propose, I actually have a little PR that's a mason file that in this, and another thing background, one of the things in this security stuff is Daniel wants a place where he can go periodically and stand through that and say, yes, everything about security is here. Ah, okay, so. And so what I carded was a small file that is security things for plugin developers and maintainers or something like that. And it's almost a checklist with links to the other docs that have the details about it. Okay. And what I'm thinking is, we're gonna go nuts, if you have other security stuff in here, we're gonna go nuts maintaining this, like last week's security release had a big one that affects plugin developers. And that if we just had that one checklist that's there and then the security thing could say, you are responsible for making sure that your plugin is secure and does everything right, go here and you could link to that file. And then we've just got one file that we have to keep updating for new issues. I like that. So link review, how about if we called it review the plugin security checklist. And then this would be a hyperlink to your, see the plugin security checklist elsewhere. It'll be in the Jenkins. Books, I security developer docs with that. Would that be okay? No, it's not in developer docs. It's in the, it's in book. It's in the user guide. It's under, it's in the social security chapter. Oh, okay. All right. Great. All right. So let's call it that. All right. Good. And then we, I mean, we don't know how to do the maintenance we have to do. Let's not put in stuff that's gonna be hard to maintain for this. Yeah. Well, I like that. That's a nice, simple thing. It's easy to tell them review the checklist and this is a hyperlink to the check, just be a hyperlink to the checklist elsewhere. Right. And point of fact, the checklist is a bunch of hyperlinks to other docs, but Right. Good. Excellent. Okay. Thanks. Sorry, we are running, running beyond our time. Any other topics here on, on adopt a plugin, Dheeraj, as you've gone through it, other things you wanted to flag to us, Hey, this didn't make sense to me, or this seemed crazy. Nothing, it just, everything was good. There's one place where I've commented. I'm trying to find out like where should I put it? And even you replied in the document as well. Oh, okay. Between the open source document. So it's like, it's the instructions for the, it's specifically for the plugin maintainers. So we need to figure out where to put those instructions because these instruction that we see on the screen are not specifically for plugin maintainer. It can be done for anyone who can send a PR, right? Right. Yeah. So for me, that's another form of sort of subcategorization. Right. So we've got the, there's things that I mean, things that a contributor can do. And that's this list of 10 plus pages of things that a contributor can do. These are things in this section, this couple of pages worth, are things that only a maintainer can do. So there's no point in a contributor attempting to enable release strafter. That's, that requires maintainer permissions. There's no point in a contributor trying to enable continuous delivery. And there really isn't any point in a maintainer reviewing the plugin security checklist. I guess they could, but if there's any outcome of it, they're now having to follow the security process to report the issues. Okay. So last question is like, so we need to put both of them in our tutorial, right? I think so. And that's why I think we may have, this might be for me, another subcategory where we've got, we identified, there may be subcategories inside this one. And this would be just another subcategory called now that you're a maintainer or the maintainer tasks. So I look for some visualizations that can help us to present it here on this main. Okay. Excellent. That's all from my side. Okay. Any other, any other insights or comments on things we need to... Can we go back to the very, very top of the stock? Okay. The intro thing. Is it someplace, no, no, the other one, the one that we had that had D'Rodge's listed. There we go. Okay, sorry. This is a starting point. It explains common steps that improve a plugin and help prepare a developer to adopt the plugin. But you're saying most of these things they can't do unless they have adopted the plugin or the maintainer. No, no, no, most of these, in fact, all of these, they can do without adopting. Oh, okay. Where are instructions, if I want to adopt a certain one, I have to, that means somebody has to approve that. They have to make me the maintainer. There's all that sort of stuff. Where is that described? Yeah, and that's, that needs to be a hyperlink here. Yeah. If we search for it, it's actually here. Oh, no, it's not. That's sad. My search facility did not do what it was supposed to do. Okay, there's the blog post, but there is a developer. Okay, so we've got to have a link to the adopt a plugin guide. And it's, I think it's right here, adopt a plugin. This page. Okay. Okay, that's what, yeah, because just that the introduction sort of at a glance, it makes it sound like I've got to go through and do all of this stuff. And then maybe I can ask to be, to adopt it. And I've got the feeling that as soon as somebody says I would like to adopt that plugin that the existing governance board would like to know that as soon as possible, right? Yes. And in fact, your phrasing is exactly the opposite of the message that we want to convey. So we probably need to make that much more clear. The message we want to convey here is anyone could help a plugin by doing one or more of these steps. Right. And it is helpful to do it whether or not you adopt the plugin. Right. And then, yeah, just, I'm so bad with all this stuff I've gotten as bad as the developers. I don't read those introductory paragraphs. I scan over them. Right. And reviewing. And I'm okay with that, right? Because if a developer says, yeah, maybe I would like to adopt a plugin. Maybe the other alternative we could say here is we could call this modernizing a plugin rather than adopt a plugin because it's also modernizing a plugin. I don't know which is more intimidating or less intimidating, more inviting, less inviting. Contributing to plugins. Yeah, contributing to existing plugins. Might be another way for us to say it, right? Because we've got create a plugin and then helping a plugin, contributing to a plugin. Improve a plugin. Improve a plugin. Yeah, there you go. So I'm open to all those in terms of finding ways to help persuade people that they should persuade interested new contributors that they should try one or two of these things just to see how easy it is. Yeah, basically we need you to take five minutes and speak as Mark and rewrite this intro because you just, if somebody catches you in the elevator you just spew it off the top of your head and it sounds brilliant. So put that down on paper. Okay, well, again, I'll try. Because we don't get the clarity here that you can contribute and fix some stuff. There's big, then a maintainer is responsible for doing these things. One of them I think being when there are security fixes that affect plugins, you may have to test your plugin. You may have to modify your plugin to comply. Or something, you know, but that's not clear here. Okay. But it's clear in your head. So yeah, this is gonna be great though. A quick question, by the way, the plugins.jankins.io, on those documentation pages there's no way to link to a subsection of them, right? No, actually there is, but only if you use the right form of original documentation. Okay. So here's an example where you can link to a subsection. Works great. However, if we look instead at a different plugin, let's pick, what's another plugin with substantial documentation? How about GitHub branch source? This one I think, oh no, that doesn't have any. How about this one? Yeah, this one. Okay, this one, I can't link to the hyperlinks between changes. Right. I can't link here and the distinction is when the documentation, I can't explain why, but when the documentation is written in markdown on the plugin, the links are not, cannot be navigated. When the documentation is written in ASCII doc on the plugin. And again, don't get me started on how strange that is. But when it's written as ASCII doc, then the navigation works on that page. I mean, markdown is really much weaker than RST or ASCII doc. Why? Yeah, I don't know what the, I suspect the real reason is something subtle in how those pages are generated. But all I can tell you is the current behavior is I can only navigate, I can only set anchors if the plugin's documentation was written in ASCII doc, not in markdown. Because what I look for is when I open it, if you've got the little subsection list in the upper right of the page, then I can click on one of those and that gives me a URL that I can use for the X-Ref. Subsection list in the, I'm not sure I understand. No, yeah, because your git doesn't have it. So maybe that wouldn't work there. Yeah, so here all it is is you click a link and this link will in fact resolve to that location. If I open it in an incognito window, paste there, it does jump to the correct location. Well, okay, I guess that, yeah. In the other docs, you know, you have those little, I guess little indexing in the upper right of the, it just lists a major subsection, so. Right, and. Yeah, so the one, so then all I can do I think it was a script approval one or something. All I can say is go to the developer section in this. Yes, yeah, that's the, oops, script. Maybe it's script security. Script security, there's a whole bunch of them. Yeah, developers guy, here we go. You wanted to hyperlink to this. Yes. And there isn't a way to do it because it's written in markdown. Right. Or because the translator doesn't process it. I don't know which it actually is. I thought maybe there's a more sophisticated way to do it than the way I do it, but I was right to think that I can't do it. Yeah, I haven't seen a way. Coolness. All right, so still more to do. Dear Raj, I've sort of set myself a vision big dream that I would love to get this done before the 24th of November, just because I'd like to have, I picked an arbitrary date. We'll do it as well as we can or can't and see how it goes. Sure. This is beautiful guys though. This really looks like a wonderful addition. It does. This is so helpful. Like when this goes out there, like this would be so nice, especially for the plugins who could even, even if there's someone who doesn't become a maintainer just to get the updates in there and just getting started, being able to maybe, maybe someone will use it to commit a feature that they need to be so great. It will. And for me, this one, the automated dependency checks is all by itself intensely valuable. Even if that's all I get is, oh yes, you're going to annoy me because there are new versions of dependencies and I should update to those new versions. That's a safeguard against certain classes of security problems that it's just healthy for us to do that. Okay, great. So I think we call today's session done. We had, Meg, are you okay if we delay the discussion on this one to next time? Absolutely. All right. Thanks everybody. Recording will be available eventually. Thanks. Thanks everyone. Bye. Bye.