 Welcome to today's Jenkins office hours for GSOC. We're really excited because Jenkins is participating this year as part of the Continuous Delivery Foundation's GSOC organization and that organization has just been accepted into GSOC. Jenkins is moving right along for our GSOC participation and we are very, very happy about that. We have a number of very good project proposals. There's a link in the doc to the proposals that and the meeting doc is on the calendar invite. I will also put the link right now in our chat for this call so that just to make sure you all have it. There isn't any huge new news on the projects that are listed there although there is one new one that's been PR'd which maybe we'll have time to look at today and there's a draft proposal from Mark which also we should look at if we have time. Mostly we just want to say thank you so much to everyone who has been involved so far, like great work, I'm so happy this is all moving forward well and we want to answer student questions about this year's GSOC participation because it is slightly different this year. Also questions from mentors are very welcome. I've put some notes in this doc maybe I'll share. I put the doc in the chat and that has some notes that actually has been circulated before from GSOC itself just changes for this year's rules. Okay this is a very funny question Oleg you might be able to answer this. Why can I not see the share symbol for sharing right now on my Zoom screen? I would guess you're yeah you see the FJN can zoom. Yes that's correct so you should be able to do that yeah. Oh sorry yes sweet. Yeah I'm connected with my personal account so I definitely don't see this option. Yeah that might be one. Okay great so thank you once again and this just simple links to the continuous delivery foundations GSOC page and links to our project ideas. We still are open for more project idea proposals and mentors are so welcome to add their names onto any project ideas that interest them so I've given a few links to to guidelines on how to do both those things. The differences for GSOC this year include a smaller project size that's the main difference and it's in terms of coding time it's quite a difference so the coding time has been reduced by half so this is something that students need to really keep in mind and mentors should really keep in mind as they discuss and create their own applications to GSOC which this means that like previous year's projects that you look at or you think of previous year's project proposals do not expect yours to be the same scope you will be setting yourself up for a difficult time because they're you're not expected to work the same amount of hours and the coding period will be over 10 weeks and there is some flexibility on when you choose those weeks to be during the summer and this is recognition of the fact that during the pandemic people's schedules are really under stress. Also the other intention is that GSOC would like to open up the program to a more diverse set of applicants so not everyone is able to commit that much time so this is a way to enable more people to engage and eligibility requirements have changed so previously GSOC applicants were enrolled in post-secondary academic programs and now that the variety of academic programs that students can come from have really expanded so it's not just accredited university programs it can be licensed boot camps for coding and community colleges and many other programs so do we have any questions on this on changes for GSOC this year that it's more of an admin type question like do you have any questions on how this will affect your work or the the timing of your work or the rhythm of your work or the scope of your work okay if you you can ask those questions later at any time um also do you have any questions on the project ideas that are listed or any project ideas that you are thinking of that may not even be on that project idea list yeah hello everyone I have a question about that project plugin installation manager tool improvement in that last in last meeting Oleg mentioned that there our tool does not work like as it is expected with different I think other I think he mentioned update centers but mirror was mirror term was also like introduced so I just want to know like what are the different types of update centers or mirrors from which the plugins are installed or downloaded like if is there any source or website from where I can get that information like I have a question okay so there are two entities one is mirror one is update center these terms are basically completely different so when we talk about mirrors so what it means it's basically download sites with automatic selection of a mirror so for example when you go to the Jenkins website click the download button and you will download for example Jenkins for file from a mirror located close to you so that we use mirror bits and other bits of infrastructure and basically when you download plugins it can still go through a mirror because the downloading maybe automatically results to a mirror and updates under itself it's rather a separate entity so it's not virtual infrastructure with load balancing in Jenkins it's possible to have multiple update centers for example in the Jenkins project we host an update center for weekly releases and updates for each of five or most recent LTS baselines also experimental update center all these update centers are generated using the same code so it's Jenkins infrastructure slash update center tool github repository but there is also an opportunity to create other update centers for example you can find the Giuseppe project in the github Jenkins github also there are multiple vendors like cloud base offering the update centers and basically what it means that yeah there is an instance to which you can connect and which can provide you a set of plugins to download these instances may have completely different set of plugins completely different set of rules like they behave but from the Jenkins standpoint you can just connect to this like we call it update site actually and download these plugins and Jenkins might be configured to source plugins from multiple update sites immediately like from those update centers we get a json kind of like we get a json file in that json everything is mentioned like what what are the plugins they are there and all those things yes and no because there is a json file and the ingredient provides significant amount of information like plugin list and dependencies but it's not the only end point being exposed by update center so for example if you have seen a plugin site on the Jenkins page you can see that there is documentation there are links to issue trackers etc all this information is also supplied by the Jenkins update center but there is one thing is that each update center may be providing different information so for example there are update centers which do not expose labels which were not exposing labels before they can provide so for example cloud bci it's update center supplied by cloud base it wasn't providing labels at some point and what it means that there are update centers which generally expose more or less the same interface but the interface is still different and for example one thing to wish you how you can easily reproduce it using plugin installation manager is check sums because plugin installation manager supports only sha 256 but there are update centers which still provide sha one and in this case plugin installation manager generates a warning so json files might be the same long story short it's not just a json but news is that we don't have formal specification of update center and formal specification of information being exposed by the update center so different documentation may provide different information and it might be one of the subjects for this project is that they have a standard specification of what update center should provide example yeah proposal so like in this proposal i also have to like provide alternatives or decide one thing what update center should provide information like in which format no okay like if i'm hoping that json is been provided but the update center is providing in some other format then what we have like how can we oh how can we expect them to provide the information in our required way like how can we implement our standard no firstly somebody needs to find the standards once it's defined actually it's quite easy to enforce that example Jenkins can just verify the retrieved data and print your warnings if the update center doesn't isn't fully compatible with the expected specification but to do that you first need this specification because currently it's just undocumented and one more thing like about the formats like what are the different because i feel the json is i think perfect for this our purpose of downloading and getting the information about plugins and their dependencies but like do you suggest any other way like any other alternative to the json format well json format is just a format the specification the specification is rather about the dtbin that's applied in this format because you may have json which misses some fields and the plugin inflation manager might be unable to process it and to actually download the plugins so okay okay i specification it's not just about saying that it's json but about defining what date is okay okay got it like what are what keys should be there in that json and like that yep okay okay thank you great thank you for your questions any any other questions yeah you go then i will ask don't yeah there was a question from adichie in the chat about how to contact mentors if you have doubts so currently each project listed each project idea listed from the jinkers website it defines contacts and you should use these contacts in order to reach out to potential mentors if you use these contacts and don't get a response just let orka means no because in this case yeah something is broken but if you talk about cloud events idea which is this is an example i'm pretty sure that the project idea page references cloud native seek so you can go to its mailing list to its peter channel and you can use this information to connect to people just a second time my check and detection and the the cloud native seek meets on fridays at the time it's just moved a little bit earlier so it's actually a 12 utc so it's every friday we welcome people to come in you can ask your questions the lead mentor for the cloud events professional generally attends the stakes so it's a good time to speak with them that's quite nice and i don't think it the pr is in yet but just this morning i was talking to someone else who's good at events and he might be mentoring as well so we might have like such a good mentor team on that i fingers crossed actually i noticed that this project idea is referencing the documentation seek not cloud native seek oh the link is one great yeah i'm fixing it right now thank you like uh but yes generally you just go to the project idea page and there are contacts and you don't have to wait for a meeting uh yeah the remittance on fridays but there are synchronous channels like guitar or mailing list and you can use them at any moment actually we have um some docs i can be i can find it i'll put it i'll put it in the meeting notes actually as well and i'll put it on the the page the proposal page as well so you have access to those docs because they list to the the Gitter channel if that's not already on there and um yeah thank you like and the Gitter channel is a good place to ask and also come you can write notes in the hack md docs for the sig meeting as well even if you're not able to attend you can put in a note or something you want to ask and then we can address that question in the meeting and those meetings if they tend to be recorded and in the case notes are always taken um so i have a question um regarding the cloud events also so should i ask here or like should i just ask in the Gitter um as you said like that would to um ask in the get Gitter native see i always ask he doesn't hurt so usually we separate questions to two parts so firstly we talk about process questions other questions which uh basically address all project ideas but if there is no other questions and topics we can discuss specific projects at work ourselves but you're welcome you'll have a question just bring it on um okay um so um i was just asking um i read all the through um but cloud events is like the architecture and all the stuff and going through the documentation of cloud events but um i talked to Vava also is the mentor about this um so in this project there is like um we have to um subscribe to a particular cloud event like there from one is a source and second we have to capture that particular cloud events in the Jenkins so in order to um start that particular listener um so where can i reference that particular course so i'm just i want to um um listen for that i want to subscribe for that particular cloud event so where so which um i can use as a reference to study that further um so as i have to make a plugin with a global configuration to set which cloud event i have to subscribe is there is any plugin which i have which i can reference um um no immediate answer for me i'm not familiar with cloud events well generally cloud events is a mechanism of delivering events and you can take a look at plugins which actually are based on the webhooks so for example plugins like the github range source the github range source uh and the many others for example docker traceability plugin all of them are basically operating reactive mode so they receive events from webhooks and then address these events and you can do the same for cloud events it's just another epi which is being involved but yeah you can receive for these events and then provide an engine which somehow triggers handlers inside Jenkins because my understanding that cloud events will rather be firstly event receiver and secondly a set of extension points so that somebody can subscribe to this event so for example you have an event like job completed and you have job completed listening at extension points so that any plugin can subscribe and to do something like and then potentially through extension points you can do cloud events in the existing system for example build triggering support and yeah other things like that i guess the github checks api plugin is a good example um kezi did some really great work on you know the the listening part of it and the um the publishing part of it you can have a look at his proposal it was one of the best proposals i've seen so it's quite detailed on how he managed to implement the listeners uh it's it's similar to that so if you look at his proposal you'll get a very good idea of how the what what oleg was talking about so yeah have a look at that proposal i can put it in the chat i have it so yeah sure please yeah put in the gsoft channel okay got it yeah thanks thank you sorry sega can i just double check what your question were you asking for an example implementation for jankins on something yeah yeah okay i for a listener part yeah yeah for the listener part okay yeah so that i can make a demo um for a proposal without some proof of concept um that would be good enough for me um i guess for the project at least hey i will pass your question on um and see if i can have more information for you um it's a it's a good question i think the idea of how you would have the pipeline image events and in what standard is a pretty interesting one as well that might very well be part of this work good any other questions or comments proposals things you want to discuss yeah so one thing we need to discuss is how the jankins community will be creating this uh the the deliver the foundation team going forward because for example we have jankins g-soc meetings but they have been no events office hours or whatever are organized by the continuous deliver the foundation last year and the question is how do we coordinate how do we communicate this year and how we ensure that all ortho means are in sync of cementers and potentially students yes i think that probably should be brought up at the cdf level and we can discuss that with other org admins from other projects within the cdf g-soc org but um i think certainly having i'm just gonna say co-located meetings but you know what i mean virtually so would actually be really great i think it'd be really good for mentors i think it'd be good for the orgs i think it'd be really good for students so yeah yeah i have a okay yeah you look potentially just the name this meeting and to invite other projects is one of the options because i'm doing this particular meeting having two separate open up office hours for the continuous deliver the foundation um but yeah i might be wrong yeah you may very well be right i the only reason i would hesitate on that is i don't know how much student questions are going to pick up or how much those questions will be held almost in quasi private channels or on the Gitter channel between students as they develop their proposals and mentors i would think now would be the time when students start really grappling with with very precise questions as they try and write out their proposals and get you know more hands on um with with what they develop but i can see i can see the value in in holding the events together as well i'm just i'm just mindful the fact that there are a lot of projects within the gcdfg suck org so if we're all together asking questions on disparate projects you might there might be a lot of noise well we can see we'll definitely keep an eye on it and i think we should do some uh group group org wide meetings for sure i like the communication channels like i guess cdf operates on slack right yeah yeah oh yes let me add that actually i will add the cdf gsoc slack to this doc to this chat and um that is a very good resource thank you slain so you so you used uh you used a keyword that i made a mistake with last year and so i was going to use this as an excuse to highlight other people should not make the same mistake i made last year you use the word private and communication and talking about developing a a proposal and we've intentionally asked people to keep all their communications in public so that they others can learn from the questions that are asked so yes you're developing a project proposal will uniquely be your project proposal but we still expect that instead of contacting a mentor directly by one on one one message that you use the public channel so that the mentors can answer publicly and and don't be shy yes we're all going to make mistakes yes we're going to learn from each other but it's intentionally a public communication not a private communication so to be clear our ask is that students do not privately dm their mentors they do it all on really open public communication channels okay unless there is truly something that needs private communication you know where it's hey you have offended me and i you said something that was completely unacceptable or things like that but but questions of a technical nature absolutely i think they should be public oh like did i say it well did i learn my lesson from last year yes and no because you're totally right if we talk about the genesis organization the problem that for the continuous delivery foundation there was no real policy defined last year and this project was operating as before so i cannot say for sure for example whether the continuous delivery foundation would like to change the framework of how we operate probably not at least it's my assumption for this year but yeah there might be different policy for example for escalations to our communes this year there might be a different way of communicating between projects for example whether we will have a joint demos or not last year again the competitive foundation didn't do demos for projects so if we maintain a genesis framework as before then yeah all it applies if we stop doing some leads then yeah maybe not but for public communications historically it was really helpful for everyone especially for students who are making their proposals yeah at least for me it's a it's a pretty common mistake that i make thinking that i'm the only one with a question and and that is such a common mistake and it's it's completely false inevitably if i have a question someone else was a little too shy to ask the same question so don't be shy ask the question admit it publicly and it's great for us to talk publicly and not only that what i will say is that you know mark the example if if you're having a problem with someone you might want to de-end them privately what i would say is if you're having a problem with someone you should speak to us like you don't you do not need to fight fight that out with someone like just just come talk to you know myself or like on mark or anyone else in the org team and and we will be very happy to talk with you and hear any issues you're having any any you know it can't it doesn't have to be like complex it can even just be like i don't you know i don't understand this i i don't understand what this person meant it can be anything so you know we're really here for being that sort of resource as well so and this so this is how to join the cds slack i'm putting it in our channel and then the cds slack once you're in that the gsoc channel is just hash gsoc so pretty straightforward and i put that in this doc as well yeah there's a couple layers of organization which can be maybe a little more confusing this year but hopefully the confusion we will sort out our communication on that so we will not feel confusing and then you'll just have extra resources just for you that's more the goal that kind of now we will have the gitter gsoc and then the cdf gsoc as well so i mean yeah that would be good to put on the gsoc page i guess of jenkins.io slash gsoc if you want to yeah yes we should update i have a question like not a question but last time whenever i also tried to sign in with this slack it says you doesn't have a no okay that's just my fault okay fine so i'm sorry did what is there did you have a question no okay okay do you have any more questions on the changed org structure for this year or communication or any any other questions i thought i just want to make sure that the information we have is as clear as possible for you and i will say that's a really good suggestion we will update that page another question organization why do we want to have org admin mailing list because current situation that we have on the slack and if i recall correctly cdf yeah uh cdf slack is on free plan so it means that at some point all the history will be lost and the history is essential in a google summer of code um we can i mean we can use that slack channel but what i think we should do is have the mailing list i think that works really well and likely that should be um yeah cdf wide yeah we can create a jenkins one this year but yeah practically if you talk about the single organization it's five four customers but cdf one any other questions project ideas general gsa questions work should we go over um should we go over marx draft project idea on the gsa page sure so okay if i share my screen please do all right let me let me get there just a minute a little bit slow on the uptake sagar had a question with regard to login on the slack channel did you get the answer to your login on the slack channel question sagar before we before i get dabbling into the this draft proposal uh yeah so um in order to get into this slack channel they said i need a mail with um op op op smx dot i o mail so how can i get that mail yeah and and i i apologize but i don't i don't recognize that and i i would be surprised if that were actually required so that that may need some investigation separately because i i don't recognize that requirement op smx is certainly a significant contributor to things but i don't know why you would have to have a mail address in their domain i guess he mind you is also facing yeah like it's uh required uh it is saying like it is required either that from that domain op op smx dot i o or op smx dot com that's why i use it so sagar maybe if you would be willing to if you're comfortable sharing your screen it would be willing to share your screen showing the failure that will help the rest of us understand yeah sure sure so can i yes please so um yeah so are you able to see my screen yeah so i think if you click the button continue continue with google i would expect it to work uh okay no huh is there that that op smx uh has a drop down menu is there is there another domain no no let me let me log in with google um i don't know maybe it's yeah maybe slug has changed the the sign up form because you can see in the bottom there is explicit question i don't have an email address from one of these domains contact the workplace administrator for an invitation and actually it's how it was before so before they were by invite things so maybe at some point we had uh john zing but when i was changing the if it was also it also required uh getting an invitation from someone that looks to be a glitch of some kind i will ask um within the cdf and just yeah check it to op smx isn't correct so but yeah it's just whoever created the workspace at some point okay so everyone is saying this okay so it's an outstanding problem okay all right we'll have an answer for you for sure very short yeah so car car is great with interacting with with cdf so let's do that okay if i share my screen and the here was here was the draft proposal or the i need to use the right term this is a project idea that was being offered on pipeline step documentation generator improvements so i believe it was segar actually who had started a look at another topic rest api automated automation that was using this tool as a pattern but there are some improvements that this specific tool still needs and so this could be another project idea and that was the that was the reason for this one and and here the idea is that the jenkins pipeline step reference in the documentation is difficult to read and it that difficulty is is is is is painfully obvious in things like well let's look at this one read file where okay this page loaded quickly that's very nice but it's it's missing an awful lot of context that could could help a reader and now that one is a very simple example here's one that wait while this notice that spinning ball and here is this enormous page that if i were to expand each of the items on this page it's a 60 60 page printed printed document so it's huge and and very hard for for a novice someone who is just deciding oh i want to do checkout they say i need to check out with git because that's typical but they have to look and they have to find it here and know to expand it so the idea is let's improve that by splitting instead of one big checkout page let's have many little checkout pages one for git one for perforce one for subversion etc so the idea was study the documentation generator codebase and and now this is the embarrassing one read the documentation feedback from writers for from people who read it and the challenge here is sometimes it's got profanity in it sometimes it's got uncomfortable phrases in it sometimes it says things that may leave you unsettled so don't don't be offended by it but just be aware that there are people who give very direct comments about oh this is weak or this isn't what i want and that this is the the conceptual idea is let's improve this documentation so that pipeline steps are a better experience for users than they are right now questions so the coding the coding portion of this is actually java code and it's it's a lot of manipulation of it uses some really interesting technology to load up janken's plugins and read documentation from inside the janken's plugin and so for me i think i think the tool that's doing this is fascinating and the way it does it is is quite amazing it it actually uses the compiled plugins to generate the documentation of plugins kara was that the sort of thing that you were envisioning that i would that i would do as the introduction yes that introduction is very welcome and then i wanted to discuss what we needed uh how we can move this forward from draft to accept it as well yes i and i i think it's ready to be ready to move to accepted it's got one of our standards is it needs to have a viable list of issues that are friendly for newcomers and it has those um they are they are in our JIRA JIRA system um here's the that issue and then there should be a dash