 Hello everyone, so this is the weekly meeting for the GSOC Jenkins Docker-based QuickStore. I lost account of how many weeks we've been working on it. Today we're on the 19th June 2023 and some things have progressed. I think that the main thing we have to focus on today is the midterm presentation and I guess you'll agree with me, Jean-Marc. So I should ask you we'll have to give a 10-minute presentation on the 6th of July if this hasn't changed yet. So we will have to discuss about that today and see what you will present, how you will present and so on. Jean-Marc, would you like to tell us a few words about that? No, you set the goal of this meeting very well because defining the goal's content and what is required will guide in the priorities in the coming weeks. So good work has been done as far as I've seen and so I don't have anything to add to what you said Bruno. Cool, I should touch what are your thoughts about that? Do we have the slightest idea of what you'd like to show? I haven't thought about it right now but I was thinking of watching the previous Tisha presentations to get an idea how things work. This is a good idea but also take the time, this is something important. What you would like to show? What is your goal? And don't forget it's you're selling the project. So there is also some glitter stars required for that and give perspective. So you should start saying I want to say this or I want to show this, this and this and tell them this and 10 minutes is fast. So you just have 10 minutes for that. What's about that? For the first thing I think we should discuss about the persona and showcase the use of the current example that works with. So it will solve for the first persona. Mainly for first persona it's not, for second persona I don't, I think we'll have to create another example. But I'm not so sure we'll be ready for the 6th of June to present anything for the second kind of persona. This will be maybe to explain where we're heading at. Now let's see what I suggest to move forward. We can start discussing it here but we need to come with a small document. Where you start to have the layout of the presentation. Just heading bullet points. This, this and this. Good idea. I have some, my brain is already but I don't want to impede but I'm used to that. Now this is important. You could have thought about that. I think you already thought about that while waiting in the train or maybe you slept all the time in the train. But I keep thinking about these kind of things in the background. And then pops, bing, there it is. Try to make the, not the summary but you know the first slide saying we're going to talk about this, this and this. Which is not a good idea for making good presentation. I'm going to tell you that afterwards. But then I'll share all the secrets of making exciting presentations. This is a whole other subject but you're right. Don't hesitate. I know that you're not in a convenient setting because I believe you're at work. But if you want to intervene in the discussion, either open your mic and make a noise or use the raise hand option. I know you're quite a person compared to me. It's not difficult. Don't forget, we want to hear what you have to say. Okay Bruno, go ahead, stop me otherwise and get too much excited about all that. Let me find my command. Ouch. Okay, what about having a look at the current issues and or pull request? I think I saw one this morning that I approved. I've seen a lot of good traffic. Are there pull requests that need to be reviewed? Yes, the one with the job you suggested to add some time. So if we should add the sleep command for three or four seconds before the. Yeah, I'm going to try it out this morning. I tried it out and it works fine. So what do we have? So I did restart and fail. I haven't tried it yet. It looks good to me because it follows the current recommendation. It's a blog post article that I gave in the issue creation. It was something that Damian DuPoteau had written a few months ago, maybe even last year. So this should work, but I will test it nonetheless and we'll see. The problem was that whenever you updated the plugins in the example, well, the Jenkins controller did not restart. It was just stopping. And what happens then? Now, with a correction? Yeah, yeah. With the restart and failure. I hope that you try again. I think the intro should restart. I haven't tried it yet. I've tried it on the port at restart automatically after 20 seconds. And if it's a failure that requires changes to the configuration, aren't we getting into a loop that we can't get out? I've tried it after installing new plugin and click on restart after restart before installing the plugin. So I haven't tried it yet. I'm going to check that normally when we publish it, it should be stable. And people should not start changing the configuration and break it. Otherwise, it's, it's there for soul. I need to look at it more in details. So my fear is that we, if something goes wrong, that we might end in an endless loop and. Okay, I've never experienced that, but why not? I'm using the always tag, which is not a good idea. I'm not following the Jenkins recommendation. So let's see if that's worked for you also Jean-Marc and doesn't go into a limited loop. We'll see, but I don't know why this could happen. Maybe I didn't fully understand the issue you think of. Okay, go ahead. Now I let you, I'm jumping all over the place. Continue the flow of what you wanted to say. Then I would I want to know from a shoot. Yes. There was something else that was bugging me, which is updating the continuous updating of the plugins have proposed something, but that it's not really beautiful to me. It's not super fine. So I don't know how we should dread that. I think that for the time being, maybe we should do it by hand. And not use a script to do that. The thing is, if you're using the Jenkins client command line to get the new list of updated plugins, it will give you also the plugin that you didn't install by yourself. You know, we have a very small set of mandatory plugin for our example. But if you use the Jenkins client thing to keep all the plugins up to date, it will give you a complete exhaustive list of all the plugins that are installed. And I think even if that works well, it's too much information to deal with. So I don't know, maybe we should just keep updating the plugins by hand. Yeah, it's more of a question than a session. I'm not so sure what we should do. So if ever you have an idea about that, please let me know. There you touching one of the fundamental questions of life. How to keep the plugins updated. You know, bevy unto you have practical experience with that. Probably, how do you keep plugins up to date by hand, or do you have an automated process or or a process. I don't have many. Because one of the issues there is also that they're all the dependencies. The plugin depends on the plugin that depends on the plugin. And don't forget that once we publish this example, and we're going to put the documentation around that, knowing the facts of life, nobody is going to look at it and it will get stale very, very quickly. And that would be a pain and we cannot do that. So I'm going to look then what you're proposing Bruno. So your your your proposal is a finished one or working progress. No, it's only a working person. I've got something which is more finished and that more polished, more clean. But in another repo, it even creates automatic PRs to keep plugins up to date. But that's maybe overkill or we're engineered for this project. I don't know. We could do that a bit ally or so, but you know, it's a whole other subject of detail. We could use it for lots of things for this project. But it you need to spend some time before being fluent with a bit ally. And I'm not so sure we have the time to do it. I don't know. And the other way we could do it is just gets rid of the pinned version. You know, so that it's automatically up to date, but it's not clean either. I think we need to crack that nut we need to solve to solve that we need to think. I agree with you about timing constraints, especially as we're short in time. But at least it should be in the technical depth should be listed. Going to have a look to what you've been proposing Bruno and see we're going to upgrade also the LTS shortly. And so we will be able to experience the work involved. You're right. Good point. And you had another PR open also Bruno. Yes, indeed. Yeah, adding job. I think you did it. Jean-Marc, what were you asking for? Oh, yes. Yeah, you were not happy with the job, Jean-Marc. Yeah. Okay. No, I thought so this is the third PR. And I should have added the sleep. So this one I need to test. No, I didn't add it yet. I was asking if I should add it. No, no, no. Yes. I'm going to try it and put myself in the place of the first persona. And so the attitude will be, what is this Jenkins? Okay, let's start it. And then the first reaction will be, okay, so what? And this is where a job kicking in, doing something. There you create and expose the material to start the conversation. So this is a scenario that should be answered. And some documentation will have to be written technical documentation, but also documentation by the docs team with our suggestion to say, well, okay, do this, look at that. And this is where you're going to find documentation for that and going to try that. I need to look at the PRs. Okay. I was also wondering if we should start their discussion with docs and infratim. Oh, infratim, not yet. We are not ready yet. We don't have anything that could be integrated easily and, you know, which is kept up to date. We have to discuss that, you know, with a bit, you know, about, or even about whatever. So I'm afraid we're not ready yet. As for the documentation, I think you attended once the docs office hours Asia. And, you know, most of the time, I never done that. My time. So, but I think it's just writers discussing writer things. So it's not really interesting if you're not a writer for Jenkins.io. But whenever somebody chimes in and the subject can change all totally, you know, if you come with your own questions, integration, whatever, they will discuss it with you. So I think they enjoyed you going there. If you still want to attend the next one at the next one and so on, of course, you're welcome. And this way you would know more about what docs people are waiting for what they need, how they think that the tutorial should integrate into Jenkins.io website and so on. So yes, you should if you want to attend the docs office hours and gather some information from them because you made a proposal. But now we have to mix and match your proposal to the existing Jenkins.io website and the way they think it should be. There is already a Docker tutorial somehow on the website. It doesn't work that well. So yes, please. Sorry, Joe Mark. I hadn't seen your raised a hand. Go ahead. No, I was just going to add some some color behind. So going to the docs team and the question is super. This will be to test to dry run the idea and and say now it's just a little bit too early because it's shaping. But to do a demo and say here. This is what we have this is the way and you explain it by this is the way it could be integrated in. I'm telling it with words. I'm doing a presentation around that. Who can guide me or who could do the work to translate that into words, written words. Because this is exactly their specialty. We're technicians here. So we're going to create the demo. We will be able to explain the demo and tell the story around it. But they will have to then think, okay, we can integrate it at that place in Jenkins.io. And this is the documentation or maybe have a recording. So there are many, many ideas. So now is we need to do that dry run first, which also will be the demo that will do on on July 6. So practically Bruno Mike, my proposal is that we work internally here on having that story. The demo that that we really look at it that way that everything is working out of the box. And at that moment, a shooter can make the step and do a first sale or first sale of the idea to the dogs. I see a shooter smiling. He sees himself as a salesman. But this is basically what we're doing. Okay, so you can go to the docs team just to listen to know who's who and to see how it works. And maybe end of this week we will be ready to move one step further. And it's your time, I guess. Yeah. So yes, we have the week to work to provide something that looks like a demo or a sales speech, something that we could share. Look, the nice stuff I have here. This is going to make our life much easier. And this is going to work. So you need some some enthusiasm behind it. Yeah, maybe they will just destroy it. No, just kidding. They are very nice persons. No, no. Don't scare him. No, no, no. The thing is it's nice also to go there pretty early in the life of the project because you never know. Maybe we are thinking something that won't integrate very well into the Jenkins website. You never know. I think Mark with it, Meg, I think. And also, we have a very clear vision of what they want. And maybe it's slightly different from what we are producing now. So better go now before we do something which is way too far from what they are expecting from us. They are not directing the project, you know, but we have to make something that blends pretty well. So that's what I think. It's a good way to try out your presentation or the skeleton of the presentation of the sixth. So the first, yeah, the canvas of the presentation is super urgent. We need to get the PRs closed so that we have a working, a first milestone ready that works. And this I'm going to try. I'm going to do today. Thank you. Before going to next issues, Ashutosh, would you have any other questions concern? I don't have any concerns. I was just having a hard time thinking about new examples. That was the next question that I had for you. When I said issue, I wanted to refer to this one. Yes, of course. Proposal set of other examples to implement. So yes, you have difficulties to think of other examples. Yes, I was thinking Docker and Docker and Docker is the should be the first ones because it's Docker based examples proposal. So I think that that should be there. Docker and Docker one to build Docker images inside with Docker containers. But I didn't understand what is Docker on Docker you suggested on the Oh, Yes. It's important that you know that. Yeah. Maybe until and John Mark, let me know if I'm staying stupid things. It's just coming out of the top of my head. So Docker and Docker, you have a working Docker container in which you have a Docker engine running. So it's Docker within Docker. They are not sharing much. Okay. And Docker on Docker. It's a Docker container having access to the Docker engine, which is running the container. So there is a socket which is shared between the Docker and what's inside the container. And I think you the only thing you have to install in the container is the doc client. You don't have a Docker engine running in your container. It's using the Docker engine from the host. So that's why I call. The term is correct. Docker on Docker. Okay. Yeah. It's, it's to give the idea. I've seen my granddaughters and they're, they're playing with everything. They want to cook. Either you give them in. And so we have an apartment here. So we imagine we have an apartment. And so we, we, we set them a table and say, well, here you can cook and you have a small stove and, and this is okay. But you may not go outside of that doesn't work. So they don't even know that there is a bigger. Or they're working in a restaurant and you set them apart a little table. But there is no restriction for them because they can use the whole kitchen of all the different parts. And so you cannot restrict what they're doing. It's much easier because they have access to all the tools. They have access to everything. It makes it very easy, but for small kids, this is not a good idea at all. So this is why on the other side, you make them believe here, this is your house. You cannot go outside of your house or the, the, the, the room. There's nothing outside. You don't even know you need to make do with what you have there. And this is an image to show the separation and what is Docker on Docker and Docker in Docker. And, and it's, it's a huge security problem and a huge. Well, yeah, it's something that people need to understand and think about, especially in very big configurations. Yeah. Did I completely mess out? Did I completely mess your image? So good advice is to read on the wise, but there you're opening not a can of warm. You're opening a truckload of worms because it's huge. Yes. It's the can of can of can of warmth, you know, like Russian dolls. And, and to give you an idea, an idea, get pod is doing. Now I'm not sure I'm using the right name, but you, you have the impression that you're on your own machine. So it's, you don't know anything about the huge kitchen that's behind. You have no access to it. It's limited. It's so you can start your own dockers and we could do Docker and Docker and Docker and Docker. And you still could not escape without security flaw. Yeah. If they mean were there, I think it would give us very good advice. One should not use Docker and Docker or Docker on Docker. It's not secure, but we have to progress. So we have to use that one day on another. And it used to work on Gitpod Docker and Docker and Docker on Docker. But I think they secure somehow it, or maybe it was buggy. So they removed some part of it. So this may not work on Gitpod anymore. You would have. I would really leave that at the end because you get into the devil's kitchen. The thing is, I didn't want to spend too much time trying to figure out why it's not working. So that's a layered, you know, spoiler alert. Don't lose the time working with Gitpod on this example. It just won't work. To add to that and to show you how in big infrastructure it was solved. And I worked for banks in these kind of environment. They were so using Kubernetes, which is a very nice container orchestrator sharing resources. The recommended way for doing that was to send the building of image to dedicated hosts to a separate infrastructure. It was completely decoupled and this infrastructure was dedicated to building images. And it was a kind of container factory and using operating systems like canico that because in order to build the images, you need very high privileges. But with high privileges come also high risks and responsibilities. And so it's a huge problem. So I agree with Bruno. It's a very wide step to leave that to to the end. And you can be Tim. Sorry, go ahead, Omar. I just wanted to make sure that Bervientu has because he probably has some practical experience on that. You would like to add something or sell us your vote. Basically, no, but I have a question because I think as it was already have some example in his proposal using docker and docker. Yes, the proposal example that docker and docker is I may make the current example from the docker section. But for that you had to expose the underlying socket, right? Don't remember. So you gave the container or Jenkins full access to the socket. When privileged. And yes. This is definitely a no no. Because you're you're you're giving if I take the analogy of kitchen so you're showing people how to cook. And you're working with a very dangerous furnace and and where you can burn all the food or even put the complete kitchen on fire. So these are the kinds of things that that's maybe in some street food or or these kinds of things where they do risky things. But then in a hotel kitchen, I would definitely not do that at all. See the image. Yes, yes. So I need to look at look it up better. But now is docker in docker something that is of interest to the first persona. I think it's more for the second persona. I think so. And my main. Yeah, my main concern was that we are working for the first persona and should we focus on the first persona for, you know, selling the product to the docs team and for the presentation. Or should we have a small part for the first persona and all the part for the second persona. I don't know. I'm worried because as you say, John Mark is a truckload of worms. Yeah. Be there. I have the following suggestion. So I am fully with a shoot ocean saying that the current demo job is a little bit too lightweight. We could have more. Now we're we're we're getting one level higher. We play a lot of video games, but I think we're unlocking a difficulty level there. But could we create a job for building a software. And that would require minimal configuration and would not be a security issue. Meaning access to GitHub and in these kind of things. Are there. Go ahead, Ashutosh. There are examples. Right now, I think. For building. For building, I think there are three examples right now in tutorial part of the. And we try to have at least it's ready. So that a, I think you're putting the finger on a great idea. Let's try to create jobs that are ready. So that then the people can hook to the script of the description of the demo. And we need to clarify that I think you're you're on the right idea. Ashutosh, I think you're you have a fish biting at the hook. Now you need to get the fish out of the water. I think this is what we should work on. I think Ashutosh is laughing from my examples. I like it. But this is the way you. You explain. I'm also going to give you a few tips on how to make your presentation. Yes. I like that. Very short tip is you have one minute max. So let's say 30 seconds to wake the people up. When you start to presentation. If you fail to connect with your audience at that moment, you will have a hard time to get them focused. 30 seconds is the time that they get to be distracted by Facebook, Instagram, Tiktok or whatever and start looking around and don't listen to you anymore. It's difficult, especially when you're doing it online. So the 31st seconds or the first minute is you don't start with presenting yourself. You don't start by saying, this is Google summer of code and so on. You lost already half of the audience. You start by telling a very short story or puzzling them. Puzzling them or doing a small story where, for instance, you put yourself as the first persona. And just say, I'm going to tell you a little story. I had a buddy. You can start it that way. I had a buddy who was interested to know what Jenkins was and he, it took a long time to get inside. I couldn't show him easily and that got me frustrated because the time it took me to start a Jenkins to have it. He was not interested anymore. The purpose of this project is to build a configuration where we can see the principle of, I don't want to give you all the tips, but think on your own. So don't follow my example. I'm biased. But you see the principle of focus on the first 30 seconds, first minute. This is where you get them interested. Read also on the subject. I have some good books on that, but doing a powerful presentation is important. Bruno, do you want to add something to my tip? I think you're also using these kind of... Yes, it's important you're right. Start with something like an anecdote, a joke or something that will wake up people. You're right, John Mark. 30 seconds to one minute, you have to establish a connection between the audience and yourself. If you don't manage to do that, hello, I'm Bruno. I will tell you about Jesus, you're done. You lost them already. Look at yourself when you're listening to a presentation. Look at yourself. Oh, no. Not again. Got it. Okay, I'm getting over time. I'm sorry. No problem. I don't know what you think, Bervinto and John Mark and even Archie Dush, of course. Should we try to build an example about Docker in Docker or Docker on Docker or keep something more easy? For example, I talked about LDAP, it could be anything. Adding a database, adding a test or just one little step above what we've already done or go the whole of the way and start with Docker in Docker. So what are your thoughts about that? The errors talk, but my opinion is very strong. I think I prefer like adding database instead of Docker in Docker because it's quite advanced. Yeah. Bruno, first make the three examples that are Jenkins documentation available. I think there is Docker in Docker. Yeah. So we should drop Docker in Docker in these discussion. This is advanced. Yeah, there. I should have shared the link. And this would be a very good stage for a stage. And then for the second persona, we can have a cookbook or... Bervinto in second. Yeah. But Docker in Docker is far too advanced. I know it's an interesting subject. Okay. Then of course we wouldn't talk about blue ocean because it's deprecated. Below on the using build two section. Okay. Yes. Definitely if we could have something that works without hold. Oh my gosh. Yes. That's why this project is important. Frankly, as a first time user seeing that kind of instruction would make me run away. Run away. Yeah. Of course. Streaming. My, oh my. Okay. I think it's a good reality check that you've been doing there by pointing to that documentation. Very good. Okay. So let's forget about Docker in Docker for the time being, we have to focus on what will showcase on the 6th of July. And that would be, if we managed to do it, I'm giving you ideas. I'm sorry. But here, a good start would be this is the first view that somebody wants to learn about Jenkins is going to see. These are all the instructions you need to go through. This is what we proposed. Wow. You do a checkout. You do a checkout of the project. Docker up. There you are. And now you can follow the different steps that are there. You see that. You do the comparison. Aha. Oh, okay. Yeah. Yeah. And now the audience is doing a standing ovation. Yeah. That's a goal. Now it's still a lot of work to do. Interesting work. Yeah. If it's clear for you. Yes. Cool. So maybe you should create a list of issues in the GitHub repo so that you know what you've been doing what you will be doing. And so we can review, you know, as always create pre request that address the issues and so on. So maybe for the time being just one big issue. I'm not so sure we can create issues of issues. Jean-Marc. So, you know, like we do in Jira, like, you know, how is it called? Story. An epic. Yeah. An epic. Yeah. I'm not so sure we have that on GitHub issues. So maybe just create one big issue that will be linked. You can link other issues. Yeah. You can link them or group them in releases depends how much time SHUTOSH has. Yeah. And then create different issues saying I'm trying to replicate this part of the documentation. Then this part and this part and so on and make pre request that solve these issues. Was I clear enough? Yes. Cool. So lots of work ahead. Yeah. Yeah. So let me put it in the action items. And the, the goal is the first release of the products product or July six. So this is the goal that we have a good thing so that we nearly complete it with the first person. So I'm missing my two screens. Oh, of course. I have three. And, you know, whenever I do some co-working, I feel naked because I only have one. I think my internet is causing some issues. It's saying your internet connection is unstable. Ouch. But we're almost at the end of the meeting. And yeah. And sometimes John Mark you sound like a robot. I guess you also have some trouble on your side. Or maybe. Yeah. Do I also sound like a robot? No. No, you're, you're good. I fear that it's my the French telecom or G is not working as expected. Poor quality. No, I have a good signal. I don't know. Mysteries of the internet. No, that's almost okay. In fact, sometimes you freeze. Sometimes you sound like a robot, but most of the time it's correct. Okay. I'm connected to. Okay. So you only understood half of my stories. You're very polite. Watch the recording. Yeah. Okay. I'll try that. One of my tasks today will also be to check how we can manage with passing a recorded presentation during. Oh, I have to experiment on that also because I used to do that quite a lot before joining the Jenkins project. So I have to know if my memory still work. And we will present live, right? You will present. Yes. Yes. It's hard. He's in exams. So yes. It's on my list for the week. It's. Yeah, I need to talk to Vendee to why I heard rumors that Vendee says I need to check with each because it's, it's. I'm trying to mix water and oil. There doesn't work. People have exams have other duties and. But a recording presentation is lousy. I prefer live one. So get prepared to one to a, to a live one and you're going to have much more fun. I'm coaching you for that. So you, you will learn much better. Okay, folks, I propose that we wrap it up. It looks like we've addressed most of the subjects. If ever we still have the elements matrix, Gitter, whatever channel to discuss and you can create issues like people, same for the PRs. So feel free to do so. I hope to see some of your work later this week. Thanks a lot for your time folks and have a wonderful week. Thank you. Okay. Thank you. Bye bye.