 Here we go. So, good evening, good night, good afternoon, and good morning, although I don't think that we have somebody from the States around the table here anyway. Good day to all people joining in also from the recording. So, what welcome everybody so this is today's March 16. Google summer of code office hours. So we presented in the previous sessions all the projects were now in running mode for the preparation. I have a couple of general announcements or tips to give. And then we'll open up for questions. If we can answer them. Oh, we have somebody from the States joining. So good morning, Jake. Hello, good morning, good afternoon everyone. Good evening. Even good night because some are in the middle of the night. So here let's let's go so first. We have. So we're all steam preparing and we're all in the proposal preparation phase it's running good. A lot of very positive activity on the various channels and I'm happy to share that we have about 16 or the last count was 16 drafts being proposed. Very good work. There's only one where I have a question mark about it I think he started to put a foot in the door. And he's probably still working on thinking of things but there there is no substance in the proposal all others are good. There is also good interaction. Good reviews by mentors but also from other participants and what I like and is very positive. Positive reviews in constructive reviews from peers or other people that are proposing projects or to contribute to projects. So, very good. I've been reading as much as I can. And I'm requesting again to mentors and whoever in the community. It's important to help the candidates to verify that their ideas are correctly formulated are easy to read are correct and to give them tips or the best presentation for the selection. I have two general recommendations so I will do them here and I will not repeat it in all the documents that I review. One important tip when writing technical documents is write short sentences. It makes it much much easy to read and skim over the text. We know that you have a lot of ideas that you would like to push through and the ideas flow one after the other. A good way to check is if your sentence is longer than 80 character. But looking into how can you convey a meaningful idea while making shorter sentences so several words are not always necessary and so on. So don't hesitate to reach out if you want to have some advice on that one. Short phrase. Can I say it's more impactful some sentences are sometimes three or four times three or four lines long and I'm lost when I'm reading them. Another general tip. So I've seen as different led level of maturity, good description of the different phases of the project how people envisioning it and I know it's a very early stage. It's not always easy. It's an important exercise because it shows that you thought it over that you you know what what you're talking about and that you serious. A good way to improve that in which I would like to to see is try to estimate the effort. There's one important caveat there and you can write it say based on your current knowledge of the project. I am either guessing or I believe that this particular part will take me that many hours to code to think about to document to test. This will allow doing that exercise on a spreadsheet or a piece of paper will help you to corroborate if your overview picture of the project is sound. So currently most of the candidates have have used a top down approach thing, but this is what I need to do and this is how I will split the work and this this will fit. Does it match reality, what what's the data behind it. Another approach to verify this is to go bottom up to describe all the different tasks that need to be done and you you you estimate them, you add them up. And see well does it match didn't I overestimate. My ability to do that much work in 127 or don't remember the exact number the number of hours that's estimated. And this is a good way and showing that in your your proposal shows that you have thought in detail of what you plan to do. Now I agree it's a very difficult thing to do based on what you know now and this is part of the game and professionally you will also have that difficulty. And so you iterate on those estimations and it's an important skill to learn professionally and well on open source where generally you don't count the other the hours that you're spending on head so but here in this particular case it shows that you know what you're talking about. This were the general comments that I wanted to share I'm first going to ask if mentors have that are here around the table have something to add or comments that they want to share with the audience at this stage of Google summer of code. No, not really your advice to make small sentences is very good. It's true that it's hard to finish a sentence and it's hard when you finish a sentence and forget what the beginning was. Even for non native speakers. And I also would say, if we put a comment on the document saying, can you please clarify that, even though, even if you respond, I clarify that later on the document later is probably too late. If we ask some clarification on the sentence, it may be because the sentence itself is not clear enough. Even if you provide more details later on the document. That's very, very good comment and I'll add an additional detail to that. I've seen that some of the authors answer to the comment in the comments and sometimes forget to put it in the main text. So it's a good idea to clarify the question or doubt that the reader had. But it's not a one to one conversation. It's a conversation to the whole to the whole audience. So don't forget to the signals or the questions that the mentor is giving you are hints that things are unclear or their doubts. And they should be in the document very, very good point and very good advice. Something else could somebody help me to put the attendees in and add a few notes of what we're talking about because I have a hard problem concentrating there. Okay, think people are joining there. Thank you for what they have other other comments or things that are good could be improved while people are gathering their ideas. I like very much the quality and also the engagement of the people that have been writing somebody wanted to add something. I wanted to ask to say, I know that you may be tempted to say that you will support the code that you will implement during the project and it comes from a good sentiment and we would like you to stay in the community and keep on the project. But we also know that your interest may shift on your involvement in in future will change because you are studying or you will change jobs and some things like that. So saying in the proposal that you will be supporting the code for years is might not might come from a good sentiment but it's not. It won't give you extra points. It's not something that I personally see as something I expect you I expect from you. I expect from you to have a good involvement during the project during this year. But I'm not expecting you to. I'm not forcing you to keep on the project for years. So you don't need to mention that or at least for me it's a personal taste maybe not taste but personal sentiment on that. And I don't get I don't use that against your proposal and I don't use that for your proposal to promote your proposal over all those either. So because I know that your your center of interest will change. It's it's totally normal and so you it's something that you can remove or you cannot put in your proposal. I'll I'll nuance that a little bit. I fully support your point of view because we're we have the experience we know how life goes. But thinking about how you will use what you have learned and how you will give back to the open source in the Jenkins community or other ideas or or professionally. There's several ideas. So promising that you will maintain the plugin until you die. Okay. But there are other things in other intelligent things that you can answer to the question. I like the the way you you say that you can say what you expect to learn from JSOC. That to me is a very is the purpose of JSOC project for you to learn something for the community Jenkins community here to gain something from your work. But also you yeah we expect you to learn something. So mentioning that in your proposal so also it for mentors it helps at least me to see where you want to go. And that will also help to see how our objectives match and how I can as a mentor help you getting there. So it's something that he would be very good to see for sure. Thank you very good point. I think we're 100% in line. So this sets a general comments. I want to have enough time and we can go a little bit over over time. So are there other questions from the audience generally or technical. Yeah, go ahead. Yeah, so I have a question regarding a specific project. So would it be appropriate to ask it? Go ahead. It's an office hours. So I will be referencing the Jenkins Docker quick start examples project. So I have two questions here. The first question is that in the project ideas webpage. It's written that we could have a set of Docker compose files representing various types of Jenkins instances. And in parenthesis, it's written simple Docker comma Kubernetes. So I do understand what we are doing here that we are condensing all the commands into a Docker compose file, which is in turn creating a Jenkins instance for us. So the question I have here is that what my interpretation is that I have to do something similar on a Kubernetes cluster. But I am a little confused about that. So I just wanted some more clarification. Okay. Is there somebody who wants to answer I have an answer for that. I go ahead. So I've, I've read and also made comments on that about Kubernetes or not. The first thing is, it is your proposal. So if you believe if you have well understood the goals of the problem you want to solve. And that you believe and you have a good idea how to do it in the allocated time with this or that technology. Go ahead and convince us by providing data and and explanations how to do that. Now my point of view about that is be cautious with Kubernetes. So the purpose of that project is to provide a quick start. And that means in the proposal could for instance time this quick start and saying between the interest. Oh, I want to know what it is. And to have an actual system running. You could define and say this is the goal I want to achieve. And that within 10 minutes. The person can see the benefits and experiment by himself so so why I'm saying 15 minutes but here is the principle of quick start. And in count in there. The time required to stop the prerequisite and so but go there. My fear is that Kubernetes. You will bring a huge amount of dependencies things that can go wrong. I don't believe that running a Kubernetes on on the local machine for Jenkins is something feasible, unless you're very rich and you have a super machine. What's the name again of the the mini cube. Or or rancher or these kind of will do rancher is is is doing better I forgot the names of. There might be solution. Yeah. K three day the thank you. So states that you want to go there and be sure that this will run on most machines. So, is my doubt correctly conveyed. It's not because it's written in the proposal that he absolutely needs to be described or implemented. I personally don't believe that Kubernetes is a good idea for a quick start. So, what my understanding is that it's not necessary for me to add the Kubernetes content to the proposal. And what my interpretation of the project is that basically there are a lot of commands in the Docker part of the Jenkins documentation. So I'm going to condense them down into a Docker compose file, which would be running on a good board instance. So that could be run by just clicking a link and then I can configure the dot get bought file so that when the workspace opens, then the Docker compose a command runs automatically. The user just has to basically typing in the browser localhost 8080 or we can automate that as well. You're what you're telling don't don't explain all the project because I'd like to let also some some others what you're saying there is music to my ear. It's on the right stuff. And try also to describe the, the, the requirements of the thing and think what is what means quick start. How can we measure that we achieve that goal. And you can poke to the people that are interested in there around documentation or you can you can ask there. Would they like to have to have there. Okay. Does that answer your doubts attack. Yes, that answers my doubt. And another question I had. It seems to have this work but I'll just ask to conform it. In the project ideas web page, there is another line that provide examples sample code and documentation on how the local Jenkins instance would be created. So, my question is that in the examples that do I have to give examples of like how the jobs would be created and the remote triggers would be like the triggers would be activated remotely or the user scope would be like, we would be like dealing with the user authorization stuff. So do I have that or do I have to conclude something like okay I'm using Jenkins instance and with that I'm using a Java application. So, yeah, here, what's written in in the project idea is not a rule. It is, it is not a contract from from a customer that and you need to implement that. No, not at all. It's just an idea that somebody wrote an evening. It's ready for dinner and this could be a nice thing that I'm dreaming off. So, you have to build it, you can build it and say why I would go in that direction. So, if you have other ideas to implement it and that and that you understood the goals. And this is what I personally would like to see did you understand the goals do you have sound ideas. Do you have creativity in in do you have the knowledge to solve the problem this is what we're we're looking for. Okay, yes. I'm going to do a general comment here, because I am. I try to keep the clock under my I see the very interesting questions and I will try to cover as many as we can. I just want to say that if there are topics around the project and I will try to throw that on the table. We can arrange per project topics, if interested so if you're interested and have questions, we can do an interactive session per project, it depends on the availability of the mentor and, and so but it will be more efficient than going very details in one single project. So, I will think on how we can organize that other questions that can be well we'll go a little bit overboard but they are important questions I think you thought that we have asked your question. Do I need to check in the. Okay, three TD so I see mucul has a question. So I'm reading it. So, mucul. No mucul. Okay, I'm sorry for barely proud. Do you hear me. Is your mic working. I don't hear you, or you super shy. Just joking. Now I hear you. Okay, can you ask your question. So my question is that it is mentioned there that the expected outcome will be shared by the mentors. So, what is expected outcome for this building apps with Jenkins like half of the project is prototype by some guy. So, what will be the expected outcome, what I have to do for this GSOC period. That's my question. Before giving the word to Bruno, I'm going to to shortcut this and say, propose your outcome. We want you to come and say, well, this is what, what I would do, come with your ideas come forward with them. So, but this is a general idea. So, show that you can you can drive you can you can create a thing so this general comment. But here, let's let's start answering then Bruno, what did you have in your mind when you wrote that. I should have written the expected outcome, you're right, Nicole, but Jean-Marc is right to just propose something and we'll see the thing is, what I propose for the timing is something that does work but it just a proof of concept we could do much, much better. That's something that works on lots of various architectures or computers, Mac, Linux, Windows, whatever, but it's not prediction grade so I'd like something that works better and who could be tested on other platforms too because it's not because it works for me on various machine that it will work for anybody what I'd like is something that works out of the box just for anybody even on a Chromebook for example, why not. So, that's my goal, having something that works out of the box with correctly written documentation, which is not the case for the time being there, even isn't a blog post about that yet. So, why not documentation and a set of files that do work for just about everybody. That's my goal, but if you have another one, please propose something and we'll see. Yeah. Cool, does that answer your question or. I have another question for this we have to like use like Google Play services, like, we have to deploy app on Google Play. So, we require $25 credit for that so will this be provided by Jenkins itself or we have to manage that on our own. I already have a Google Play store account that I could share with you, for example. So, that's not a problem. You won't have to pay anything. We'll use my account if you want to go that far. And if you want, if you don't want to go that far, if you are satisfied with just making a release on GitHub, that's perfectly fine too. The push to Google Play store is not that difficult. And even if you propose something around that, there are already gradual plugins that do the job and so on. So, that's not something really major. If we don't go up to that, that's not a problem for me. The most important part is much more on the left of the CI CD. I mean, security, static analysis, you know, those kind of things. They have to be very on the left of the process. So, that's what's major. That's what's really important for me pushing to Google Play store. It's a nice bonus, but it's already working. If you have some ideas about that, fine. And we'll use my account. But if not, that's not a problem for me. Thank you. Is that okay? Yes, yes. Thank you. Okay. Thank you. Good questions. Are there other questions? Yeah. Hi, I'm Smith. So I had a question regarding Jenkins configuration as code. So, like, I've highlighted some challenges in creating a drift detector. So, like, like, what do you expect from proposal now? I would like to know. Ooh, that's, I fear I don't understand your question. You need to be more specific. What do you understand or So, so basically the drift detector is basically comparing two configurations and detecting the delta between the two configurations. So ideally, we would take the real time configuration from Jenkins instance and compare it with the supplied one and then direct the delta and output it to the user. So here we, so real configurations have lots of basic elements as well, like basic key value pairs as well and lots of default values as well. So it's not possible to compare those two and detect the drift. There could be a drift because of manual changes as well. So to detect that we should know what the desired state should look like actually along with basic values. The short answer is I don't know. And this is part of the project to see how it could be done and what are the difficulties and how we could solve these difficulties. So the first thing is, and I hear from your question that you have a good grip of that is that you describe the problem there. Hold on. I'm going to close the door. Oops. Sorry about that. I'm disturbed. So try to formulate exactly and this you already did. What is the problem you're trying to solve? What is the scenario? Try to reproduce that scenario and try to describe it. Second thing is discover or state. These will be the problems that will need to be explored and solved. Just mentioning them is already a good start. This is a project that I think I project idea that I created two years ago and didn't revisit it recently. So, and I had discussions with you or somebody else. The interesting things that have been discovered. It's not simple. So I don't know. It doesn't answer your question, right? But this will be solving this will be included in the project scope, right? Yes, yes, yes. So what it would really reassure me to see. Oh, okay. He tried it. He has ideas. He spotted already where it will turn out. This is not as simple as we thought and just quote. Well, this could be one way to solve it or this could be another way. Exploring, experimenting is part of Google Summer of Code and is a valid scope for a project. For me, a valid Google Summer of Code project could be between brackets a failure, meaning we did not achieve what we expected or we had to change the plan or the scope. This is perfect perfectly okay. What I want to what we want to see is in and where we're going to judge at the end is. Did you actually work on it? Did you come with novel ideas? Did you learn the techniques and, and the spirit of open source in sharing? Did you do a correct discovery and engineering? Yes, I did a project to rephrase it. It's the way that's more important than the destination in here. Now reaching the destination is definitely a plus point, very motivating and important. But so it's perfectly okay. And we had other examples where the project at the end said, well, okay. But this turns out to be a good solution. But this is what we learned from it. Does that help you a little bit? Yeah. There is also another problem which I also highlighted like removing the nodes doesn't essentially means we are removing the configuration from the Jenkins. This is one of the drawbacks but one of the current weaknesses of it is that adding changing works, removing, does not work well, especially with all the parameters or nodes or instances or objects, configuration objects. And, and this, this could be a perfect point in saying, well, the drift doesn't work for that. But this is how we could solve it by improving Google Jenkins configuration as code and so on. Okay. Yeah. And also, is there any update on mental like last time you said, because of there's lots on your plate, you will not mentor this project. Yeah. Well, I'm looking for for mentors in that's true. I need to be honest there I don't have an update on that particular question and it's still a risk. I need to be honest. And there is another mentor as well, like said, like active on the jitter so will it come after once the like applications are narrow down and will start working on it. Nobody knows nobody know I need to say I had a good contact with him. And he's based in London. No, yeah, in London. And, but here it's two months I didn't hear anything from him. I'm going to reach out I'm currently doing the roundup of the mentors and confirm that there will be available, or if they withdraw from it so to be honest there. This is indeed a question mark and a potential risk. So, this last one, like, will this like affect the only proposal selection. Yes. Yeah, I need I need to be, I'm, I'm sorry about that, but we will only take the projects that were able to mentor. Correctly, and we owe that to the people that will invest all their summer working we want proper and high quality mentoring. And I prefer to say that we're not going to take this project and and may and propose to this project for next year. But I want to be very honest there with the mentors and with the contributors there we will only take the projects from candidates that will achieve the goals but also that we provide are able to provide all the necessary logistics for them to achieve their results. But I will, I will once the selection is done in and for the good, good proposal, I will have a personal conversation with all of you that have been to explain why. And also to help how I discuss how we can move on from that is my responsibility as a member of the org admin team. The world is not perfect, Smith, I'm sorry, I'm awfully sorry, and I see a lot of good proposal I see a lot of good good guys and energy here. And I know I will, or we will disappoint a few, but it's part of life to you need to learn it. Okay, are there other questions I'm sorry for the for that time but I want to be honest it's my responsibility. Any questions, comments doubts. Okay, I will be able a little bit to leave it there. So, don't forget, if you want to go deeper in an interactive way on some projects. And see and reach out to the mentors that are helping or responding on Gitter and see can we arrange a meeting where we can share screens and discuss. And so, don't forget, there will be no one on one meetings, it will always be shared so everybody can join in the discussion as mentor or interested to mentor or as contributor we don't want to give an advantage to anybody and it's also the way we work in in open source and these sessions will be recorded and and available. Okay, I see here a Q&A question. What's up. I'm sorry, I need to follow a training to pronounce the first name correctly. Another question I am familiar with the skills required for the GitLab plugin modernization project but finding difficulties to understand the project. Also, I'm not that familiar with plugin development. Can you give me some tips regarding the project. I'm going to give some some general tips there. What's up. So, there is work involved in there. And when I made a presentation in December I use the image and I like my my image for there. Google summer code is like climbing a big big mountains in the Alps or Himalaya or or real stuff. And you can only do it if you're in a team where you have guides that will show you the path. Also, you need to exercise, you need to train, you need to learn, you need to build your muscle so that your, your expedition will not turn into an ordeal, and that people will get hurt. How do you build that muscle is so. First of all, the general documentation about plugins is available online. I've seen that there have been some links shared in the chat is also a very good video series about modernizing a plugin. So how do you improve the plugin with Mark and Darren that recorded some some live sessions there. It's a good introduction to show what are the components and so on. It will just give you where the front and the tail of a plugin is and how it works. The thing you should have said in first is get experience on Jenkins, run your own Jenkins server, build your projects, do some CI understand a grammar understand how it all works together what it's the admin. So this is important. So rephrasing first learn Jenkins, then get acquainted to what plugins are and how it works. The third thing is load the plugin into your ID. Look at the tests. The tests will talk to you and will show you what are the features. Now the test use frameworks that are sometimes difficult and require but it's an exploration that you need to do. And your friend there is the debugger. Step through the tests. Observe what it is doing and print lines to to the code or change the code just to see how does the behavior change. Oh yeah, then it does that. This is how you learn how a piece of software works. This is a very, very important skill to know professionally but also in open source. You learn by reading and understanding other people's code. I'm lecturing here I apologize for that. This I try to make it very condensed but these are the three tips that I gave in December, try to find the recording I will I will make sure that all these recordings are on the page. It can be found but I call that you build your muscle you, you, you train so that you in a good stand to start the expedition climbing these wonderful mountains. So, it depends how, how, how you expressed your question but it's now time to know that in order to provide a good proposal did answer your question itself. Yeah, there I see. Yeah. Sorry, Jean-Marc, that was a question from Syvision about building Android apps so I will answer quickly. So it's the idea to develop a complex Android application using Jenkins and document it or to develop an Android application in an elegant way using CI principle. Why not the best of both worlds? Why not develop a complex Android application and then do it with Jenkins in an elegant way. No, the goal is not to develop a complex Android application. We don't have time for that. My goal was to take or first an empty Android application that does almost nothing. That's what I'm proposing right now. That would be already the first step document how to build one this way. Then the second time target would be to take an existing Android application but a native one like for example, Tamerx. I've made some experiments with Tamerx and it does build quite well with Jenkins, nothing specific there. So that could be another step. And then a third step could be building an hybrid application, you know, with Ioniql. I forgot the name but whatever. I also tried that with Jenkins and it's not linked to Jenkins, but I had very hard time building an hybrid application because of Node.js, NPM and so on. I'm not very literate when it comes to that. So why not, but I don't think we would like you to spend too much time on Android. You have to know Android but please don't build a specific application for that. We already have an empty one. We have Tamerx and I could supply a hybrid one if you want to build one. But no, don't spend too much time on building a complex application just for Jenkins. That's not the goal. Thanks for the question. Does that answer your question? Yes, it does. Thank you. Okay, good. Thank you. Now, I went 20 minutes over budget on timing. I'm sorry, but these were great questions. As we're anyway over budget, I will take the last question and then we'll wrap up. Last question, last drinks should have a bell or last orders. Okay. So thank you very much to have joined. Oh, see here. I have a question related to building Jenkins and alternated to go ahead. You're the last question. Am I audible? Yes, now I hear you. Okay. I'm sorry, but I'll say this particular project buildings Jenkins roots IO alternative rules say that we are building, we have already have a site on our struct. Over already site. Documentation site is on all struct. On hosted. I'm sure. Can you say it in other words, I have a problem. I can write it. Good. I have no clue how it's pronounced. Okay. Go ahead. Yes. Okay. Maybe my problem. Okay. Now we are, we want our site on the Antora. Correct. And we want to implement the Gatsby in the Antora. Okay. This project says that we want to implement Gatsby in the Antora for the blogs part. Yes. So we are building our whole site on the Antora and for the blogs only we are using the Gatsby. This is something I think don't seem very good. I have researched a lot on the Antora documentations and Gatsby. My suggestion is what we can build our site on the Gatsby and for the documentation we can use the Antora. Okay. This may be more, you know, better for the Jenkins.io site. Okay. Okay. Do you have a question or do you want to have our opinion on that? Yes. I want your opinion that why we are using, why we are saying that we want our site only on Antora and blogs on the Gatsby. You're going to laugh because I'm going to say that again. Come with your own ideas. I like that. I like what you're coming and say and where you question the ideas. This is the principle. This is the purpose. This is what we want to teach you to do. You're not here to do what the boss asks you to do and just shut up and type it. No, you're here to create. You're here to stop getting excited on that. No, this is exactly what we're looking for. Come with ideas. Don't say I don't want to do it that way because the question will come immediately. Why? Explain. Give the arguments. Share your ideas, your vision about that and it will be discussed and it will be shared. Do you understand the difference? So if, for instance, you feel and you have good ideas and say, well, we could do the blogs also. For that reason, that reason, that reason, and somebody may come and say, hey, and what about this problem? And this is really the interactive open source methods and philosophy is that ideas are created like in nature and played around and said, and this will live. This is a good idea and let's ever make it evolve and create and better ideas will die by themselves. You get the point? Yes, yes. Okay, so I have no problem at all. And this is a general comment that I say to others. Project ideas are just ideas. They're a seed for you. And what we want to see is, are you able to take that seed and make it grow? And that you're able to garden it as a gardener, this idea to make it to make it a good plant or my idea doesn't or my image doesn't work that well. But this is what we saw. Are you going to be the right gardener for that idea and will help you there? Okay, here it's 55. It's late for you guys in India and China. I apologize for the long time. Very, very good questions. Very good session as all the sessions we had. Continue the good work. Let the drafts flow in and we will read them and try to interact. Give us some times because we have another life besides Google Summer of Code. And let's move on. Next milestone is end March the 20th. I believe I'm going to check my notes here to be sure. So March 20th, you can start registering on the Google Summer of Code site and start uploading your proposal. The door closes April 4th. April 4th, all applications need to be in final. And therefore one month we will start the heavy work comparing the proposals. Okay. Thank you. Thank you very much for attending it. Really appreciate and let's have fun together in this adventure. Bye bye everybody.