 Alright, welcome everyone. This is the Jenkins user experience special interest group. It's the 24th of November. Remind you that we abide by the Jenkins code of conduct. So we had topics today. JEP 234, Ildefonso, and help me what's your preference for how we should refer to Ildefonso is. It's okay. It's okay. Great. All right. Then I had an item on results from the two three 19 one LTS testing. Jan, did you want to give us a would love to have an overview from you from you on upcoming and current UI improvements and theme manager. Are those okay? That sounds right. Okay, super. Any other topics we should add to the agenda. Let's go with those and we'll take more topics as we need them. If there's time as there's a progress from someone for the pipeline graph you plug in. I can show the screenshot and say if anyone's got any feedback for it. I haven't read it myself yet, but it's quite a nice one to take a look at. Very good. Okay. Thanks. Okay, so you're on the on the agenda. If time allows, we'll get there. Ildefonso, you want to go ahead and take us through 234. Yeah. Okay. Can I share my screen or maybe you can open the link. We'll just have you share your screen that way you can drive and I can take notes. Let me look up. I'll mute myself so that the clattering of my keyboard is not obnoxious. Okay, can you see my screen properly? Perfect. Well, first of all, thank you so much for giving me the opportunity to share this with you. This is my first one. And also is my first contribution. Let's say on Jenkins, mostly the main motivation here is to try to provide a proposal to the community regarding the Jenkins header, trying to make this more customer stable. In terms of UI also providing mechanisms for the current header and also for Jenkins for injecting different programmatically code, let's say, not only static code or static resources, based on other alternatives that we have these days. The main idea here is mostly or how I reason this approach and what motivates me to do that is because right now, if we want to update this header, we need to use, we have several approaches to follow like for example use the simple send plugin or other approaches regarding this. That is mostly based on try to customize CSS, JavaScript or other static content. But also there are other alternatives like for example using deep patch made on plugin that also can help us to replace some parts based on static content also based on patches mostly. But I tried to set up a dummy example to illustrate what I wanted to do, which is mostly here is mostly okay with this tooling that I have these days. Can I create a new header to set up a kind of configurable message. And also other other things from the header like for example using why not to or three or whatever search boxes or whatever. So main idea here was try to make this to happen and identify things to that can be improved on that plugins or also on the Jenkins core. So for that purpose I realized that finally simple send plugin was not enough. I can do it, but has to that requires me to do a lot of hacky things, which are not. I don't like it to be honest the solution. I will prefer to have something on Jenkins core that as for other components, provide me the extensibilities and the capabilities to perform this in a cleaner manner. Mostly using extension points. So that's the idea that I have in mind. I also tried with the deep patch made on plugin and I was not able to do it because as I told you before it's only helps for static content. Also has other additional drawbacks. So I tried to move forward this approach based on extension points. So what I did is to set up. Well, let me show you what what is exactly what I wanted to have. This was this example, which is something like this. Okay, I was trying to do something quite simple, like having a question is, you know it's so simple but it's trying to illustrate what I was looking for. Okay, is trying to include a new search box here. Also including here a new label, which could be customizable. Okay, it's not a static content. It has to be retreated from logic from the Java code of the Jenkins code or whatever place. Okay, maybe for example for a field in the global configuration of Jenkins or things like that. Okay, so what I wanted to do then is to try to use extension points or try to set up the header as an extension point. I was at all trying to set up expectations here if you in case you didn't read the jet jet. I was trying, I was not trying to, I think it's a good idea but I was not trying to perform extension points for each section of the header. I mean, I am going to do an extension point for the total replacement of the header by itself. So if you're proposing, I think it's a good idea and can be a follow up of the jet to have an extension point for modifying or doing an incremental change for the logo for the message about Jenkins branding for the search boxes for the administrative monitors, etc, etc. Okay, but this is not the scope of this jet. This is this jet can be a first initial step for reaching that. At this moment is only a replacement of the entire header. Okay. So based on that, I introduced this new extension point, which is called header, which only one method which is mostly to check if the header is going to be enabled or not. Okay, and you can create plugins that extends this extension point for provide your own headers. Okay. And also this extension point here provides a method that I'm going to come back later to this. But it's called get it and it's mostly doing a search for all the extensions loaded all the extension points from headers that are enabled. Okay, trying to get all the headers that you can provide the plugins and providing you the first one. The first one is because we are introducing, I'm going to show you later, but I can show you in advance, we are using the ordinal from the extension to try to set up a prioritization. I mean, I can prioritize what header wants to be rendered based on this on this value. Okay. If there is no header enabled, we will provide the Jenkins header as the default here. Okay, and Jenkins header. Now it's being refactor. It's a new extension point. It's not in the Jenkins code yet, but based on this approach is a new header. And it's always been enabled by default. Okay. Given say that if I have a Jenkins code with these capabilities, I am able to create a custom plugin for setting up any header. Okay, and I can provide a header like I was looking for in the example that I showed you before. So I set up this one, which implements the is enable method using checking of system properties, environmental variables, whatever. Okay. And also I'm providing new additional business logic inside this header, like for example, this one, which is the one that is going to provide me the value of the label that I want to put that I want to put in the in the header that can be obtained automatically. Okay, I didn't code that part that is just for illustrating purposes. Okay. Given say that how I need to modify the page header jelly, because the page header jelly is the one that is rendering the jelly the header bike in the core. Okay. So this approach is reducing to the minimum that file that resource from the core, mostly invoking the method get of the extension point here, and try to inject the content of the header provided by each plugin. So we move the entire page header jelly from the Jenkins core to a new file called header content. And this header content is provided by this Jenkins here. Okay. If you create a new one, you should provide a new header content. And that header content can be called as you prefer. In my case, I reuse the most of the previous one. I include this new method to get the label that I want to put. Okay, and also to duplicate the code for having two different search boxes. Okay. One important topic here is about the backward compatibility. I'm going to try to guarantee but what compatibility here in this approach by means of introducing two intermediate extension points, which are the full here and the partial here. It's going to represent any header that doesn't require any resource from Jenkins core in terms of CSS JavaScript icons, images, etc. Okay, it's about, okay, something changed on Jenkins core. My header is not going to break because I'm not referencing any style, any images, any icon, etc. Partial header is the opposite. If my header is partial here, I can be affected by changes on the Jenkins core because I'm using in my header content.jl file references to CSS icons, whatever. So we provide for partial here and a specific field called compatibility here version, which needs to be updated every time the Jenkins core modifies any of these resources that can be can make me to be incompatible. Okay. This also is for us to perform testing based on this, for example, PCT or things like that to evaluate that my header is going to be compatible or not with the latest changes of the Jenkins here. So, as I told you, there is a reference implementation here, which is mostly the plugin that I told you before. And there is an open PR on Jenkins core getting a lot of traction. This one, which is mostly providing the implementation of this approach that I showed you. I will show you in a few minutes how it looks, but as I told you before, this is the implementation of the full header is a header, and it's always going to be compatible, because it's totally unrelated, separated from the changes that can happen on the Jenkins core. So you can always extend for this if you are going to provide your own resources, your own images, your own style, etc. for setting up a replacement of the Jenkins core header. Okay. Partial header, no sorry, header is the one, the most important one, which is the extension point that I propose in this PR, which is mostly checking if the header is going to be available, based on is going to be compatible and is enabled. Okay, so my get method is mostly evaluating that if the header is compatible and is available. Let's see the his priority number, based on the ordinal of the extension, and let's use this in cases the maximum one. Okay, if there is not, let's use the default one, which is the Jenkins one. Jenkins header is always enabled by the phone. And partial header, as I told you before, is the one that is going to deal with the compatibility, based on the compatibility header version. So, as I told you before, every, let's say, the agreement is that if you are going to modify things related to the header, you should update this number to make the other possible extension points provided by plugins to take care about it, because you can break the things that are in that plugins. Yeah, and it provides also a method called incompatible headers to create a admin starting monitor in case your instance detects that there is a header that is not compatible. In that case, your header is not going to be rendered. The default one is going to be rendered and there is going to happen. There is going to show you an admin starting monitor telling you, hey, your header is not compatible. Please update or whatever. Okay, this is a header content of the, which is the same of the page header jelly that we have these days on the Jenkins core. And this is the page header jelly modification that I proposed, which is mostly removing everything because it's going to be in the header content and just injecting the content from the extension point that is going to provide you this. Okay, so I think that it's all that I have to share. I would love to have feedback from you in this PR also in the context of the meeting about what do you think about this approach, do you think it's useful, do you see any any concern, any drawback about this, I will appreciate a lot. So, that's all. So now one of the, I think one of the open questions was, are we ready to merge that pull request into into Jenkins core, the one that we see here. Were there any concerns from others in the call. Oh, we should talk about this before we before we decide to merge. And from my side, the only point in this PR that requires maybe some attention is because at the very beginning, there was some confusion about let me try to identify where it is. Okay, here there is a comment from Oleg also he is reviewing again. I guess he started to review again the PR because there are some mixed expectations about what this is doing. Okay, as I told you at the very beginning, this is about a total replacement of the header. This is not about making an incremental changes. And this can be used as a first step for getting incremental changes, but at this moment is not. So, this is the only thing that cause confusions at the very beginning of the of this, when I created this PR, mostly two weeks ago. After that, I was working with the feedback that some of the folks of the community provided me, mostly trying to get a good approach about how to deal with the background compatibility because was one of the things more important here because if not, your headers can be break any case for each change that you can perform on the Jenkins code without noticing anything. So we work on that direction and finally we get an approach here. And that's all from my side. I don't know if you as a group want to review this in deep. Do you see any problem in the approach. This is the reason why I'm here to be honest I wanted to share this with you and also I want to have to listen what do you think about this and if it makes sense or not, or do you see any problem. And so, Tim, any comments that you wanted to offer there is this My only comment really is same as before is it's a bit of a hammer, but it works and I really want to spend too much on it's a very cloud B specific feature I think that's not really going to impact many people. And this works. I don't usually like it, but it works. And as long as and cloud B's will support LTS versions and they'll test it before the update so it's not realistic and we can affect cloud B's be a little bit riskier for people with a weekly release. If someone was to add this feature with a weekly then we do something to the header and then things break but I don't really see many people kind of going to do it. And then Ian I see you've got your hand raised. Thanks, Mark. I may have just glanced over this in the description but is there any integration that should be content on core change that there would be a warning to the user and in the warnings at the top. It's possible but the second there was a concept of a partial replacement where they don't inline CSS or copy CSS to their own application or a full replacement. The partial one will log the full one want but the responsibility of integrators to review any changes to the header in between if they need it or they just assume they'll never need it and they'll save the search API changes then they have to deal with it. So I said to you before in case that something it's incompatible this monitor is going to be rendered and also your header is going to be replaced by the default one, trying to not crash in your UI, you know. Yeah, sorry I must have missed that but that's that was the answer I was looking forward to see that there was a warning or an alert that popped up. And obviously the back down behavior sounds great. We're missing a space there, by the way, between the sentences can be removed and see the log for more details. Good, good presentation check yeah. Okay. So thank you so much. This is all that I have I don't know if you have any other question and you want to move to next topic of the agenda. So it sounds like my interpretation of Tim's comments was, he's okay with it going forward it in as he phrased it it's a, it's a big on off switch, not an incremental small thing, but, and it's probably only useful to, to large scale vendors like cloudbies and that's, but I think that's that was meeting your need of the font so so I think we're ready to go to the next unless somebody has other comments. Okay, then let's take I'm going to steal back screen share. Okay, I'm going to stop sharing here. All right. And here are the. So the next topic. I had an item on to 2.319.1 that were released. Next week, it includes a number of UI improvements during interactive tests we found a missing icon and there was a deadlock report. I just for your info intend to propose back ports of those two into the 2.319.1 LTS. Are there others who've had any results that they've seen or issues they've seen with 2.319.1 that we need to be concerned about as we prepare for this new LTS. Great. Okay, then that's all I needed to talk to that one next topic then upcoming UI improvements, Jan. I'll turn my screen if that's all right. Yes please. Awesome. So can you guys see my screen. Yes. Sweet. So just thought I'd give a quick demo of kind of merged in UI changes and also some upcoming ones slash kind of experimental ones. So I just minimized that. So recently we've just got the table redesigned merged in. And I've also had a PR since then to update. We've also had the new view and new node page update merged in. And since then, and that seems to be going okay. So they're both done at this point. So following that I've kind of worked on the rest of the forms. And so again I've got a branch. Open now called update forms. Which goes through a lot of the components and updates them so they're all consistent. So this is the configure screen. So unlike the current release, everything is now styled correctly. With the exception of some plugins. So say text areas have the correct styling. Select now properly styled in and only use the kind of browser theme. Checkboxes have styling now as well as well as the little kind of conditional dropdowns. So that's all styled. I've got a branch to address the kind of. Validation. Because right now it looks a little bit dodgy kind of sitting so close to the text boxes. That's just not in this in this kind of branch or. Slice yet shall we say. As I said this. Yes. So some plugins, a lot of plugins kind of work. Find something to use the built in Jenkins components. And so if we just scroll to the bottom of the page, we'll see kind of this plugins using the built in input so it gets styled. Correctly. It's using the correct checkboxes so it gets styled. Kind of out of the box for free. But sadly here that this little select isn't being styled so. It'll be a fairly small PR just to just to clean that up. But it wouldn't be anything major. And so that's that for the kind of form stuff. Kind of since last time I've kind of given the tool tips and the kind of dropdowns with a cleanup again. And so as I said last time. I'm on the wrong thing. And I've kind of tried to approach the kind of you who you why dropdowns and tool tips and tried to kind of replace that. So that you why it's just been given a clean up since last time. And it looks like so. What else is that again the buttons are all here still they've been kind of redesigned. And they're consistent with say the new inputs and controls. And the other thing is the new plug-in screen as well. Which again I've got a branch open for now. And that's available for review if anyone has the time to leave any more comments. And so it's kind of new. There's a sidebar a bit wide on the screen. Looks like there's a lot of space there. I might have broken. I'm not sure. I'll take a look after this. Kind of one idea I had at the same time that was just to move this tab bar to the side because there's a lot of, as you said, dead space. So we could save some vertical space for just shifting that to the left. But it's shifted to the left and then move the filter down to where they are because the filter looks a bit strange up so far away from the table. So far away from the table. Yeah. See the new plug-in manager, it's got the new table design. It's got the new tab bar, new input. It's missing the checkboxes right now. So I just need to update that. So it's using the new checkboxes. So it does feature the install page some toggle switches and some new buttons using the new icons. The reason I went for kind of toggle switches over the checkboxes is because they kind of serve different purposes for these screens. So for this screen, the total switch represents whether the plug-in is enabled or not. Whether the updates are available. They're used for selection purposes. Hence that I've changed it to be different. So they're kind of no longer the same there. And that's kind of all for the plug-in manager stuff. Have you had a chance to go through much of early feedback on plug-in manager? I've had a chance to do a lot yet. One of the things I wanted to look at was, you see the buttons down here. I wanted to change one of them to a checkbox, as one of the comments said. So it can be a little confusing having two buttons to install. Yeah, it's sort of weird having three buttons and a sticky thing. Yeah. So I wanted to kind of take a look at that. And then there's some other stuff as well that was really good. So just finding the time really between this and the form stuff right now. So that's that's that for the stuff that I kind of got branches for right now. One thing I noticed on this one is the text looks a bit bold on the description. Oh, yeah. Yeah, I'm not too sure where that came from. I think I noticed it but I maybe didn't end up commenting on the PR but looking at it again. Yeah, it's definitely a touch too bold isn't it? So that's that for the stuff that I've got branches for. Kind of got two things left to show. One is updating the design for the themes plugin. She free things. Sorry. First is a dating and Felix have got their hands up at the moment. Not sure if you guys want to know if you want to. Yeah, I just had a question. I was, I thought that you were sort of finish it was mostly a comment with the feedback regarding the boldness of the copy on the tables. It just, if everything is well, it defeats a bit of the purpose of it being well I didn't know if that was by design or it was that was intentional because but you just said it. It wasn't so. The other thing is that can you can you go back to a table please. And so I did see a comment on a ticket regarding the accessibility of the tables because there were, there was a feedback on I don't know in which issue regarding the table headers that first they the text space in the letter spacing. It was very difficult to read for some people and the capitalization. And it would be great to have fully here here, because full on capitalization we have, we have discussed this year on us and something ago about having staff full uppercase. The reason we decided to go without it was because in some languages like German capitalization does have meaning for example, whether a word is a noun or not or stuff like that. And I think there was the feedback on the ticket was in that sense, regarding the capitalization and I wanted to ask you that's something you you're taking into account or you're planning on revisiting. Again, it would be helpful to have fully here because he well he's actually German. So Daniel. Yeah, definitely something I want to revisit. And I saw the comment that was about a team using kind of capitalization for ordering purposes or something like that. There's a bug, I think, with the views and that I think it. I think somehow the if you if you create Apple with capital a banana with capital B, and then Apple lowercase a banana lowercase B or not quite that like Apple one banana one. Then it goes like Apple banana Apple banana rather than Apple, Apple Apple, because the sorting is broken in the in the back end code. So I think that's really just a separate bug that should be fixed. I thought it was an accessibility comment. Well, I think that's from the sensitivity, I think it's an issue just wanted to raise it and to go over that. I didn't know it was a functional thing. Behavior buggy instead of some accessibility comment, I just wanted to comment on that. And yeah, that's it for me. Thank you. Yeah. Definitely something I'll revisit. If it's causing issues and but see why why we can't just go back to the kind of previous casing and. Yeah, I would, I would just think in Daniel back or only have no, because well, they actually do speak German. So maybe. Yeah. Was there any more hands up. Yeah, so this is actually why I showed up today. And I'm all for the, the making life simpler and a cleaner UI, I just have some concerns about this particular implementation couple things have been mentioned. The first one I'd say is in in reading the PR. I actually saw that there were really three different changes. One was to the table presentation itself. The second one was to the, or the table construction, let's say the second one was the change to the capitalization. As someone just pointed out, it seems like the letter spacing seems to be very wide on this. And the third one that hasn't been mentioned is this integration of the ion icon set. I'm not sure what rules there are around or guidance around pull requests but you know in my three decades of configuration management experience I would have recommended that those be three separate pull requests because if you want to take one or not the other then you can manage that far easier. So those three specific things. You know in terms of the icon change. The Jenkins 65124 which is the, nobody likes the same weather icons. I checked the numbers and it's in the reported issues it was the number one issue reported in the BLTS releases so far. It's more than the utf 8 change not working and the tables to divs breaking things so it seemed to have drawn a lot of attention. And that hasn't been addressed and hasn't been linked to this change at all. So I know there were a lot of people who are kind of surprised by those icons. We're going to go change them again, although they're a lot more similar to what's there right now. But it would be nice to have a resolution on 65124 before making another change to that. Personally I find it strange that we have faster and faster video cards and GPUs and yet we're presenting more monochromic monochromic simple UIs but you know that that's a personal taste thing. I just think another change before you resolve the first one would probably throw a lot of people off. The other one in terms of the spacing. I'm not sure if I can share my screen. Because what I did is I actually pulled up the, the oldest instance that we have running is actually 121 one and created a little example to compare what you see today to to what it used to be. I don't know if I can share. I guess. So you want to change your mind if I stop your sharing. Yeah, okay for. Okay, so let's see how there we go. Okay, go ahead. Let's see here. You should be seeing my Chrome session. Yes. Okay, so this is the main landing page right now. Just kind of hack together a little something. So one of the things is, we barely have any room for this and of course I didn't run any jobs so I don't even have the space for the time date field. But that's going back. So we had a far more dense UI presentation, smaller font gave a little more room. You know it's quite a bit different, especially for people who work on laptops with less vertical space we seem to be about 50% more spaced out vertically. The other one is on the headers here. You can see this is the new presentation and we actually have, you know, we use folders for product categories. We use for product, and we actually have a split naming convention where the, the application names are part of the job in uppercase or the, the first part is the application name is a corresponding folder and uppercase and the type of job that we're using. For deploy we use it has deploy in the title, for example, and it would be a lower case. You know it would be one of these bananas or lemons for deploy or security analysis so we group those together we took advantage of the bizarre little naming. You know just looking at this field of words it's really hard to visualize where the buttons are in comparison to where the tabs were. So I don't know if anything can be cleaned up for that. So I'm looking at our one we've got four rows and it kind of just looks like a big text blob at the moment. Yeah, so I think it wants to get above two or three and the new one looks a bit weird with the tabs. Yeah. And the other thing of course is, is you'll notice cherries is at the beginning. I just hack that one to test something, but bananas and lemons. If you take a look. The bananas and lemons are in lower case cherries actually has a leading space, and that's why it's appearing first. I don't think you can rely on that forever only my fix. No, that was that was just, I wonder what would happen. Experiment yesterday that, but we do. We did kind of accept the upper case is first lower case a second. And, you know, there's that numeric sequence counting thing that's come up as well that, you know, is it, you know, 1711 or 117. There's a number of issues about how you sort. And there was a request on this PR to create a a new issue to track this sorting issue. I'm not sure if it was covered, or sorry to cover the the tab sorting issue because I'm not sure if it was covered but I think I did find the existing ticket. Yeah, existing ticket. I don't like to take a look if I get a chance but so I don't know if there's a way to just tag all the sorting presentation issues together as an epic and and have a, a global approach, possibly even with a user preference as to whether you care about case sensitivity or and I know that too may present an issue in windows that doesn't seem to care whether it's case sensitive or not, but this is running on windows so we are seeing it. Felix you've got your hand up. I wanted to comment about the typography. I don't think I want to comment about is that we changed the typography either on the LTS of March or of June 2020. No, yeah 2020. The reason was that one of the things we changed it first. It was because it was really really really inconsistent. It had really it went as low as nine pixels in some cases, it had mixed mixture of 1112 so what we did was basically, we looked at basically all tools that we have that get have get lab, other shape, basically everything that this with systems management, everything almost all software in the industry goes with a 14 pixel font base font size, which is what we are using here. And we sort of standardized fonts in sizes of 1214 and 16 actually actually the CSS variables are for 1214 and 16 and I wouldn't recommend going any lower than 12. And I think it would be maybe for the top city could be a good to go as low as 12. I don't know, but definitely not lower than that which is what you may be showing, because it the typography should really have lots of issues with consistency because at least now it's consistent. And I want the whites and the vertical spacing. And that's also something that came up with the form changes when they will see this be this happened. I don't know maybe I think it's also matter of personally, I think it's a matter of being used to more compact stuff. I do see where you're coming from. But I think the point that there's taste. And I think it's a bit more generally accessible to have vertical spacing and with more white space in between the elements, but I don't want to make general statements and I do recognize it is a sort of trend in the sense that it seems that, you know, land might be the most expensive thing in the world but apparently screen real estate is free so people just use as much as they want. But, you know, on a smaller screen. You do end up doing a lot of scrolling you know we have some, I don't know about you guys but we have some things that have 200 jobs on a particular page and you got to scroll up and down and see what's going on. So if you take a look at the options if you take a look at, I think I have it here. So the proxy configuration screen. You know, it has expanded quite a bit. So you don't even get to see the content. And these are all at the exact same 80% soon. So that also has to do with layout. You see in like it has form layout with levels to the side. And one of the reasons what for that was changing is because Jenkins has lots of repeatable elements, which would form element with would be nested. And because of the form labels were put to the side the forms were will have lots of scrolling and would get really, really wide. So, in this case in the case for the forms. It was because most well mostly because it's a bit more accessible and second because of the nested repeatable within a heterolist or within all that stuff. And having labels next on this having horizontal form groups, just didn't really scale and there were a lot of issues with that, namely the famous git configuration, a git pipeline configuration. And then if you'll remember that it just went overflowing the container in the screen. So that's why what the downside vertical spacing, the forms are taller. I just want to provide a bit of context there. Yeah, I mean I certainly recall the git issue. Don't need to revisit that. And the vertical spaces is not really the biggest beef it's kind of the, the stretched out looking fonts it's almost like a mono space font on everything and it just seems, you know, the one thing that remains kind of in the old style font seems to be the content of the table, but that's the most important, but the least visually striking part of this page, you know, like Tim said, I'm just drawn to that banner of random words, right. So, I agree on what you're saying and that the many of the plugins especially that I've looked at or like wow, you know people have kind of done their free form interpretation of how best to do a form layout. I do think this kind of size font. You know, would still be acceptable. Maybe it's just the choice of font that's been used here. And maybe it would make sense once everything is the same font. I think it's the same font on the same size. So if it is that presents differently. Right. Yeah. No, I agree with you by the way I think it should be lower case and we felt Lee I 400. And in my opinion if 400 a font size or at most 500 and sentence case. Okay. So, yeah, I mean that's, that was the, the concerns I had, you know, the first is the three issues because if you decide not to go with one of them right now, you've got them all lumped. So I don't know. And unfortunately it's already in 322. So I don't know what can be done about that. If, you know, you kind of now have to take them all or not into the LTS, right. Next else yes as to as three to one, three 19. Well, so when it goes into the table tables on to us for three months. Yeah we've got we've got three months for evaluation. At least two months before LTS selection so this is exactly the right time for this to arrive so that we can discuss it. Honet refine it in future weeklies. So yeah this is this is a perfect place to give feedback and to work on it. Yeah. Okay. The other piece that kind of comes out of this. Possibly make a separate item. If, if you want to discuss it or now now we're not as a user. You know, I caught this one just randomly because I happen to be checking the weekly release but as a user I always use the LTS we support a large enterprise environment with many Jenkins instances and all that. I'm not off guard by the other UI change. And I know there is a UX SIG, but there didn't seem to be a lot of discussion on there or guidance as to what goes to the SIG as a governance group say this is the changes we are proposing I'm just not sure how glad the JEP 234 was presented. But in terms of the other one, you know there's, I didn't see a JEP on it on the table layout changes I didn't see the GRI issue on it it just sort of appeared. Same thing with the style icon so I don't know what guidance there is for users to go through the make it visible to the, the, the SIG or put in a JEP or follow the old design guidelines that are out there. It definitely was presented one or two UX SIGs ago. Jan did a great demonstration of it we used it quite a bit. It's noted in the change logs I'm a little, I don't think we want to put the overhead for UI changes to go through the JEP process in general. I think the enhancement proposals are larger kinds of things and the UI UX SIG has focused itself on keeping things moving forward so I'm definitely not ready to say we must have a Jenkins enhancement proposal for these kinds of changes I don't think, I think that's too heavyweight. You're part of the, the, the governance group and and I'm happy to defer to your opinion I'll just say that you know my, my experiences with you know large enterprises who have always had a very robust style guide that's been in this you know and it covers things like font and logo presentation and alignment between things and you know stuff like white space and where you put the color banners and all that. And that's part of the identity of the company. The question would be is you know how much of the identity of Jenkins is reflected through the UI I know people have said oh the UI looks stale. So that makes Jenkins look like an old product. You know where, where is the direction that you know the community can follow along to see what is in the pipeline or what the vision is for these kinds of changes. And maybe I missed the, the, the last presentation or didn't clue in to, to, yeah, I think it's the UX really is the place where these sort of things get presented. I think it's a good feedback but I think we've only got five minutes left it'll be really good to see Jan's last thing I was going to present the at least the manager and maybe one more. Can I share my screen. Awesome. Oh, I can't share it whilst you're sharing Ian sorry. And if you have any more comments say and feel free to just to either send them to me personally or chuck them on the get Fred. Definitely all is. Yeah, create some issues for any of those things like the casing. And just tag, you can tag Jan and me and Mark and them sort of thing. I'll probably, I'll probably say them but no guarantees if I'm not tagged. And so I'll just kind of quickly go through the last three things I was free. The first is a new kind of UI for the theme plugin. So previously the theme plugin presented you a list of radio buttons and each listing what the theme was. The downside is this doesn't give you a proof of what the theme actually is. So you might come across the solarized theme and have no idea say what solarized looks like. So the advantage of this is you'd have a small preview of the little theme. And now the theme colors are actually loading so they all look the same. But ideally the little tile for the dark theme would be dark. Solarized would be kind of blue or yellow for example. So just to give the user a more kind of idea of what they're going to be selecting for the hit apply or save. Are there any comments on that. Could those just be screenshots that looks like a brilliant idea to me just pick pick the one based on how it looks. So what you did now is you actually rendered those using using real components real HTML components. Yeah, the little previous just SVG. And it'll pick up the theme colors. Just right now. I don't really know the best approach to load the theme. So I've been discussing that of Tim on the branch for that. And see it just to give a bit more kind of information to the user really. Yeah, I think that looks brilliant. That's that's a lot more palatable to me. I don't know what solarized means I'm embarrassed to admit that I don't know you why that well so Solarized we would have no meaning you you describe my exact case. I don't know what solarized means. My terminal background color. Yeah. No, I really like it. I wanted to do this from the beginning. I just didn't really have time to try and figure out how to make it work with Jenkins. The radio buttons. Looks like you had some fun getting it to work. It took a long time. Yeah, those radio buttons are horrible. Yeah, and that's the first of three things for any more comments on that. I think that it would be a good integration to get the live preview working at the same time. It changes the theme. I think you'll probably likely need to do that sort of thing to make the thing colors get loaded anyway. I don't think it would be too hard, but a few changes. Awesome. And the next kind of experimental changes update in the configure screen. For kind of jobs, let's say. So one thing I'm going to just move the tabs from the top to the left. And the next thing I'm going to do is kind of fort being that users have more horizontal space and vertical. And also kind of some of the kind of feedback about the new form stuff is that it doesn't really take advantage of screen space. So people have kind of really crazy wide monitors, but the form itself is quite small. So I've tried to address that a little bit of this by having the sidebar. I think it's a little bit of a little bit of a small input to resize depending on your screen size. I can't even use those tabs, but I also don't have a huge, I don't have freestyle build, so maybe that's why. So yeah, the inputs will now kind of go up to about 1000 pixels in width, so hopefully address any kind of comments around kind of using space properly. So it kind of works. I don't think how it did for this just moves to the left. So you scroll down the kind of sidebar changes and just looks quite weird. I'm assuming it's not intended to be there. I mean, I said a while trying to fix these cards and then scrapped all of it. So it's just there with a pain right now, but something I definitely want to address. I tried to fix was moving that help icon back to the same line, but still being able to drag them was the issue I was having. As soon as I moved to help icon back to the line, I couldn't drag them. I think I think this is lovely. I would only have a few stylistic changes. Like, but I think those can be, I can give the feedback in the PR. I just think, for example, the configuration title, maybe a bit superfluous, I don't know. But definitely, I would only try to make sure that the most important thing in my opinion is that it has the same width as the sidebar. So as not to be changing layer to it and stuff like that. Well, I think this is this, this looks really good. I've always been bothered by the tabs, to be honest. But you change the new item screen, because I think the new I didn't use the sort of some sort of similar code. Just this yet now. Well, the nice thing is that there's lots of legacy code in there. I can hold you clean it up. If you want. I think the most legacy JavaScript on CSS that was a very difficult to theme as well with hardcoded via colors. So it's great that please. Yeah. Yeah, that page is very nice. Get to it at some point I guess, and you've got your hand up. But just two really quick thoughts I think one was mentioned already which is set a real realistic expectation of how wide the screen should be at a maximum because I think there was a ticket raised the other day about somebody complaining that we didn't take advantage of all the width. And he had a 27 inch wide bonder but that would completely destroy most normal people who are working on a smaller screen. And one thing for consideration is the build history job configuration history plugin recently added a box to the very right hand side to enter the reason I'm not sure if you guys are using it at all. We have it on ci dot Jenkins.ar. Okay, so the question would be where does that box end up in the new layout. It's a weird place that it's always been and so it's loaded onto the, yeah, it might be a bit weird. Is there any opportunity that it would end up as a in the tab on the left with a somebody add to that configuration. They can't right now but it's definitely open to looking at I'm not seeing the plug in myself so I can't really comment too much. It's a thing for people who are managing their jobs manually you can comment on what changes you're doing it records whenever anyone saves things and just create the box on the pages please comment your changes and it has a little text area where you can write a description of what you changed. Yeah, in a perfect world, it would float beside the save and apply buttons but Yeah, I just, it looks really weird already. Oh, it's terrible, but I wouldn't want you to break that without giving prayer notice to that if there is a solution. Yeah, I could probably just take a quick look and just make sure to see what it looks like. Weird. Yeah, this kind of view isn't isn't kind of open for a branch it just because it's reliant on the new form stuff. So probably have a branch for this kind of December time probably putting on how the forms goes really. And the last thing. Sorry, I was just just something for the end so if you just want to show your last thing. And the last thing is kind of really experimental it's kind of a new search of you for Jenkins. So one of the kind of issues I've had personally Jenkins is kind of finding builds or all kind of jobs and stuff. I found the search not terribly helpful before Jenkins and was never particularly clear what you were clicking on and so I wanted to kind of explore ways to address that. So if you search you want reminiscent of like spotlight or visual studio codes kind of little command bar like so. And so you can just kind of start typing and you'll get suggestions kind of dropping down like so. And the advantage of this is you have more space for your results results are categorized. And they can also have icons and descriptions like so. It gives a bit more information as to what he searched for a job. And should be able to write. Now I've not really tweaked any of the kind of stuff that it returns apart from adding the setting stuff with something I'd definitely like to kind of add to to make it a bit more kind of comprehensive. It looks beautiful. So that's that's that's the kind of search idea really it's got a search kind of come on show as well which is nice because developers love that sort of stuff. I'd guess main thing to check is to check the accessibility of the results and voiceover sort of stuff. I will. I think this is good approach. I would just try to make sure that I don't think we are using modality like this anywhere in Jenkins. So I think it's a bit of a new pattern to introduce just for search. I do think like better results could be an idea. Maybe there are many. I think this looks really good. But if you what you want to see inspiration there are lots of stuff but I think this is this would make a great PR, especially this more categorization. Definitely. This is new search from scratch right now know who you are know nothing. Yeah, no completely from scratch. I think you might as well just create a new screen, to be honest, or a something that same model that just a. I'm sure you've seen this sort of thing that some model that takes a full page with an X on the on the top of just a full way, but it's not that obvious. So there's sort of two spotlight II for my days but I think the the constant has potential and interaction pattern which is the most important thing really does have potential. I think it's great. By the way I will prefix everything with in my opinion okay. I like it. So, so for me this looks marvelous and I think even even if that modality is not caught has not been used in Jenkins before I think this is a great approach because for me when I'm searching. I'm truly no longer thinking about the other things that are on screen I am really focused on. So for me that the modality that you've implemented fits my use model perfectly so I guess I'm inverse of Felix's observations. Yeah, that's kind of the stuff I've got to show really. I'll kind of have branches or Fred's open and kind of coming one for or two or so for this sort of stuff. Yeah, and thanks everyone for your time really. I'll stop showing if that's alright. Yeah. So that's just one question from me is the is the form rework ready for another look I haven't really been following it too much. The comments I've addressed for that part of them so far I think. Let's just get through some reading this part of you. Yeah, I'm not sure how if that one got badly hit by any tests or anything I know the buttons one got stuck behind the ATH tests. I've almost got the form element path PR merged which means we can change it inside of the Jenkins itself without relying on that. Hopefully some of the form stuff by though the buttons one read the buttons PR really broke ATH a lot just selectors and markup changes. I haven't really checked how much the form one is affected or not. Those damn capitalization changes in the tables broke a whole bunch of tests I have to fix. I had to change it to be equals ignore case all over the place. There's still work if you change it back because I didn't change the capital so. But yeah, yeah, mostly focusing on the formal and path side of it sort of affects the buttons. And that should be pretty much ready to get registered. Tim, that's breathtaking you're you're telling me that ATH we may be close to having it pass again I mean we had a sort of a record breaking we actually got a green ATH for the first time, not not very long ago. And you're giving us hope that we may get it again. So it's been reliably green it got broken in a couple of the ones recently I fixed up until maybe the 2.321 I think I think it's fixed I think it's still green like formula path PR ran this morning against. I don't think it's running against 232. I don't think it's running against the last weekly from us. I think it has. So I think up to last weekly everything screen. Great, thank you. State stable was green although stable is kind of broken because I didn't add full compatibility and one of the tests. The stable's got like one or two tests failing but they don't matter really upgraded it because we're plugging made a change. I had to make a change for the plug in but then. It's basically green unstable. It's reliably green. Which I think was one thing we need to make sure really sure all of these web UI tests we run both ATH and bomb against. Otherwise it's just a pain of having to fix them afterwards. I had to fix a few bomb things. Basil got quite mad. I think we've got quite annoyed when I want to bomb test started breaking for some of these things. But I fixed all those and you have ran ATH and bomb against some of the new ones. No, so you recommended that we evaluate the pull requests against ATH and bomb before they're merged. How do we do that? Is there a place where I should have known how to do that already and I haven't looked or. So it's pretty easy either need an incremental build or even just a artifact from CI. That's built it and then bomb and the sample plug in Pondex now you just change the sample. Yeah, you just change it from the latest weekly version to your incremental build. And for ATH there's a script called run.sh and it fetches latest weekly from mirrors to jings.io. And you just change that URL to point to your artifact to just change it. Change it from fetching that to where just some file that can be downloaded and a PR and then it will just run it. Took me a little bit to figure out the best way of doing it or where it was even there. But you can see some of my recent PRs where I've ran some ATH things from PRs. The benefit of running it in the ATH repo is it does the split thing where it splits the test into like 10 different groups of tests and it runs them all in parallel on different machines. If you change core to run all the tests, then it takes like eight hours plus, whereas if you run it in the ATH repo, it takes 40 minutes. Okay, so, so if I look at your PRs, I can see hints of the techniques I noted run.sh. That's great. Thank you. It'll be called something like test something. Okay. Yeah, test. There's one I just closed two days ago. Test Jenkins Jenkins 5778, which is the removal of assets, which is so close, but not my fault. Found a bug in it. I'm not sure if you've seen it, Jen. If you set an agent offline with a reason, the SVG goes like giant for error. He found that I think one of the changes he missed setting a size on it. But all the tests pass now. Excellent. Thank you. We're about 15 minutes over anything else we need to discuss here. Are we at a point where we need to consider switching back to every two weeks for UX, rather than every four weeks, the four weeks was a long gap since our last meeting. I think we should do two weeks, at least this time given it's almost Christmas for the next one. Right. The next one would be probably right in the Christmas holidays. So how about a proposal will meet again in two weeks for UX. And then we will visit then to decide if we meet two weeks later because that during that, that holiday break, I may not be available. I don't know about others. Yeah, depending on COVID, I'm planning to be away, but if COVID happens, if COVID ruins my trip to Germany, then I won't be away. Okay. So the next, next session, next meeting in two weeks. And I'll get the calendar updated to schedule it. Any other topics. All right, Ian, thank you for being here. Jan, thank you for being here. Defonso as well. Thanks very much. Meeting ends recording will be uploaded probably within 24 hours.