 Welcome to the Jenkins user experience special interest group. It's the 17th of March, 2021. Let's talk topics. So, Damien, I had assumed you might want to talk further about multiple pipelines defined for multi branch. Are there other topics you want to add or Tim are there any and Tim I was going to ask you about if you wanted to review what you see as what's next for UX improvements and sort of UX changes because I saw that you've got a pull request in now for to make some further tables to divs changes. Would that be an okay topic or would you rather let it wait for another time. Yeah, I can briefly talk about it. It's quite a minor one. Okay. So maybe what I should say is pending UX changes, and that way it's not, it's not putting more drama on it than it should be. Yeah, Damien anything else from you. No nothing new. Okay, great. Well so, Tim, how about we'll go right to you then on I'm going to turn off mute my mic and let you talk to UX changes I'll take. So, so there's basically a PR open to make some changes to the run summary page and the job or project page to convert them from using tables for layout to devs. It's very conceptually different to the other one where the previous one previous tables to devs. It was known as tables to dev, but it was really form tables to devs. And so this one is changing basically two more pages from tables to devs. And their pages that are often contributed to from plugins, usually using the very the exact same sort of widgets. The run summary page is normally got a little icon on the left, and then maybe a little bit of text and then occasionally a list or a little bit of extra information underneath it. Whereas the job page is mostly trend graphs and pipeline stage graph pipeline stage view or whatever it's called goes there. So there's a lot of other information but not it's not too busy in general. Again, it uses some similar ish to the run page but slightly different. So there wasn't was it. So the main change really is that piece summary tag which is the which is in the Hudson folder. It removes the TD elements and moves it to using and just completely removes them. The issue with that is that layout was being done by different TVs and they were keeping them on the same line. And for some reason some some plugins. I think it's kind of what's known as divitis where people just like divs everywhere, not really knowing what they're doing. But what doesn't know that happening is a div is a block element in layout. And so we've removed those table wrappers. And so you've got an image switch to piece summary is basically a icon and a block block of whatever you want. And it's usually icon and then a bit of text. So what a couple of plugins did was they did icon and then they wrapped the text and I did. And it's a block element. So it moved down to the next line. So in the few plugins that that's being done and that's been removed as most was warnings in G mostly. So basically the plugin needs to be using an inline element like span or nothing. If they want their text to be on the same line. Inline element. Okay, so, so what you're doing is giving me an education in in HTML and layout. So, so instead of div if I wanted it on the same line I should be using a span tag or nothing. Okay, you know you don't have to have anything. If you want to add some more markup like an ID or a CSS class, you want to style in some way. If if additional markup is needed. Got it. All right. Okay. So any any idea how how to assess or have you already assessed the. I ran with every plugin that's ran on ci.geekers.io running all the actions we run there. And it's all it all renders fine. Yeah from my initial testing it's all fine and it's not going to break anything. Okay. Form tables the dads could break forms. This may have minor visual issues on on some less common plugins. Yeah, so these will be you said these will be visual, not, whereas with with the earlier round, I could lose the ability to submit the form. And this one there isn't a form really associated with it so layout misplacement, not form submission failure. Yeah, and so this actually this this does fix one plugin that was broken without this change. They had used a table that they use a table in their action that they're attaching to the page and the table was nested under a table and it was done in such a way that the browser decided to fix the layout and what ended up happening was that anything after that action was shot out to the other side of the page and the layout was broken. I don't think that pattern was used very widely, but it was used in the source on the modern plugin and did. And if you were using it, it did break the page for you. What they were doing and the results look reasonable. So I figured it was probably better to fix the incomes than it was to hack around it in the plugin. Let's see. Okay. Great. I got onto this because I viewed a page on our work Jenkins with source labs and look horrible. Hey, that's, that's healthy self interest right guided self interest look this this this bugs me therefore I'm going to work it. Thank you. Okay. So the things that others need to do should should let's see I guess let me look up that PR because we may want to encourage others to go look at the, at the, yeah. If anyone can run that PR on this setup and see if anything looks funny. Yeah, so it was a home setup. Let's see. I should see it. I'm not put my name and all the others. Okay. All right, good. So that's the one and and checking it with with my environment is a is a good thing to check to see Hey, for the plugins I use it's a different slightly different set than Seattle Jenkins.io. Great. Okay. You can be sure that I understand so I'm going to bring up bring up my Jenkins and help me be sure that that I'm understanding when you say the job page for instance, it's something like this. Yes, this page here. So you probably won't see anything as you've got very little on there. Got it. Okay, great. If you go into the run page. And the run pages is one of these pages. You've got again very little on there but check it anyway. Yeah, well and and certainly I've got other examples where I've got a lot more just to be sure that I understand so things like this one where it's the pages is quite quite filled with things that are actually important to me. And this one likewise where oh there's all sorts of data in here that I don't want to lose or be broken. Okay, thanks to him. Yeah, that's a cocoa ones example one that might break the test to the I'm assuming that's the legacy to cocoa plugin in some way. I think so yeah I haven't because this is a freestyle project this particular one is intentionally testing some legacy stuff so that I think is the old one. Because I have fixed the new plugin. Oh good. Okay. The new plugin aspects that I had a minor issue. Yeah, I've been using this one to help me navigate code coverage I still haven't learned how to, how to get this view back for myself with a new and just a matter of me learning. Yeah, the new one told me a little bit to figure it out I think it's a little bit non obvious. Okay, things that you can click and. Yeah. All right. Anything else on pending you exchanges to him. I need to get around to releasing the pipeline graph view model. I've, I've just had to do some more work on it. I'm not sure. I don't think I've seen a release yet but okay that's the one that you had demonstrated, you had demonstrated at the contributor summit right this one right here the pipeline visualization. We release it now. On this laptop. And it's alpha level where exploring. Hey, is that that whatever your sort of senses where it's at right now. Yeah, yeah. I mean, yeah, I would say yeah alpha beta experimental to that releasing at the moment. I mean, I managed to reproduce the graph and a lot more other states. Number four. Well, I haven't found any difference basically now. And what's currently it's very hacking very, very gross. The corridors. I don't know if anyone has looked at the cars. It was insane and fragile. But it all works to the next bit to really I should say the next bit is, I credit a couple of issues is when I was finishing this off. I need to implement some form of polling or pushing up updates probably polling to start with is currently you have to refresh the page to get updates. And then it's things like log viewer and be it in the darker job view. And figuring out where they want to move it to the main page or leave it on its own page for now. Mostly the contributors it should be very easy. A lot of it should be straightforward. And yeah. Happy to and especially, especially front end anyone interested in the front end side of it. They should be. Yeah, quite straightforward. I back in happy to help us. I'm not happy to do the other side of son of all time. I mentioned you mentioned front end and there are a number of times when I sort of have to flinch away from getting people who volunteer for front end on Jenkins because many things are terribly complicated. This is a place where a typical front end developer might fit well and say, oh yeah, hey, here's where you make your changes. I mean, or is this, or is there still this is going to have a very steep learning curve for a front end developer, trying to help. So I wouldn't get them to involved and as long as they've got a somewhat reasonable data model, assuming a rest API data model. Then it's fine. I wouldn't get a front end developer involved in the, in the back end of it so much as it's with this stuff quite complex. The front end is just fairly modern react fairly. The, well, they can write a new stuff in modern it's on a slightly old version, and it's using components using class components rather than function components. It could be rewritten but it's that but it's just extracted from the lotion. But yeah, it's, it's just a react after that point really, and should be quite straightforward to add more components. It's released now. Excellent. Okay, so released. Thank you. All right. Anything else Tim. Oh, good. Damian multiple pipelines for a multi branch job. So the, the next step that I did not work on since our past meeting is to bring that topic to the pipeline you SIG, you know, in order to see what if there have been any folks, any tries, any prototypes about this. I'm sure that we can, we're going to discover discussion about the prawn guns of this solution. So the goal is to start by learning, watching and listening. And why, why is it not a thing that there might be a lot of reasons, and also bring the ideas and the use case to see if it differs from what we had in the past. The main point here is look at how easy it is to do with a tool like it up CI. Maybe this is, this is why we should start working on that. While it was not the case before but now that's a strong contender that brings that allows a lot of new usages and you have already written the one I listed past past week. And I can totally share declarative pipeline. That I've built for the info, the one for the Jenkins info slash AWS, which should back to for use cases, different use cases that use the same code the same make file the same terraform project but with different results that are triggered by different events. So writing a single Jenkins file is painful. And writing scripted pipeline is absolutely out of question. It's, it's not an option. I'm, I won't write scripted pipeline if I don't have to, because depending on the people you have in front of you, some people are more at ease with scripted. View some are at ease with the DSL. But in the end, most of the other CI tools are not even thinking about whatever complexity. They delegate that to a real tools that can be tested and here my goal is to say there are a lot of use cases that I see today so I want to ask the other, or will you use solve that problem and if the answer is you scripted pipeline or then, yeah, but I think we can have a middle ground there, because then they might have some mechanism that could be used. The goal is not to have a fancy ideas. It's more, how could we change the existing to fit the model of I have different Jenkins file I have a Jenkins file the directory with a bunch of Jenkins files, each one should map to a pipeline. Is it possible to have such a feature where the multi branch job will create all the, all the required pipelines jobs. I don't have no more if it's clear if it makes sense for you. I did. That's, I'm glad to hear that you were able to approximate it with declarative and I understand how painful that must have been in terms of expressing what is basically for pipelines as a single pipeline, much cleaner to just express them as for independent things. Yeah, got it. Maybe using the user personnel could help here. Totally you can today you can totally have these for these multiple pipelines on the same repository. If you have access. If you have the possibility as a developer or as a pipeline writer. If you are able to change the job DSL configuration used on the Jenkins instance, either the seed jobs, or the Jenkins cask. If you manage and use Jenkins, that's okay. That's not an issue, because in both cases it will be called in a repo. However, most of the time, the people using Jenkins are not the people administrating Jenkins and the time between. Okay, I want to add these new pipelines on my repo. And then the branch and then the time where this pipeline are there and you are currently working on that the feedback loop. Today, it's not acceptable to speak more than five minutes between both. Right. So if in five minutes I can contact the admin team, make the change of the channel reviewed approved deliver deployed Jenkins restarted with the change applied and job DSL without any job DSL syntax error. That's fine with that. However, that's not the case. I just want to push Jenkins file and have it picked up. Right. Where is that. Why is I don't have a waybook. So here's the point. I want to to push to the pipeline. I don't know when will. When is the next plan. SIG pipeline plant. I'm not sure. And you may just need to ask them on an email list or in a Gitter channel. It's on the Jenkins calendar. I don't know how active they are right now I'm not sure that they've been having regular meetings so it may be simplest just to send them an email saying hey or post in Gitter. Hey, here's this idea that's rolling around in the UX. Any any guidance on it and it may be worth a conversation with Steven Tarana of the of the SIG, just a one on one conversation he's based in US East Coast, and has done a bunch of a lot of shepherding of pipeline templating concepts and how do you get there. Okay. Is it the pipeline authoring SIG or is it another thing. That's, that's the name of it is the pipeline authoring. So yeah, let me, let me just, I've got a, let's see. I have the event calendar. The next one will be next Friday. It will be at 5pm for my time. So that should be that should be known for the East Coast. Yeah, good morning for the West Coast. Yeah, and you may not just send drop them drop a message into their Gitter channel I put it there in the, in the document here. Just to let them know before the meeting surprises. That's all for me. All right. Anything else we need to discuss before we close. Thanks everybody. Meet again in two weeks.