 Welcome. This is Jenkins documentation office hours. It's the 5th of May, 2022. Thank you for being here. Topics I've got on the agenda. News, Joe June LTS baseline selection, crowd and enterprise and on crowd and enterprise. Alex, I wanted to ask you about utf eight encoding and what you've learned if you're willing to alternatives, et cetera, options, et cetera. Are you okay if we have that topic on the agenda, even if it's only to say I don't know. Yeah, for sure. Great, thank you. And then preparing for the meetup for the 12. Any other topics we should put on our Oh, actually, should we put on maybe we should put on our list. G code Africa contribute on contribution contribute on updates, the screenshot update progress. Any other things. Okay, all right, well let's go ahead then. So, in terms of news off fat fingers in terms of news. We're, we've just delivered 2.332.3. Darren Pope and I will do a live stream today talking about what's new in it relatively minor things one interesting bug fix. And we're prepping for the June LTS baseline. It's looking much better thanks so much for your help Alex. And the there is, there are pending changes from Adrienne Lasharpentier for a for a, what was it a feedback update on scheduled but not running jobs. And it looks like it'll be arrived in next week's weekly and I hope next week's weekly will be the one chosen Alex anything you want to offer there or on any other insights to the icon thing. Or do you mean just in general to the June LTS baseline. Yeah, I think a couple of weeks ago we released a version which contain quite a lot of regression fixes. And introduced and worked on the exhibition dashboard even further within the past weekly releases. And the next one. Adrian took care of, I think as we merged a couple of hours ago, and we learned in the next weekly next week. Very good. Excellent. Thank you. Nice. Thanks very, very much. And on the she called Africa contribute on the screen shade up screenshot update project we've got two women from Africa to project members who are that are contributing updated screenshots. What they're doing is they're using the most recent weekly for the screenshots on the assumption that those are the, those are much more much closer to what June will look like, then if they were to use the previous LTS. So, it looks very good actually. You can see the pull requests, and you can see the results arriving in and a few pages on Jenkins that I'll see so I think we've talked, we may have already talked enough about the baseline selection, anything else that we need to talk to there. Good then on to the next topic crowd in enterprise so Alex, tell us the story of utfa encoding and, and that way we can get some insights from you and others. Yeah, just to pick up the topic from last week. I think a couple of hours later when we submitted the PR we had the issue that brackets and things were actually escaped when they shouldn't be escaped. If you remember correct if I remember correctly. Right. That has actually been resolved by adding a new config option to the crowd and yml in the project itself. So that is indeed configurable just enabled by default on crowd inside. Good. Okay, so that configured to not do that. And we're we're good to go. Yeah, I've added these options to the crown and yml to the design library plugin. And yeah, after that it didn't do that ever again. I don't know if this is the right moment to discuss that but I have experienced some kind of bug was crowded. Sometimes when there is jelly in some code tags. Jelly is transformed into space. For whatever reason. Oh dear. You mean like you have a space colon and then the tech or instead of colon jelly it's colon space elite. And is that cost if you do the translation by hand or work with the machine translation with the suggestions below the actual box where you can input something. Yes, you're right of course I have to translate it by myself at the world. Most of the time there is a translation proposed that is not far from the truth. So I start from that but for whatever reason, the proposed translation when there is colon jelly. It's not for me to call space elite. But yes, you're right. It's not once I've done it by myself if I were to write it by myself the error wouldn't be there. It doesn't arise by that. Yeah, the suggestions are actually generate actually computer generated because these are machine translations we don't have much input on them. We use it on the way crowd and interprets our files at the moment we have only design library and one of Marx plug is available to feed machine translation with hands it isn't much smart yet. Okay, that's fine. Okay, but but so that lobbies that one of the benefits then or one of the needs here is we need to add more plugins to the pool of plugins I wanted that for the webinar anyway. So, are you okay, Alex if I attempt to add other plugins like test and G or elastic access or a few others and I'll try to do it on my own, and then see if see if I can be successful without having you to guide me. If I fail. Okay, we will have learned something. Would that be okay or Yeah, we can do that for sure. Okay, so several of his. I have a plug in C maintained several great. All right. Okay. By the way, should I go on with the translation. Should I try to finish the first plug in translation. Yeah, I try to do it. Okay, do my best. I think I've seen someone who finished the Chinese translation a couple of days ago. At least I got a mail that every string has been translated. Wow. Oh, that's great. So one of the so a Chinese translation. Excellent. Okay, well so and that leads to the to the question that leads in we can get to the utfa question with Chinese translations and so so back to the brackets were escaped unexpectedly is that resolved as far as you can tell then Alex it's it's all done. Yes, that is resolved. Now do I do, for example, for an example how to resolve that does take a look at the crowd and why I'm a little design library. It's basically just one option you can add where you can escape these kinds of special special characters, or at least a crowd is not escape them. That is the right way. Good. Okay, so I just copy that to the schedule build plug in YAML file and and it will it will then do the same. Yes. Excellent. Okay, good. Any other any other things from last week before we go on to the utfa topic. Not from my side. Okay. All right, so then the next question led into by the Chinese translation so a Chinese translation was completed for design library plug in and what what we saw apparently was it the property files must be utm must be ISO 8859 one or some such thing. Yeah, tell me some more background on it. Yes, if you translate, at least, someone has approved a couple of strings in the Chinese translation on crowded, which led the action to generate a PR as intended. And as soon on GitHub, Chinese simplified was actually there like you could read it if you're a Chinese speaker. But if I mean I approve the PR and pulled it in and once released, I checked again with a local plug in that these files probably encoded for the client, like it just has shown some gibberish that is far from Chinese. Yeah, and then Tim reminded me that these files actually to be encoded, but encoded in a way that I don't have the actual issue in my mind at the moment but at least in a way that to make sure the Chinese stays Chinese and not gets become some gibberish. The underlying issue or not issue but the underlying way how it is done is that stapler first loads it in the wrong thing and then stops at it because Basil left a comment that Java nine and ongoing which will become the next Java version in September for Jenkins will have a way to force you to have eight first. Because some sort of it. So my understanding I thought I had heard that it loads in ISO 8859 dash one or some other rather mature standard. And, and then somehow transforms that into into utf eight. If we look at Basil's response. The current stapler code could be transformed into a property resource bundle, which as of Java nine plus which we will begin requiring September first loads property files and utf eight falling back to ISO 8859 otherwise. But this behavior is specific to Java nine onwards and doesn't exist on Java eight at the moment. And it does what it does. Right. Okay. So is there any potential so it. I mean we've seen good results with Western European languages, German, Italian French. So I'm assuming that single byte locales, I saw it at 59 one are okay. But if you want to do Russian or Korean or Chinese or Japanese. We need an extra step. What we need something that we convert that utf eight that crowd and creates into whatever the magic encoding is that Jenkins would accept. Yeah, I've taken a look over the crowded documentation but I at least couldn't find a case where you can configure it but I've contacted crowd and think a couple of days ago, how they would go about it. I mean we can't probably rely on the exported translations from current because they are not accurate because of that. A way to go around would be to transform the exported strings manually into a utf eight mother would require to edit the PR again. That was kind of my next question a long time ago when I had a lot of trouble with not yet not yet eight and Java property files, I had to encode each of my property files which were used for translation. Thanks to escape you know it was a backslash you and then your utf, whatever code, it was pretty straightforward, but it was a pain in the neck to do. That makes sense. Why we are not using Java nine or not, or is it even possible to add a step to the workflow. I think you can. I mean, I think you could write a batch script and get up actions to that if you're at it, or at least have a basket with a few lines that basically transforms these files. For the time being, if crowd, but I think Robin will get back to me anytime soon, at least I hope. We can work out a solution. However, that will likely be only something for the next three or four or maybe five months until Jenkins requires Java 11. Because then we can have because then we have the chance to change the method and stapler itself and use the code added in Java nine. Yeah, so, so for me there's a, there's a if if crowd in has a specific solution for us. Great. That's that's the ideal if they don't short term this script to do a transformation or a get have action to do the transferring doesn't sound too bad. And then long term, once we really require Java 11, then we we can update stapler it's really it's not that we can use you to have eight properties or we can update stapler to use the new new property. We can have a new facility with uta uta properties right. Yeah, I mean, to keep it even simpler. It doesn't need to be a basket that all their countless tools on the internet you can use to do that. So it's basically shouldn't require any bashing it at all. And now you're making me remember the the GNU days. There was a tool called recode, right, where that was would do a character set transformation. Interesting. Okay, right, so. Yeah, that's why I used to use was called native to ASCII. Yeah, there you go. You can use to do that. Okay. You can use the new recode, or you say native to ASCII. Yeah. That, and, and as I gave you a link into the chat. Oh, thank you. Thanks very much. Okay. Excellent. Okay. Yeah worth to note that this only affects properties files jelly, and maybe less I use groovy or unaffected by that. Oh, all right, right. Okay, good point. All right, so it is jelly and HTML help files are unaffected they can be use you TFA right now. It's Java property files. I'm not sure how often Java files are actually used for tons of localization that only a very few plugins which only have a few strings and Java localization. So I don't think it will be such a major backup for now. Good point because at least for the plugins I maintain. The UI components are in fact jelly or HTML right they're not they're not actually, I'm not certainly not generating HTML in in most of the most of the plugin source code the Java code. Okay, right. Yeah jelly is, I guess the recommended way nowadays to do views, instead of your Java. Yeah, yeah. Jelly groovy and HTML files are unaffected all of them are already using it. Good. Okay. Excellent. So, Alex, it looks like we've got. So one is we wait and hope that crowd in will tell us hey here's this way you handle it and and it all works easily. If that doesn't work. We look at native to ASCII not record the code. Or other solutions that could do a similar transformation, because what what crowd in is providing is valid utf eight. As far as you can tell and as far as we've seen it's valid utf eight and Bruno the tools you mentioned. Take valid utf eight and convert it to ASCII, which is a valid subset of ISO 859-1 so should be should be fine. Okay, good. That's encouraging. All right. Anything else on on the utf eight topic then Alex or Bruno from my side. I think we have mentioned everything with possible ways how to go about it. Excellent. All right, so next topic on my list was was to prep for the online meetup talk about an agenda how you would like to talk about it etc Alex what would what would you like to do. And what Bruno. Yeah, I think a great way would be to actually show how to use from a translator aspect from a project maintainer aspect and from a proof reader aspect. So we actually cover all states how to translate something how to approve something and how to review something. I think that is a major aspect that plug and maintainers will going to use. I wouldn't want to spend much time on how to set up a project, because if we are going to get up actions way the setups pretty much copy paste from the work for example we have provided. We have worked with the past couple of weeks. And the other day you saw that you were working or thinking of a template that could use directly within GitHub. Yeah, I didn't have the time to propose a PR to the dot GitHub repository yet. I think that's something I will do within the next week or something. However, I think I've written down a proposal for Jenkins IO again how to set up a project, because the pro this setup is pretty much straightforward how to do that. It may be easier to read it afterwards, the online meetup again. Yeah, one question from my side. How do we want to let people access. How do we want to let people create the project at the time being only project maintainers can create these projects like we have done in the past sessions. If you remember the workspace thing you click the plus button, but that is only something instance maintainers or administrators can do. My idea was like to possibly go through the infrastructure help desk. So like people raise an issue on help desk labeled as crowd and Jenkins that I say hey, this is my plugin, please create me a project on crowd and Jenkins IO. And possibly me or someone else who would like to take care of that will do that and say hey yes your project. And then they can go ahead and copy and paste the GitHub workflow. Considering this is a pretty simple task to do. This doesn't require any specific knowledge. I wondering if we can do the through the help desk. But not necessarily assigning help that's infrastructure members to it because these are not tasks that have to be done by any infrastructure member. I guess. Well I think I think they, I think they are likely willing to help us. If we're willing to make them administrators and then I like your idea of using the help desk, just so. So what what you're saying is basically a main and administrator of the cloud in the crowd in instance then creates it. And that that right now is just you and me if I understand correctly and we would need to make them. Anybody we want to help with these help desk tickets. We would, we would need to make them able to administer crowd in is that I understand correctly. Yeah. But in a couple of weeks ago, I've given him administrator rise any as well. Oh good okay. But, but yeah for the time being only we three have actual administrative access over the instance. And I think that is also needed to create new projects. But once we have created these projects and people have logged in once and we have assigned them to the project they can basically manage the entire project themselves as intended I guess. And so that's, how do we grant access to create a project. That sounds pretty easy. Do we already have have an idea of how they will log in. So right now is it just using GitHub authentication is that correct. Yeah, I have to say but everything else. I think I left GitHub and Google enabled and the typical password email if you want, because SSO wasn't much feasible but I think GitHub Google and typical email password is what the majority of people will use anyway. Oh good okay so the answer to how do they authenticate is it's either GitHub or Google. Maybe I should say different both GitHub and Google are supported. Yeah. And are already enabled. Yeah, so we require we certainly require a GitHub account for in order to be a Jenkins plugin maintainers so that that seems like we're done there. Great. Okay. Yeah. So the workload basically be to recap it. Someone opens an issue and help us someone of us or the infrastructure team members if they would like to take care of that, because I wouldn't want to add a potential maintenance burden on them if not needed but create the project assigned these to the team on a crowd and and say hey your project has been created. We can go ahead and add the action now. That makes sense. So triage. So help desk triage assigns the ticket to to one of the crowd in maintainers or crowd in admins. And that could be today that's three of us and if if you're comfortable we could add others but that's the three of us for now. Yeah, and then then go ahead. For the time being, I don't mind helping out and creating no projects, but sooner or later, I guess more people will likely set up if they're more familiar with managing crowd in. So yeah, I don't see any issue there. Great. That's, that's excellent. All right. With this one, the grant access to create a project. Do we need to I assume we would want to demonstrate that during the online meet up as well. So, okay, we talk and I guess that's part of the plug in maintainer. How to use. Yeah, how to at least how to how you create a project should be so that at least once that to make sure that infrastructure members or someone else actually aware how to do that and how to do it properly. But I guess, yeah, we can go over that as well. Excellent. All right, so in terms of who who shows which things. Is this something we would have you be the primary voice and the rest of us just make comments or would you like to assign this around to other people what's best for you. I could go ahead and do the do a little instruction say what is crowd and how do we plan to use it what you can use it actually for what kind of languages like Java jelly groovy and so on. And show how you can set up the project and integrated with GitHub actions. Yeah, and maybe I think Bruno has started to translate a plugin in French. Maybe he could show us how he translate a few or a couple of strings. Which someone. What was that that was very good. Yeah, which then with then someone of us approvers. Yeah, then I could basically run the action on GitHub and considering the design library for example is integrated with continuous delivery. I could basically go ahead and merge this PR straight away to have it available, the release within the next half an hour or something. And we might actually get the release within the time the duration of the online meetup. So that that would be for me that would be a great thing to come back because the meetup is ending saying oh here's the new release of the design library plugin congratulations. How is the meetup organized. I mean, are people just in the audience able to participate as question or can we hear them or just chat and maybe questions. Good, good question. So, so what happens is we do it as a zoom webinar, and as a zoom webinar that means the panelists have full screen sharing and speak speaking ability. But the participants can only ask questions through the Q&A facility. During this all act as moderator and all monitor the Q&A and the voice to raise questions saying oh Alex I think I should ask you this question here, or oh I should ask you this question at that point. That was my main question I wanted to know who will be the moderator. So, so usually at least I moderate, we may nominate Kevin as well to assist with moderation because moderation is a skill that is good to develop. We're going to need it in the future. Yeah, I think that is the setup we use for all these online meetup in January, and I think that work quite well. Right. Yeah, so, so yeah that one was a good example that the Uli did the bulk of the presentation if there were if I felt like asking questions and disrupting I would sometimes do that. And, and I hope that the questions were helpful. All right, so then create a project in crowd in so you will approve the translation as a proofreader then creating a project in crowd in Alex you'll show that as well. Yeah. Okay. Excellent, and then I assume we've got questions and a question and answer. Answer from the audience questions questions from the audience. Now, and I, I'm also assuming if we need to talk about alternatives for utf eight locales for utf eight. It's, it's tough to say this should I say multi bite strings, no utf eight is probably for full utf full utf eight support. Yeah, that will depend on whatever you learn between now and May 12. Yeah, I will try. If I don't get a fitting or for us fitting response from crowd and I will try to maybe find a tool online that people can use with ease. Especially something that shouldn't require no less about GitHub actions or how to do it manually. Likely, if you know how to write, how to do that and you and you with the best script you would likely do that and go straight ahead. But for others, an online tool will do basically the same. Well, and thinking about it, I think we've got tools like this that perform at least perform checks because we've got a spell checker that runs on Jenkins.io as a GitHub action. And, and what it does is uses a Docker image that's a Docker container image that has a spell checker inside of it. And so it must be feasible. I guess at, at minimum, we could do a safety check that the pull request doesn't include utf eight encoding inside the property files before. Well, yeah, okay. There are alternatives. Good. All right. Excellent. Any other topics that need to be on the list. Okay well I think I feel like we're ready for an online meetup. Okay ready. At least an agenda and a plan for May 12. Alex if you can be there say 15 minutes early so that we can do technical checks to be sure yes your web, everything is working right we know how to screen share stop screen share yada yada the usual things Bruno likewise. Yep. Yep. Great. All right. Okay, do we have any other topics for today's meeting Zenab I see that you're there and we haven't. We haven't pulled you into any of this conversation because we've been so focused on localization were there any topics you needed to discuss. No nothing for me. Okay, well so we, we did before you joined we had noted that we're making great progress in on she called Africa screenshot update and inclusive naming are both doing very good things. And we've seen good progress there. Pull requests are arriving had another session with pipeline help today. And making progress. Great. All right. Any other topics for today then. And how about the project management. Hi, she's doing. Oh, brilliant. She's been she's been the best of all of the all of the experiences thank you very much for doing that. She's been absolutely wonderful sends the reminders helps me keep on track worries about are you updating your document are you keeping these things current. Oh, we must do that again next year. Nice. I forget to mention how valuable that is because it's just, she's doing wonderfully thank you thank you. Thank you. All right. No other topics then. None for me. Okay, let's call it call it in for today. I'll stop the recording. Thanks everybody.