 All right, so we're live It's been a little while since we did a an office hours for for JEP. So Thanks for being on the the Ock and asking to have one scheduled that meets your time zone that helps a lot I Will add the I Need to add the link to the New page just for later. So we have it There it is okay, so here's the video So the topics here, I think the main thing I want to talk about That you can actually talk about is the was it JEP the JEP that you're working on Okay, let's take a look at that 26 26 great So to give some context for anyone looking at the video This is the the JEP for the design of the The localization of the plug-in right plug-ins, right? and You submitted it and it's in draft form and I gave some feedback in the process in the way that we've established for doing doing that in In this which is adding some Annotation sections a little warning section saying hey, I have this question. We should probably fill this in and then you created a PR To address some of those questions by the way if you hear sirens, I live right near a firehouse That's how that's gonna go I already Make some change but still not Created a PR you can add on to the existing PR, right? But I haven't finished it maybe at least we can Yeah, let's let's see if we can maybe that's that's what I was hoping we can do with this is sort of worked through the I can't send send you the Link Already write something Okay, do you just want to commit and push the changes that you got so far and we can Yeah, maybe I just Sorry Wait a minute. Sure Okay, yeah I already see a PR Yeah, yeah Yeah, yeah, no problem. Okay So I should be able to refresh this and Okay, nothing Yeah already I did something But about the test the keys I haven't Added some And more information. Okay. Did you add a new commit for this? Did you make changes you said or no? Test case that I haven't I just More information, okay So this was Changed you've got so far. So let's just go through this just in a linear fashion. You've pushed all the changes that you have though, right? Yeah, yeah, okay So if I do edits right here, that'll be okay Cool, so let's start with so from the abstract I don't mean the thing about the abstract is you don't need to talk about where things how things were before This is that would be part of the motivation What you want to do is simply give an abstract of what we're doing what this thing is designed to do So the liquidation the liquidation plug-in separate Resource files from Jenkins core and plugins perfect the solution Let's just say the solution provides a way to let Mourning it. So the past things should be in the mood with you I'm sorry. What I Mean, yeah, okay. Yeah, so for instance, I'm just gonna take the Going to do that. Let me just Pull that out That put it there you so motivation Beavisly languages All language Should I say the language specific? Is that fair? Language Files were aggregated in one place These there's some drawbacks that we Design you want to check some of the details there if I can type there we go Okay, so let's continue. Let's go back up here so this solution Provides you want to speak generally in Present tense as though this is what it is Basically when you think about that when you think about how you write this it you want to write it as though it were already done So it's it's in it's that what it's going to be described as when it's in place So it provides a way to let more native speakers contribute localization Localization files It works files Excesses more efficient. Yeah, also Well Jenkins running and things does not need to load all languages most so proposal Just here so all I would have their own localization with that Well, it's No, it's proposal Well, it would be suggests. Yeah, but I think Move on from that from the all language All languages at their own localization have a single like so there'd be a single localization plug-in, right? For one language match one localization plug Right, so but there would be one localization plug-in for each language as opposed to yeah For each like core and plug-in each other plug-in. So you instead of having a matrix of Plug-ins to languages you just have one plug-in per language. Yeah, right. Okay, so so just all languages language they have a single Localization plug-in that serves Say a single localization plug-in Should be had each language had a single Have yeah, each suggest each language Had not have a future I guess in Okay, so here we go in this proposal each language has there we go As a single localization plug-in such as In order to keep all language plug-in Okay, so Each each language plug-in All language plugins should have the same. What does he mean by have the same style? I Like a directory structure. Ah, okay All language plugins So share a consistent Directly structure Yeah, based on so the based on a set of conventions all the collision files Venture to keep the same structure. Okay, so that's that's what we just said yeah, okay and Everyone so They'll be following this guide the localization guide okay So instead of that we'll say this Look at this guide Rides the Set of conventions will be followed Do team to me language plug-in Is there a reason we want to do this on a wiki instead of in this Jap Sorry, is there a reason that we want to Describe the set of conventions in a wiki as opposed to in the Jap itself Because I we already have which page to describe how to do the localization contribution so I mean we We do not need to Describe this again, okay, you just see I'm just looking at catching up on this so this is Interesting, okay So this translation completely this report. How does that? Does that work what does that what does that do is that part of how you're going to test this? Oh It's not right by me. So I don't know. Oh, okay. Oh Last updated quite a while ago Okay All right, maybe we need the update the wiki page to To update Okay Let's see you're translating references. This is that So let's see here. What? What are the general messages in classes? So this is the where is the file structure kind of specified here? Yeah It's not so my idea is We need to update the page to describe how to do An organization, okay Well, maybe we add to do Atom to do this. Yeah. Well, I mean if we expect this to be pretty stable This might be something that we should Actually add to the JEP like that way it's part of the design. We know what it's kind of we know that it's Stable and if someone Comes to look at it, they will be able to see okay. Here's the file structure I The wiki is good for things that we think are gonna change or that are kind of you know variable But it sounds like that would be more Yeah, I see I see yeah, so You mean when we need to Write to the director Directories structure in here. That's what I'm thinking But what I'll do is I'll put a note on it and we can come back to that in a little while like that way So this is supposed to be an iterative plot process And I think I want to I'd like to move forward with move this forward as much as we can Like what you've done like it's good to get a move like a step forward and then we can iterate from there with some notes So, let me just That's what I'm looking for I wanted to grab this Maybe you can find that find the Chinese localization plugin to see the directory Structure, okay, so and the localization plug-in Okay, we have one everyone could follow the this to do the contribution Okay, that part Described localization plug-in naming convention. Ah, here we go. So this is then so this is how you would name the plug-in Right, yeah, okay Yeah again naming Listen plug-in naming convention localization Language plug-in. Is that a period? There we go. Okay You can add more human readable information in the file for example localization, okay, so a More human readable description Yeah On the XML file for example name Right, great. Okay. You should add To hear as a Okay, but isn't yeah Making some sections here There we go you should add So is it do we want Daniel? Is it is this in Jenkins? Yeah, it's not down for now Okay, I should add some to do here. Yep. I'll just put little warning little warning section to do CI Please don't add more dependencies if you haven't the localization plug-in a simple Look at those Ancient points There's only one language So only one language is allowed per localization plug-in. Is that right? Yeah, different variants if Example of variants Languages Do you have an example of this is my question? like We have simple Chinese and we have Taiwan language different This the description. Okay, you can add multiple variants to one multiple Variants of one language one language to a single localization plug-in Yeah They are however is Apple Was that Right. Yeah, one language to a single localization plug-in if they can just think it's okay Agree to it. Yeah, there we go There are some points. All right, so What so points that need translation Localization from so there's Relating We're trying to see her so there's areas that can this is you're just trying to give a list of what What items need translating in each localization plug-in. Sorry, I didn't catch that Yeah Yeah Maybe I mean Which condo fear us needed to be translated needs. Yeah, what I'm not I don't love that title, but let's move on Is this a full list no, this is just a one it's an example of some of the files, right? This you should be a full list Okay, so it's not this is not some Plug-in should provide provide Translations Alright, so I've got the motivation Maybe we need to remove the average thing just No fair or taps. I'm not sure I didn't understand you. Sorry. I Mean, maybe we should remove the height localization from This the two words. Let's see. Am I in the right? Oh, yes, right. Yes, of course. Got it Previously all language files were aggregated in place Were they actually aggregated in one place where they was it like a oh It was one big localization plug-in for all languages Is that right? No my I mean For now, I read all language log into fails are in one place mean like call tickets car or some Plug-in, I mean Chinese or German or English or I in the Take the car some Locking it. Okay, and for each plug-in. Is that right? Yeah You have a do you have a link for an example to that I just want to I kind of find a link This is what you were actually having there's The code is up and the source code, right? For our tickets car. Yeah, let's get it. That's the Chinese localization So this is this the thing that you're working on right now, yes, that's of course, that's what you're working on Well, don't worry about it right now. It's some message access. All right. We'll get back to it. All right moving on That's the other one. There we go So location plug-in so there are some drawbacks with that science want to address This is under your league. Cool. Thank you. What happened there? I Mean, you can you can find several luggage. Perfect. That's great. Yeah. Thank you Um Edition Unchained and plug-in developers and proof native All right, so here's the I think what we went into we were talking about the reasoning So Maybe we need Link Specific attack about it Send you a link, okay? Because the master branch We are be changing tribute localization. All right. I know what you're trying to say here I just can take me a second to think through it Design someone to be localization but not have You Could be said for it to do To you localization plug-in Those limitations by what by putting the each local is a each each Translation into its own Repository yeah, yeah Into a separate Plug-in Yeah, let's go to the positive work. Oh, let's see here Translation mission there you go Chinette review process Improvement native language to our experience so using all languages. Yeah, so let's hear And speakers Manage better that'll that'll work Okay, so the the thing that I I think I commented on we'll come back to reason in a second This the the reasoning what I had commented on was that there was a lot of discussion in those threads That I Didn't see mirrored in the reasoning section So there's a bunch of back-and-forth people making suggestions about different design choices and what what why you might do it one way or another And I just what I wanted to make sure that that that was Documented here and that's a little harder to explain. Let me give you an example and I'll go over to the the Initial discussion here. Let me just pull that up. So there's this big long thread Which I don't think we can actually get into the entirety of And you don't need to go through on a on a email by email basis. It's more like Let's see if I can find a good example Like this attempt to get translation contributions unblocked This so you already covered some of the choices here more problems with granting. Ah, okay. So for instance No matter how well intentioned Mr. Plugins is largely independent. Sorry. I'm mumbling a little is just kind of so for example this this comment from from Daniel here talks about how we like how are we gonna decide who how who grant who we grant permissions to or or what and so This some aspect of this should be addressed in the JEP saying how how do we choose? You know to describe how we choose So there should be a section either in the the the reasoning or In the the the sections in the the specification to say So there should be a Renting Access control so access control So they should just there should be some description of how how how we choose who who gets control is it just like What are we doing? Are we doing it just like a plug-in ownership? Yeah, in general, is it the same thing? I Don't have an answer to that. That's that that's a question. Yeah, I don't have the answer right exactly so About the access control is localization plug-in access control. Yeah So because that's that's what Daniel was asking about here, right Um, let's have a separate look Right, so you were saying you just want to commit faster I'm catching up on this thread, so I just need to Read through this Much of these is more like I think some of these questions are gonna be ones that end up in In the specification as in how do we you know, how do we decide what we do with an incomplete translation? Do we are we okay with that or is there some quality control? Yeah My question for you is is did in in this thread where there are some Design discussions where people suggested other designs than the one that you've chosen Well, I believe is that Whether we put all languages like Chinese or Japanese into one localized and plug-in, okay, but So that would be so here's that would be going the reasoning so for example this this that would be what go in here for example one localization Again one Global localization plug-in or one Really is a reason or a discuss This topic like discuss and not a zero in my opinion Mmm, because this is a question not the answer. Okay, so the okay, so So the question was was one of the other and what you chose was one per language You should describe why why you chose one per language as opposed to one global plug-in and that's where you put that here, right? Oh Yes, you're just Put a question and Then write some reason why choose one per language exactly. Yeah, exactly. So that's that's what we're looking for So that's that's the kind of thing that would go in the reasoning section It's it's you saying what you do is you say we we didn't do this and here's why right, okay And and the intended that is so that if someone comes along You know a year or two from now and says well, why don't we have just one? This is so much more complex than it should be you can point them to the jet and say we thought about that We decided not to do it Yeah, yeah, yeah Okay so Basically think about the for this what you want to do is think about the The discussion that was had if there were other design decisions like that and just put them In here That's that's that's the point of that area. So let's see your background compatibility. Let's let's let's finish off what we got here I I know you want to talk about the testing part too. So let's let's get if we get this in one one shot that'd be great Thanks for taking the time to do this by the way Okay, let's see. So remain all okay So Well, yeah, well, you mean pain pained until Target language is Moved into localization plug-in Accident till a localization a localization is Created for the target language and moved in order to give The experience when first and stalling is going all localization file should be kept which so What do you what do you what are you saying here? So the intent here is ah Okay So so we want to have the installation experience that the the out-of-box that when someone first uses Jenkins So yes, so all the looks the localization Be kept. Oh, okay. So all right So the for the install wizard it's gonna keep all of its localization Files in the install wizard Yes, okay. Got it In order to An experience All localization files For for the install wizard will be so all look so the language of this one will be So so they'll be present in the language cat, okay, we'll be In the land of suggested plugins Best plugins there we go Because it's the install Wizard In the code checker the car so maybe We can change it to We'll be kept in look checker the car. Ah, yes, okay In order to keep well compatibility It's gonna add so this seems like a part of the This part seems like a part of the spec as well There's a help text button for version one part of it. Yes Version language files first then it doesn't Yeah, there's this part of the design or part of the pack of compatibility Okay, let's this that's a detail that I think we can go back and forth on Maybe in most case Maintain the latest version. Yes. There's some issues. It should work As in the products Okay, yeah, this is great so Great, okay, so the testing part of this that was what we originally talked about So let's hear J. Youn test because make sure that only specific language files Placed then Question that I had was Yeah, so what other kind of testing are we gonna do is they're gonna be manual testing? I you know, we were looking at that Glotter or whatever that was So, yeah, how are we how are we verifying that and now that you actually describe it you point me to this thing? I should have come and read it first Is there a Translation tools messages Stapler That's a completeness before but doesn't say if it's right. Yeah, so the question that I had was just how is it just Basically the main Yeah, I think it's hard to do the test maybe The unit a tester I already described the all menu test Well, I mean, it's probably like so for the J unit I think you might just be able to do it for like, okay, you have these files, right? So there's there's gonna be a you can look at the file structure, right and say it can only be within the file structure. Yeah But if not that's fine, too Area it's very difficult Yeah area would be extremely time-consuming again maintainers contributors. I don't know review You Do what so that I'm trying to think what the word right word is here, too Maintain the quality of to review all changes carefully Yeah Maybe do some menu tests. I just wanted to make sure that it's that it that we're describing it I was like I said, it's probably a lot more Back and forth and we needed to get to this point, but so Yeah, that's fine. I just want to make sure like it's saying that there wasn't any testing like no there is some testing It just needs to be done by the maintainers. That's fine Okay Well, great. I think that that that gets us to at least one foot pass on this Go ahead and I have a question is we have a TBD Okay Who will be the TBD about this to be decided It's like a PDF error delegate. Oh, oh, okay Oh the P. Oh, right. Okay. So that means that we a delegate hasn't been chosen yet Did we Sorry, oh Koski needs to So people need to choose or at least propose a delegate and then Koski needs to agree to it Cosky Needed to needed to agree with this. Yeah, so someone do you who do you think would be the the delegate for this probably newy Daniel or or or maybe Jesse Okay, who? But I didn't know who will write His name in here It's me or someone Yeah, you actually But we'll need to do it as a separate we want to do that as a separate PR so that Koski can you know Click yes on that as a separate thing I Didn't I didn't understand the rule of the delegate So the role of the delegate is if we don't have a delegate then Koski has to approve the change Well, yeah has to has to mark it will be the one to review it and review the design review the JEP and Market is accepted and where we try not to Make it go to him for reviews like that We we want to have the community be more distributed. So have more people doing those So the delegate sounds like a mentor Reviewer they're the reviewer. Yeah, okay, I can point you to the the JEP on this if you like It's it's basically someone who is an expert in this area who's also well regarded by the community And basically it's probably one of the people that were that were on the discussion thread one. Yeah, maybe Viola, maybe Daniel and be Jesse One of them I Mean you could be frankly you're you're the one that's leading the sick the Chinese sick for this So technically you could probably be you could also be the reviewer But I think it's probably better to have someone else do the reviewing just so that you have you know sort of both at least a Two viewpoints that say yes, we've we really reached consensus Can I request you as a delegate? Yes, I will be happy to do that. But let's let me commit this and As a separate thing Okay, so all right, so we made a Bunch of changes here If you're okay, I'll go ahead and accept and merge these With Actually There is something I need to add. Oh, okay, you mean you mean I Add this or Later It's up to you about the access control Right, we can either do it in this PR. You can open another PR I I like to sort of say, okay, have we agreed on Yeah, maybe we just Merge this PR and I will create another PR out of this. Yeah, let's go with that And and that way I can also You can actually what you can do is actually you can make a PR What I would suggest is you make one P one PR that specifically changes the BDFL to Who you think it should be Okay, and then we can get Koski to approve that and at the same time you can do another PR That's whatever other changes you want to do Okay, does that sound good? It's good. Okay Hey, so any other questions you want to talk about? Actually, I have one question is we have a list about all the jobs in Rhythmic, but I Think it's hard to to find the interest interested in system topic about the job for for example, if I If there is one beginner of Jekyllson he want he or she want to found some information from Jeff, maybe We can put Index or list into Jekyllson website or some Other place Yeah, that sounds a great idea. Um, can you open? like a JIRA issue on the on the jankin on the on What is it on the website area in in JIRA for Jenkins? Okay, I'd like to do that. Yeah, and then and then I guess we should you know bring that to the oh Where should we do that? Let's see We might need to have a make some changes to to have the Jep's be well at the very least We can get it so that it so that the website we can design it and pull that over to the website I think that's fair. So, yeah and maybe we can put them into Community or Subjects Yeah, or some community, but we can once we have a Website issue for it. We can look at how we want to figure out Figure that out. We might create a Jep to talk about how they get moved how they get pulled into the website Yeah, okay By the way, I I totally agree with you They they are hard to they're we're getting enough of them now and they're a little bit hard to find we should try and find a way to make them more At least a little easier to browse, you know, yeah Okay Yeah, maybe Our secret we are translate This Jep's a little okay, cool Okay. All right Anything else? No Okay, great. Thanks a lot. Thanks for taking the time to sit and like talk through this with me And we I think this is a you know a good example of how this sort of progress can happen Yeah I Actually, I need to thank you for your time to help me Finish Proposal absolutely Because my English is still not very good. Maybe Especially the writing yeah, it's hard for me It's it's hard in general. I wouldn't if I would I would do even worse if I were trying to write Chinese I'm sure so you're doing better than I am Well, yeah, wow, okay Okay, well, thank you again and I will sign off Okay. Okay. Thanks Thanks