 Welcome to the Jenkins user experience special interest group. It's December 8, 2021 reminder that we adhere to the Jenkins code of conduct be nice to each other. So topics that I had on the agenda today as status report on JEP 234 that was reviewed last week is briefly status report on Jenkins 2.319.1. Again, I think we want the bulk of the time to be focused on UI improvements that are in progress or discussion and next meeting date because there is a holiday collision here for many of us if we meet at our usual two weeks from now. Other topics that you'd like to put on the agenda. Yes, maybe a small topic. I've created a new UI plugin. It's a prism plugin. It's about source code highlighting. I'm using it locally in the warnings plugin and now I created it as a plug in so everybody else can use it as well. We use it and we use it in configuration as card. Okay. So you say you're you okay so so that feels like a great topic. I'll put you on the list really any other topics we need to add. Okay, then let's go through the topic so JEP 234 has been merged into a Jenkins weekly. It's not going to be in Jenkins LTS until the next LTS baseline is selected and Jenkins 2.319.1 LTS has released thanks very much Tim. And no major issues reported in my monitoring of the list. Has anybody else seen major issues that that they need to report here concerns related to that that LTS release. Okay, next topic then really you are the prism plugin so do you want to share your screen to show it or. Yeah, maybe that's a good idea. The best thing. Let me share my screen. So, as you already know, in the warnings plugin you can see the number of warnings in a project and you have the possibility to navigate to the source code. That means you can click for one or here on the warnings and then you see the source code view where you have our source code and the warning here itself. So this view is using prism as a Java scripting framework as background that means the highlighting that this is a Java file and we have syntax highlighting you see we have the phrases matching. These things are provided by prism prism is this thing here it's a website which provides this Java scripting library. So using this library I think for two years now locally in the warnings plugin and yeah, what I did not yet manage is was to provide it as a single plug in. So what I started now is to extract the Java scripting code into our own plug in so everybody else can use it in their plug ins as well. Currently, the state is that we have the Java scripting and CSS files in in this plug in it's already working so the current release of the warnings plugin has it as a dependency already. So what I wanted to add is that we have some, you know, some simple building blocks to show a source code in Jenkins. So I want to have a few model in Java so you can just say new source code few and give it a file name and then you see everything in one single few. I'm not yet ready. This is all currently is still in the warnings plugin, and I'm refactoring that part of the code so we can use it in other plugins as well. So conceptually we could we could create something for instance like a declarative pipeline syntax definition for use with prism and it would syntax highlight is that or, or in this case the Java code or if it were Java script I don't know what it's being I assume they've already got visualizations for those they've already got highlighters for those they have 1000 and not thousands but 100 of different programming languages supported. I'm not sure if they support our special Jenkins files. I don't know, but I think a lot of languages are already supported. I added now is some kind of automatic downloading the correct syntax highlighting language. So in your file you need to specify, I'm using Java script and then the Java scripting library is loaded on demand. If you don't need to load everything in one row, you just need to download one language that you need. So actually I haven't looked into detail how many languages are supported so in the warnings plugin, I need support for C and C++ and C sharp and JavaScript and that's working quite well. Yeah, I think my next plan is to use it in the code coverage plugin as well. So we have some kind of highlighting and I think there are a lot of other possibilities. Maybe in our workspace navigation we also have the, or if the git plugin would show some differences, it would be helpful if we can see it with syntax highlighting. So Tim, you had mentioned that you were already using this in configuration as code, are you bundling it likewise then? So if it becomes an API plugin, you'd need to change that to depend on the API plugin or? So we just have the assets just hardcoded just copied from a version a long time ago. It was added and was added three years ago and hasn't been touched. Okay, and that's for YAML syntax highlighting, highlighting I assume? Yeah. Okay. Excellent. So you'll go ahead Tim, excuse me interrupting. I was just gonna say it's that and then a minor changes on top of it. I'm not sure if we've changed some stuff or not. But yeah, we could possibly probably move to it be good to have it updated to get new things, but it works really well. I mean YAML is quite simple in this respect. We're not doing anything fancy in YAML. Yeah, that was the same in the warnings plugin. I think I installed the version two years ago and never touched it and it just works. So, but I had a pull request last week when someone added highlighting of these columns here. Then I thought it makes sense to add some more details and use some more plugins and the idea is what I want to add is that we have some generic concept of adding such blocks as well. So if someone wants to highlight some source parts, it should be easy possible after that. So this is not yet working in the API plugin, it's still in the warnings plugin, but my idea would be to add it to this API plugin as well. And having as it as an API plugin makes updating much easier so I'm sending the pen about to update now the JavaScript in code and the CSS code so it's much easier now. Excellent. Yeah, so this, this, this looks brilliant. It's that really good looking. Yeah, and they also have a lot of themes. And one of my plans is to make it customizable as well so that a user can select his theme. So I'm not sure if it makes sense to select the theme on this page, or if we should use it on the profile of a user, I'm not sure what makes sense. I think they have already, I think six or seven provided themes. And it should be easy to toggle them on the road during viewing one of these files. Yeah, it may possibly fit into the theme manager plugin as well. Or maybe that would be an idea as well, because maybe if you're looking with a dark theme, it makes sense to choose a different theme. Yeah, I have a default theme for that sort of thing. Yeah. Yeah, because the configuration is code is just got one built in. It's like, it's quite a dark one. It looks quite nice, but it looks a little bit of a place on a light theme. Just checking on it. It looks like on dark theme. Yeah, it's quite nice on dark theme, but not sure how well it is on a light theme. And now the API creating an API plugin that provides JavaScript APIs is no more daunting than creating an existing API, a Java based API plugin that that was a piece. Are you already using API plugins for some JavaScript components. I think you are right. All of these are using the same technique now. And it's really simple. And so it's not simpler as Java. It's almost the same. You just use some kind of thing like the POM XML you have some package specification. And then you need to know how to build it. And I know it now Felix did a lot of good work for this bootstrap plugin as well. I'm using the same approach now for all these plugins and it's really comfortable because they are, they get a lot of more releases than Java APIs normally. And then I just can use depend upon to update it and to release a new version. And it works really out of the box quite simple. Thank you. Thanks very much really this looks great. Okay. Then we can move on. All right. So next topic was on UI improvements and with Jen not here maybe Tim do you want to give us some hints of how how you see things evolving anything that we need to be more involved in to assist more that kind of thing. Right now it's mostly just fixing test failures. That's what I've been trying to get sorted. This tends to be quite difficult. The Jenkins form tree suffix very fragile, and you can very easily break it. So currently on the main form improvements PR, which is what I've been focusing on was one test failure for reverse build trigger. Where I think the database is not quite working there. I've been kind of fixed quite a few others and generally just have to buy sex the whole pull request and undoing changes until you find what broke it and then it's not. Yeah, it's quite a pain. I kind of hacked on the section headers on the job page to get that working but test passes now. And then there's ATH as well and really has got a few comments though. Generally, I think they probably need to be fixed and some plugins move probably post merge or possibly fix them beforehand if we get it to a good stay. And then need to look at the ATH. I don't think ATH when we fit fixing in plugins. I don't think broken in plugins. It's just things misaligned or generally things misaligned. I think ATH is more like possibly things not scrolling properly not scroll to the right spot. I haven't really looked at it too much and might have time to look tonight. Apart from that the other PRs buttons one is generally in a fairly good place. But I think it's still some ATH issues. I think the general builders think all the tests for has been fixed on the button one. A few questions on advanced button and how that should look. But I don't think it's a blocker the plug in manager. It's in a good spot but early at a whole bunch of feedback for more improvements which Jan wanted to find time to work on. I think he's got a different branch where he was doing some stuff but I don't think there's anything really but he resolved the conflicts on it on the plug in manager today. We could ship that one. I think there's enough. Well, after checking bomb and ATH which I don't think we've done on those. We could ship this one and do another iteration to address early feedback or just hold it back. It looks quite nice. I'm not sure if anyone's got any thoughts on that. So we've already had. So this is to apply. Maybe would you be willing to show the plug in manager as it exists or is it is it workable for you to show it as it exists. I think that changes to the tables and think they're they're lovely they're really beautiful and and haven't experimented yet with the plug in manager. I'm just saying if the screenshots are up to date. Oh right right I could just open the pull request couldn't I be just even if they're even if they're out of date they're probably closer than than anything else. Yeah. Let me get that. Just a moment. I don't know if they're out of date but they're generally right. Okay, so I see. I put it in the chat. It's not 5906. Thank you. Okay, I was searching and. Okay, so here is the pull request and looking at the screenshots. So it's going the before is the upper upper image and the after is the lower. It's the new one. Oh right right exactly. Okay, so. So, yeah, like the updates tab moves the version that it's going to update to next to the text. And then in the installed tab, they change from checkboxes to toggle switches for enable and disable which is kind of nicer. Right and the downgrade buttons are different but different. It's that middle thing. Oh, yes. Okay, I like that. All right, so so here the downgrade button is on the bouncy castle API example right where in order to downgrade it shows I pick that and it's showing me the version number for the downgrade. Yeah, and then the installed version has moved into next to the text as well rather than taking up a whole column. Right. So I think early add some suggestions around things like. Yeah, but this was some additional things. So I think the pull request is really awesome. It's really nice. I already like it. And I added some additional comments which are not caused by the pull request these are some general things that we can improve even more if you would like but this needs not to be done in this pull request. Just some ideas. So maybe we just check that's a th and bomber passing and then if they find we can probably ship this. Okay. Because just to get one of these out because it's quite a few, but the, the biggest impact and the general, the main one is the modernized form one which fixes some of the issues from the last one and makes everything look quite a lot nicer. And the for modernization one that that one is still still in work and that's the one that I think you were describing earlier in this section did I understand. Yeah, that's yeah, it's hopefully quite close. Just never know with a th. Right. Okay, great. Excellent. So, so the thought was this one, the plugin manager improvements may be near the point of merging so that we could get it into a weekly while we can, while the work continues on on the larger form modernization. Yeah. Yeah, that that really is that is very attractive. Yeah, I think there's a couple of other ones as well there's they don't have PR is open. There's one that's just the validation to be a bit nicer so it fixes the bug where the validation is touching the input field basically but it also reworks it. It just makes it look a bit nicer. There's no PR for that I'm not sure if he's still working on or if it just doesn't open any more at the moment. And then yeah there's a job config one that people have seen, which needs to form one organization and first, but that fixes the screen width for those with bigger screens is that you don't have that bar around it which means that you're not taking up that full area. Okay, but that one that when you say needs the for modernization first so it needs the larger one first before. There's a lot of stuff in that one. There's some stuff in the buttons one that the form one there's just some kind of needs where you've got that like delete branch thing that if you pull in the bottoms PR then that's actually just a little button little round bottom. Yeah, I think that's generally it. Excellent. Thank you. Any, any other items that you wanted to highlight. Tim, in terms of of UI or UX topics. No, I haven't really had a lot of time. In the time I've had I've tried to pack away those unit test families basically. And thank you so much for doing that. And then that covers all the topics the next question would be when should we meet next. The calendar would indicate. Usually we would have met two weeks from now on the 22nd of December, that may be in holiday season for many people what what works for the two of you. Actually we moved the calendar for every four weeks, we have. Sorry, the reason I said to two weeks from now would be on the four week cycle again. Okay, sorry. No no your point is valid absolutely I should have been more, I should have been more clear right now it's not on the calendar for the 22nd so the next date would be the 19th of January is that too far out should we set one for like the fifth of January. Maybe it would be fine if we take the 19th, because over the holiday season, two weeks I'm not here, and I don't have much time. So, it would be fine if we have in four weeks. If that's fine for everybody. Yeah, it's probably fine. I don't know how much time I'll have for I might I might have a favorite time I might not don't know yet. Okay. So we've got the next next else so 2.319 that the further support January 19 2.319.2 releases. The 12th of January. So making it the 20 the 19th feels good to me. Let's take it. All right, great. That covered everything I had anything else anyone else needs to discuss. Not for me. Just a recording later. Thanks everybody. Yeah, thank you. Bye.