 Welcome everyone. It's the 5th of October 2023. This is documentation office hours. A number of agenda topics today, including blog posts. October Fest. Elections. Failing Jenkins CI builds, Google summer of code projects. Existing requirements document. Choosing a plugin bill of materials and the September newsletter Bruno. Anything else we need to add? No, thank you, Mark. Okay, then let's look at Jenkins blog posts first. It's been two weeks at least since I've been in Docs office hours. So let's see what we've got for blog. So we had a Jenkins blog post on Mergeify. September 26. And then the concluding Google summer of code blog posts. Now we've also got one pending blog post. Thanks to the Basel Crow. Let's take a look at it. So that we can see what's coming. This will arrive tomorrow. And thanks to the preview site that Gavin Mogan has provided for us, we can actually look at the blog post on on the preview site. So let's go look at the preview here. Yes, it has finished building. And there we are. So the blog says, and this is the Basel's noting that prototype JS has been removed from Jenkins weekly. Congratulations. Almost six months of work to get to this point. Really a wonderful amazing effort. There's a lot of crazy plus plugins that had to be revised, major changes in all sorts of places, lots of people doing really great work to remove this 10 plus year old JavaScript library from Jenkins. Getting 10 years in in JavaScript land is like infinity, right? That's that's forever that's so many generations ago. Great to be rid of it and looking forward to future. And I really liked Basel's last comment. Thanks for your contributions. I hope to see many of you again in the Java X to Jakarta API migration, which is again, a huge migration that will have to go in lots of places and do lots of things. Smart move by the. Yes, absolutely. Well done. So, so nice blog post coming. And we've got one that's been discussed in the Jenkins governance board but we don't have a draft for it yet, where in the governance board meeting it was noted we've really got two or three different Java changes happening here in October. And Basel said he was willing to write a blog post that combines them all into a Java and Jenkins blog post that will be talking about Java 21 is now supported. We've turned on the we've switched on the Java 11 end of life admin monitor so people will be warned that Java 11 will be end of life in October of 2024. We've switched to Java 17 is the default Java for container images. Those kinds of things. All all useful coming in a future blog post during October. Next topic then is October Fest. So, thanks to John Mark Mason and to others in the Jenkins community Jenkins is back in October Fest, and we're seeing already some good contributions from people who are interested in participating in October Fest. I was just working one on Jenkins core where a contribution is helping with transforming API is from one form to another to get rid of some deprecated usages of an API. So, thanks very much. Bruno, anything you want to highlight on October Fest. I just saw a few numbers crunched by Jean Mark earlier today. So this morning we had 55 Hector Buffets PRs on the Jenkins project and 36 had already been merged if I'm not mistaken. So total validated Hector Buffets PRs were 36 by 16 different contributors. So that's a very good start for the fifth of October 20 something ways days to go. Excellent. Thank you. Yeah. And that's that's it is only the fifth. It's a we're we're not far into October and we're already showing good results. Thanks. Thanks very much. Next topic was Jenkins governance board and officer election. So Alexander Brandus posted in mid September that the Jenkins board is up for reelection. So two of the five members of the board are up for reelection and all the Jenkins officers and the way you register to vote is you go to the election voter page. And on this election voter page, you'll see right now we've got 40 voters registered. And we look forward to having more. It's a good thing if you've contributed to Jenkins, anytime prior to September 1, 2023, you're eligible built to vote. And now you may say what does contribute mean well contribute means in this case that you did one of the things related to this participate page. I believe that there are an awful lot of things here. So, have you assisted people on the communication channels. Yep, you're eligible to vote. Have you attended a Jenkins meetup. Yep, you're eligible to vote. Did you submit a poll request, helping with some code. Yep. Did you help someone else use Jenkins. Yep, you're eligible to vote. Jenkins. Yes, did you submit some documentation. Yes, et cetera. And if you'd like you can even donate cash. So the Jenkins project has a way to donate. Why not. And I think that one of the prerequisites is that you have an account on community dot Jenkins dot IO. Am I right. Well, not even so much that you have an account but that you are willing to create one. Okay, so if you don't have an account, but you meet the criteria as a, as a contributor, you could either register your GitHub account with community dot Jenkins dot IO or create a new one dedicated to community dot Jenkins dot IO either is fine. Okay, thank you. So, so lots of ways to qualify to vote. And we encourage people to vote and shamelessly vote for Mark Wait. I'm one of the one of the one of the candidates as member of the board vote for Mark Wait. Okay, that enough shameless electioneering. That's okay. So let's get that voter registration page. Yeah, I don't have my hat yet. Vork vote for Mark Wait, you know, a little. That's, but that's, that's a good idea. I may actually get a hat like that. Very good. I can just see showing up to some meetings vote Mark Wait. Oh, we'll be too late. You know, you'll give a talk and help to organize a meetup in San San Jose, Santa Clara. Santa Clara. Yeah, that's a good idea. Yeah, that that's not a bad idea. I think I think vote for Mark vote for Mark Wait. Jenkins board is a good hat. Mark needs a hat. I'll remember that I like that because that might get some laughs as well. I like that. Very good. Super. Thank you. Next topic then was failing Jenkins dot IO build so yes. Let's take a look at those. Thank you. Yeah, well, let's take a look and see what's going on. So I've, I've not been paying attention recently. So you're saying, no, okay, so this one is okay. Oh, so maybe that was a previous one. When I looked at the repo directly, GitHub. Well, it was failing, you know, the red check. Oh, right. I did not daydrain. No, no, no, you're correct. I think. Oh, that was a kid that action that thing. Right. So, and so, and that's important right we see I for the processes of the maintain Jenkins.io are not just see I processes right there is not just on Jenkins dot CI Jenkins.io we also maintain it here by labeling conflicting pull requests. And it says we've exceeded our rate limit. Interesting. Okay, so. And that's saying it on a pure GitHub action label conflicting PRs this has nothing to do with it. And this one likewise now. The question then guilty. Yeah, but I saw the first error message was the same. We ran out of token. Right, exactly. So it says we've exhausted our API rate limit. Yeah. The question then becomes. Well, so now the I guess for me the question is how, how long has this been failing. And I'm not sure how to see the Oh, there we go. We can see the history of the runs here. Yeah. So we had a failure an hour ago another failure an hour ago another. But then we haven't had a failure. Before that for a long time. Yeah, we have just accepted one of my PRs which was about finding the latest. We just lost your audio token. Oh, sorry. Okay, so I will just say, go ahead. Maybe update CLI makes too big use of the token. I don't know. And it could be but if that's the case we should be able to see that with this right so if we run it here. This should tell us because this is only running the update update CLI operation. Not the other one so let's let's let it run and see, and we can come back to it. Because if, if it's breaking down we can always revert your change. My suspicion is it's not update CLI because I do hope so. Yeah, so although let's well let's look at this one. So here we see. And if we look at that poll request. It shows checks. And there is update CLI that passed. So I think that failure was transient now now that doesn't make it healthy. It's just, okay, it's not, it's not specific somehow to update CLI. Or rather it's not specific to your change. So we're building. Oh, interesting. So did we. Okay, this one fails with a very different message. I think I think this one has nothing to do with right now. Is it, no, I saw API rate. Yes, you're correct. It's still got the air API rate limit. Okay. So now let's go back to our list of actions. This one's still running. Yeah, so so we'll have to come back to it. Yep. All right, so we've we've investigated it's non fatal. So here in update CLI. And what was the other one that failed. Oh, and the identified label conflicting label conflicting request right. Due to GitHub API rate limit. Good. Okay, so we got it. Anything else on that topic. No, thank you, Mark. Next topic. So we've got two open documentation projects. And one open document coding project. I'm not going to talk about the coding project get lab plugin maintenance modernization. It's just there it needs more work. Docker compose. Tell us tell us about it brutal. Oh, there is still quite a lot of work in order to have it within the Jenkins CI or in for organization. And so I'm working on it. I'm only working for the timing on the first step, which is using the internal GitHub Docker image registry. And then we'll see there are lots of other steps before putting that into the Jenkins CI organization. I'm dealing with Damian DuPol told you in order to know what to do before that. So it's progressing slowly, but it's progressing. And today I've also updated a few base images on which we are working. Of course, the latest Jenkins LDS image but also the leaders bookworm and so on, because some of them are not yet handled by dependable or update CLI but will optimize everything automate everything afterwards. Good, very good. Okay, so, so you're so the, the container, the Docker compose container image is still workable. Then in terms of your work has kept it functional so we've not lost the ability to use that. We're just not ready to deploy the container images to to final destination yet and you're going to use the GitHub container registry as a development location. Right, I'm still testing it manually on the daily basis just in case. And it also it is also updated on a regular basis because of plugin updates. So the whole GitHub action thing is running several times a week whenever we have a new plugin version. So it is maintaining itself, it is maintaining itself for plugin updates good. Yep. Very good. That's a good story. All right. Anything else you want to highlight there. No, thank you. Okay, so version documentation here. Chris Stern has started the conversations with the infoteam to decide on on details. And we'll be discussed further in documentation office hours in about 12 hours. Docs office hours ages, we've moved Docs office hours Asia 30 minutes earlier, so that Chris can attend any any other things on Google summer of code that we need to discuss here. Okay. So next topic then was the existing requirements and support policy document. This has been implemented by Kevin and merged. And it looks great. So here's how it looks. We go to the handbook and we see an entire chapter dedicated to platform information with Java support policy. Linux support Linux support policy windows support policy and the upgrade guides for Java 11 and Java 17. Kevin also preserved the existing locations where these things were previously and automatically redirects to the new location in the pages. So Java support policy was elsewhere and it's now here. Okay, I found it this morning when trying to answer a user on community Jenkins.io I put the link to this new location. Great. Thank you, Kevin. Yeah, and I think it should be indexed correctly into the search engine. It is good so it didn't do a redirect there so it's, it's running well and in fact it's even received its first additions. Pro added this table for us when he was reviewing some existing documentation and said, hey, this needs more information. Let's publish it. All right, good. So the next one was how to describe the process of choosing a plugin bill of materials. No progress needs more work. Yeah, so in your improve a plugin tutorial that part that tells you which version you should maybe use for, you know, it's not really detailed but it's there. And as my PR PR has been merged regarding, you know, updating the Jenkins LTS versions and the bomb versions. There is a slight change from what was in the previous documentation now it's dynamized, I would say. So you will maybe see something different. What is the bomb version yet it may have changed. We're still targeting the old 2.319 Jenkins version. Yeah, it's somewhere in there in this page. Good. Oh, but I did that but frankly, we will be able to change it just parameter in my update you like manifest. So the 319 X is a seven to last version. And the 387 is a third to last, I think version. So I kept that in that part but it will evolve each time we have a new LTS version. Oh, seriously. So you you update so these are actually being managed now by update CLI. Yep. Wow. Okay. All right. That's maybe what breaks Jenkins IO but it is. We will certainly want to invent. Oh, and even in the commit message you updated it. Very nice. Yes. Very, very nice. Okay. So it was not a shameless plug. It was just to tell you that once you will have written that documentation about how to choose a bomb. I will have to update it with update CLI too. If you the community is not happy with the version that shows for these documentation. Please let me know so that I can modify it. Great. Very good. All right. Last topic is just a reminder to me and to others that September newsletter is do as time to write your content Bruno anything else we need to discuss today. May we just have a look at the bill to see if it's still failing before leaving. Oh, good idea. Yeah, let's do it. So let's let's leave on a success. Okay, so here it is. It's still running. And no, it's but it's now and I think that puts it in. Oh, check out. Does it. Well, yeah, let's see. Okay. So it completed the dry run mode. And I think that was where we had the failure previously. That's pretty encouraging. Fingers crossed. We'll see. And yeah, we can we can hang on for just a minute because there's certainly plenty of other things let's while we're waiting for that let's do a let's use this is our excuse to look at some bug reports. See if there's anything in the bug reports that we need to triage out. So possible missing reference in plugin reference in documentation. So he's saying, trying to incorporate what's documented here. Using tags in Jenkins. Discover tags within repository. Oh, okay. I think I see what he's trying to ask for what he says is. Tell me what I need to have installed in order to do this. That might be one where we want to consider a Docker compose kind of thing where we would say, here's a compose file for this blog post in some long distant future day. Here's how you, here's how you run this thing. Because this, given that it's listing the git branch source it actually should not require should not require the GitHub branch source at all. It's enough because of this, this branch source that it's using. It should be able to do that without without needing to get a branch source so I don't, I, I think this is a mistake in description. Now I'd have to explore it further just to be sure. And I think it's fair to say, hey, what plugins are required is a good thing to have. Right. That's, yeah, that's not a bad idea. And be sure you've got, particularly since this one shows blue ocean. Right. If you're going to say blue ocean, here's an example of a file that will let you run this with blue ocean. Good. All right. And not successful. Well, is it? Oh yes, success. That's what this green check mark is, isn't it? Yeah. Let's see. So update CLI. Yep. That was successful. Good. So transient failure. And I'm relieved. If there's a problem we'll, we'll check. Well, it's probably going to come back, but we'll chase it down when it does. Of course. Yeah. That's all that I had for today. Bruno, anything else from you? No, thank you, Mark. All right. Let's close for today. Thanks, everybody.