 Alright, welcome. Okay, it's the 30th of June. This is get love plug get lab plug in modernization project. So items I've got action item report planned do we need to discuss further on the second milestone harsh what would you like to discuss as other topics. Like, I need the draft we are for the second milestone what whatever a quote I wrote I just pushed it to get up so that people, so that the mentors could check if I'm on the right direction on the second milestone or not because I was not able to make the second milestone like the code run interactively. So I would like to debug things a bit because but I'm not able to debug it because of the four or four errors that I'm getting. I'll discuss a bit about more, more on this but not the, like I don't think so we should be discussing the project, like the I don't plan as such. Okay, good so discussion of the. So it's more discussion of the draft pull draft pull request. Great. Alright, that starts the second milestone is that a, is that a good way to say it. Yeah. Okay. All right, and any other topics. Let's see, are you comfortable with the recording for their midterm presentation we need to discuss oh not recording it's no longer recording. It's not a recording is it. Yeah, I'm giving a live one like be rehearsed yesterday I think it's going good. Okay, and we I think we should talk about upcoming timeline just to be sure that we'll all align there. Any other topics that need to go on our list today. Like you can update the exam from six from six to July to 7 July. Yes. Thank you. Very good. Okay. Yeah, so I'll give I'll give an update about like a couple things like the first milestone the second milestone and about the midterm presentation. I have a question about the midterm presentation. Can I use the because the pull request for the first milestone is not yet merged, but I will have to use the development version of the HPI of the plug in that that it will be creating so can I use it. If it's unmerged, like in the demo. Yes, absolutely. Because the problems are kind of minor like it will not happen because I have a perfect working test connection so it will not drop so can I. No, no reason not to just use you are welcome to use it certainly, I think it's desirable to have it merged but you can demonstrate from the fact that you've saved it and pushed it publicly is already makes it worth demonstrating. Okay, so, like, I already told about the first milestone like I first one I stuff with one thing like. It has the test connection, the thing that the only thing of the test connection, I messed up with the exception part, because I, I thought that invocation target exception will be going with a bit like a exception and it will be catch and it will not show an error, but somehow we're showing the error so I'll, I'll dig more into what's the what the hell happened how did I miss that. Yeah, that's one left problem in the postmaster and the other problem was I interest were trying to also make the tests work, like, and for that we started using the GitLab rule, which he created a GitLab mock server. And the thing that the problem is like the, the GitLab mock server that we have does not have a user yet so I'll have to have to add a user data to it, and then see if the client builder is working correctly or not with it. And if it does not work, we'll have to redesign the connection tests come like the connection tests which are available in the first milestones like the pull request, if it does work then of course it's great. So that's the update on the test part other than that I don't know I don't think so any other tests appealing other than the JSON responses that are not matching. Those were due to the type differences between the null value so I couldn't get it that how the, how the null values could have different type issues, but it wasn't Chris pointed it out. So, other than this, I think the tests are quite good. Not, not a problem. I'll have to work on the connection test, of course, and more, more on the second milestone, like I wrote the code and the code is compiling of course it's no problem. I also work a bit on the testing part of the second milestone. Yeah, right. Sorry, I'm not keeping up. Yeah, yeah, that's that's what I saw like. Okay, all right, so it's not a problem I'm speaking very fast for that's why the first thing was the second milestone you the second thing you mentioned was working on the test. What was the first time say that again. I started working on the tests. I what I did it was I was migrating the webhook, like the normal hook implementation which was available as Jason to be used in the test to to my to adapting the same thing to the webhook events, so that they can also be used in the test. So that's what I did, but like it's not yet complete I was just working in a lot of things this week, just so that I can push most of the things, like, so that the only thing which is left is the blockers that I'm facing which could be resolved in the last week so that's what I did this week. So all the things which are left now are blockers which I'm not able to resolve so I'll I'm using some help here and there with Chris. And other than this the second milestone I will, I was, I was getting a 404 error which I was not really expecting, like, I didn't really change the get dynamic method, which gets the stapler request and the response from the plugin, but still it's giving me a 404 error which I don't know why, so I'll have to figure it out. I tried using my debugger but I, but I can't really use it, because the GitLab, the problem is the Jenkins code is not either giving a response to the GitLab plugin or the GitLab plugin is not able to take the response. If the GitLab plugin is not able to take the response, then it's not much possible like I don't I can't think of a scenario where GitLab plugin is not able to take the response and the request, but if it's happening then I'll have to see, but I'm not able to debug it. So, yeah, that's one issue that I was facing. Other than this. Yeah, that's these are the things which I did this week. Thank you so I was typing as fast as I could harsh did I capture the things that you were describing. But if it's not I'll describe it more briefly if I can edit the meeting notes right so it's not much of a problem. You certainly can. Okay, that is that 404 coming from the test or from the production, the production code environment. So you're so you get so I'm trying to understand the scenario here you ran a test with a web hook on a regular Jenkins controller not from a unit test, and then you got a 404 from Jenkins. Yeah. And could you get the same did you get the same error on the old version of the GitLab plugin or only with your new version. The new version, the older version that I was using I was not getting any 404 for a force with the request that I was sending the newer version in which I changed the web hook implementation quite a bit like from the web hook from the disease web hook to the GitLab for this event. So there I think I am assuming that that's causing the problem. I don't know. I'll have to debug it. Yeah. I would, I would set a break point on the place where the Jenkins controller is doing the redirection. And I think that's, there's a stapler method for doing a redirection. I'm sure that it would be easy to find. I don't know if you haven't found it already, but, you know, basically, once you have a break point on that method, you should see, you know, some kind of call hierarchy, and your goal would be to move backward in time, and try to find, because the point you're in the stapler method to report the 404. Actually, I'm sorry, I didn't mean redirection. I meant, I meant the error handler basically the whatever is. Well, I mean, I'm actually know me. I'm assuming that something is. I'm assuming that you're being redirected to a page that doesn't exist. So is that was was that what you were seeing. I'll explain you a bit more on what I did. You are on the right line. So what I, what I was thinking was, I, I got the Jenkins score, like the repository, and I'll have to use the Jenkins score as well as the GitLab plugin, both and debug both at the same, kind of a same time because like what happens is the Jenkins score sends request to the get dynamic method of the GitLab plugin, and I'll have to see how that thing is going, just so that I could pick up where the 404 is coming so that I that's what that's what I'm thinking, but like debugging both of them at the same time it's it's kind of a messy thing there. So yeah, I was just trying to make sure that I'm pinpointing the right issue because I don't think so there could be a problem there. Like it is quite unlikely that GitLab plugin is unable to receive the request from the like Jenkins score. So that's that's what I was thinking like it's just in hypothesis that I have. Yeah, that makes sense so I would yeah like I said earlier I find the stapler method that is doing the redirection and see if you can see what called it because that's you by the time we're getting the redirection to the bad URL we've already gone off the rails, but setting a break point there can at least show you a stack trace that hopefully a previous frame in that stack trace will show you the place before we went off the rails. So even you know so for example you know you might you might get a stack trace that leads you to stapler redirection. And one of the previous stack frames is like line 50 you know but that by that point we're off the rails but it might be that we made the mistake at like line 25 of that function. But it's, I'm hoping that it's in the same stack trace. So that's how I would debug a problem like that. Find the place to make a generic piece of advice find the place where you're off the rails, and then work backwards to find the last place that you were still on track. And that should be hopefully a few steps away from where you're off track. But like what I am intuitively feeling is the field which I have was like I didn't really change much in the get dynamic method of the get lab plugin. I just added some event handlers there just so I could redirect to the to the different methods that I created in the get lab plugin. So it's like for me it's kind of unlikely that any change that I did in the get dynamic method of the get lab plugin is causing that change. Of course, I'll do that as you said like I had this thing in my mind, but I just wanted to convey it so that if, if something else could have been popped up so yeah, that's what I did. Yeah, when you're dealing with when you're dealing with event hand event handling logic may not be as simple as just going up the stack trace because basically asynchronous programming break stack traces so but conceptually it's a similar idea right. Even if, even if it's a little bit harder with asynchronous events, the same, you can apply the same concept of finding, finding the place where you're off the rails and then trying to work backwards to the last point in which things were still on track. So, and that's one of the, that's one of the most. That's one of the most annoying things about asynchronous programming some, there are some frameworks that will stitch together stack traces from different asynchronous events. And I'm not, I'm not sure if, if whatever library we're using can do that but that's definitely something to, it's definitely more difficult so there's, there's, there's nothing, nothing unexpected about it being hard to debug, I'm afraid. But hopefully you'll be able to figure it out. I'll try something I've been into bad situations a lot of time, I'll figure something out. And one more request that I had was like the second pull request, the draft pull request of the second milestone which I made. I want you guys to actually see through the code, if you could provide me some guidance on the design that I'm like, I had to repeat the a lot of times, because of the overriding of the methods that I had that I had to do. So if you could just glance over the code that I wrote to provide some guidance on the design that that if it's right if, if the code logic could be better, or the code design could be better, then that would be great. So this is the draft pull request right. Yeah, the draft pull request of the second milestone. Okay. And your specific concern harsh was that you were seeing some cases where there's some duplication of code that you thought. Yeah, yeah, like, it might not be avoidable but like, I am not that pro right so if you could see some things which I'm not able to see. But beforehand like before I make it a milestone and if it starts working then create a course, but before I made it make it an actual pull request. It would be better if I get some reviews on the draft itself so that I can prove upon them. Great. Okay, so, but I think I captured what you're saying that there you see you have implemented in the draft pull request, some do code duplication that allows you to compile it allows the thing to sort of behave the way you were doing it, but you'd love guidance if there are if others can see ways that hey that code duplication could be reduced or eliminated by different by different structure. Yeah, okay. Great. Anything else. That's what I did in the feedback. Yeah. Thank you. Thanks very much. Anything else on that second milestone that sounds like you're you're you're looking forward to reviews. I apologize. I still owe you more testing my weekends coming so I hope to do testing. I don't have work on Tuesday next week so I apologize that my interactive testing hasn't happened yet I am sorry, sincerely. I tested it this morning and it seems like it's, it's pretty good, aside from that exception problem that we already discussed. Okay, I'll see to it. Everything else looks pretty good. I removed, I pushed a few commits to remove even more transitive dependencies that we don't need. So it's a lot lighter than we have fewer, because a lot of the plugins that we depended on we're only needed to support the rest easy implementation things, things like something. Well, it, no, that's, that's fine because it's not very, it's not very obvious to a beginner how our library plugins are packaged but I removed yeah I removed a few more I removed the jack speed plugin and the patchy components plugin and a few others that were only needed to support rest easy in the first place. So, I also turned off the running of the tests, because that was causing the CI build to fail so I, is this is the plan still to tackle the tests in a different pull request because I thought, I thought last week, we were going to. Yeah, not, not worry about the tests in this milestone but do it in a different one so is that still the plan. I just wanted to get the tests working because like in between I went into some trouble because of my get client issues in my Jenkins controller. So I got pretty uncomfortable if the like the if the milestone once code is working as I wanted to work. That's why I put up some amount of time in the tests, but it is not much of a problem really make it into another milestone, like I need to work on the second milestone quite fast because like it is the last week. I need to get it done, and I'm getting bugged by the seriously crazy 404 so yeah. So harsh just to be sure so it is still the plan that it's okay that the current pull request is not run tests, and it's okay that it runs only the limited set that were whichever is fine. And it is kind of okay and one more thing that I was, I was kind of worried about in the test, how is the github github city which we have implemented to run the, like the tests, how, how is it going to have that like the local server like because we are using the GitLab Docker based test right like it uses the GitLab actual URL that instance that I've created on my local machine so how is it going to test that, like, wouldn't it always give me no client builder. So, so what you're really asking is how does ci.jenkins.io run tests that require a container. Yeah, a container or a local mock server or something like a local host. Well so local host is available in in that context but containerization means you can't use the, the, you can't run inside a container because then you can't invoke another container. Yeah, but is that your question I'm not sure I'm understanding your question. Like, because the Docker based tests are dependent upon the depending upon the container right so how are the CI test of the Jenkins that is implemented, going to test that Docker based test, because they are Docker based. Yeah there's a setting in the Jenkins file that does that does that let's go see it. So if we look at this test they're disabled right even on the main base they are disabled as far as I understand it right but yeah, if the day comes that we enable them. I think this thing use container container agent true would have to be set to use container agent faults, because then you could run Docker containers. Okay, as far as I understand it. This thing changes where the tests run then where the build process runs, and it says okay don't use containers, and because it's not using containers, Docker can then be invoked. I think it's more into the tests as a third milestone or the fourth whatever it is, because like, it requires some amount of work from my side to get those Jason, like those Jason are working like, just to get those tidbits right, it would require some effort on my side. Right. Well, but but I think Basel's right to remind us all that we are perfectly okay that those tests do not run now. They have not run for years, and it's this project would still be a success, even if they did not run. Right I think I think I adapted quite a lot of them. Yeah, and it's, it's, I think it's more important to get the mock the wire mock tests to work in this project because they were working in the past. So they should, they should continue to work. But I think you've already noticed that they need some adaptation. I don't know how far you've gotten but I would assume that some of the Jason expected responses need to probably different with this new library. Yeah, like they're not that different as you're thinking like the types of Mitch matching like, like the null is mismatching with the null of the different type. That's what I that's what we were trying to fix and I got a null pointer exception here and there. But we'll try to fix it soon. Yeah, yeah, you're right about it. I almost did that like the Jason responses matching. Yeah, nulls in web service API is always a challenge. And, and I think there's a, there's a specification called open API that tries to deal with this by formalizing a schema for you know these web services and they have a specification that goes into a lot of detail about you know what, what types are returned from each endpoint and how do you deal with things like null ability or optional or default values and things like that. So I don't know if I don't think it lab is using open API but it's a very common problem with with rest API design. The problem that I was facing was, I couldn't really give null to the with coverage method, because if I give a simple null, it would not match due to the type mismatch. If I type convert the null into the different type like a float or long or whatever it would it would it would actually match but it would give me a null pointer exception because the methods that are being run on the knowledge to convert conversion to the float type will give me some random null pointer exception that I'll have to fix and yeah, yeah, I wasted a day on that. I know that pain. Okay, so yeah, that's what I did on the test like nothing more I don't think I have any other other than the deadline that I have that I have to complete the second mile from past. Okay, so, so are there. So you talked about the pull request for the second milestone. Are there other pull requests that you wanted to discuss. I think we've covered them all. Okay, anything that you want to ask about on the midterm presentation, you feel comfortable there I know we rehearsed yesterday. You showed me the demo yesterday, it felt like it went okay and was just fine. I'm not as expected and like, like I hope it would be as expected in the midterm presentation also and my get client won't like disturb my life that that day, but yeah whatever yeah I think I'm quite comfortable with it. Great. Now on the upcoming timeline, I know your exams are seven July now. Do they do they last for a week. How long will you be so seven July through 14 July. Okay, so should we cancel this session that would normally happen next would it would happen what next Friday on the seventh. Yeah, we should it seems like we should cancel this session. And do we then meet on the 14th, you'll be presenting on the sixth, or is the 14th still examinations for you. Are you are your exams done by the end of the day on the 14th or because yeah it will be done because that week like it will be very intensive because it's an ancient method examination number to study a lot for that. So it's going to be kind of like excessive studies that week so I will be able to do a much less work in that week so yeah I think you should be putting it in the 14th. Project meet of course and and the GSO office hours. Okay, well, so we could we could also cancel the 14th if that's going to be disruptive to your examination schedule so we want to be sure that your examinations are that you had the best chance to succeed at your exams. Like the examinations will be over and after that of course I can join the meeting but it's not a much of a problem to me. Okay, great. So I will cancel our next session for the seventh and we'll plan to meet the 14th. Okay. And as always I want to remind myself that we're okay on the checklist. So the next milestone is July. The next milestone for us as mentors is midterm evaluations begin July 10, and then we have to submit and we get to submit one evaluation so I'll work puzzle with you and with Chris to get your feedback and then I'll be the one who submits it if that's okay with you so I do the bookkeeping. I get, I get the feedback or I give the feedback like I don't. Both you will, you will be expected I think to provide your own evaluation, but then we I provide an evaluation, and you'll then I think you then see that evaluation after I've submitted it. So I'll also give an evaluation to what I believe so. I believe so I don't know if it's to the mentors or to yourself but I believe there is an evaluation that you submit Chris can you clarify I think that's how it works for the the contributor. I think so yeah they have to give evaluation to project. So the organization the mentors. So, so you you provide an evaluation, and we provide an evaluation. And, and if, if for some reason you don't get our copy of the evaluation let us know because our intent is that it should help you. The part by the contributors optional, I think. Oh, okay so it may be that that he's not that harsh is not required to submit an evaluation. I think it was like that last year to but it wasn't that before like many years ago, which required. So look for harsh about July 10. Look for email from from Google Summer of Code inviting you to submit an evaluation. I apologize that it's right in the middle of your exams, but that's what I was worrying about actually how much time they've been taking like what I have to keep it brief. Okay, your, your, your efforts on writing that evaluation should not should not take do not spend much time on that spend. Yeah, keep it simple. Okay. All right. Any other topics we need to discuss today. Well after the like the victim evaluation the second, the last, of course the second phase of the second coding phase will start right. Correct. That is correct. Right very good. Second, second half coding begins. Is it July 14 I should look at the checklist midterm demo. Oh it doesn't even list it the final week is August 21 through 28 so yes as soon as as soon as you're back from examinations. We start the second phase. The second half and that will continue until mid August until August 21. Okay. Oh and I have to I have to forewarn actually I've got one, which is July. July 21. Mark is out of the office playing with his grandchildren playing with grandchildren. Chris, would you be willing to host the meeting on that day. Oh, sure. Yeah. But we mind me though. I will do so. So we'll meet the 14th and I'll certainly remind everyone that I'm gone the next, the next Friday. Yeah. What are the possible worries that the mentors are having like any possible before the like the next thing starts like we are almost at the end of the coding placement right so before then the coding phase two starts what are the things which are bugging you right now about the project. Anything. Okay my my non performance as a tester is bugging me but that's nothing you can affect. I'd look to others if Basel or Chris if you've got concerns or worries that you want to express. I think it's going well so far I mean I took another look at the code this morning and it looked very close to to finished, at least for that first milestone so I think it's going pretty well. Nothing special for me. All right. Any other topics to discuss. Okay, let's let's call this one done then thank you very much. I'll stop the recording.