 Welcome to documentation office hours for Jenkins. It's the 3rd of January, 2022. Happy New Year. We've got several items on the agenda. So news, Jenkins 2.319.2 change log, 2.328 weekly change log. And the big one is the 2021 end of year blog post to discuss, to brainstorm, to think and talk about themes. And then as time allows, we may get to improving a plug-in blog post. It's had some additional improvements recently and I'd love for us to discuss them. Whoops, and why is my, hmm, interesting. I need to reload this page, something's funny here. Let's try this again, okay, 150%. Good, all right. Any other topics, Dheeraj, that you'd like to put on the agenda? No, I think I see all the things that I want to do discuss as well. Okay, great. All right. So then first topic, Jenkins on Java 8. We've got an ongoing discussion on the mailing list. It's continuing and the voices, there are voices saying, hey, let's do it in June of 2022 as the LTS that drops support for Java, others saying, hey, let's make it September of 2022. The Jenkins enhancement proposal is a good way to plan those kinds of transitions. And I would likely be the one who will write it. If you would like to help Dheeraj, I'd love to have your help. If you'd rather stay focused on other things, that's okay too. This is more of a project management exercise than it is a software development or even documentation exercise. And so I can't claim that it's a lot of fun it's just something that has to happen. And for me, it helps me think about all the things we need to be sure we do. It creates a checklist for us and helps us know what to do. So when you say that it is related to project management, what do you mean by that? Things like identifying which tasks we need to do and how we would approach them and how we explain this to other people and when do we make announcements and do we have webinars? Do we do those are the kinds of things and it's they tend to be, it's not nearly as interesting even as writing for the blog or and it's certainly not as interesting as creating software. So I would perfectly understand if you said, no, I don't wanna be involved in that maybe later. Yeah, so I think I would say maybe later because this requires to know a few things so that we can decide what to put and what not to put. So I don't think I would be able to give my opinion or share my views in this area. Very good, and that's just fine. That's very sensible. Next piece of news then is that the UI improvements are continuing. Jenkins 2.327 is looking very good and the next release, oops, let's go here, this one. If we log in here, I can show you how it looks and it's already looking very nice and this next version will be even nicer still. So the weekly releases, notice the nice rounded corners on the tables and notice how nice the plugin manager looks. Here when we do manage plugins, installed plugins have this really nice, very attractive layout that they show us plugin name and version, a nice obvious slider if it's enabled or disabled, version numbers, it's been dramatically improved and these kinds of improvements just keep coming. So really very, very pleased with all the great work that Jan Faricic, Tim Jacome and Daniel Beck have been doing on various topics here. It's been great. Also special thanks to Alex who's done work on making the icons, for instance, use SVGs so that they work on high-resolution displays every bit as well as they work on low-resolution displays. So special thanks. Any questions on UI improvements? No, I just want to say that it looks extremely beautiful and modern, especially the rounded corners. So definitely a really good job. I agree. I'm amazed at how much more pleasant I find it, how much easier that I find it to navigate and to wander around. It is just a, and okay, adding a view, there it is. The plus does what you might expect. I mean, the visuals are much, much cleaner for me, easier to see. I like it a lot. Same here. All right. So next topic then is the change log for Jenkins 2.319.2. I've got one open question to Daniel Beck and the change log is pretty simple. So this top image you see here, what's new has only one entry. This is a good one for you and I to talk about, Dheeraj. Let's look at it together and see because what it includes is one entry, but then three comments of things that were not included because they are minimally user-visible. There is some user visibility in them, but I didn't think there was enough and I've asked a question of the key contributor, Daniel Beck, to see if he feels that we should put them in. So what these three items are is we're now collecting telemetry for a period of several months about how people are using the agent to controller communication channel, how they're sending Java objects across, et cetera, and that telemetry gathering is being done already in weekly and this will bring it into the, bring it and some, it's actually already started in LTS, even this will bring some improvements to that telemetry so it gathers better data for use by those who are trying to analyze, hey, what are we seeing? But my thought was, so my question to you is, what do you think, should it be part of the, should we describe it for users or should we, as telemetry thing, or should we leave it as a comment like it was in the weekly? I'm not sure about this because I don't have the required technical knowledge to decide what, whether it should be visible to users or not. So I'm not really sure. Okay, yeah. Well, so let me show you some of the, some of the things. So this one I thought, okay, deduplicating RPC requests, that's probably not a, and it was intentionally skipped here. So that's probably not, that's not even really user visible. So, so can probably be skipped and, and that part I thought, okay, I understand that this one though, was a little more questionable. So let's look at it. What it says is, hey, we're going to do some additional data refinement during the gathering process, because what they were getting is a lot of noise from obsolete and outdated plugin versions. So this, this makes it smarter. Again, I thought, okay, maybe that's not, but now this one. Okay, and this one is documentation and it very much is user visible in the sense that if they, if they hit the right page for help about this, it we, it will show them this page. And, and so this page says, hey, we're collecting the data. We started in November of 2021. We will stop the data collection in on March 1st of 2022. And Daniel's comment was he thinks it's too minor for a changelog. And I, I, I've, in weekly, we didn't put it in a changelog. So my, my initial take was probably not, but this is the one that user visible. Any, any comments from you? You want to guide on, Dheeraj? Yes. So it says we do not collect the names of files being accessed. So, okay. Can you tell me again about what kind of data is it collecting? Sure, sure. So what it's doing, we can read it here. It says, so a, it's using a bidirectional channel. And that allows agents to make requests to the controller. There's a danger that a, a malicious agent might do things it should not through those requests to the controller. And so they're considering turning off the ability for an agent to make a request back to the controller to do work on its behalf. And, and so they're trying to understand who's using this, which plugins are using this and get some guidance on how they are using it before they decide if they should switch off completely the ability for an agent to make a request back to the controller. So the, the, the security profile would be if the, if the controller asks the agent to do something, that's probably safer from malicious, malicious attack than if the agent, which might be a process under, under some bad actors control is allowed to make requests back to the controller. So that's what they're considering. And they're gathering this data. So they're gathering Java stack traces. And version numbers of core and plug and the installed plugins. Right. So now I'm just trying to understand whether the users would want to know about this change, the bi-directional change that has been introduced or not. And, and that's the reality here is this is not introducing the change. All this is doing is this is trying to assess how often is it used to decide if we could sometime in the future consider disabling it. Okay. Right. So it's, this is just data gathering. And this help page that you see here is describing the data we're gathering, how long the data gathering will continue and when the data gathering will stop and what specific data is being collected. Right. So then I think, so would the users want to know about this? I don't think users would. Some administrators might, but it's available to them. And I don't, I don't think it will be compelling to put this into the, at least my thought was I tended to agree with Daniel that I'm not sure it's compelling enough for us to put it into the change log. Yes. I agree because now it makes sense that the number of people who would want to know is kind of less than the total number of people using it. That's why I think it would be better if we leave this in comments. Okay. Good. So we'll leave it as a comment then. Great. So that's it for right now. And the, let's look at the, at the upgrade guide. The upgrade guide says no notable changes requiring upgrade notes. So it's the easy boilerplate. We don't have to say anything because there isn't anything terribly shocking there. So we'll go ahead, I'm going to go ahead. This will need other reviewers, but I think it's, it's in good progress. Next was any other, anything else on the 2.319.2 change log? No, nothing as of now. So next item was the weekly change log. And here, let's see what we've got as the text. So it says, first UI improvement, use scalable vector graphics images for agent context menu and executor status. So this is a UI improvement. I thought that was okay for phrasing. Anything you would recommend changing on it? So is this the same UI change that you were showing me about the icons? Well, this is, this is one part of, it's a relatively small part of that. This is, this is adding more places where SVG icons will be used instead of PNG. So the SVG icons have the benefit that they are scalable. So on a very high resolution screen, they still look very good. Okay. So yeah, I think it's, it looks good. Okay. Next item then was modernize the about Jenkins page. And this one may need a change to adjust this extra space right there. Let me make a note of that. I hadn't recognized that on an earlier time. So may need a white space adjustment after release for the about page description. So what's happened there is the automated generator tool has added an extra space because this is actually two bullets. And I guess I could fix it by making it, shifting it from being two bullets to being one. But for me, this was, this is good enough and anything you would change on that? Yes. So one question is, when we add two sentences separated by a new line, would it display on the UI in the form of bullets? It won't. It will, it will show on the UI as a single paragraph because this file uses sentence per line. So these things will be flowed together into a single paragraph. Oh, okay. So if we delete the space that update word has and then it goes to the UI, would the full stop of the first sentence have a space after it? It will. Yes. It will. Yeah. So let me, let me, sorry, let me get this to, I went to the wrong place. Let's, let's go to this one because I think there may actually be something we do want to change here. Just looking at it now since, okay. So here is the, so here is, he gives us a nice before and after picture. So here's the before picture and here's the after picture. He's made even better improvements to this about page. Wow. And the reason it did that is because here he's used two bullets. And I could, we could fix this by changing it so that it's a single bullet. Yes. And so then it would be just do this. And also one more thing that in your notes also you have used double inverted comma. Yes, exactly this one. So it would be easier for us to know that we are talking about the about Jenkins page. Right. Okay. So that, that, that makes sense to you. Yes. Okay. Good. Let's do that then. That, that may help us already. Good. Okay. Then she, okay. So next was 61 43, which is a bug. Ensure that loggers exist before setting their log levels in rare cases, setting the log level of a logger may have had no effect. So what happened was Basel Crow was fixing spot bugs warnings and realized this warning points to a potential real bug. I think it's okay. Any, any guidance you want to give on the phrasing? So I'm sure that you know, may have had no, yes, looks good. Okay. Yes. All right. And then the others we should just scan throughs to see if there are any here that are mistakenly comments that should be included. Wow. There's a lot. There are. Yes. Basel has been doing wonderful work over the end of your holiday. He and Tim Jacome and Stefan Speaker and two or three and Jan Faricic and two or three others have been just making, doing amazing things. So this is a very nice, very, very, very nice addition for a weekly release. Exactly. So there are some comments related to spot bugs violation. We don't want them, right? Yeah. Those should stay as comments because those are, those are, these are many of them are not visible to users. All of them are not visible to users. Many of them are not visible to users because all they are is a phrasing of text that says he's investigated this, understood why that spot bugs gives this warning and justified why we should not change the code. Okay. So this looks good. Great. So I'm going to go ahead and mark this as approved. Review. Whoops. Review changes. Reviewed in docs office hours. Now I need to invoke one GitHub action to cause this thing to be rebuilt because we modified one of the change logs. Now onward. Yes. Also, one last thing. I wanted to add one more topic to the agenda. Oh, yes, please. Okay. So about learning Jenkins. So I wanted to discuss like if a beginner wants to learn Jenkins, learn as in on a developer perspective, not on a user perspective. So what should he or she would refer? That would be useful. So kind of resources that I'm looking for something like that or your. Okay. So, so let's, if you're okay, you're okay if we take that topic now. Oh, yes. Okay. Sure. Super. So go ahead. So I did my, I was going through to find the best resources on Jenkins website and I found out there's a user handbook and I went through it, but I realized that since it's a user handbook, it is going to talk about here's how you do this. This is, if you want to do this click here and there. So this won't help me much to know about, you know, how Jenkins works. So that's why I then went to this developer book on Jenkins IO website. And should that be my question? It should that be a good place? And is there any other place that you would suggest to go? Good, good, good question. So, so the my sense is let's, let's call it much less organized, comprehensive and less comprehensive than the user handbook. And it really is right. The developer documentation is not nearly as good as the user handbook. So how do we, how does a developer, how does a developer developer best learn? Right? I think that's what you're asking. And for me, some of the things include adopt a plugin, start maintaining it, use that as a way to learn by doing. And, and that's, it may be far too frequently people make the mistake of thinking, oh, but I'm not nearly good enough to adopt a plugin. They misunderstand that anything they contribute to that plugin, even if all it is is reviewing bug reports is something that wouldn't have happened without them. So it's already a significant improvement, just the act of adopting it. So, so let's take a look at some plugins, for instance. And I guess maybe I should ask, are you interested in doing Java development? Yes, totally. Okay, good. So if you're interested in doing Java development, then adopting a plugin is a great way to be introduced to Java development. So let's, let's look at some plugins that are up for adoption and, and get some, some ideas. So here, there are 106 plugins up for adoption right now. I'm proud that's down from the 112 that it was before. So that's positive. But yes, there are plugins here that would very much benefit from having someone willing to adopt that plugin. And these are plugins that you could adopt and start work on immediately. So for example, if you're interested in how do, how does Jenkins deal with extending the functionality on a build, this build timeout plugin is an excellent choice to adopt. And there are, you could apply the contributing to open source steps that we were working on for the blog post. As your way to get introduced to this, become confident with it, release some new versions of it, investigate, hey, are there bugs that need to be fixed? Those are all, and in this one, there certainly are. So there are, there are great ways to, to do that just by adopting a plugin. And it gives you a good chance to help the community and to develop your Java practice skills with something that people will help you with. This, this sounds really interesting because I have resources ready as well, the blog post that we're working on and the videos that you've created. So I'll be referring them and I'll be adopting a plugin for sure. Great, great. Yeah, so that's, and I just, I just went through the adopt a plugin steps with a plugin that's actually not up for adoption, but that looked like it might benefit. Here's one that Clover is a code coverage reporting tool. It's an open source code, code coverage reporting tool that was donated to the open source by Atlassian. And I've had really good, good experiences with it. Many years ago when we were using it before it became open source. And so I'm interested to, I was interested to help with this and saw it doesn't have, it didn't have a Jenkins file. It didn't have an up-to-date parent palm. It wasn't using the bill of materials. It had lots of things that it's not using documentation as code. So almost every single thing that is on our list of to-dos applied to this plugin. Now, if we look at the adopt this plugin, I worked with, what was it with, with one of the She-Code Africa contributors. And she and I looked at another plugin that's up for adoption, publish over SSH, 70,000 installations. So lots of people use it, but it needs, it needs a good maintainer. And even more interesting is that this one has another plugin that is the basis for it, this publish over plugin. And so there's a publish over SSH, a publish over CIFS, a publish over FTP, each of them uses a base plugin. And so if you were interested in adopting this one, you could adopt it and adopt one other and have a great chance to have a very positive impact on an awful lot of people. Great. So are you persisting to adopt all the same kind of plugins, publish over SSH and publish over XYZ, all of them? No, no. In this case, all you do is you would start by adopt this one, right? Adopt publish over SSH. If you then reach a point in your learning, in your development, where you realize, oh, I, because for instance, this particular plugin has a very important issue that has not been fixed. And it's an issue that blocks people from using it in newer versions. It is, let's see if I can find it here. Tables to divs, where did it go? Oh, so it's a UI problem. It is. It's got a UI problem. A UI problem is a serious impact because let's see it. Let's look at tables to divs dash. Oh, here it is. There we go. This one. So if I remember correctly, it's right here. This bug. So here's this bug in publish over SSH. Nobody's worked on it. And yet there are eight people watching it. And it's got lots and lots of comments here ready to ready. So if you say, I want to adopt publish over SSH, there are going to be people who are very, very happy. Wow. That is very, very interesting. So you're suggesting about publish over SSH and you were also talking about HTTP, right? If you would like to look at the other publish over plugins, you could do that. If it were me, I would probably just start with one. I'd pick one and say, I'm going to adopt it. And once I've adopted it and I'm comfortable, I've released a few versions of it. Then I'll look to see, okay, should I adopt another one? Because for me at least, there's usually a good two or three weeks of learning going through the different steps to modernize a plugin. Right. This one, let's look at it to see how much modernization it needs just for fun. Okay. So it's already using 4.19. So it's pretty close to current. But, oh, and it's already using the bill of materials. So that's good. So this one may be relatively easy to adopt. And you may in fact not have to do a whole lot with it. So that's encouraging. Yes. So I think I'll go with this one, publish over SSH. Great. And there are instructions on how you do the adopt a plugin. On this adopt a plugin link. You just click that and it will tell you, hey, if it's up for adoption, which this one is, you send an email to this mailing list saying, here's the link to the plugin I want to adopt. Here are some pull requests. Here's my, here's one or more pull requests. If applicable, doesn't have to be there. Here's my GitHub username and my Jenkins username. So just go ahead and send that mail. Sure, I'll do that. Thanks a lot. Great. Now, what you may find, at least what I found is that one plugin may ultimately not be enough because it gives you a relatively narrow and quite specific focus. So publish over SSH is an interesting plugin, but it's only one of the many types of plugins. You may then say, oh, you know what? I'm personally interested in Docker, okay? I want to adopt the Docker API plugin that might be one. You might say, no, I'm interested in, let's see, what's a another good one? I want to worry about Microsoft platforms. And so I'm going to look at WMI build agents or I'm going to look at MS build. Those could be interesting. Whatever interests you with this many plugins, there are a lot of opportunities here for you to choose to do something. Exactly. So just out of curiosity, do we have anything related to Red Hat, Ansible? I know it's not up for adoption. Oh, that's a good question. Okay. So let's see Ansible, wait a sec, what happened to the Ansible plugin? I know there is an Ansible plugin. I know there is an Ansible plugin. That's very interesting. Yes, there is. I submitted the doc improvement for it. Yeah, it certainly exists. And here it is on the plugin site, but it's not being found by the search. That's strange. Ah, okay, somehow. Oh, right. It's not up for adoption, but you could certainly contribute to it. And you could reach out to Jean-Christophe Ciro and to Emilio Escobar to see if they would be willing to take your contributions. If you look at it, I think it's not getting a lot of attention because there's a poll request from somebody trying to move the documentation to GitHub that hasn't been processed. Yeah. Oh, yes, you have done it right. During our doc's office hours. Exactly. And so, but this is one of those proofs. Okay, a documentation poll request is pretty easy to review. You could readily say, I'd like to adopt the Ansible plugin and see if the current maintainers would be willing to allow you to become an additional maintainer. Right, okay. Makes sense. Yes. Good. All right, yeah. So Ansible is certainly a good choice as a plugin. Okay, it's not. That's interesting. It's sticky. It remembers that I searched for it with the label. Yes. Good. So did that address your question? Yes. So it makes sense that I should start with something by doing practically, and that is by adopting a plugin and maintaining it so that I get to know the concepts related to Jenkins. This is one thing that I'll be doing. And other thing that I was doing to understand Jenkins is I went through this book called Jenkins, The Definitive Guide by O'Reilly Publications. It's by John Ferguson Smart. Yes. I've been thoroughly impressed by almost all the books I've ever read on Jenkins. So Jenkins, The Definitive Guide is certainly a good choice. I just bought one that was just recently introduced from Sam Gleske. He just released a book on Jenkins administration. And it's focused on cloud administration and crossing firewalls. So Jenkins, The Definitive Guide is great. I've been through it. I think I own a copy of it. And there's this other one as well. Either of those will be great for you. The Jenkins administration book, US is about $45 or $50. So it's a very expensive book. But you may find it cheaper there in India. And they may be willing to do it digitally much cheaper. Yes. Sure. I look for that. So that definitely answers my question. Great. All right. So next. Okay. If we go on to the next topic. Yes. For sure. Okay. Great. So let's talk about the 2021 end of your blog post. So Oleg Nanashiv sent an email reminding that each year we write a blog post. And he asked for people who would like to contribute. And I said, hey, I'd like to help and offered some topics. Now, what I realized in looking through the topics earlier today is maybe we ought to identify themes. And here are some candidate themes that I thought of. So, okay, what if we said community as one theme? Oops. Sorry. Community as one theme. Events like Google Summer of Code, Sheikot Africa and Hacktoberfest is another theme. And then core improvements as a theme and documentation as a theme. Then security. Now, I'm not sure those are as exciting as we might want. Do you have other suggestions of how could we do this to make sure that it's readable, that people will enjoy it, and that it highlights many, many of the great things that happened this year in Jenkins? I think it has what it should have. But this is a really good question. I think I need some time to come up with something else which would be more interest, like any more better, not better, like a good addition. As well for this. And that sounds very reasonable. I think just from having talked, described it, I realize this community thing is much less, has, is not nearly as strong as these are. Right here we've got 90 plus poll requests from Hacktoberfest. Sheikot Africa, five women mentored. Google Summer of Code, five students mentored. Five projects completed. So we've got really good story to tell here. The community one is more about the data and not so much about the people. But here we can show pictures of people and, hey, here are the five students, here are the pictures of the five women, here are the images we got from Hacktoberfest, those kind of things. This would be really beautiful and very interesting to the users for sure. Okay. I wonder maybe what we ought to do is consider core improvements as the next topic, because for me at least these things matter to, matter to users, right? They care, hey, what, what changed? What's new in Jenkins? And let's call this continuous delivery. So configuration for modernization was a big change. It was, it was, and, and it means we work much better on a small screen now. Yes, that makes sense. And then these were crucial changes to improve Jenkins core, core underpinnings. It's, it's basis and Java 11 likewise. It's preferred JVM. Yeah, I think this looks like a good addition as well. Okay. Now, now the others, I wonder if the next thing, just to, to get people again, keep their interest, maybe we should put security next and say, look, we, we are, we've had two attacks, right? The wiki was attacked and logged for J and then we've had security advisories as well to show that we care deeply about throughout the year. Or is that too negative? What do you think is that, should I put it lower on the list higher? The security one? Yeah. No, I think it looks great here because before this, we just talked about core improvements. So like development efforts. So we are continuing with this, but in a more narrow area that is security. So it makes sense. And it's important as well. Good. Right. Then, then now I'm pushing this, this idea on community even further down because I wanted to highlight all the great work that Gavin Mogan has done and Spinak Konechni and Tim Jacome on the plug-in site and thank our sponsor, Alglolia, for their providing site search and then the videos from various contributors, including Darren Pope. So for me, those were, hey, this is, this is a, is a great story as well and a good chance to highlight. Hey, here, online meetups, we could bring out several of the titles and topics and remind people, hey, here's this one and this one and this one. Definitely. I think this is a right place for documentation to be. Okay. Good. All right. So then if you, if you have other ideas by all means, add them. I think I've covered these in, yeah, I think these have all been covered in earlier. Yes. Good. Okay. So I'm going to start the writing on this thing in hopes that we get, that I can have it done before the end of this week. Yes. So did you talk about Jenkins announcement proposal as it was written below? I did not, but I thought that they were here, let's bring those back. So most of these are already covered in another topic. So for example, job, this is Java, the Java 11 story and this, this one, these three, these four, these five are all part of the core improvement story. So for me, they were just, I used Jenkins enhancement proposals as a way to identify things that I might have missed. Okay. That makes sense. Because for the reader, they don't, I don't think they care as much how we get the thing. It's just that the JEP process helps me remember, oh yes, we did this work and this work and this work and this work. Yes. Sure. Okay, good. So let's, and so I'm going to other topics and I'm just going to take those out because those are already covered. And I'll invite you to review the topic, review the thing later this week. If you're available, I'd love to have your review of it. I'm not sure I'm going to bother you with the writing part of it, but just the reviewing part if you're willing. Yes, for sure. Okay. Great. I'll be good to review, but I'm not sure about writing. I just want to, I don't want to comment and then don't do any work because that's really bad. Well, and we're on a very short timeline for this one, right? We need to, we need to do it quickly while we still have the new year, the new year feel. Yes, right. So, so it's, this is one, it's, it's different than the next one. We're going to talk about the improving a plugin blog post. This one, we've taken our time and I think it's better because we did. So about the previous one, we have listed them topics. So how would you be writing it in a form of blog post to you? How do you, I'm going to look at, I'll look at these previous, these examples from previous. So here, for instance, the themes are headings. And then under the heading is text that talks about other things. And I'll likely embed videos into this and images for some of these things because, because I really like images and videos. Right. So let me know if you need any help in writing. Okay. Thank you. Yeah. See this, this for me is, oh, this is an interesting one, slides. I've never embedded slides before. This is a nice idea to showcase the work, right? Right. Right. It is. It's, it's a, it's a, I'm not sure how it's done, but I think that's a, that's a good idea on, hey, look, here's, here's what we've got. And, and this highlights some things that may be worthwhile to include that I hadn't touched on yet, because each special interest group might want to have something to say. Yeah. Very good. Let me think on this, because we, we may want to use a slide deck. Yeah. Okay. Let me, let me put something in this slide. Well, I think it's, I think this is a worthwhile thing to think. So let's, oh, oh, this is it. Okay. These are the slides from the Jenkins contributor summit in Lisbon, Portugal in late 2019. That's where those slides came from. Okay. So it's not that they were created separately for this blog post. Oh, okay. Now, if we look at 2018, 2018 is one that Kosuke did, and his was a much more brief blog post and 2017, I think was Oleg again. Yeah. So, so we've got good, good ideas there. Yes. Anything else on that topic? No, nothing. Okay, so next piece is the improving a plugin blog post and tutorial. So I had, I had, let me start it up again, because I've, I've done more changes and those changes came from doing another test drive. So what I did was I test drove with the clover plugin because I was interested in the clover plugin for other purposes. It clover has some, has a feature that I'm interested in for something else. And so what I did was go through the, the, the guide and it showed me, oh, here's some things that were missed that are missing that I've added text for. So if we look now at developer guide, it now calls itself improve a plugin, first change. All right. Then it's got a much smaller set of things in this sections, and I'll be removing more things from it probably. So add a Jenkins file, still follows the same pattern of create a branch, do the task, create a pull request, and you're done. And you're done. Then likewise update the parent palm, but this one, I discovered, oh, I had failed to tell people, be sure you check that it compiles. And in many cases, other changes will be needed. Some of those things may include, you have to resolve spot bugs mornings that are, because spot bugs in the old, old parent palm was not enabled in the new parent palm, it's always on. And so you're getting warnings that you didn't get before. And you may have old jelly pages that need a specific change that this describes. So those kinds of, oh, you could encounter this, you could encounter upper bound dependency warnings. And as you adopt publish over SSH and others, you may encounter the same kind of things and we need to then update these pages with what you learned, just like we, I updated it with what I learned. So that was, and let's see the next change then was, oh, minimum Jenkins version. Yeah, this one was easy. This one also easy. This one, yeah. So these have generally been okay. And this one I haven't touched yet, because this one has, this one we've got a video with Darren and I doing this one. That we, that we can point the readers to. Sure. So you mentioned jelly. Oh, before that, yes. Please continue. Oh, no, no. What was your question? That's so, when you mentioned jelly, it reminded me of this JIRA task that I've created related to the view job filters plugin, where there's some UI inconsistency. Right. And you also commented on it five days ago, right? Do you remember that? Okay. So I was one, I was wondering like, how should I know about jelly to solve this problem? Good question. Yeah. So let's, there's a, there is a, on the developer site, there is a section about jelly. So if we go to the how to guides here and jelly form controls. So under forms, which is what jelly is doing for us, there's form validation. So how do we check that what a user entered is useful is correct? How do we add tool tips? So something that will give a hint to a user as they hover over it. What are the controls that are available to do validation, to do optional text, to have a dropdown menu, to have inline help. So that's where you would learn more about. And then here's this one about form submission. So how do you get data from the user and how do you process it in Java after they've entered it through the webpage? Okay. This is a great place for me. So I'll go through this for sure. Well, and, and don't be, don't be, don't be too surprised if this is not nearly good enough and you have to do an awful lot of, you may have to spend time in the debugger looking at, hey, what, how did I click this on this plugin, which, which methods got called and why did they get called and, and what, what parameters did they receive, those kinds of things, at least for me, spending time in the debugger with Jenkins running and me looking at the debugger has been a big help. Yes. Okay. I'll keep that in mind. So did that address your question on jelly? Yes. So I'll go through this and we'll get back to you if I'm stuck anywhere. Very good. Yeah. Very, very good. Yeah. Let's see. And if you're other, other things about jelly in this page, so there's form controls, internationalization of messages, if you want to internationalize. Yeah. So that those are the two top level things. And then, oh, that's fun. It's indexed the Chinese site. Oh, very impressive. Yeah. Here we go. And here's more on the jelly, jelly form controls. Oh, no. Okay. That needs to be fixed. Those links should not go to the Wiki. We've already got better documentation. Yeah. We've already got this documentation ported over. Now this one may help you. No, no, there's not enough there. This one is a good one. If you really want to know what can jelly do for you, you look at this UI samples plugin because what it does is it gives you Java source code to show you various kinds of jelly controls. Oh, nice. This is helpful. So can you post its link to the Jenkins notes as well? I sure can. You bet. Yes. Let's see. Let's put it up in the earlier section so that it's together. So how does it? Okay. How do I learn more about jelly and form controls and web pages in Jenkins? Right. So that's and see the UI samples plugin for examples. Right. So that's a good one and see the. Yeah. That's probably the best, the best choice immediately. And then there are see the developer docs for jelly. And let's get that user interface. And now we go back to here jelly form controls. Does that help? Definitely. Thanks a lot for your help. All right. Excellent. Dheeraj, we've run out of time. I think that covers it for me. Anything else from you before I end the recording? No, but just wanted to ask whether you were able to cover everything that you wanted to cover for this improving a plugin blog posting tutorial. We covered the things that were most of interest to me and I'll keep working on it. It probably won't arrive for at least another week because I need to spend time on the New Year's blog post. But we'll get it in here and have something that we can use and start improving. Sure. That sounds great. Great. I'm going to stop the recording if you can hang on for just a minute. See, stop the recording.