 This is Jenkins Docs office hours. It's the 9th of November 2020. Jonathan has let me know he won't be here today. So glad to everybody here. Topics proposed action items. Progress on Jenkins IO poll requests. Look at the data. Docker changes to use the official image. Vlad you okay sharing your current status on that. Yes, I can just talk a little bit about this. Okay, Jonathan's out. So what's new next after October Fest is, I think still a worth worthwhile topic. Maybe I'll take that one and we'll spend some time on it discussing and brainstorming. Any other topics we need to add to the list of agenda items. So, first topic reminder of action items I took the action last week and didn't do anything with it. So let's put it for me this week. Actually do it. Sorry about that. What will happen, I think is it may shift this one hour later in the day to get us on UTC. What do you plan is that okay for you make that would be right at the same time we had it before I think when Jonathan was meeting with us. Avoid changing his time, or is this time much better for the two of you and better to do it now than an hour later. Well, for me, it's doesn't matter much, but I thought our later will be out of your normal business hours. Is it not correct. I mean, but that's the challenge of having meetings in UTC. I don't mind that that's fine. Office hours outside of working time is is not uncommon. Yeah, so, yeah, I will be fine. Okay, and make any any feedback from you there on timing. No response that's fine we'll go ahead. Great. All right next topic progress on the Jenkins IOP requests. So here we've got Jenkins GitHub Jenkins.io. We are down to only 31 pull request pending. So that's good and several of those are brand new brand new pull requests. So we're making reasonable progress and things are improving. So 31 and there are 116 open issues which is a slight increase, but we've made progress on issues as well. So last week it was suggested to look at the redirect pull requests to see if there were easy, easy ones to resolve and I was surprised that most of them have some other dependency. So they aren't just trivial trivial changes. And that's okay. It just means we've got more there's more work to do before they can be. They have another merge required. So there's more work before we can merge them. Anything else on pull requests. All right, Vlad, you want to share with us how progress is going on Docker changes to use the official image. Absolutely. So just to remind everybody, we agreed that we'll use approach of using official Jenkins Jenkins Docker image while doing installation of Jenkins. And at least it will be in our documentation in our official documentation hosted on Jenkins dot IO. And there were several pull requests which were merged and they addressed this like long standing issue. Now there are also Tutorial sections which we're trying to sync with installation documentation apparently using what I found out. Don't repeat yourself dry principle is not quite easy in our in such complex project as Jenkins and very complex documentation. Well, I guess, ask your dog allows to do if deaf, if and if, if not deaf kind of statements preprocessing statements, which will can address dry principle can comply with dry principle. But it will be in my mind to complex to maintain such combination of conditional statements inside ask your dog. And I would be glad to hear other opinions in case there are, but I found that it is much easier to separate official Jenkins installation documentation from tutorial documentation, having Well, two files. Some of them with some repeating content, but at least we'll allow ourselves to more easily maintain tutorials section Without modifying installation. And another proof of this was One of the issues which we discussed in our previous meeting about One of tutorials not working with the current documentation and this tutorial was about using node chairs. And Node.js tutorial is using port 3000 To well open Node.js application and port 3000 is not available currently inside installation documentation of Jenkins and Docker And we created pull request which will address this issue specifically for tutorial documentation without affecting Jenkins documentation Well, this is one of the Issues about installation Now there are also other topics about installation about documentation which I Can raise one of those is the following we're talking in our documentation about using LTS Releases I guess it is long term support releases, but inside documentation lately there were several changes which are Asking users to use Well, there is no Docker image which doesn't have LTS inside For instance Well, if we go to Jenkins.io site I can share this This actually Can go to Jenkins.io Do you want me to go I am sorry I stopped sharing just assuming you would Oh, I see I see that way you can you can take us through the tour if that's okay Yes, absolutely. I will go just let me see if I can share the screen I need to be enabled to share. Oh Security security security. Yes, you're welcome to share now. Sorry about that. Can you see my screen? Yes Zoom 5.0 is here So excited And this is this is what I wanted to mention when we go to Docker installation installing Docker Well, we're saying that it is right now. We're using Jenkins. Jenkins in long term support release But later we're using here Let me see Let me see one more time We're using this image which doesn't have LTS. So I wanted to ask what is the opinion of Is it a key to use our image which doesn't have LTS inside because there is also So the version so that's just a naming a Missing word in the label 2.249.3 absolutely is LTS So the fact that it doesn't say LTS for me is is Not harmful in this case. It's choosing to use the reduced size variant of the Debian Version that we ship because one One of the things I was thinking about doing PR is I noticed there is also 2.249.3 Dash LTS that dash slim. So there is LTS slim and Well the same size of this image and this Yeah, so if They and those would be the same exact image. So that's great if we switch to using dash LTS dash slim That's fine as well. Absolutely So yeah, so it is Not not a big issue just my other thing which I observed and which Will make more logical kind of our statements about using LTS But at the same time I noticed your pull request mark that we are switching right now to New base or maybe it was from a leg Switching to new LTS as baseline to Something which is weak really straight now Not so that baseline switch of the LTS won't happen for about another three weeks It'll be early December before we make the switch to 2.263 So so this if you were to change this to 2.249 dash dot 3 dash LTS dash slim That's great so long as there is That label exists that that sounds wonderful Okay, I will Make a pull request addressing this. Yeah, thank you. So I have a procedural question. I don't know if this happens maybe it doesn't but Let's say I'm a developer not a writer and I introduce a new feature. It's coming out in one of the weekly versions That is going to impact this procedure and I'm a responsible developer so I update this documentation I see a couple of problems there, but do we are do we have a procedure where we can say because I'm seeing docs that say This is a preview feature or something like that, but then if it impacts one of our main tutorials Do we have a place where they can put that in so they get it written up while it's fresh in their minds But the users are not Seeing it as a default tutorial. Do we care? I'm not aware of a way to do that So Maybe a procedure of saying, you know, if it's not an LTS don't put it in the main tutorials that would be one stop, you know The tutorials are narrow enough that I'm not I'm having a hard time envisioning something that would Require a change to the tutorials that's not already covered by this Minus minus plug-ins blue ocean colon one dot twenty four dot three So that choice Installs on a nice set of plugins that are compatible with two dot two the version of Jenkins that's running and Because of that, I would expect that it will be just fine. Although It's a good question. Let's see. Does it actually know which Jenkins off to think about that. It's a good question We as an example, we had a release of Which one was that we had a release of a particular plug-in that now requires Jenkins 2.263 I believe So you may we may actually already have the case you're worried about make it'll be interesting to see But it I mean it it seems to me being you know a hard-headed writer that is perfectly reasonable to say if it's not in an LTS release Do not put it in the tutorials You can have another documentation set that's just about that feature or whatever and you can put the information there where we can get it later But I think that makes sense to me Vlad. What's your opinion? Oh, yeah Makes sense as well Anybody who's messing with a brand new feature like that shouldn't need the tutorial anyhow, right? They should be more sophisticated Yeah, it's it's probably you're right maggots for developers advanced developers probably who know what they are doing and tutorials is more targeted And I suspect most engineers if they write it down in any place They'll write it all in one place for their feature and they're not going to be inclined to look around and see oh this tutorial needs updating so Yeah, yeah I think you you've certainly stated that clearly there've been long periods where the tutorials were on an unhealthily old version of something or Unhealthily old version of this is that other thing or etc. So yeah, okay Maybe a matter actually of watching PRs that come in for a new feature and say oh when this gets when this feature gets to LTS And is supported it's going to impact this tutorial right Yeah, and actually this Tutorial which had issue with port 30,000 it was created at least on your hub last time modified three years ago So I wouldn't consider it too old but still while Doing all these different faces inside Jenkins it was reported deprecated Not very Good sign, but still I was glad to make it work. Do you want me mark to stop sharing so we can share your notes? Because I guess I covered this one. So did we cover it? Did we cover it well enough? Well this specific issue that I wanted to address with LTS and Make request Do LTS inside this and in tutorials as well Well, yeah, this is what I wanted to address while talking about Jenkins and Docker Just Switch back to Looking at the notes and Now while you were doing showing the demo I realized that there is probably a Change we need to make or while you're showing us that screen. There's probably a change we need to make in the Docker image Definish that we're using that we want to put this minus w or minus minus war argument in Because if I remember correctly the Docker image doesn't put the Jenkins war file in the usual default location It's It may just need some checking. Well, thanks I'll look at it separately and see I Guess you're talking about the process of building Docker image Right, right. Yeah, and I and if What one of the things we do is we use that plug-in installation manager and it knows an awful lot about what Jenkins It's using and it's able to know even more if we tell it where the Jenkins war file is that it will be using And but that means we got to be sure that we're telling it that location And so I can have to explore it a little bit on this subject the The reusing the code. Yeah, I it always sounds like such a good idea But that's always been my experience is it very rapidly gets to the point where it's just unmaintainable But then you have two options that and wonder which one we want to favor One is that I actually duplicate the information in both documents or all five documents or whatever The other is that I write up it works well if there's a reference page that I have all the gory details in the reference page And then the other places maybe have a high level part of it and say if you want the gory details go there and do across reference And it may be that we can't really set a policy that you have to do that in context for each case Yeah, so I thought the reason for the two that the tutorial intentional use the step by step Do every step in sequence and the things that are duplicated right now flat if I remember correctly are many of those steps Isn't that correct that the the step that says how do I generate the Docker image is part of that It exists in both the install guide and in the tutorial If I recall correctly this step by step guide they don't much refer to the Well, maybe I'm wrong, but I found that is fine right now the only duplication I noticed is in tutorial section and in installation section But it is partial duplication not all but just very well Part which can differ Right, I'm extrapolating to other cases where this could arrive. Let me maybe that's ridiculous. Maybe I need to just shut up You can send me a virtual that's what we need is a virtual slap emoji on this thing Meg Your comments are very welcome, of course, but I I realize well For instance a long time ago when I was working with databases, there is notion of normalization of databases when you reduce Kind of duplication of data, but it may affect performance. So usually common sense is to compromise and allow some Not complete normalization like for for whatever and so performance will be acceptable So I guess it's good sense. Maybe to follow the same principle in our documentation process Allow some duplication not 100% compliant with dry principle But allowing is the maintenance or maybe allowing people to like Create new for instance tutorials new manuals Great Your principle of compromise is actually just a good one for life. I think I like it Because I For me it was looking in case if I will implement this like completely dry principle and do this coding inside the quotation after that Well, the people who will do this after me they will spend 100% of their time maintaining this code and trying to Make this the quotation compliant with dry instead of addressing the content and Maybe not very productive. Yeah, but so what do you think about this? I think you've got the right balance and we let's keep talking about it because we may we may yet find a way that isn't To burdensome and can reduce the duplication so make to show you the duplication right now This is the underscore docker page and this is the underscore docker for tutorials and as you look at it They are the same content great and content for preliminary things that are stepwise like how do you do an installation But then then we get into I forget where it was flat, but it's not too far into it where we get a divergence Right. It is a deemed run docker-in-docker. I guess section This one I thought it was a yes one here that two three seven six Right Dock around to oh yes, it's this one. It's this line right there. Isn't it that's the one that the tour the tutorial must have Right And what that does is that gives access to the sample data that the tutorials need but and since we're covering Okay, go ahead mark after you've led Just if you go a little bit I guess since No little bit No little bit up to the way we're running docker team Since two three seven six we're opening this port two three seven six Where well we're using this in installation seeing it's optional But this is default port for using API for docker And I Get in case if some people would like to use API some developers would like to use API Currently we don't have any tutorials as far as I understand which are using this port So in the latest request I just added port three pull request edit port three thousand to port two three seven six We can of course replace this port two three seven six in tutorials and leave it in documentation And again separation of files for tutorials and default installation will allow it make this kind of changes With a bit more easily So I I did not realize that you're saying that this is actually optional. I thought that was mandatory. That's great Well, this is optional according to our documentation And Well, that's that's where it says that right That's fascinating. All right. Well, thank you. Yeah, you're right. We need to test it more well Completely and test all different choices. Yeah, see for me, I'm afraid for me this This is almost magical. It is so so so carefully crafted I think I understand two or three of the command line arguments even for But this one for instance, I'm not sure and Many of the subtleties involved in this choice of image are not immediately obvious to me. I know why we have to do privileged And I understand how we're using network Jenkins I don't yeah, so they're just so many things that this is very sophisticated stuff in a very few lines You know, you're in the presence of genius Honored to be yes. Yes All right Anything else on docker changes for the official image Oh, should we since I brought that up the the two alternatives should we just put a thing decide in context for each situation or whatever Yeah Good And One question. I'm not sure if you want to put this in the quotation mark, but I noticed for instance cloud bees using different Approach, but they're using of course different images. They're using cloud bees images not Jenkins docker images So the question is should we somehow Consider that approach as More I guess production more advanced or We shouldn't How it should affect decision For community which approach to use and so The good question and I'm not I'm not familiar with the approach that you mentioned Do you want to give us an overview of it? I Of course hadn't explored there is huge documentation for cloud bees But I guess last time I looked at documentation of Installing Jenkins with docker on cloud bees and of course cloud bees is using cloud bees Image They are not using cloud bees They are not using to Containers talking to each other, but they are running just one instantiating just one cloud bees Image And running this image as the root Something that we Tried Documented previously before Yeah mark still doesn't like running Jenkins is rude I didn't realize anybody was recommending that especially In a commercial product Wow, okay I Made some comment to Jenkins or to I'm sorry cloud bees documentation I'm not very much familiar how to address Possible issues Minor issues in cloud due documentation, but I made requests like I haven't checked if there is any comment on that or not It certainly got very smart security people therefore I may just be off base by and my resistance to running Jenkins is rude if there's if they're recommending running as route it must have passed their security checks I'm just I'm personally surprised Interesting. Thanks. Thanks for quite a client look Okay, are we sure that the security people review the installation doc? You are well outside my domain of expertise ask it's a good question I just don't know not based on my experience with many other companies no direct knowledge and cloud bees but I would say there were good odds that that's not happening Could be yeah. Yeah, it's just I would expect Others of their leads do review, but it's an open question and it's worth research to find yeah Anything else on Docker images Vlad No, thank you All right So we've got what's next after a hacktoberfest next and There are major changes in Jenkins in this case. It's now Jenkins 2.2 66 tomorrow and in 2.264 two weeks ago jQuery update has been merged Extreme on fork has been merged And the a CG to spring boot security transition has merged so lots of changes and I wrote a blog post that is in code review now Hopefully there are actually two blog posts For me and one from Jesse Glick Jesse's with much more technical content in mind with An incur and an invitation an announcement of all the changes and an encouragement for people help us test The the changes to the plug-in Management page is that new is that coming out now or is that already out? Is that already covered in earlier blogs? Yeah, that was blogged in blogged and we had a webinar on it in two dot 235 Okay So now there are there is a new proposal There's a pull request just submitted by Tim Jack home not yet merged and unlikely to emerge for 2.266 Which apparently dramatically improved improves the performance of one of the plug-in pages One of the plug-in management pages is he found a way to do something with JavaScript on the client side that we used to do in Java on the server side And the client side is apparently much faster Interesting. Yeah, I was I was surprised Okay, so this one the blog posts I suspect I know Jesse's will land land tomorrow since it's already been In fact, it may have already landed. Let me see. I merged it today because the release is happening tomorrow Let's look and see if it's visible yet. It's oh, yes, it is good. So there's Jesse's And Mine has not been merged yet. So it's not visible yet But Jesse's talks about That there are these new changes and their crucial payment of technical debt We're Moving off of old outdated components onto the current releases of those of similar components With a much better chance of those current components being maintained because they're coming from another organization Not us maintaining ourselves Write the change log today So glad I may be looking for you to help with a code review or make in terms of the content of the change log All right Anything else on the major changes topic? We raised the question last time about configuration is code and making more widespread in the docs And I don't have anything to offer there anyone want to to make comments or offer suggestions How mature is it now? Is it at the point that we would recommend to production people that they might use this Actually for their configuration rather than And if so then I would think we should go you know for the topics of things that configuration is code covers Every put all the admin stuff about how you do that should I Don't know if it just links you can also do this in configuration as code Or we should actually be showing that as the main thing and say or you can do this in you lie So should we include Creation is code examples admin docs So hey, I want to configure the following security provider. I want to configure This or that here's an example We may describe it in the UI and then say oh and here it is as configuration is code Yeah Okay, good suggestion There is also Jenkins configuration as code plugin or jcast or jcast Well, maybe we can find some sections in our documentation where to address How to use this jcast Which may be related to also configuration as code and I believe Evelyn She is very active in Kind of Exploring and advertising this plugin. She was nominated for Officer position I guess That's how she may Also may affect this Right well and there are actually a number of people Tim Jacome for instance is quite quite active in it And he's a candidate as release officer Several others right other suggestions So make to answer your question on is it ready for production? I've been using configuration as code in my in my 30 agent test setup For I think a year and a half now and it's been great. I thought it was pretty stable much Much much better for me. It's easier much easier to edit those XML file or those YAML files than the original XML files I had captured Yes Anything else on config is code Next topic then terminology updates. I think this is still the right message. We've not I've not seen any significant progress on further Terminology cleanup It's it's a good candidate for a hack fast or for those kind of experiences where somebody can Read through it decide. Oh, this makes sense. Let's change it this way Next question was related to May 20 21 hack fast and for me this one I would just delay until Until like March or April discuss it in advocacy. I thought it was very successful last year. It went very very well and it's a great time period offset from October fast Free summer People get interested May I ask one question about this may have passed Last time in 2020 It was related to UI. It was called UI. Is it all the time UI related Fasting me It was the first time we did it last year. We've never done anything like it before and we did it. We did it sort of Very quickly Because I think the idea to do it happened two or three weeks before the event was all and so we pushed very hard assembled it put something together and 50 plus contributors Very very nice nice work But it was originally I think that we really detected that there was an opportunity in the UI team the folks like Tim Jacome and Felix And Jeremy Hartley that were that they could use some help There was a particularly opportune moment and so we we launched at that and then broadened it just a little bit and said hey documentation is part of UI as well and We got some really great docs contributions Right and I guess The dark mode or was one of their successful results of this main At least it was tested It was at the development and testing it was very much so yeah dark mode was one of the big wins Docs content was another big win. Yeah Now we've got a January. I believe it was a January October Paris FOSTA so the Free and open source development conference in Brussels, Belgium This year it will be purely online And they're still working through what that means how they're going to do an online conference that has traditionally been Entirely on campus at the free University of Brussels And so now it'll be this will be an interesting experience to see how their technology team does an online conference is proposing a CI CD dev room a dev room is a concept where Speakers are submit papers proposals for a talk to present in this room and Then attendees come join the room and listen to the talk He did one last year and it was very well attended So is the FOSTA hackfest did they take one day and everybody just came into a room and worked together on it Is that how they did that? Typically what we've done in the past is we we Create an event which is Tied to FOSTA, but not officially sanctioned by FOSTA And we'll do that the day prior or the day after and then we invite anyone who wants to arrive who wants to come Who wants to come join us to come help Now that this because it's all online. We don't actually have to do it with FOSTA. We could do it whenever But FOSTA is a great excuse to promote. Hey come join us for a day of a day of online hacking or something Right and that it sounds like that model where we just set up a room and people can come in and join Right exactly All right, so I don't really have anything else to offer there Value in a women's hackfest event. I also don't have much to suggest there The I'm open to ideas Have you talked to Alyssa because I know I am I attend I watched Alyssa's section session from devops world and I thought it was very good But I was sort of frustrated Because it was all about how you ought to get in and do this and there was nothing if you want to do this go do this And I was you know to my view but I'd like to know what Alyssa thought it would be great if when they do these talks they made a reference to this you know here's a place where you can go there are You know all sorts of first time Opportunities to contribute and A supportive there are a lot of complaints that a lot of the tech environments are not very nice to people which is true But that this is a nice friendly safe environment And there's a lot of work that could be done this is not prior best technical expertise Yeah One possible areas for this may be Jenkins art Site and there are several Women contribute contributions to the site also Jenkins configuration as code heavily And some others And make your contribution Well really but we should for all the people who are doing all this diversity work This is a great place to refer because it really this really is a friendly safe. I mean we have our Our principles that require you know to make it a safe environment Yeah A lot of the minority groups seem to You know they're nervous about getting into things that's they run up in a unfriendly environment so I don't know it may not it may be too Too much to do also but Yeah, see I'm I'm wrestling with where we find the time to do Any I'm a little concerned about any one of these just because The the time that I've got for instance to invest in In major promotions like that is quite limited right that's what I kind of see it though to maybe up to Alyssa and to the diversity team that Just whenever they are doing a topic about include, you know with a different group of inclusion That rather than just have it be something about all the problems they have and yeah we feel it too is to give them a next step if you want to take another step to get more involved And that's no extra work. I mean that's what I do You know we might get some extra faces showing up on this call or or at our next hackfest or something. It's not you know from our standpoint I don't think we care that much if we have You know if they're men or women or whatever that show up if they're ready to work and they're ready to work Yeah, that's what we'd make ourselves available as a resource to somebody else who wants to do the work would be my feeling but Great anything else on the topic. Okay anything on with regard to disabled contributors that's another one where I'm not sure what what to do what we should do or how we might encourage or welcome people with Site disabilities or mobility disability etc any number of suggestions I'm open. I take the same Whoever I don't know who's working with these groups and shankans are doing talks or something but I would put it back to them as just a reminder that if they want to tell them they have a safe environment that they would Yeah, I think the challenge is that there isn't anybody right now it's actively approaching and and yeah I don't know how to fix that I don't know what yeah I just don't No and it's we don't actually own the I mean everybody owns it you know etc but but we're not charged with solving that problem so I'm just curious. I'm not aware. Do we have something like active social active speech recognition is our plugins or Text-to-speech Like we enable some Not that I know of it's a good question Google text-to-speech and Jenkins integration apparently somebody does Well and I guess I guess here's another one I'm aware of this one right which is Amazon Alexa integration with Jenkins Oh my Jenkins plus Alexa say hello to voice controlled CICD Kesha Williams did this one Oh, is that cool Yes, but I have done no experiment or anything it's not enough when I when I mentioned her name in my house and suddenly devices start popping up all over the place wanting to serve me If you watch the TV show that has a character named Alex or Alexa or anything like that Oh, don't don't get me even into that department. That's that's terrifying. Yeah, the number of times that I get offered suggestions for my phone in the middle of another conversation Stop listening to me Okay, anything else. All right, so I propose we call this one done. I will do take my action item and fix this meeting URL. Vlad I owe you a review on the port 3000 thing and I've got a couple of other docs things that I have to review and we've got to get this the change log out for tomorrow's release. The change log out for tomorrow's release. Yeah, why didn't you make that an action. Is there a reason you didn't make that an action item for yourself. Oh no I did not that's a good point. That's an every week action so mark right. As simple as the Jenkins 2.266 Change look anything else. Nope. Nope. Thanks everybody. Good work guys. Bye.