 Welcome. This is the Jenkins User Experience Special Interest Group. It's January 19, 2022. Thanks very much for being here. Topics I've got on the agenda, end of support for IE 11. Tim, I think you're probably the topic to be that voice. LTS status briefly for me, weekly status. And then we had a topic for UI plug-in for Prism for source code highlighting if Uli joins us and UI improvements. So Tim and, Tim and Jan, I think there we've got the, this will be the bulk of the meeting. Any other topics you'd like to put on the agenda? Okay, great. Then let's go ahead. So first topic up is Internet Explorer official end of life is June of 2022. And June of 2022 is coming very quickly. June 15. So as a matter of practicality, we can't support something really that the vendor does not support. So I think it makes sense that IE 11 should be dropped from support. I like Tim's proposal, Tim's proposal was, hey, let's do it after the LTS baseline is selected. And that way it will naturally arrive in the June, June LTS release. And we may need to make other changes like make edge tier one, instead of the current. Remember where it is even on the tiering list. I think it's at two at the moment. Ah, okay. So, not that we actually test it. So, right, right. It's, it's finding, finding, we rely on the fact that it's based on the chromium chromium engine. And therefore we expected to behave like Chrome. Well, we only just Firefox and then Chrome is developers. Okay, fair enough. Good. All right. So, my thought on this one is it this one may also justify a jet just for the communication plan, etc. But I want to spend my time on the Java eight jet first before worrying about this one. Tim, do you mind if I do a Jenkins enhancement proposal for this one just to be sure we've got the right plan in place or is it, is that too much for this one. I think it's too much for us. I think it's just a way to do it just do it and admit it's done. Yeah. Okay, good. All right, then I'm not going to do the jet for it. That's perfect. Great. Thank you. Yeah, I mean, no one seems to come out against last time people will listen favor, but it was two years ago. So this came from young comment on a PR asking what the plan was if I live and I say, it's time. And particularly given the end of support announcement June of 2022 is coming very soon. Let's let's get rid of it. That makes sense. Okay, great. Yeah, there's a PR for jings.io lift and draft but probably take it out of draft soon. Excellent. Okay, great. All right, then the next next site and anything else on IE 11. Okay, next topic was very brief. Yeah, two dot three hundred nineteen dot two long term support release has released it was delivered successfully completed. No, no outrage, no irritation that I've seen in large measure so I think it's it's healthy enough, not say not the same story for two dot 331. This was this week's weekly release but it's been blocked due to the JFrog Artifactory bandwidth outage. And so we're going to have to continue our discussions with them get them to help. It's just too slow responding right now for us to successfully complete a build in the hour that we allow ourselves to do it. I mean, the weekly gets as long as it wants. I think it. Oh, you're right. I think it does. And now then but then there is a failure in the tests. Good point, but there's a failure in the test that I can't duplicate locally. My assumption was the reason I can't duplicate it locally may be tied to timing or it could be getting something from there in the test or something. Right. Like, like, perhaps all the PRs are read on Jenkins on the Jenkins core project at the moment, I think. Plus I checked anyway. Yeah, PR builds are are largely stopped due to this or not stop they're continuing but they're not making any progress all failing due to this problem. Yeah, every single one is read like a sea of read on the Corpias. Ouch. Okay. So I'm considering if I need to go talk to Kosuke and see if he can appeal through a side channel into the into the JFrog management where we doesn't feel like we're getting the response that we'd hope for. Nice and just be ignoring us. Right. Okay, so I'll, I'll continue that angle. Okay, so this is on 2.331. This is the one that has Jan's fix for the width of forms right and that was for me therefore it's a most likely LTS baseline candidate, either this one or next week's release. Yeah. And we choose the baseline next week if I remember right Tim. Yeah. Okay. Okay, so this is the LTS baseline. Thanks. All right. And since Uli's not here I propose we drop the UI, the prism thing from the agenda next topic that is UI improvements. Jan, Jan and Tim, any topics you wanted to cover there. On my side I've got a little bit to show off and I bought a plugin manager. Every design as well. So I'm going to stop sharing and let you share if that's if you're willing to do the tour. Thank you. I'll just share my screen. So look at how we're going to land these as well. There's kind of a lot open. Can everyone see my screen. Sure can. Yeah, it looks like downtown New York. And I was going to say my instance being a bit dodgy today so sorry if I cut out at all. Right. So, same as last time I've got a little vertical slice of Jenkins. So this is basically a kind of consolidation of various branches and kind of works in progress. All kind of shoved into one branch without kind of testing or whatever. Just just for purposes. So that this branch includes the new kind of drop down menus. So the breadcrumbs are kind of consolidated now there's any one Chevron versus two. You have tooltips and menus that replace the you buy stuff. Which is still a work in progress. I've not really posted yet, but it kind of looks like so and it works. As you'd expect really it's a fairly simple menu. That works across Jenkins. And we have new tooltips which look pretty identical to the last ones. They just have kind of subtle animations now as part of the JavaScript library. If I just push that down there. If I open up a job and then hit configure. There's an updated kind of configuration screen which follows on from the forms PRs. Also follows on from the work that I showed on the November meeting. So idea being to kind of take better use of screen space, not to just modernize the appearance. It kind of looks like so. And then some of the work done as well is just to update the kind of draggable components forever. Just make them look a little bit more consolidated together. So the cards are now kind of joined by this kind of gray border, kind of making it look similar to how the table looks and so on. So, so young, are you okay if I ask questions while you're presenting or do you want me to ask? Yeah, that's great. Okay, so so when you do the drag in this case, it will actually show that it will still show the drag as the component is being dragged around. So that's kind of the one thing that's broken in this build. So I can't drag. But there was an option I found in the. Oh, sorry. No, we're here. And there was an option that I found that was kind of currently disabled. I'm not really sure why. But basically as you drag the actual card itself moves. So it's just a kind of user experience rather than having a kind of shell of the card, if that makes sense. But again, I'm not sure why I was disabled so I'll have to kind of look that up. It might break up a thing, so I'm not too sure. And now earlier you mentioned that you had done more than just modernize the look. Can you tell me more about the that that upper section is it that now there's more information presented in the same vertical space. I think it just makes better use of kind of the horizontal space really before you'd have a kind of row of tabs. And as you scroll down, they'll kind of flick between each tab, whereas now that's been moved to the side. As previously it was just dead space before. That's that really each section also has an icon now just so things are kind of bit more visually separated. Okay, and so the left hand there that is those are navigation elements if I click on the build it is not a start the build it's it's navigation inside the configuration page thanks. Yeah, it should be renamed there is a bit kind of confusing. But yeah, that's pretty right. It's one of those horrible tabs that break so easily. Yeah, I will and I like this much better than the tabs, as, as, as John said that the tabs were wrestling to try to keep themselves updated as I scrolled around and I was watching them bump and bruise each other. Excellent. So that's the configuration page. And if I go to the new plugins page. One of the changes before I get there is I've updated the icons for the manage Jenkins page as currently a branch that kind of preliminary work for this. So it's just using the new kind of icon icons for the plugins and all the other kind of sections here. So they kind of look like so it's a little bit more modern, and it also adopts kind of the users theme so if I switched to dark theme, the icons are appeared as white icons rather than black as they currently are. So if I hit manage plugins. This was one of the work I did following the first plug in manager kind of change. And this goes a bit quite a bit further really trying to listen to people's feedback on that first PR. What's on the far right for this is a download this one. Yeah. Yeah, that's the download icon. What does download me in that context does it actually download it to the local disk or does it. Yeah, let's throw it into into Jenkins. So previously use me a little. Yeah, there was a big button at the bottom right. Yeah, okay. All right, so what that means is if I want to choose one to download I could click that icon on the right. Yeah, spot on so it's just kind of reducing that's a install this one by doing one click. It's effectively click the checkbox and then scroll all the way to the bottom and click the button I could do that all with a single click. Okay. So if I suppose you can we can also select them and you'll get an install selected button. Okay. But just for demonstration I'll just show the button so and the difference now is everything happens in line. So previously we were switching of a page and you'd see the status whereas now if I install the mail up looking hopefully it'll start installing without losing context of what's happening so it should install and you'll get a green tick when it's done. Was it do it. Yeah, I'll install all the kind of dependencies as well. So that's kind of one thing that's kind of missing from this approach is you don't see what other plugins are installing at the same time. And if I hit the new kind of updates installed plugins page. These are previously two tabs but they've not been consolidated. Looks like so. And you'll see the mailer plugins now being installed right there. So now sometimes I would get a prompt I get a prompt that tells me Jenkins will need to restart before this thing will be active is that somewhere visible here. Essentially it'll appear as an orange box in the last corner. Just, it's just not enabled in this field right now. But yeah it's a little orange pop up it's really really in your face. So it looks like that. It's a little bit simpler. And if we go to advanced settings again. It's how it looks before. I've just added the kind of a quick link to the installations and upgrades page. Just get quick access to this previous page just in case you wanted to see this information. But yeah. But yeah that button looks about weird but I guess it might just be a temporary thing. So just give up here. And yeah it looks like that. I was just trying to find a build so also kind of badges for things have changed so the adopters plugins is cute little pink badge now rather massive kind of banner just a bit. Kind of better use of space really. That's much better. Yes, thank you and I like the heart. Nice choice actually. We want people to show some love. Thank you. The description looks a bit bold for me I think. Yeah, I think I need to kind of go over Jenkins just kind of debold some of the stuff that I've done really. Like the release date may be bold may be probably not though but the description I don't think so. But yeah that's the kind of updated plugin manager. Just trying to make things simpler around installation. And then also kind of consolidating the update and installed page. Definitely definitely going to break ATH. Yeah, so so now and but the actions on this page with updated installed in the same page. I could disable a plugin update one or remove it all from the single page. Yeah. So, so Tim how, how, how heavy weight is the change on this to acceptance test harness I mean major rework. Did the test failing and years of work to to adapt them or? No, I don't think so. I mean plugin manager is quite localized and a lot of it's already done. So this isn't that different from the last three work that you under. Yeah, I think I think I should generally had most my handle most of it, but we'll see. Okay, yeah. That's pretty much all from me really. The plugin manager stuff is still kind of early days. So it's not all working quite yet so would be a while before this is posted. But like the other stuff I thought you could to get a kind of early, early look at it. Yeah, thank you for showing it so so could you go back to the go back to the plugin manager just to let some more questions so. Okay, so in this this view is refined with things now being inside right inside the page no separate. No separate page during the download process and install process it's all done live right inside the page. Yes, that's beautiful. Thank you very much. And Tim, would you expect that to have an issue in the acceptance test harness because it used to do a jump to then it would use it would after the install process ran it. It checks that I doesn't know I think it uses the system log. Oh, okay. All right, so if it's not asserting for it then then it won't detect it we certainly still want human beings to check that this. Well, great. It might, it might break it a bit because it probably might expect to end up there but I'm pretty sure it just uses the system log so it can pass the second look for text rather than SVGs and images and stuff. Excellent. Yeah, and this is this is brilliant work. Thank you so much for what you're doing. Thank you. Thank you. You had a question about in terms of getting it in. Are there any things there that that guidance or things where you're looking for additional help or I should be lobbying for other people to give help to to evaluate things etc. Yeah, I think it's just maybe just go to what pairs you can open at the moment young and then have a look at the status so the modernized form pairs was ready before Christmas basic or around Christmas time. I think Daniels reviewed it. Once, and there was some changes, I think. Daniels feedback was about headings and some buttons working perfectly, I think. Some repeatable delete buttons so yeah that was all fixed. 10 days ago I think. So I mean at this point we're not going to get it's not going to get into the LTS baseline. I don't think there's any reason to throw it in the last release either. Okay, right and I agree with that I think 331 content makes a good choice for LTS baseline. This we I would dream of it being in the next LTS in June. This this looks like a great next round. So in terms of the kinds of things that we should be testing for or checking for our, or maybe young could you open up the list of PRs. One of the. So, from, let's see get hub, get hubs. Yeah. And if you just want to show the ones that you're offering. So, I assume it works like this. Yeah, it does or you could use the dropdown. Yeah. So yeah, got these five and play the moment. Excellent. Okay. And the the link and breadcrumbs from dropdowns. That was, that's the beginning of what you showed us just minutes ago, or is that a different thing. Yeah, that was what I showed at the start. Yeah. Okay. So that one's got quite a lot, a lot of ATH tests failing. Did you plan to take a look at that or do you want me to try. Yeah. I think we check the last builds, but I think it's eight tests failing. This is not too many. And the last build, which was six days ago, I think. Yeah, let me know if you need a hand on them. Don't understand it take a little bit to get used to them, but they're generally just Selenium tests with some, some weird compatibility layers and stuff. But the main thing on them is to try and keep them compatible changes compatible with because people use it for so many needs to be needs to pass on both your PR and against master. And it's like, ideally keeping the tests compatible with LTS as well, but we're kind of not the biggest deal. So on the on the tell, I'm not sure I quite understood that piece of the testing strategies that that sounds sophisticated Tim so it was that the PR needs to run out ATHs but it does run some subset already. But then we also need to check it against master before we merge to tell me more about that. So, in the acceptance test harness repo, it'll default to running against the last weekly, you can change that by editing the file it's going to run against. But you always just make sure the full set of ATH passes on the change that we're making and against master. So, so it is that because in order to make reasonable test times, we run a subset of ATH, ATH on pull requests and a subset on master. And what you're saying is we need to be sure we run the full that I did I understand with no in the acceptance test harness repo or it always runs the full set. Oh, okay. So yeah on core it only runs like two or three tests and it's really quick. But but on the ATH repo it runs all of them, but it also runs them with like 10, 10 sets in parallel so it was not too long. It's quicker than bomb. It's something like 4050 minutes I think to run a full set of them. So it's not too bad. But that's because it's running like 10 VMs with high memory like 16 cores, 632 or 64 gigs of RAM or something. So then the then the technique there is submit a pull request to the acceptance test harness repository that evaluates this incremental build. Yeah, yeah problem is that incremental builds tend to be a bit too slow, because core build times are insane these days especially since windows was re enabled which doubled the core PR time. Generally just do it if you go and go into the ward direct if you've just pushed a change. Well locally you just build it locally and you can just run with the local checkout. But if you want to test more quickly just go to the war directory and run maven deploy and it will deploy a snapshot and then you can use that URL. It's, you can have it available for your. Oh, okay so a minute rather than six hours. Got it. Okay. All right. Thank you. And now, yawn on the ion icons. One of the one of the questions was that was raised elsewhere was about monochrome icons or some such thing with with Daniel, I assume that that's that's more a style or feel thing. Any, any insights on ion icons. How that's how that's evolving. Was this referring to the, I think it's at top when the discussion. Yeah, it's about the weather icons and stuff. Kind of down to the bottom. Yeah. We can also use color for the for the icons early from have a dev standpoint it's really easy to add color to the to the icons. We can also use the color variables from CSS so depending on your phone you can change color, which is nice. But from the kind of designs standpoint I've not really got too much of a view really. The context really. Yeah. I don't think the same concern is valid on this page. The concern was for icons that are used for people to get an understanding of a status. So it's like you've got a success icon, and you remove the color from it. Even a failed or something like a failed with a red means a lot more than a failed that's gray. And so whether was used to have like gray clouds and like snow and or sunny. And when the color went from those people who are using it and that way personally I've never really used the weather at all. I just look at pasta failed. But yeah, people who were using who use that didn't like the color going from them. But your point there Tim is that these are not really weather icons the the coloring is not a key semantic portion it's not a key knowledge sharing portion of this right that's it just it's just color. We find it quicker from a shape and it's not even hugely needed. It's kind of great. Okay, thank you. Thanks, Sean. So I think on that PR the as it's. I'm assuming the tests are passing now but it's just flaky builds at the moment. This one test which I. Is that test is that test actually failing locally or. I'm not too sure to be honest. There was a flight. It passed on Linux. Yeah, test time out that's a that's a clear indicator of of okay probably not not a real failure. Yeah, you're not getting any green builds but that's probably to do with Artifactory falling over but. No is every all yes. So is there anything left to do in that PR I think I'm just going to. I've addressed all the comments as far as I know. I think the icon to now showing. As well. Yeah, I meant to check it. Yeah, I don't imagine any plugins using my own icon. It's not, but it can't really because you because I never created an API which is usable from plugins. The class the class loading base only works in core without setup at the moment. So you couldn't. Other than that, yeah, I mean, I think from a Dev standpoint it looks looks all right. Yeah, I think I think it's all right. There's definitely a description that can be had on the color of of say icons but I kind of agree with him I don't think there's much kind of need. At least unless kind of users complain. What's going on with some of the async people file you've got added a display none for the time. There was a test that was failing due to a missing. I'm not sure why the unit test started failing but yeah, it was missing the display none for some reason. They might have just popped up from the table redesign but no idea why it's not failing now. And so that the page still works after. Yeah, yeah, I can't go on it now but yeah it works fine. Essentially what it is, is with the kind of progressive rendering that elements should be hidden, and then they should show, whereas on people, they always show before they're even loaded so I'm not sure why it started failing. Yeah, it's weird there's the whole table. I would have thought it would have been. I have a quick look at how to make sure it will work to be apart from that. Everything looks fine. Maybe just remove the discussion from the title. And we need to check that it passes and quite like and bomb quite likely won't. I would say there'll be places that are clicking as we click images or something. And Selenium isn't a high level enough that you can just say click and it will work. You need to handle buttons and inputs and all these things slightly differently. Yeah, I think. Yeah, so if you just maybe maybe update the PR description a bit saying it's more of a discussion. It kind of seems like it's a solution. Yeah. Yeah, there was some comments last time the PR was done about not wanting to make the UI inconsistent but I guess you said that you'll do a PR afterwards which updates all of them and you added the screenshot. Yeah, those two branches are done now just want to get this in and then I can just throw them straight up. It's just kind of string changes really. And adding icons. Okay. So I guess for those two PRs look really easy to modernize form just really need Daniel to finish his review that he is said he'll do. But it'll likely be not. So we probably won't merge. Even if we did get that we wouldn't merge it this week. Just your last build for LTS. And then yeah that Iona cons one looks quite straightforward. We do need to look at adding support for plugins to add them as well. But I don't think we need it in this PR or the next one, but we'll probably need it after that because I always I don't think plugins are going to be able to add their own ones with the same support at the moment. Help me understand that when you say plugins add meaning using ion icons or something different. So the icon icons thing is kind of renamed to be symbol so it's not using the implementation detail in that PR. But but yeah currently plugins couldn't use that functionality I don't think because of class loading and the resource class loader. So basically so these PRs they load the they load the strings that you can have an inline SVG previous and so they load them using the Java resource class resource loading using the class loader obviously an SVG icon that Felix did. He was using like sprite sheets and he was getting the browser to load them to load the resources with a URL. And so then to that works because of the stapler was loading at the resource that way just like how load any other resource. But yeah that's not it's not the most recommended way of working with SVG is normally you have them in line. As far as I know. But yeah so you can kind of on the recommended way but then because we're loading it through Java resource loading. There's a class loader involved now. So we either need to get plugins to pass a class loader or use some sort of uber class loader or something. I think but you know I need to need to basically try and do it in a plugin and then just make some see if we can do it with the same API of just changing the class loading maybe or get plugins to pass in their class loader in some way. So and there there is that UI samples plugin is that a candidate place to do this or is it better to do that prototype in a real production plugin do it in the get plugin or something like that. I mean it's fine to do it there I've probably done something like the credentials plugin because it's on the managed wall or configurations code plugin because they are on the manage page and they'll be quite obvious if they don't fit in. Make sense credentials is probably a pretty obvious one to do it in. Because it'll be installed everywhere and it'll look slightly out of place probably. Good. Or local resources which has the most horrible icon ever. Sorry which one lockable resources. Yeah, it's got a flash drive. So, so yeah I dream of lockable resources disappearing from my left hand bar. I don't use it. Yeah, I like we heavily rely on the plugin but I never use that page. Right right the sidebar the sidebar entry is is I bet the click count is near zero for that thing. We've had to use it very occasionally after things have got stuck locked. It's very very low. Yon any other topics you wanted to bring today any other conversations we need to have. My head. I think that's pretty much everything for now. Yeah, I think you got the buttons PR mostly fixed up. Right. There was a few issues raised. But I think the ATH was quite was quite a lot to go on the ATH there. I think I prioritized the modernized forms on. And it's kind of gives more benefits and I've got nice. Yeah, there's just some kind of female shoes that were raised yesterday. And then some plug-in ones as well but I can't touch the plugins. Nobody in Jenkins. Yeah, we can still fix the plugins up to be forward compatible if we can, but some of them will need bigger changes. But and we can set we can see if we can even do things like set a variable in the jelly context, which means that this feature is now a thing and then you can check for that variable in the plugins and then render it differently. Yeah, sounds good. Tim is, I know you've submitted several fixes to the plugins I maintain that that make them more modern. Are there things we should do in terms of detecting plugins that have those those bad behaviors or was it is it inevitably a single thing where every programmer made their own set of mistakes. So we added console warning to the browser console for I think the one you're talking about which was the repeatable delete where they've copied it into the plugin where they've just used the plain HTML rather than the markup rather than the jelly control. So there's a browser console warning for that telling you to switch to the proper one. And so you get plug-in before that so we did a fixing call which which looks for us and fixes that was probably not the most performant thing. If it finds any anyway, if it doesn't find any shouldn't be a problem, but if it finds any it has to rewrite them, but it goes through and creates a new element and replaces it in the dorm and everything. And then it warns in the browser for that and gives you the element that it was and you can click on that to find where it was and you can use that to find out which plugin it is. And so you get plug-in was the test one for that. There was nothing else on the page from the default install to get plug-in is the only one in default. But there are. I searched I searched GitHub before I did that just to check. And there was a lot of them, a lot of plugins have done that. But yeah, get plug-in is the only default one. I fixed that one and I was like, should I fix it? I was like, oh, there's so many of them that I'm not fixing it. They can get a warning and fix it as they want. Well, so one of the one of the things that and that's that's probably a good one for me to highlight to people is open the browser console while you're using while you're in development mode to see if you get any warnings or alerts during during your development testing right so that browser console now has information that may not have been there before. Yeah. Okay, thanks. Any other topics for today. I think that's it. All right, well, Jan. Thank you very much, Tim. Thank you. Thank you to both of you. Recording will be posted roughly 24 hours from now on to community dot Jenkins that I owe so that others can see it. Thanks. Thank you.