 Welcome to GSOC meeting for Jenkins. We have a number of project proposals and a number of students and mentors online with us today which is great. Hopefully we'll get slayed in. We're just discussing, hopefully we'll get slayed in to mentor. Yeah, sure definitely. Have you had a chance to look at the the proposals that are up on our listing? And then we also have an additional one that Vibhap has put in. Yeah, I seen the one, you know, the cloud events. So I've been in the cloud native, you know, the SIG for a long time and that that's one area that interests me and I've not had a chance to talk with, I had a chance to talk with Vibhap a long time ago but then I got busy so that's one, you know that's one project that I'm looking forward to, you know. Yeah, definitely. And the cloud native CIG is every Friday. So yeah, I'll hop in on one of those. Yeah, you'll see me from now on. Okay, awesome. Good, glad to hear it. Good. And SIGAR was looking into a number of things from last week related to Jenkins and getting used to Jenkins but has had to study so it was a little bit, that's more than okay, we're very happy that you prioritized your studies. Do we have any other questions from our students on the call or mentors? We have some new new individuals on the call today which is great. Nilma, if you'd like to introduce yourselves that would be, that would be wonderful. I'm Cara, and I work with the Jenkins Project helping to organize GSOC. I am willing to introduce myself. I'm part of the Jenkins Project have been for a while and delighted to be part of it. It's been a lot of fun. Last year's Google Summer of Code experience for me was my first and it was intense and interesting and we did some pretty bold things and it was a lot of fun and we've shipped those bold things. So really, really pleased. Thank you very much for being willing to contribute. Thank you very much for being willing to help us do interesting things in Jenkins. So do we have any questions from the attendees of this meeting on any of the proposals or how to make a proposal or how to work on a project idea to develop your own proposal? This is a good time to ask. Yeah, so so far I'm from last week. Max has been to look into the project and I looked into the project and but when I tried to run I faced some errors but maybe I still have to figure out more on that pipeline but I have to look into this step dog generator. But so should I have to just currently I'm a little bit concerned about how to make proposals or just currently should I just in this fab should I just focus on okay that's what I need to do more on the exploration or is it I mean should I focus on how I need to lay down the proposal also or is it fine to for this to explore more? I think your exploration work is is really important and will be foundational for the work you do it's you suck and really will help you make your proposal. So the proposal is you take a project idea and you really develop it as your own and you know we want it to be something that you're very excited to work on. So hopefully the exploration work that you're doing will help you finding that space. I'm sorry for introduction now but you can like what I did that kind of helped me in my GSOT last year it was my first time you know just like Max so it was a crazy experience but what you can do is when you're exploring you can put those things in a dog and you know whoever is your mentor whoever it may be you can just share that dog or you can even put it in the public SIG channels in whichever is pertaining so that if you know it shows that you've done your background research and it helps you make the proposal stronger. So just keep documenting bugs errors whatever you can even maintain a log a daily log of what you've done that helps as well. I'm speaking of that like last year you contributed but I know what to do in that project every you know steps but I don't know what to do in course in code part so you are at that time when we are making the proposal so you have mentioned all the coding part but you're going to do in each and every week do you already have all that mindset already is it? Not necessarily you don't need to know every single thing first of all you're starting quite early so that's a good thing and if you're starting early you have a fair idea of what needs to be done. My proposal last year had a lot of coding because I knew because the project was pretty familiar to me but if you see other proposals they not necessarily included code snippets so if you have the time and you know you can always introduce pseudo code like just what's in your head that this week I'm going to write this parser or this you don't have to go in detail about how the parser is going to work but you just can write down hey this is my parser or this is where I'm going to put the parser in you know it shows that you know like a surgeon where exactly what thing goes and as the time progresses trust me you will know what exactly the parser is going to do as you reach the deadline and you can just put it in there. Makes sense so it seems you were kind of telling me like just make a kind of prototype like Olex said to me I believe a few weeks back yeah makes sense yeah. Well and it accepts that many of the things that you're working that you're looking at now will be in the I don't know category right and that's perfectly reasonable for you to say I don't know how this works and I don't know how this works and I don't know how this works and I'm going to explore a narrow part of one of my I don't knows and learn something about it and then explore another narrow part and and you get to choose which so so I think I think for instance Segar you you're a good example of one of the one of the parts was hey how does this how does this rest API specification generator actually get invoked how is it run and and the exploration on pipeline steps doc generator is one one way it might be invoked okay so exploring that one one question is a is a good okay how would this thing be run now there's still the question like where will it be displayed where where will the results be presented and what tool will be used to present the results and generate the pages for that and each of those for me is a is a is sort of a separate topic of I don't know and I have to have to decode it I have to understand it so so I think exploration like that it's okay to stop an exploration say I don't know everything but I know a lot more than I did before and I think I will understand it reasonably yeah makes sense when this and previously can I start explore that project I mean it doesn't make any sense currently that code I mean how could I I mean trying to make sense out of that source code because I don't know currently anything about that source code that pipeline so what do you suggest me to how should I start looking into I start looking into from the main function and then I reading the code and okay this is calling this this is making instance and and but it doesn't make any sense to me currently to be honest yeah and that particular area we might actually enlist the help of one of the original creators of it and just have a session Kristen wetstone who created that may be willing to say hey let's have a 15 minute session 20 minute session to talk about what does it do and how does it do it and Kristen's been she was a mentor last year I believe she's been a mentor in years prior she was a Google season of docs mentor as well so so I think we might just be able to get her to offer us a coaching session to to review the structure of the thing so that you get a handle of oh this is what's happening and this is why it's doing it that way oh yeah that makes sense and I texted Oleg also maybe I mean he's busy yeah he's well and Chris that's that's why I recommend Kristen Oleg Oleg is universally capable he can do all sorts of amazing things but Kristen actually wrote the original code in that particular thing and because she wrote the original code we could ask her and I suspect she'd say oh sure I'm happy to come have a session and let's talk yeah um yeah I will then text her maybe next week maybe if she is available yeah yeah and that that's that's a that's a at least for me it's an easy thing to try for this session next week we ask hey Kristen could you come talk to us about pipeline doc step pipeline steps doc generator because it may be and a framework we would use to do the next thing the rest API spec generate yeah that will be a good yeah until I'm just looking at the source code I am I've just been messaging with no mind not in the chat memo was asking about the projects that are listed right now for do you suck and so we have we currently have five on our Jenkins you suck page but and I can put the link actually in the chat so you all have it and in addition there's another draft one that we were speaking of before the meeting and that's on the tecton client plug-in and if you purpose proposed it on the Jenkins you suck mailing list so you can see it there for now it should be PR relatively soon it's an interesting project but in addition and students are welcome to take these proposed ideas and and really make them their own so they they work on something that is good for the Jenkins project but is really in their area of interest and you are not in any way constricted to these if there is something else you're interested in working on and proposing for your application we can help you we can help you you know in the community we'll try and help find mentors for you you won't we will need to you will need to have a well-spec application and proposal but and you will need to have ideas of who your mentors could be but we can help you develop that and organize that so just to let you know it's not it's not a constraint you have a lot of creative freedom and it is a really a moment for you to to do something interesting and creative and contribute open source through the Jenkins project and Cara if if you're willing I could take some time and introduce more details about one of those ideas we're sliding on the line and nilma I would love to try to persuade both of them that this is the best idea of the five sure that would be great go for it Mike so so I'm going to share my screen and let's take a look at it if that's alright so on you should see my screen and on the Jenkins IO site in sub projects Google summer of code GSOC 2021 project ideas and here we've got this one so it's get current credentials binding for SH bat and PowerShell and I need to add additional mentors on to this one this is the number three most requested enhancement in in the Jenkins project right now it's got the most number its third place in number of votes on the Jenkins bug tracker and so for me there's there's significant interest in doing this the the bug report that tracks it is right here pipeline step to run git commands and you can read that in detail but what the idea is is that Jenkins users sometimes need more powerful access to the git command line than the git plug-in ads they may need to use different settings than the git plug-in supports they may need to use different techniques than the git plug-in supports they may need to insert calls to git at places or to do things that the plug-in just doesn't allow for example they may say I would like to be able to push a change to this repository and to this other repository I would like to check out two or three and when I do the checkout I need these very specific command line options all of that we could we could conceptually do by making the git plug-in increasingly more complicated or as proposed here what we would create is a credentials wrapper that allows the user to state the credentials they want to use and then use any git command inside an sh bat or PowerShell step so the idea is that that many git operations need credentials and many of those credential and those credentials are known to Jenkins but we don't want them shared outside the Jenkins credential system so what the idea is you will we will take a a wrapper let's see if we've got the example here it's not in the there isn't a picture of the syntax so let's look at the original draft document that I had assembled because it has a sample that shows how you use these various options to pass in let's see Jenkins out there it's good okay so let's look at the mailing list discussion and here's the Google doc so no example here either oh that's sad Kara shame on me all right so there there's this is what what it's doing is taking the Jenkins technique called with credentials and let's find that pipeline step okay this plug-in the credentials binding plug-in allows us to do things like this where we say using the following credentials I want to run these shell commands and and the idea here is that we need some way of saying to with credentials that the thing we're going to pass to it is intended to be a git credential which means it uses get ask pass and it sets private keys in the right locations and it knows how to do pass phrases and those kinds of those kinds of adjustments will then allow users to use this with credentials and instead of this set plus x they'll say get push something or get tag or get clone and and it will use those credentials in that get operation so the the challenging and interesting part here is not so much the code because the code that's needed to do this actually already exists in many ways we've got we've got code that shows how to do with credentials knows how to do it and knows how to set environment variables like this environment variable and knows how to write files but what we need is someone who will take those those samples of existing code and use them specifically to check that command line get is behaving as it should with those credentials and that means command line git needs to behave as expected when working with git 1.8 on CentOS 7 and git 2.30 on Debian testing and all the versions in between so so for me this one is a it's an interesting challenge in testing and it's a relatively straightforward coding activity before we get into the oh we need to do this massive set of testing to be sure it works in all the expected places now hopefully you're all persuaded oh yes this is exactly the best project choice Mark's got it and if you're not I'm happy to keep shamelessly trying to trying to persuade you okay so did that did that help are there questions yeah that was a good demo Mark yeah it looks like for me first time looking at it that was yeah that's a lot of information to process but yeah I'll definitely read the doc and you know see if I have some ideas Mark as you've mentioned testing so much did you have opinions on how this should be tested do you want to speak to them yeah well I assume that that the testing the plan to test it would include interactive checks because human beings use this and we want to check it the way they would do it but then if issues are found so let's see I guess I should describe it first I assume that any code you write you write starting with tests as the first activity right we think about okay how do we do it and being test-driven is very healthy so but usually when I'm writing test-driven code I fail to think of all the other places that I should have tested and I discover problems interactively that I then have to go back and add more tests so so for me the the the usual experience is I start with a little bit of code and a few unit tests and then I tested interactively and then it shows me that I didn't understand the interactive code and I clearly didn't understand how to write the test so I need to write more interactive put more code and I need to write more tests and I just iterate on those and in this case this one will require someone with some docker experience or docker use docker to run various various distributions of Linux I need to see how does it feel to run CentOS 7 how does it feel to run Debian 10 with these various versions of Git and it's a good thing to learn docker docker running a docker image either on your Windows computer or on a Linux computer on a Mac computer is a great experience because it helps you see which which things I can get without having to actually change my computer I can still I can have the full experience of CentOS 7 and not be running anything but my Windows computer so did that answer your question Kara or did I do a bad job of answering the question no no there's a great presentation good it good answers so now we have we have been joined by one more and Rick is actually from if I recall correctly Rick you're based in in a piece of china right so so your your time zone is rather uncomfortable for this time of night or day that you're in thanks for being with us Rick yeah I I hope I can participate the the meeting in the later yeah I'm based in China uh in Beijing yeah excellent thank you everyone welcome so the Rick Rick has been a key leader in the Chinese localization special interest group and in assuring that the Jenkins is is in wide use throughout China we're delighted it's it's marvelous thank you very much Rick for your contribution there you're welcome yeah also it was uh it was my mentor last time for the and one of the you know the core people who bought up the custom distribution service idea so yeah excellent mentor thanks Rick nice good to hear Rick would you be interested in mentoring this year because we hear you're such an excellent mentor um I just uh try to catch up with you guys so uh I will take take a look at the the project proposals if I'm interested in one of them I will talk to you thank you absolutely that's great and you're welcome to propose one as well should you wish you um yeah we we look forward to your involvement yeah of course of course I've got another project idea in mind from from that was not accepted in last year's set but I think it's still a viable idea it's a get get caching system that Jim Klimov from the Czech Republic actually has has been working on something related to it recently has done some very good in investigation has a code proposal in and I think I think we may have even more opportunity this year so but that's probably at least a week away before I'm ready to submit it excellent that would be great Mark yeah I am I'm thinking of submitting one two on a docker file builder I had a play and it was really fun to do and and then we were discussing it um with the team and and it was it was suggested as maybe a good good g-soft project um so I might put that together too because docker is awesome can I add a question is is Jenkins X participating this time or no no sadly not and it's mostly to do with mentors because it's quite hard to find you know we want to make sure the students are really well supported um and so we we just need we need more than one mentor per project and we need to make sure everyone's prepared to offer enough time to really support the students so we weren't I don't think that Jing is ex will be participating this year we're just you know quite unfortunate but yeah they've been they've been deeply involved in getting Jenkins X3 ready to go general availability and and google summer of code just can't sacrifice that we can't sacrifice that for for they're getting it ready to ship yeah James is it the James Rowling's and James Schrecken have been very very focused on three they're very excited about it it looks and it's an amazing piece of work they are they are impressive at every level yeah are there any okay let me let me ask a question for and I'm not saying you're you're going to be up for proposing this but just out of curiosity are there any other project ideas that you would be interested in seeing for GSoc that aren't on the list yet or not proposed yet so I would I would love to see further refinement of or at least an investigation of the github checks checks experience that went last year went surprisingly well and it may be that it's already done but you know it may be so well it's so so complete my suspicion though is usually projects from google summer of code would just would justify and a supplemental project the next time custom distribution servers another one that slayton's work last year was it was an excellent beginning but to get all the way to production would need more work and and so that's another candidate where you say hey if we want to do custom distributions we need more work and and google summer of code is a great place to do that work yeah yeah the scope like the project for custom distribution service is was huge like for a single GSoc so like we even the team realized we couldn't quite get it complete the huge piece of work completed in an entire you know internet session of GSoc so maybe yeah maybe this time around I can discuss with Kristen maybe we can put it up this year as well it has some technologies that the current you know generation of coders like react it has that's pretty it's pretty cool stuff so yeah it's a good idea nice I like that and the deadlines to apply for GSoc as an organization not for the students but as an organization are the 19th of February so we would need to see it in the next two weeks yeah so could you remind us of the various timeline pieces that's one that okay February 19 we submit we we submit our final proposal as a project to google summer of code that's about the time that the students start there that the students are allowed to submit project ideas then what's the next deadline for the students no so we we submit as an organization with our project ideas and the proposed ideas and then the organizations which are chosen from google as part of the GSoc program ARMA announced on March 9th and at that point students be in discussing with project ideas with the accepted mental organizations however in practice we will continue to have these office hours and we really we welcome your participation and and developing the ideas that you're interested in and answering your questions and becoming more familiar with the project and then after March 9th a student application period is from March 29th until April 13th so at that point students register and submit their applications okay so the the actual window of time that google allows is about two weeks is all two or three weeks where they say submit your applications during this so we're we're already in the prep period and we'll be in the prep period now and we'll continue preparing up until application time okay yes but application time is the final applications from students are April 13th so there is there's some time from a student perspective right so it's good to be engaged now you're definitely like well on schedule it's good and then of course google is going to review them and then the student projects are announced themselves on May 17th and then the actual the actual development starts is it end of May let's no then this is a multi-stage process so then community bonding is from May 17th until June 7th and the coding period is from June 7th to August 16th Cara can you please explain a little bit about community bonding what that actually it is I mean in many ways it's it's what you're doing now you're just at the very early stages of it so you get to know the community the community's norms and more about the project but you do so with both yourself as the student and the organization knowing that you will be moving forward into the coding phase so it's a little bit more directed more engaged you'll be meeting with your mentor and getting ready for the coding phase yeah so wait at least for me the the success pattern was we met twice a week with our student during community bonding and we we expected that they would achieve certain results at every one of those meetings and if they didn't it was sort of a red flag it so so community bonding is much more intense for me than the than these you know here we meet once a week and it's a whole group there it's twice a week and a team of two or three or four mentors focused on you as the student assuring that you're successful in getting ready to start coding at the official beginning of coding yeah yeah and so the coding is from the beginning of June until mid-August but your amount of hours as we were saying earlier your amount of hours that you're expected to do as a student are reduced this year so for student applicants you should know that if you if you still have exams or you have something you need to do in the summer you can discuss this with your mentors and the time is literally built into the program to enable you to say I need to take this week off or I need you know the first week I'm still finishing up my schoolwork whatever that is for you we can work out your schedule the only hard and fast ones from Google's perspective is the halfway the first evaluations are in mid-July and you do need to have made significant progress pretty close to the halfway mark and that's when your first payment I think is released as well if your evaluations go well so you can't you can't say I can't do anything for the first half I will do it all in the second half that that wouldn't work from from Google's perspective basically that's a good explanation thanks plus laden are there any more questions on creating your applications as students just want to make sure that that's that you feel well placed to do that that you have no outstanding questions oh yeah I mean I'm just excited to work hard again I mean I'll just as soon as I have to accept I think it sounds like we're done then I propose we call an end thanks very much Sagar thanks Neelma Rick thank you very much as well looking forward to interaction thank you Mark thank you everyone bye thank you