 Welcome to the documentation track for the Jenkins contributor summit. We're being recorded. All right, so topics that that we discussed earlier today, the she code Africa project ideas. I think it's good. Give you a brief summary there. Contributor onboarding was a key topic in discussing. How do we help more people contribute to the Jenkins documentation what are the barriers that are getting in their way and how do we remove those barriers. Google season of docs was a topic that was discussed earlier. Google summer of code, particularly there's a documentation related project in the Google of summer code project ideas. So migration, and then the really fun one. This is the one I think we spent much of the time on the interest was adding site search to the docs. And there is where we rely on Gavin to talk to us and share what he's observed, etc, etc. Last topic was documentation inventory and rework proposal based on that inventory. So for topics you would like to be sure that are on the agenda for today. I solemnly promise we will end at two hours, even if we haven't touched all the topics. We may end before that. No, I don't have any distance. I was at the last one so I'm good. Okay, great. All right. The last summary of she code Africa she code Africa is an organization that where Zina Abu Bakar is a member. It's, I, as far as I can tell much of much it's focused on recruiting women in Western Africa. In general, to develop technology skills and be involved in coding projects. And what they're going to do is in April of this year, they will run a one month session with individuals that they will pay to contribute to open source projects. And what they're going to do is they're seeking sponsors to support this project that they're doing as a group, and they're seeking project ideas and mentors. The thing that the Jenkins project is being sought to do is to provide project ideas and mentors. So I thought that's a good fit for us. They're looking not just for documentation projects but also for coding projects. They're willing to do marketing projects even so they've all sorts of ways to get women in Africa involved in technology. Ideas that we had suggested this one came up last week thanks to Meg was with Jenkins 2.277.1 we are making significant changes to the UI layout. Previously done with HTML tables is now using divs. And by using div elements, the pages fit much better on narrow screens, and they look better. But our screenshots in the docs are wrong, beginning with 277.1. So one project for them might be update our screenshots. Another common complaint is hey, the Jenkins pipeline arguments in the plugin help and in the syntax, usually have no documentation, no description whatsoever. And pipeline authors find that really difficult. So if they've got some programming skills they might be able to write documentation for pipeline arguments. Do you have ideas? Other ideas are welcome. Do you have questions? Do you have concerns? I was trying to look up time zones for Africa and it looks like it's GMT plus two. Right. So I don't know how much overlap West Coast people will have with that to help out. And that's a valid point. And that's one of the things that people on the West Coast of Africa may not be, we may not be able to have time to mentor. It depends on schedules. I think Meg for instance actually might be able to mentor during the start of their working day because she has a tendency towards starting very late and staying up very late. And for me, I actually start very early. And so for me, the end of their day is a workable time for me. Mark, you don't sleep. I know you. So, so, so there was fun. A few years ago we had something that required Mark being up and presenting at like two in the morning. And it was dead man walking. It was fun to see was a whole different mark. Yeah. So, yep. So, so I think, I think it's a it is a valid point Gavin that you make that actual mentoring by people on the West Coast for people who are in in even in Western Africa, maybe infeasible people in eastern Africa are probably completely infeasible right they're likely offset GMT minus GMT minus two or more you know Somalia or those parts of of Africa maybe completely unreachable for us time wise. Yeah, what about our European friends. That's that's one of the ways to recruit and certainly East Coast US and Europe are good places to be looking for additional for looking for mentors to support project ideas. Not not in any way saying we shouldn't get involved, but just we should know ahead of time where this is like this is we got to make sure we have contributors in the right time zones that can help mentor if going into it not. So we don't get surprised that we sign up and nobody can talk to them. Correct, right that would be completely unfair to them. And, and we don't want to be that kind of unfair. Absolutely. Also what about Australia. Yes, that's another that's another viable when we don't have. We don't have nearly as many contributors in the Asian Australia part of the world in in that hemisphere. So, so that's knowing ahead of time it helps to seek them out so you know, if we know I don't know what the dates for she codes April. So it might be a good time now to start reaching out, you know, via your LinkedIn contacts via Twitter via whatever and say hey anyone and you know this part of the world that wants to help out with. You know, maybe they don't necessarily have to be like experienced tanking dock writers believe there's some overlap with some people who have, you know, knowledge and people and can share it and stuff. Right. Yeah, so so that and you described it precisely we need to start through recruiting now, and, and need to collect project ideas now. Absolutely. Okay, that that took a little longer than I expected but your inputs are great. Thank you very much. Good insights. We have the master to controller and whitelist blacklist stuff. That's a good one right right terminology cleanup would be a great candidate. Very good. Yes. So, let's see master to controller slave to agent. whitelist to to to a sentence phrase blacklist to a phrase and yes in the worst case we have a word for it if we don't ever get a phrase usually. Very good suggestion. Thank you. All right. So any other suggestions for project ideas. I had offered my favorite helping me convert unit tests from J unit three to J unit four. That is a question. Are the chicota Africa people. I know you mentioned with one that they have more programming backgrounds and writing background. So, we just the whole thing do we have all the test suites we need I mean there's, there's a lot of test suites we could be implementing for style and this sort of stuff. I don't even know if we run a spell check against things. Right. So test automation. We've got all this grunt work we want done but also we want to give them something that's interesting and matches their interests. Good, good suggestion. I'll say flat out we never have enough testing ever. Yeah, Gavin Gavin has a good point the correct answer to the question should I write a test is always yes. Right. The answer to that question. The answer is yes. The question is how many or how long should you spend. We talked about the governance meeting like even the Jenkins IO site, it there was a talks about having a link checker hooked up to it right which just went through each link to make sure the links are still valid. And that never got implemented. So like, there's always yes there's always more tools and things that can be hooked up. Right. Exactly. Automate. Go ahead. Do we have a list of tests that we would like to have. Then there's another one of just going through the docs and finding problems and then coming up with test suites that would automatically detect those there's sort of two different. I don't think we do though my my experience. Okay, I think this one right here get client plug in test transformation from J unit three to J and four is very clearly specified in a pretty straightforward activity. And then open and available as an as a new be friendly task for 18 months or more with X with progress from two or three or four different people and still lots of work yet to do. So that's that's just one what I would call tiny example and there is no, no creative effort there that's more of a transformative effort. So the creative effort part. So the test tests, etc, is is wide open. Good. Okay, so you reminded me, necessarily about this topic, but we should be adding synonyms for like master and slave to Agulia as well. I would point this one, terminology, terminology aliasing terminology seminate synonyms go really well in that search engine right because yeah, we don't want somebody who looks for the word master to be, or for the word controller to not get a good answer, even if, even if many of the plugins don't yet use the word. Yeah. Okay, Mark, when you are talking about tests, right tests, it's the tests inside the each plugin or its automation tests for the documentation. I really don't understand the difference. So they're well and they're there are many, many different levels of tests Jenkins a project with this much history. So there are plugin unit tests for each plugin for each plugin right. Oh, okay. There are plugin compatibility tests that check interactions between plugins. There is the acceptance test harness that uses selenium and goes all the way from the website all the way selenium and a web browser. I just asked because that because I right now I'm studying technology Cyprus. It's using for each we tests. So, I'm not finished yet but once I finish I can contribute with some automated steps for that. And that's a Cyprus is is in that selenium and web browser space right it will drive. Exactly. And there are there's even I would claim there's another layer in here, which might be API level tests of a full Jenkins. Right where call the rest API and test it heavily to be sure that everything behaves correctly behind a rest API call without using a web browser. And then again there are also things like in the get plug in or get client plug in there's Java, what's it JMH performance tests right which measure very specific performance or there is the other one that the Apache project. What's the Apache project that does how embarrassing. They meter performance tests now those don't I'm not aware of any of those that exist right now these are very few. And I'm not aware of any right now and but it's being discussed how should we assess performance and scalability. I'm not again not very docs related but for just activities is always reproducing reproducing and creating test cases. You know I know we we haven't really ever talked about clear you can Jira from on the on the whole the whole project side but just being able to go through random ones and saying you know here's a Docker image here's this pipeline that produces this issue goes a long way to getting something fixed. Yeah, good point. Oh, and Mark we talked about this to back to the one about the pipeline steps is even just something that flags you you've coded a step or you put a step in here and you've not documented it. Oh right right that's a fun one complain when and when a new step arrives without documentation. I know there's a bunch of them but we can't really say out of all the steps that are supported and all the plugins how many of them have documentation. Or, or this one might be report the fraction, the number of args of steps with documentation, any documentation, and report the number of arguments with documentation, just to track it. And that's not a bad enhancement for a particular tool we already have so interesting interesting idea and nice when somebody creates a new plugin that has steps in it. Even if we do nothing then you know give them a dirty look to tell them you have added three steps none of which have documentation. It has its place is the pipeline generator run on the public info or the private info. It's, I think it's run on depression. I thought I thought it was because public. I was thinking about it if you had a standard format. You could use the ng warnings tool to actually parse that format and make graphs. Exactly. Yeah. I think I think you hit it exactly Gavin there's no reason we couldn't make this look like J unit test results or something like that and get a graph from warnings ng. Yeah, and yeah this is the thing and it in fact is running on the public infrastructure so it's visible there. We have everything we could do to make it easier for people who develop plugins with steps to make it easier for them to document them. Would there be some sort of template we could provide them or, you know, a blank screen is intimidating to a non writer. But I don't know if there's anything I think it, it's very easy to start with right now. Kristen was was saying it's just the HTML file in your plugin to start with right. The most daunting part of that process for me is deciding deciding which directory the file should be put in. Yeah, and what the name of the file should be and it's very rigorous pattern. But if I get the pattern wrong, I don't get the content. It might be too late to put it in this tool though it might be worth putting in the parent palm, so that it won't even release just like java doc stuff won't release unless the files are the file to be empty but the file has to be there. And those those kinds of that's that's a much more bold step, but yeah so parent palm. If the file is there, then anyone can contribute to it the like it's very hard for a non author to add a file that's documentation it's just you don't know where to put it. But if an author plugin author puts the file there and says to do documentation or anything. It's gonna be a lot easier for a third party to come in and help. Yeah. That's probably what you're saying it is. If we were to populate with empty files, or with, even with a TBD file where it just has to be insert your text here. That would be probably be better for them. Yeah, that's a very interesting or like you said with the improved doc links on the bottom of the page like the generator could even just have a link into the plugin. And create the file or something, you know, right, right. I'm just, I'm tossing them out I'm not saying any of them are any good just throwing out ideas. That's why we're here good. Actually then we could give them something I mean, I also see if I'm not in the habit then I've got to go look and see how do I code a paragraph and HTML. We could actually give them a stub file that had a little bit of the basic coding that they need because they probably don't need very much right. Maybe you're coming, you know, we could give them a stub file that they could copy and put into a file with this with the right name. Well, and I think it's, I think you're on the right track that the actual layout of those files is pretty simple. It is, you do this you put in a div marker, then you put in the some text about the step or argument, and you end the div marker, and you're done. And, and we could fill that in is that could be the skeleton that's provided by this tool. Yeah. Well, yeah, it will generate some level of bitterness because, oh I ran this tool but then I never filled anything out and now all my tech, my help is not terribly helpful. Yeah, it didn't exist before this is not much worse than non existence. Right. Or, or okay hey we could even do this. Watch. Now it becomes invisible. Right, it's just a comment. But, but okay good idea very good idea. Mark related to this maybe and related to testing also in case they would like to contribute not necessary in automating tests but in manual or how we call interaction tests, right fine for instance, the links or any other. Well, some favors in our documentation, that would be great as well. Right right very good yeah so well, confirm that the steps work and are clear. God glad he's tough isn't he. Very good. All right anything else on anything else on the project ideas. Yeah, I have. Yeah, so it's related on one talk to it we talk some months ago, and I start to contribute. So I'm just send some links to provide an example for everyone. So, for example, it's, it's about to keep our old versions for our documentation. You know, because for simple and the first stop there, Meg just was asked to update every, everything, all images for new Jenkins version. You know, but there is a problem because if you we just replace everyone who needs the old documentation have no access to it, because it changes. You know, so for example, another documentations I just send the project on the chat. So if you can just open it, please. There is two, two different approach to resolve so the first one is the JavaScript root for sample. So everything on the documentation had in the green on the top, the three dot one dot five version. It's the delisted person. And another versions it skip in another page for example in the night and all previous snapshot. So for example in the list you can access the reference doc for documentations that the verse plug in person. So it's an approach to documentations because for simple. No, everyone it's in the top of versions. There is companies using old versions for Jenkins, for example, and another, I just was in JavaScript for give as an example but there is companies that not it's on the update. You know, so you need to consider that that problem because people just come through our side and and we can't fight figure out how it's the version. I'm just reading this documentation. So another example of solution it's the first link. I sent to you click it on the above the second. So for example, the first one, these guys from Laravel is just took and snapshot for entire documentation. So everything is changed. You just keep to it and and just move it. And you can check the same things always two years, three years ago in the previous versions. So you can just check and sell yourself for information. So maybe it's a solution. So for example, Jenkins now it's in kind of person how updates for the next version, instead of the data entire documentation, we can just create another Apple and link. And that Mary page. So there is some useful for that idea. Yes, so, so I think this aligns with what I've seen conversations what I call it is version documentation documentation for the site. Yeah, attach our documentation from which Jenkins person. Right. Yeah. And I think they're there are a number of examples that do exactly what you're illustrating. So just like Laraville does. If we look at get. They have, they have versioned version, let's see, let's do this man get clone. So in for instance, right here, choose version of get you want to use and and oh here it is and it's, you can see evolution by looking oh wow the arguments are different there than they are here. Yeah, yeah. So for simple it's a good thing for pipeline solutions because for simple everything we have right now about pipelines. Maybe it's out of date. Or maybe there is new parameters to group script is and so on. But if you adjust the rise, the people who needs the old documentation the lost information. Yeah, the challenge for me with pipeline is, is that the, the version that I pick here. Imagine this UI would have to be the plugin version or set of plug in versions that I'm using locally installed not the Jenkins version. Because, because we've got a this dynamic surface that is Jenkins plus the set of plugins currently itself and that's exactly what they get from their local installation. They, if they run Jenkins locally they get help online locally that is exactly their plug in versions. Yeah, I, I like the idea because I have used it. But I think unless you can keep your current documentation up to date having out of date documentation to support as well as current is going to be a lot of work like it, you know, and then as, as Mark pointed out you got your plugin so you got your different versions between plugins produce different syntax, you know, then you got the different versions of Jenkins, then you know you got fixes, then you got new plugins. It's, it's not as straightforward as you might think. I think, but on that note, there's no reason you couldn't link to archive.org, you know, have a on each page just have a link at the bottom that says look at past results, and then it just goes to the search bar, and this like the last. I don't know how archive actually doesn't that might be a good escape pause when you have less volunteers. Another issue is the structure, like the get page that Mark pulled out it's an old man page. And it's easy to do verging on that. We have that pipeline syntax which we call a reference page. And I mean how in the hell would you version that thing. And then the steps, you know, I mean these are, this is not, I've been, you know, I keep looking at those and trying to figure out how we turn those into something man page like. Yeah, so I think what you're saying it's difficult to version version the syntax of individual plugin pages with a single global version number right because it would be for each specific plugin that things version. Right. And then what would it be there is. There's the plugin steps reference page that lists all the plugins and the steps that they provide but then there's that other page that sort of common steps or something. So that I haven't even figured out what the criteria is for getting on that one and it's arranged alphabetically, but it's basically in terms of doc format it's a guide. So is this the one you're just you're describing Meg I'm not sure. That's the pipeline syntax. Right and then steps. It links to the two step references up at the very, very top, like the second paragraph at the top, or where was second. Shoot shoot. Ah, the bottom paragraph of the first section just above declarative for the pipeline steps reference. Right. And now that's that one that's the auto generated one. Now wait a minute somewhere around here there's another page. I'm reading slowly go back the pipeline syntax. And there is, there is something up there. I believe the last line of the first part of syntax comparison. Is that, is that it. I don't know I don't know that's comparing scripted in and and declarative getting started with pipeline maybe. Wait a minute, go back. I can't pull my own copy. And script. Maybe go back to pipeline steps references that have something of that. I know it's here and I saw it fly by I just didn't read it fast enough. No, that's the step section shoot. There is another one that has the common. I think it has like right file and this sort of stuff in it. It's actually a plugin. So if you mark if you go back to the full list, there's a utilities plugin. And that's probably what you're thinking of. Just look for right, right, right, Jason. Right, Jason. Yeah, pipeline utility steps. They're okay. This is actually a specific plugin that that implements a bunch of pipeline. That is one plugin. Okay. Yeah, that would be a good job. See this I could see a man page for each one of these steps. And then, then you could version that like versioning guide material is just dicey for all the reasons Gavin said and more they just, but something like this where it's specific. Now, the interesting thing about this page it is auto generated, but you can go back through all past Jenkins like the releases and grab the. The HTML files from those releases and generate docs. Now it is doable. But I say that in this in the strong thing from the support side because I do a lot of support work. I want to encourage people to upgrade as much as possible. I don't want the money old version security issued versions features that don't exist. I get we get a lot of people that says oh I can't upgrade to get this feature you're like well if you push that you want this feature it's a good reason to upgrade. You know, so on one hand I totally agree with having the docs as an end user it's very good to be able to go back in time and see the past versions. But on the other hand, I want them to upgrade get the latest version get the latest docs get the best features get more eyes get more bug reports that kind of thing. I will say to that like the drop down that mark had. That's not my favorite for man pages I like towards the bottom just above the see also section. A section that says differences between versions. Yeah, because most of these things don't change from version to version. So I find it's really useful to say that at release such and such we added this option. Another another like nice thing about this the spring documentation it's in the left the left menu the side menu, each one it's kind of a kind of plug in. So if you click above on it's each one in different version of this spring just just pick one person like click. So it's 215. And there is the previous documentation so if you choose a partial sort of partial yield. It's another it's above another version. So you can. Putting the version. So if you last tab you have open just putting the version number of pipeline utilities that was used to generate. So, yeah. Yeah. For example, another thing I agree with Kevin say, of course we desire everything up to date. But in the reality inside the company. I'm the technician I just tell with the people look guys we need to update our environment. But we need to stay here the entire weekend we need to upgrade several servers we need to upgrade scripts. So I lost the fight. Because the people don't want to have trouble with that, just because there is no new amazing future in the next person, the next. Yeah. Okay, so, so I think what what you just described is if we were to add version number into this heading for instance, would would that be or or someplace else on this page. In the beginning because I'm in the previous version but I'm reading the entire documentation to just realize, oh, it's the new one. Yeah, I see three easy wins right here. One is getting the version number to is getting the link to archive that org for old, old docs, and three get the link to the actual file in GitHub, because that would also allow us to allow people to contribute easily, but also see the history, like you can go back to this file has changed 20 times last. So those would be three easy wins. And then the harder wins would be or the harder ones would be get a drop down to go back in time. Just because you have to publish this static file every single time which would mean each plugin. So 1800 plugins times whatever 100,000 100 versions per plugin this W mass amount of content. So I would say you can go for the easy wins right away and then if people start using them and liking them, then you can start adding more of them into it. It's a good strategy. Okay, so let me see if I can and and of course we don't need to documentation the past. So we just need to just track now for the future. Okay, so Gavin, the quick wins were include the plugin version number. I was trying to work at the same time plugin version archive.org link and link to archive.org for older pages old copies of the page and link to the GitHub the file on GitHub. So like the improve this, but you also have diffs and you know, which was mega comment. Yeah, so now, now file is a plural in this case, because every argument gets its own file. Yeah. I mean the end of compare version where it says compare two versions you could have a something I don't know, I'm playing out is not my strength I'm more in the technical side of all this so. Well, compare versions has has one there's a file that provides this text up to where's the first variable up to there. And then there's another file that perverse provides this text, and another one that provides this text and another one that provides this text. There are actually four files in this in this one little thing compare versions. Stepping on easy easy win, but it's a doable win. Right right and I think we have a tool that does this right there's a there's a program that does this extraction already the pipeline steps doc generator so that tool could be extended. Cool. Very good all right. From sections of the pipeline steps. Actually, I wonder, maybe I should put this in as a Google summer of code project, because why not this is coding right. This is absolutely coding. This is not writing documentation this is truly a coding exercise and fits with some investigation people are already doing for rest API documentation. Good. Okay. All right, anything else on on project ideas you've been much more productive on project ideas than I ever expected. Jonathan anything else from you. Did we cover the ones that you wanted to express. All right. Okay next topic then contributor onboarding. This is sort of the poster child for Vlad and, and Jonathan and others who have had the terrible bitter experience of trying to get started developing docs for Jenkins.io. What she now reported is she had real difficulty doing development on windows and many, many developers windows is their machine. So if we make it difficult to develop on windows we've put a significant barrier to them creating additional help materials for us. Do you do you have notes on what with the issues. I think it was Docker based right. Well, the disgusted with with Oleg and Zenab in the session. And we suspect what it is is that we have a combination of Docker based tooling that has dependencies on WSL and Oleg was able to get both WSL one and WSL two to work. But Zenab had failures on WSL one and could not upgrade to WSL two because her computer didn't support it. So, so she was hitting these barriers and Vlad I don't remember what your experience was but I think your windows experience hit some similar challenges where you just switched to Linux eventually like I did. I guess on my windows machine I had WSL two. And it didn't have these issues, but also originally one time. Well, some time ago, there were some issues of Docker on windows and originally the windows was not supporting Docker. The time just solved this problem to us. So, for example, in the exact moment when I started and I had trouble to build my local environment. And it's just allowed to the WSL two. So my machine it's unable to upgrade to that anyway. But now that's over. So most of windows just have the WSL two and the Docker just updated his last release and the stop to use Hyper-V. So there is a new I can explain with all details, but there is another kind of architecture that just allow you use everything without this. This early problems. So it's that problem. And the other hand, the Docker two box, it's the Docker before the Docker four windows is just depreciate. So there is no way to use it and more. So if the people it's running on Windows 7 or Windows 10 the first versions, there is no solution for it. There is no Docker. So I just use need to use Docker in my windows machine because they make comment. Don't work well and no Linux environment. So because that I just need to move for Linux or update for WSL two. But now, as I said, everyone's it's able to work on it and just update. And once you have the WSL two, there is only one cave rat to be aware. So, for example, if people are working on WSL two, but what the source file and the windows side, they some issues there. So if people are using WSL two, you need to use the Ubuntu terminal, for example, to check out your environment. And once checked out inside the Ubuntu, there is no problem just use everything as windows side. So maybe put that information in the documentations could help a lot of people. I can provide that is solvable though there is configuration would get to solve that. But yeah, so I think the synopsis where was if you're using WSL two and Docker hub not any of the previous or Docker desktop and not any of the previous versions it should work just fine. Perfect. Yeah. But yeah, and, you know, I know we the last meeting I talked about said do we want to switch to Gatsby, and then there's a note there said I don't know if that will help. The reason I originally suggested it was that JavaScript and node specifically work really well in native windows like you don't need WSL for it. So that was the only reason I was throwing it out there is like if we're going if we want to convert it away from the make file and the a doc and the Ruby and the weird 16 different programs to convert things that would reduce the amount of effort it takes to get people on board. Sure, sure, I agree. I agree. For example, I never use make in my life because I'm not a Ruby programmer and not involved. I use Ruby but as a regular user. And for example, I was really complicated in the beginning. It's also interesting because there's a thing called a rake file in Ruby, which would be cross platform but a make file is only in Linux base systems. Yeah. Correct. It's so so the the notion is that it's not it's not just, it's not just a dog or a construct it's that we've got tooling over the top of it that assumes a Unix environment. Right and make make files are classically Unix environment. And I, and I know both environments really well I can help out but it's not my area of specialty so. What about isn't there now a Linux, you can run a Linux window in Windows. Yeah, that's what this WSL to thing is. Can you work Jen Jenkins IO in that environment. And you can Oleg has confirmed he does it all the time windows and Docker desktop but the problem is Z knob can't run WSL to on our computer, and she had problems with WSL one. Oh, the WSL and didn't work. I know I don't recommend to use it, but right now I'm working on the version to it's perfect. There is no problem. It does work. It just takes effort and it's less effort. It takes less effort to stall Linux on top of windows than it does. I've gotten it working, but I just I run Linux most of the time anyway so doesn't for me. So, what what Gavin said is Oleg was confident he said look, he made WSL one work but I think the operative verb there is made right or we forced or or coerced and Docker also there was the issue right because in WSL one that the glue was on the Linux side and WSL to the clues on dock on the Linux side, and that means the paths work properly in WSL to they don't work right in one you got to have all kinds of mapping and custom support it's it's doable but not worth the effort. I'm done question. I don't do I don't keep up with windows at all so. I was in Europe and America how much how many people either that are stuck with WSL one and can't run WSL to is this largely an Africa problem. I don't know I would assume it'll be CPU based so like you have to have the right CPU, the modern CPU so it's hard to say. Yeah, and I think that the entire world has a problem. The young kids in Africa are getting the discarded machines from Europe and America. Probably. No, I mean one thought is that, you know, we get like at least for our people who who get, you know, do the summer of code and stuff that part of the deal is as we send them a brand new spanking new windows box. Hear me out. They we give them digital ocean credit, and then they use remote VS code, because VS code over SSH is amazing. Now, actually, that's not a bad group who is actually is an old windows person and she's now being, you know, having to deal with this. She loves the GitHub editor. Yeah, that's a whole bunch of her work with that. Yeah, I mean it drives me nuts because I want my VI facilities but there's also a new one code share code something that is editor in a box from GitHub. It's hosted but Yeah, I do I do my work in vm to so I'm all Linux shell stuff but with VS code there's actually a plugin for WSL Docker and SSH where essentially it runs a tiny little binary on the remote system. And then it communicates across that so you can you can edit files remotely as if they were local. So you could have all your tooling and everything else in VS code on your own computer. But then it would connect to remote machine and you could open the terminal you can run make you can run everything else. And it would just it would work right there's latency when you hit save but other than that it works and the issue of internet reliability and developing countries might be an issue too. Yeah, but I mean, that would only be so that only happens when you open and save the file the rest of the time the files on your disk it's not like you're running remotely. Right it's just when you hit save it sends it over the wire puts it on that disk. Yeah, I guess that slick. It's perfect. This would be a good project for she codes, because they're there is to try out some of these different alternatives and help us. Yeah, I mean, if you leave me to resolve this I'm going to keep coming back just run a Linux computer and all will be fine. Yeah. We were talking to governments we do have some budget for these things too right. And I'm sure we can get some sponsorship from various cloud providers that I won't name names for. I mean, yeah, I'm not supposed to be naming names right. Oh no you can name names rolling in dirt and desperately in need of some good PR. I don't work at Digital Ocean now so it's no no shame in mentioning a solution. But I mean, I mean, yeah so anything any remote things so like the five dollar drop it at Digital Ocean will work perfect for this because it's your editing files and then once in a while you had make and that might take a few minutes to run make on a slow machine, but at least it runs right and then you edit files and you had make again. And that means that anyone with a computer Chromebook could run this because you can actually run vs code actually as a website. Huh. It's crazy what you can do with this stuff now. There is another maybe another solution for people with problem with Docker and that was a true. I heard some time ago, there is another Docker solution, the department, then it works different in windows. So someone's all right, try it to create an image using the department. Oh, oh, pod man. Yes. Yeah, right. So, alternate Docker creation. Yeah, using potman maybe I don't think in this case, it's the creation it's the runtime that was the challenge if I remember. Yeah, when I heard that the people just I never tried but they just say they work in different way of I would suspect it would still need Docker desktop as yeah. Oh, okay. I've never used this and I don't know. Yeah, I've never heard of pod man or I am G being available for windows at all right there. I am D directly uses the low level Docker APIs. So it might run in WSL but you can't run things in it you can just write create images with it. Right. Oh, okay. So they, I mean I love I love image but images all about creating Docker images without having root. Okay. Okay, I mean I definitely can help with some of this stuff but it matters is just how much someone wants to spend time, the first the first target user right, you know, when that Kubernetes docs was being written they didn't want to spend weeks setting up in the infrastructure, they wanted to get it running so right. Yeah, it's fair fair point the fastest, the fastest path is exactly the path that Xenob took and they make described use Linux. Yep, actually, AWS has the we use it one of our jobs we use can spin up a dev environment complete with a GUI, the remote terminal and yeah it sucks with slow internet but it works. That's the thing is there, their technologies all like not peer to peer but like stateless so it works if you get disconnected you can reconnect easily. Okay, so I, yeah, good. Just I wanted to add about how to make it easier to contribute Jenkins docs. Apparently, besides like, well, not not related to windows specific theme. I look in what inspired me actually initially to contribute to Jenkins, and it was a serious I mentioned this already I guess before serious or one minute video tutorials made by lime about blue ocean. So, I think we have enough documentation but there is lack of video materials video tutorials, very short ones, which explain how to make certain contributions, which tools to use how to use tools. In my mind should be very short, very precise, something for instance what you ever mentioned right now, how to use remote VS code using digital ocean, or maybe separate it and like different topics, how to use visual code how to get this. Well, some kind of suggestions but it may be not related to visual code at all, how to contribute to documentation what to do what tools to use, and so on. And it will be also contribution to documentation and at the same time, enabling them to use infrastructure for like in handsome now Jenkins experience. Well, just thought about how to make it easier to contribute. I love that so I have a story to tell on exactly that example. My story to tell goes like this, I'm tired of people complaining that they don't have enough examples of pipeline. And that's the most common complaint on our on our pipeline reference materials, give me more examples. I think what they really mean is, I need to write the pipeline, I need an easy way to do it and they don't know about the syntax generator about the snippet generator. So I did a 90 second video, exactly pipeline snippet generator and posted it in the get plugin page. Exactly. And it was a beautiful market was beautiful. It's actually terrible, but it's better than nothing. And, and being better than nothing, it has hundreds of views in the week and a half or two weeks it's existed. So I didn't I didn't promote it on social media I didn't do anything except embedded in that site. I need that link because I, it comes up all the time and in IRC where someone goes a I tried to do this thing and I'm like well, did you check the syntax generator they're like yes I'm like did you click the link on the side they're like no. I'm like then you didn't use the syntax generator you know, so. And that was, that was the motivation here so it's this thing right here and it says this 90 second video clip introduces pipeline syntax snippet generator. And now I cheated and added one more a 30 minute video from from Darren Pope with his permission but 90 seconds, and I think that the test there was, and if we look at it let's see how many views it's had now 400 views, since the third of February so we are three weeks in, and it's 400 times. But if you remember mark sometime ago we discussed about published video in chain in Jenkins channel. And we just have a problem to validate the video content and to add new contributors for channel. There is some progress on that that because you because the problem was check all videos we receive and how to approve it. It's about the workflow to receive videos tutorials. Correct we and in fact that's a good point we don't have a way. That's a very good one we have no workflow currently to submit a video. So let's move to the Jenkins channel. Yeah, I remember we need to check how to create a new publishers at new publishers inside the YouTube platform but it's not so well fit for Jenx desire was the answer I received. Although, go ahead. No, I'm slightly I just you remind me something to go ahead off. I'll finish when you're done. I think we could link to, we could create that process and link to other channels from from the Jenkins channel so there is a there is a playlist in Jenkins right now called other people's interesting content or something, which is is play is those that are Jenkins related but not in the Jenkins channel, the others we could just set up a workflow process to allow us to review videos and upload them. There are several of us that have permission but we haven't we haven't defined it yet that's good. Yeah, that that is one way and another way for sample from Jenkins account from YouTube you can create a sub channels. So you can create for sample a sub channel just call it community channel, Jenx community channel, and that channel, you just add everyone who are approved to publish video for sample. Oh, we are here in this meeting for simple could be receive a role of publishing and you have authorization to publish new videos that once the video is approved for three others people. So we take kind of process. Yeah, so you can use the just a, a sub channel and for example, as let's say we can create small videos and just publish. Good. Okay, excellent. So, by the way, I can make I'm going to put you on pause man was next in the queue. Go ahead. I might I'm going to rail this conversation so I'm more than okay back to you then that's great. I can't tell you how long I documented the snippet generator and steps etc. Before I figured out that those were tied together. And if I go to the steps reference pages there's nothing up at the front that says if you're having trouble with this syntax. There's also not a reference that says if you want to know what steps are available on your Jenkins instance do this. Now now wait a second, I am going to I'm going to challenge your assertion because there is at least one plug in that that very much because I got so annoyed at having to describe this over and over again. This thing says use the pipeline. Use the pipeline. A single plug in saying that doesn't count as the dog's having it. Maggie Maggie was searching science that time we talk about for this page. It's a detective. Not all code not all. The developers are as erudite and kind as you are, we should model of you and put it at the top of the frickin page about all of the steps. We have that we have that issue on on our seal the time someone come in and be like, I created this thing with an input file parameter and it's not working and you're like well do you have the input file parameter installed and like no. Why why are you using this this thing and the thing is they go to these docs copy and paste it and expect it to work, not knowing that the plugin also has to be installed and you're like you have to go to syntax generator see what format your server supports. So I'm very much in favor of that getting more bigger better. In fact, it should be like a 42 inch font at the top of the page. That's right don't be stupid use the generator. I wasn't going to go that mean, but yes, I was thinking it. Okay, cool. Going back slightly videos. So, I do like the idea of having more videos and I like having them around. The problem with videos is they get out of date very very quickly and they're almost impossible to update. Right because you have to free film. And that being said, I have heard of there is tooling out there that can create videos as code. So you essentially give it a bunch of like screen commands and it's more like a screen cast than an actual video, but it can actually recreate videos for you on demand and I don't know what it's called but I have seen them out there I know they exist. Oh, and with narration or is this just. It might be one of the newer like text text to speech narration type things but I don't know I like this is not my area of expertise I just know that one of the companies that worked at are one of the open source projects I had, I had made it. In fact, if I were to randomly guess I would say just phrase because she makes the weirdest tools on the internet the best tools. I would say that something she had some demo flight had that. Interesting. I think that sounds fascinating. That would make a difference right because any video you make, I would say in like a week without a date. You know we might change the UI, you might change the plugin release met a bug fix. And that's the problem with linking videos everywhere. I would also add a more mundane because I'm a more interesting. Even have making sure that every video says what version of all related softwares in there at least I know if this is old or not. If you decide to use video we need to just create the template. So this is the introduce. So you need to explain which version is with navigation navigator you are using which environment you are working on windows linux and so on. And just put the data on the recorder to tell the people you love man. This is visual for three years ago. So it's really, really up and out of date subtitles I must be mandatory because otherwise accessibility is an issue. So to subtitles I work in a project called Amara.org, and that we can create subtitles for videos. So for example, if you if you decide to use videos we can once publish the video we can just set sent to Amara the link and another volunteers could create subtitles. I use to practice my English. I don't know how to do it. I've never done that before. Okay. But I mean I have I have friends on the website that are big into accessibility and they talk about all the things. And you know I have friends who are deaf and they get so pissed off at videos that have no subtitles. Right. Sorry. Oh sorry. So sorry, I just sink in a lot. Yeah, but I mean it's not hard to add them. I mean even if worst case the auto generator ones work. But you got to, it's better to have actual proper ones with the right, especially tech videos which have terms that don't get translated very easily with auto generated so. Yeah, it sounds like a great experiment. I love to try it on that little pipeline syntax snippet 90 seconds of adding subtitles is not that much. I can almost type fast enough to keep up with 90 seconds. Good. Okay. Others on. Let's see our general topic is contributor onboarding other suggestions. One of the biggest observations was outreach programs are the single most crucial thing is getting people into the project. And he suggested a UX hack fest like we did last year, or bribery, sorry, incentives. Get a t shirt. If you contribute this many documentation pull requests or something like that. And that one is, it's the classic hacktoberfest challenge right how do you quantify, and how do you make it so that the contributions are net positive to the project, not net negative. Kevin, somehow or other you went silent. I think there's an even higher thing. I think there are people out there who are just too shy to join in that we need a different sort we need a different sort of messaging and different sorts of groups. And I, we've already talked I mean, every there's, there's a zillion things going on now for under represented groups have all their tech groups, reach out to them and explicitly invite them say we are, we are nice people, not all open source communities are as nice as Jenkins is. There's a couple that I touched in and it's like no life is too short. I wouldn't even say most Jenkins is as nice as a docs. I wouldn't even go as far to say that I think the docs is nicer than anything else at Jenkins. Well docs is always nicer than the software. Sorry, I was going to shoot on that note too. I do know the digital ocean does have. Oh, right. Any contribution is a good competition. I don't like the whole had to refresh controversy about bad contributions. There were ones that were obviously spam. But I think there's there's difference in spam and bad contributions, any contributions a good contribution. In case you started even if it's not accepted. Okay. Yeah, thousands of dollars were given him a, you know, $10 t shirt. Yeah. Also, but it is something you do need to reach out to digital ocean on this one this one I can specifically say, because they have programs specifically for contributing docs. Now most of them, they want tutorials for their website, but they do have open source programs for creating docs so this would be something that's worth reaching out to them for an event you want to do. Another nice thing I experienced in another community I participate it's sometime ago I was a student gaming programming. So for example, I sent a sample of Lincoln the chef. If you could open that. So, and that special occasion occasion, everyone is just learn together about this gene quality food, and they create this kind of budgets. So for example, there is a gamification behind the contribution. For example, if you created a new page, you receive a star. There is inside of your name inside the project. So the first, as you can see, is a sample of the get started budget. So it's a program. So each new member, for example, the first dimension, the first link you publish in the tool, the first edition page you do in the documentation engine and China. So you're reading, reading guidelines. So for example, when you just read 10 pages, there is several ways to manage that. But it's a kind of program to to track every contribution. So for you can say, for example, when you just contributed with 10 pages you receive it to shirt from Jenkins, for example. So it's kind of benefit attached for the contributions. Yeah, so hang on, let me capture that so it was badges and I think we had had badges mentioned somewhere else. Badges. So that while you're typing that list of badges is actually built into the foreign software the discourse for software. But there's also X Mozilla project that got transferred away called badger, which is back in those days where everything had a vowel on the end, but badger be a DG are there's no E. So badge, but it's a spec that you can generate badges and then they can be implemented they can be imported into your badge in various different websites have it so I think there's badger dot me or something. Quickly. Yeah. So I remember, and the first event, I participate the all like or or chain I don't remember just create a page and put our picture that. So, for example, you contribute to the same page. It's kind of that. But instead of instead of just related in one event related for entire James. Everyone needs a volunteer. There is a specific static page for sample for a touch. They get account and we can just add budgets for the people. So each event there is a majority a budget. And if you participate you just receive that medal and another medal for another contribution. And if you send 10 videos for us, you receive another better, but the Jenkins holds holds a page for volunteers to publish our steps inside the community. Yes. And so, Gavin, I missed one item in your, you'd mentioned badger and before that you'd mentioned another it was the, I think it's the collaborations are the messaging software you use. So the one that Jonathan had open is discourse. Oh discourse. So that's what generated that list of badges. I see okay. Yeah, so BAD GR is the spec, which is what you have there. Got it. All right. How would we tap into university students to the question, because I'm thinking I mean they're, I don't know how you'd set it up but but you have students there who are doing all this theoretical stuff and they really could use some real world experience of how you go in and you know with an existing project and code and you make a contribution and you get it reviewed and tested and stuff. And for them, they'd be delighted with anything that they can put on their resume that makes them more interesting to employers. Sure answer there is get chatting with teachers you know from your extended network, because there's no, I've not heard of any single central source for this is just you got to find teachers that are good teachers. But there's got to be. I'm thinking it's also a good time because a lot of like comp sign majors got that with summer internships, etc. I don't know how many internships have happened with COVID. You know because of all the travel restrictions. So this would be something sort of an equivalent to that. You know some some way that everybody who's walled off in their own little rooms could get some real experience. Maybe find some example of using Jenkins at some university process. So the automate, automate CI for instance, or CD and try to propagate it to other universities of campuses. Well, this may be a good as well approach something like Facebook started at one university and after that we went to another university and so on. I guess if there are some examples of using Jenkins at university in one of you like teaching posters are hosted by some university. I don't know if we have a situation not and that idea fits well. That's one that this whole reaching out to universities is one that advocacy and outreach just discussed two or three hours ago. So very good idea. Yes. So the plan is to do it for for next 12 months. I feel like next comment was less about getting them to document their use as well as much as getting them interest in open source and contributing so they have working like examples for a resume for portfolio that said hey I contributed this way. So rather than telling their story, it's encouraged them to use Jenkins for their own coursework. Well, no, like, you know, if you can't get hired unless you have experience. So often open source work on a resume is good so contributing docs continuing bugs and fixes. It's less of a doc specific topic and more of just getting people involved in the Jenkins project at the university level. For universities here from Brazil, there is a requirement, for example, which course and needs to have 200 hours for site projects. But so every Brazilian student stay crazy looking for opportunities to get that hours. But the institution who are the student participate should emit a simple certificate just saying look Jonathan participate from Jenkins for 40 hours so that I can take that document and just deliver in my university. So if we can provide a digital paper, a document, just saying the people helped us for a month of hours that it's a kind of thing that interest for Brazilians, a student, because they need site projects to to get finished the course. Interesting. Okay, that's, yeah, it's a government requirement to get certificate in any university course. There's got to be some association of people who teach computer science and universities. There are groups for everything and that was sure. Sure, there's the associate ACS and ask them how we could get, you know how we could work with them for mutual benefit. There's association for computing machinery, and they have chapters in most universities at least in the US, right, I triple E probably still does too right. Right. Yeah. Okay. The real wealth like the Stanford and MIT everybody's looking at them the probably going for like the second tier universities would be we find some real interesting because nobody's interested in them and their students and they anything that would get them some real experience and exposure could be a positive thing. Don't forget high schools. So, like, I don't know about US and Canada you needed so many volunteers to graduate high school too. True, which is a lot harder to get during COVID. Yes. Okay, good. Others. Okay, I think going to close call contrary contributor onboarding done for the moment. And on to the next topic. Season of docs 2021. So season of docs this year is different. We're, we are in the concluding month before the application deadline. So that's, that's a complex complexity that the doc SIG, and the Jenkins project would like to address we'd like to be part of Google season of docs 2021, however, the payment model has changed. They now pay us as a project and we choose the writer and hire them and pay them from the project with the money that Google provides. So, I've got an action item to find the money we got from last year that they gave us but apparently didn't arrive all the way in our account. And so we need project ideas and we need mentors to support those ideas. Thus, the question to you, what project ideas would we do with a Google, Google summer of season of docs. And the same thing see the she code Africa ideas. And the others that you'd like to recommend. Well, we have, you know, documentation current documentation we have just several empty sports. For instance, there is empty sport for different tools, which we're using. And I guess it is matching our one of our sections on Jenkins.io where we mentioned like build tools, I guess, how to control those tools from Jenkins. And we have this item in the table of contents, but it is empty pages for all these tools. Trying to fill out empty sports and how the condition will be one of the possible additions. Good, yeah, so polish the polish and complete the things I my my classic example backup page is empty. Really, we're not telling people how to do backups, but it's a complicated task. That's probably three or four weeks of documentation to describe that one well. I don't know backup is such a mess. Exactly. That's why I mean I guess I'm seeing that there it's more than a documentation problem though I mean there are. I mean, you know we've got 22 backup plugins none of which are owned. Can I just say use digital ocean snapshots any one of this problem. Yes, that's mine is oh just use a snapshotting file system I'm done doesn't that doesn't my free BSD that does snapshotting file system just work and Amazon snapshotting file system and Google yep, all in favor of snapshotting file systems but we don't even tell people that. I'm going to appear right now use digital ocean submit. Okay. And we've had we've had mention of ZFS file systems for years in the product in in the code finally got rid of a bunch of them of a but, but snapshot based file systems are a great way to do backups. Okay, you're quiet that's that's okay so next topic was. I'm wondering about I'm thinking about, skip down to the bottom of your agenda for a second that last one about architecting. We're ever going to get to an emitting the documentation inventory and reworking Rosal. We will break up into pieces for Google summer of docs. I don't think we can break it up because it presupposes. We're going to get back in this group are familiar with Jenkins and ready and willing to have a conversation. That's what I was hesitating about, but. Yeah, I think, I think that's a good one for us but for me the way I'm going to describe it is that it's one that will happen in the doc sig periodically and systematically as we look at slices of this step at a time. Jonathan Jonathan started us on it did a great job of getting that started we just, we've got an awful lot to go through and need to, to look at it as a general exercise and having multiple people in those conversations is really good. Right. That's what I was just trying to figure out if there was something there that could be done as Google, but cancel the idea. Yeah, I think the problem there is, is there are so many things that need context that. If we handed it to somebody inexperienced, they will make it. Well, Daniel Beck has noted on occasions we've made things worse rather than better when we've when we've translated from a wiki page into jenkit.io because the content that arrived was not well enough reviewed by the reviewers and we just have to be careful. Somebody who says, Oh, we shouldn't be using ASCII doc we should be using our ST or something. Yeah, never mind. Back to the university stuff. I was just sitting here and just for the hell of it I am Google computer science professor or check for that in LinkedIn. I'm not working so well, but it occurred to me that we could put a posting on LinkedIn about that the Jenkins open source project was interested in working with university faculty to get their students involved in contribution or something, and let some professors come to us who would be interested in because that would be that would help our mentoring if they had professors on campus. And, you know, we can support the professors but put some of the responsibility back on the professors to find the students and help them out with some basics. Good, good suggestion, good idea to the advocacy group as well. Yeah, because he can use the same idea. I generally feel like anytime you expect someone else to do work for you, it won't get done. And, and I think I think I can accept that right now in this case if they won't make it worse. I mean, even if you get one person something for them. Yeah, we're offering the professors a way to get their student I mean we're going to help with the mentoring we're not turning it over to them. Yes. No, I understand I'm just, I'm always worried about the hey by the way you should find someone to come talk to us and I'm like, I agree that sounds great. But in, in, in, in principle, I mean, and it's there's no harm in doing it. Right, you also got to expect nobody to reply because it's like they have to do three steps to get to us. Right. But I'm also I'm thinking there's a bit that, you know, we froze it and know that what we, you know we'll work with you and we'll give you this opportunity and, you know, we'll work with you to help with it. But that's also why I think high school should be included in this. Yeah, educators right. Yeah, high school yes education just save you. I actually I love my high school education with a computer terminal so it was great. Yeah. I mean, I just learned recently that high schools are doing robotics. Like it's just something that like when I went to high school none of that would even be considered. And now it's commonplace so we should be reaching out early and quickly just get people involved in open source. Let me throw just one question of what do you think is it possible to have like two way contribution with all these teaching organizations university schools. For instance, they provide students contributing to Jenkins, and we, let's say, help them organize or teach them how to contribute to GitHub by organizing or help them organize infrastructure. They basically want to very much yes. I think we have a good example. Uli Hoffner, a member of the Jenkins governing board is a university educator in Germany. And he uses Jenkins in his coursework. They actually do development efforts on Jenkins or they have in the past, using Jenkins for as part of the development coursework. Absolutely. I think it can. It's just, I'm confident if we ask him he'll tell us it's a lot of work, just like any software creation is right it's a lot of work. I also teach JavaScript, you know, before COVID times I teach JavaScript, and I have to time you have to teach GitHub the same time so I think that's totally within reason is if we want to get people to help us write docs, or any contribution to Jenkins, we should also be willing to help them learn modern software practices and how to use Jenkins and how to do CI, like it's a definitely a two way street it's not you giving us work for free. Absolutely. And every time you help someone you learn a lot so it's definitely not, it's both ways. Yeah, okay. Did you forget how different the university world is from the world we're in. Yeah, I'm seeing it just as opening a dialogue with people who are interesting what would you like to do and what could we do for you and what did you do for us and we might have, you know, Vlad said a couple of options we could have, you know, 50 different professors and 50 different arrangements but Docs doesn't necessarily mean writing documentation it can mean you know those the tooling, the infrastructure hell I need to help on the plugin site, you know, it's always other things that are not docs that are docs related so Right, right. But actually, I think we send a good message to we forget how radical I mean in in our community and several other the open source communities the idea of documentation as code and trying to do similar policies. That's not real common. And that you know so that we're out there advertising that we're looking for both software and documentation, really software and documentation experts and this sort of stuff, you know, and that it's all sort of the same. If you do software documentation it's all going into GitHub. It's all going to have to be tested it's all going to have to be reviewed. And you're all going to have to behave by the same code of ethics and all of this stuff. They're not silos. Excellent. Thank you. Anything else on the on the outreach and Google season of docs. Okay, so we are now at we've only got 30 minutes left. Let's skip the next two so that we can spend time talking about site search. Gavin, are you okay with that with Gavin here definitely. Jonathan, Gavin, Gavin are both deeply interested in this so let's talk. So Gavin do you want to first talk about what are you share share the story and what you've learned, etc. Yeah, yeah I mean you keep telling me to share what I learned in a few months but I haven't learned anything yet it's only been a day. Okay, okay Gavin has not learned anything to tell us about his experience. I will say I'm very impressed overall the goalie like flat out across the board. It was, I mean I followed a tutorial on gas being a goalie but honestly it was straight up easy to do it's essentially an API for you upload metadata to a goalie and then you turn around and search. So I'm going to use mark as a demo or while I talk. So can you pull up the thing. Sure. Jenkins plugin site but also the agolia login thing. Oh right I'll go to us so we want. Yeah, so what happens on tech side is every time we build this plugin site we upload the metadata for every plugin into a goalie. Now it's by far the least efficient way to do it but it works it was very easy to prototype. Indices it's actually the best one for this thing indices. Okay, so what happens is you can see here in that big box there that's every single plugin. So if you open up the more attributes section. More attributes where middle of page it should say show more attributes. Okay, that's the entirety of a plugin as data as we know it you know it has stats it is the current install categories labels maintainers that kind of thing. Inside a goalie you can mark each and every field as searchable or non searchable so in this case. I did it say okay you can search by label you can search by category you can search by maintainer and we want the wiki content we don't really care about the expert. Exert, we don't really care about version or required core, although mark and I learned earlier that some people search by versions we might want to add that in. All this data is just metadata right it can be anything can be any single value. And then on top of that they have their own dictionary so if you go show the top there's configuration. This is where it gets really the second tab there gets really powerful so there's like typo tolerances, language synonyms stop words so all the things that people can search for like they can. What was the typo that you found the other day that was really good. There's a word that you typed one thing. I think it was a plural and you got a singular back. Right, oh yeah strategy and strategies right. Yeah, so it has all these things built in without us adding them in and this might get overwritten so don't worry about it. Okay master is a synonym for controller. Yeah. So and now how do I oh and I so probably put it like this. I haven't, I haven't yeah go ahead I haven't done any of this yet. So, Okay, if you go. Yeah, there we go. So and then if you go to browse and you type in master. It'll actually tell you. Now for the plug in site this data isn't very useful but you see as you type that in. So you can see title there highlighted master. So you can actually do expose that information to the front end as well so user types in master it could be like oh your word was found three quarters of the way through the paragraph. It's probably a less good search, you know like all that stuff is all configurable, exposable. I'm really excited about this. So, you know I spent a week now just playing around with the features and got it working, but with minimal configuration we got way better search you know the fact that I can now search for digital ocean and not get blue ocean makes a big difference. You know, I figure I, I, you remember Marco we are talking about why another two minutes I use in our body. I believe it's because that kind of information. Yeah, so Mark, you and I may have to sit down and look at this and I think it might have to be done on the configure on the code side. Every time we create the index it replaces it. Oh, that's just because of the way I implemented it. Right well, but just knowing that the concept of synonyms exists is already so cool. And analytics and we barely even do any analytics and we were having we were in front of that in the last meeting right you can do you can see what the searches are, and you can see how many searches for what people search for. You can tell Mark and I have searched for the word ocean a lot. But like even searches that results is very useful because we learned that yeah people are searching for version numbers in when in site. You know, we don't have that exposure right now. I mean, yeah, there's a couple of us with I have Google analytics support now so I can see what the main Jenkins site has, but I don't think this any of this data is surface in the Jenkins I will say right now. What have you searched for code coverage is it going to find me the the plugins and the steps that would give go back to indices or go back to the plug and say directly. Yeah, okay so let's do code coverage. Whoops. Seriously, I mean code. So this is an example of the instance search mark so we could do this in the actual UI as well. So, so Meg, to show the real evidence here we go code coverage. API and reject. Now, oddly enough, it doesn't show warnings and G, right and for me I would have, I would have thought that we would put a label on warnings and G that talks about coverage, because it can report cover. So that's why you go back to that UI. Back here. Yeah, you do coverage. So how many did it find right. So it probably returned for actually. Oh, interesting. So by adding the word code. I narrowed it too much. Yeah. And it also right now because of my implementation it only looks at the first 2000 letters I think of the documentation. Just because it there is a limit to how much content you can feed it and it's configurable, but there is a limit. And there is something you figure out an Agulia that, for example, could become a project on Google Season of Docs. Because for example, you need to chant something inside the documentation to improve the search engine. A little bit simple. We need to move the need to start to use h1 h2h3 to create the talks for example there is something like that. There's nothing I had to do involved that, but I'm sure there is it. If, Mark, so if you go to the configuration tab again and look at the second. Searchable attributes I had to configure this to make sure searching the things I cared about, and ranking and sorting to make sure that it said okay take all the word searches and then failing that look at the current installs. So that means that if you look for get it's going to have the highest number installed so it's going to show up earlier than a new get plugin that matches slightly better on text you know that's the only configuration I really did. But it's all configurable, like even if you expand that textual one, it's very configurable so you could be you could have like location based words and how close the words are together and matter and all that other stuff. Typotolerance is interesting. Yeah, why can't you figure out what I meant to type. It can though. That's what I know all the time I'm typing something is like what's obvious what I meant. Yeah. So I'm very impressed. Olivia and I will look into getting the open source thing set up for plugins, but they have it very well documented how they're going to support open source so you don't have to like be a one off sponsorships. I'm very impressed by this. I think we can have up to 20 users, and especially read only users so I think if we mark if you decide you want to have some more users in here I don't think it's an issue, but let's wait till we get open source account set up first. Right. Yeah, all the configuration is done in code now anyway so it's a simple PR to reconfigure it. Right. So, but for me that the thing is absolutely this is a thing of beauty. That's really cool. Yeah, really, the best, the best thing about is it's this the stats information so by that on the next search, we can decide how to improve in our side. Specifically, so it that's another reason I believe another community like Laravel and you try that that suggests and sometime ago, are using now golly and they their documentation it's amazing everything you need is inside that. So it's a, I believe using our goal you really helped us to improve more amount. And it'll matter a lot more for the actual doc site. The plugin site has a lot more metadata. So it's a little bit harder to quantify this, but it's a lot, a lot less risky POC right because we already had search we already had all the features like you know mark you know I talked about adopt this plugin you can or you can already search by label before it just didn't return well results. So it was a low risk attempt. I went by real fast but I see that when you did the search that over in the left. There was a place where it said this is from the admin guide and this is from this guide, or something which is sometimes nice. Well, there's, there's a categorization. So these, these categories. They've been updated in like five years. Right. So, so the categories are at times dismayingly empty, like, let's pick what's. That's not bad four or five, but, but there are times when it's well let's see if this if I remember it was this one. No, this one there. Yeah, I'm getting good results. So that's great. Go to Agolia and look at the indices you can actually see the categories and how many are you each. So you get rid of the text in there. Get rid of right. Get rid of that. Okay, it'll it'll tell you those are the categories. Okay. It might even be the top categories, but there's 72 labels and none of them are surfaced and you want me they're in the plugin site but so that's something I want to improve so that this like, it should be very easy to see that adopt the plugin and search for them and Gavin, I saw your first demo that you you found some company that allowed us create something like that I sent another link. Yeah, just for simple in the search field, just type select just select. Yes, so we'll do this. Yeah. Yeah, so you have the section the sex. Yeah, the sections. I made I made this thing myself because of how the plugin site works. But if you go to Agolia demos. I think if you just Google for it, you'll find and they provide a box. You can just import them though they have a JavaScript review react one. So it all box. So, for example, Mark, if you have this kind of search bar in our documentation, the people just type coverage. They can access all sections that talk about coverage. So it's really useful to search documentation. The thing is when we start going through the docs and looking at the structure and all that architecture, because the docs do not have any categories assigned like the plugins do right. Right. Kind of. I would, I would call this thing on the left here. Right. I would call the section. The closest thing we have to a category right installing using pipeline. But is that that's not what you meant I think. No, I'm thinking, well, well, I mean, that's not I'm not saying throw that out. I'm thinking I'm searching for credentials. It would be nice to see capital place where I can link. This is credentials and pipeline. This is credentials and administration. Right. There's an admin component. There's a pipeline component. This is the step called credentials. This is the documentation for credentials. Right. Or this is from the IPI, for example. Or to see like if I look for pipeline, I don't know that's going to be just that, but, but I can find here's reference. Here's guide. Here's a tutorial. And actually with the, you know, yeah. Yeah. So from my, my experience, this should not be hard to set up. I mean, we're already building all the documentation from code. So the data is all there. It's in a possible machine format already. So it's very easy to upload. Like with the plugin site, doing it on every page generation might be expensive and they may not want us to upload it like 30 times a minute or 30 times an hour. I mean, but there's ways to work around it. Like for plugin site, we already, we can decouple the uploading metadata from the site generation. So we could generate the site every hour, but we upload the metadata every three hours. So the same thing here, like there are ways to work around their limit if they have any limitations. Great. So I will definitely be playing with it more once we get open source thing and I see us being able to hook this up pretty easily. And then it's just a matter of figuring out what we want to surface. So the more attributes you put in, the easier it is to filter or, and you can actually do is like complex queries. Oh, I'm actually hiding it in the plugin site, but you can actually do like you can actually in that search box do what you do credentials and category colon. I think and filter or something, but like, there's ways for you to enter a complex category with all the other stuff like a Google complex query. I don't know how to do it inside this box, but I just hide the fact in my fake UI and my fake search generator. It might be because this the drop the drop down beside it is just very text or something I don't know. But like it's all doable so yeah if we want to have a search just returned. Just pipeline steps, it'd be easy enough to implement that as a checkbox or anything else. Oh yeah, okay. That sounds very attractive because they're there certainly are classes of information. There are categories of information that people are searching oh I want. I want exactly a pipeline step. I want exactly installation instructions or. Interesting pipeline for Python. Yeah, totally. Yeah. Okay. So I'll see what once Olivia and I get this hooked up for open source account then we'll look into expanding it and seeing what we can support because Jenkins IO gets a lot more traffic than plugins like those. Excellent Gavin. Thank you. Other questions from people other observations so you had you you talked briefly about Insta search in the other session. Yeah, that was a Jonathan showed that and we did when you were typing the. Oh, okay. In the in the UI right it's just it's easier to demo that way. So I didn't implement it because I wanted to try to keep it. As POC is possible where we could just drop disconnected as quickly as possible. Right, but we could have type as you go search. So again if you look at your tab and type in something because you saw how it searched as you're typing right. And that's one of the things they promise is that you can get instant results. That's instant search. Very, very elegant. Okay. Nice. Yeah. I tried doing that when I first implemented search in plugin site or when I re hooked it up and it killed the plugin site API because we were doing, you know, every keystroke doing other search and it would take like two seconds back to the page would be render as you're typing yeah it didn't work. All right, well so we had discussed other possibles only did a prototype with elastic search and we talked about Google search and think we've excluded Google search because because they don't they may not see us as fully a nonprofit. And elastic search unlikely because they don't have an open source project right now. Right. And Gavin, you, you talk about something you are seeing with Oliver. So, I will offer some plans for open communities. We don't fit. We don't fit. We just haven't, we haven't asked yet. Oh, you asked it for. Oh, Olivier this afternoon is supposed to be doing I'm using meetings all day this is my first free block all day. So he's going to contact the team on their side and just say hey can we get it. And they're going to go yes, perfect and we already have the banner there so they're happy so we should be able to get it without it. Well, if you we fit with that. I put that very important search by a goalie link in there. Mark and I were testing to see if the plugin site had updated yet. No banner didn't work yet. That was that was our red flag right and there are still surprises there right I had to I had to flush my cash, my data cash so I assume. But so what I mean it really behaves exceptionally well now. And now that it's not likely to change again it should stay working for a while. The content is separate from the search results, or the implementation is different than search results. And once one of them requirement to free communities is just put their names, but there is no need for so big logo, maybe, for example in the last site I sent you. There is a small logo in the bottom of field. There is no need to be so big this this page at the best of times is very hard to style. So we had all we had it in the corner, but when you shrink it down to half the screen with not not mobile with half the screen with off the screen. So we. So I beck and I just for like, we'll put it there there's fine. We can fix it later I'm always an opinion you can always fix it later so we might as well get something that works and then fix it then worry about making it right the first time. Yeah, calling calling the page difficult to style is such a polite term. It's a very late the search page is very legacy but as we keep improving you know we're getting improved like did you did any of you know that you could change different result pipes have you ever used them. Next to the search button there's three different great our great boxes. These. Did you know that this existed. Build this page and I didn't know this thing existed. I just noticed today. So like there's a lot of legacy from a long time ago about these results I don't think there's any point in having anything other than the squares. Right, this sort of cards layout, because well, the others. Oh that's interesting and it certainly gives me more data right because if I remember in the squares I don't see the Jenkins, it's got the same data right it's just a different layout just CSS there's no difference in behavior. So I would personally remove it but just not a priority for any of us so it's a good summer code it's almost come in and clean up this page to make it more uniform. Right. Well and boy that would be an experience in JavaScript in legacy JavaScript and don't break us a production site kind of thing. Oh, I have no problem breaking production sites I do it all the time I'm good at it. I had pagination broken last night you remember that so I'm good at it. Just don't catastrophically break production students we want to teach somehow not to do it if they don't have to. Yeah, I actually believe in very much. I very much believe in learning to fix the problems instead of worrying about avoiding them. Right, so if you're afraid of making mistakes you're going to make more mistakes than if you are comfortable fixing them if you do make a mistake. So, but I agree don't don't break it on purpose but don't be afraid if you did break it. Good. All right. So, I am near exhaustion. It's almost been 12 hours for me. Are there other topics before we conclude. Now we've come in a lot. I'm impressed. You got you got two people from that go to the board meetings if you have any other questions while we're here to. Thank you. All right, so tomorrow morning. So roughly 14 hours from now, 15 hours from now we will not 14 hours from now we will have the concluding session for this you do not have to attend a recording will be available in the concluding session though we're going to do it a little bit of presentation and very much interaction between the people who are there. So it will be a more of a working session but we want, we want, I realized that it's only 14 hours away and therefore you may want to get some sleep, etc, also understood. Just be aware that the session will happen tomorrow and the recording will also be available. Okay. All right, thanks everybody. Thanks everybody. Bye people.