 All right. Welcome to the Jenkins Evergreen planning meeting. I think for the recording, we'll start off with a yawn for Batiste. We'll just do show then. All right. Hi, guys, for not running this last week. My office flooded, so I'm working from home again. But I believe Batiste, now you have the access, or did nobody set up access yet for you to run this meeting? No. I didn't send another email. But basically, people agreed on that. I'll just take care of that access after this. And then I'm sure you'll be able to figure out how to run this if I'm otherwise absent. Sure. So I don't recall. We've had at least one meeting, I think, since we started Milestone 2. I'm going to go and share my screen. So Milestone 2, as we sort of originally scoped, and this has changed a little bit, obviously, with some of the changes that have happened after DevOps won't take as well. As originally scoped, we were looking at making Milestone 2, I'm just going to call it, more user-friendly, adding more features to make Jenkins Evergreen more compelling, and exercising the update pipeline. So in the first part of that, or sorry, the second part of that, the exercise in the update pipeline, we've actually been doing fairly well. I think we're at update level 117 now. And we had a number of instances jump up to that, which is very good. We've been pretty consistently upgrading instances, which I'm very happy about. And we've also got Sentry. I don't know how frequently y'all are checking Sentry, but it's something that I now have open every single day and looking at and merging tickets. I'm quite pleased that we're seeing some false positives, but some actual logs coming through, or some, you know, I'd say overly verbose logs coming through. But otherwise, it seems like, as from my perspective, milestone one was successful. Any thoughts on that before everyone? Disappearments? I guess things are roughly working, so. That's some Daniel Beck enthusiasm. Yeah, because I'm kind of pissed off because I've been working on that rollback for much, much more than I thought. And so that's kind of pissing me off. But yeah, absolutely, the thing is working, and actually it can be updated and everything, so things are great. So I would like to actually... Everything's awesome, but it's... Yeah, yeah, yeah. I'm normally the one optimistic. And I'm still optimistic, I'm not saying. I'm just knee-deep into something, the same thing for our quite long end. But I see the light now. So just switching to the... Mandy, do you have anything to say on that before we move? Nope, nothing new. I think the sort of three big initiatives as far as I can tell for milestone two that we need to address, there's the, I'd say, more fine-grained rollback, which is what I'm referring to your work, but at least as, which is a big part of this, there's the AWS flavor, which we need to resurrect, and then there is the updating of the support distribution, which is the configuration as code, the client itself, and some of the other supporting documentation and things that get laid down in the Docker container right now. So I just wanted to give a quick update on the AWS thing. We've met a guy named Joe at DevOps World Jenkins World, and I know his last name, I'm not gonna share his last name on this, because I'm not sure how you would feel about that, but I seem to have lost his email address. I took a picture of it on the whiteboard and I may have deleted that picture when I was deleting what I thought were a bunch of out-of-date whiteboard diagram pictures on my phone. So, Joey, what are you? Okay, Joe, come back. But one of the things I'm gonna try to do this week is I'm gonna try to do some internet forensics and try to find Joe. Yeah, how hard can you be to find someone named Joey in the U.S.? So the gist of what he was doing or what he was suggesting for you and anybody else, Mandy, at DevOps World Jenkins World is he had a lot of familiarity with CloudFormation and he was talking about the project and he was talking about how he would likely configure ECS out of the box to use the S3 buckets for artifacts and some of the CloudWatch stuff, but using ECS as sort of the primary deployment mechanism for Jenkins Evergreen on AWS, which is a little bit contrary to the route that Baptiste set up originally, which was to just provision a single EC2 instance. Well, to be clear, initially I was willing to look more into ECS, but after a quick spike, I realized that it would kind of make me kind of drift off track because the goal was mainly to have something working on AWS to keep the ball moving forward. And I would have probably spent much more time learning about AWS itself than rocking on the core, I would say Evergreen related things. So yeah, that said, I just preferred to look into something that I knew how would you work into that because it's already took me quite some time to figure out the configuration and everything for EC2 plugin and many other things there. So yeah, but it's a great that indeed we can do many more flavors as we go. And that's the point indeed. One of the other interesting things that happened at DevOps for Jenkins World, which we haven't had a chance to follow up on is someone from Huawei came and was very interested in a Huawei cloud specific flavor. I think I've got his card running around here somewhere. I haven't had a chance to follow up with him. Or did you delete his email, maybe? No, physical cards, I'm actually pretty good at holding on to until I send an email. So yeah, that's the status of the AWS thing, I think hopefully Joe will get back in contact with us. Otherwise, we may want to resurrect this work in the next week or so. Mandy, how are things looking from your end? Let me go to Mandy here. So I don't know why, but for some reason Evergreen just will not start up Jenkins for me anymore. So I've been fighting with that. Interesting. And this is true on both Linux and Mac, it's not a Mac exclusive issue. So I'm currently tracing through that to see what's going on. Did you update because there was a fix yesterday that without that one, nothing would work? I mean, I've been trying with the make run and I'm actually trying with the read me command right now just to see if it'll even pull just the latest Docker image and run that. And so far, not working very positive. The make run doesn't work, but then did you do the curl call? It's not even getting to the point where it's up and running enough that the curl call would even hit something. Okay, so when you're running make run, you're not even having the backend getting up to date. Okay, right. So we're not going to debug that live, but okay, we can have a look if you want afterwards. Yeah, if you want to prepare. Yeah, because I've been running make run every day since like last month. Yeah. Yeah, if there's something, if there's like unless worried about Macs, sorry, Mandy, but if there's something not working on Linux, then that smells closer to like a real bug. Because Macs are crazy. I've been doing most of my work unless it's service, anything to do with the distribution side has been Linux exclusive just because it's so flaky on Mac. Yeah, possibly we could improve that that we would have to develop indeed constantly there so that we can never make it drift. And we don't even have CI for that so well. It's kind of hard. Yeah. And it's not the target platform anyway, so kind of harder. So double, double, double hard. Okay. Step one, unbreak the environment. You had mentioned I think last week I saw something in chat that you had been hacking on a script that do the seamless, or not seamless, but the restart and update. Yes, and one of the things that I had talked about with the Teast was actually sitting down actually documenting the entire process and probably getting it into one of the JEPs just to make sure that we're sort of sane and how we're gonna do it because it's actually gonna be a fairly complicated process. Did you both the upgrade and the downgrade with that? Okay. Yeah, I think that's a good idea. And I certainly would be interested in seeing an outline of how you're thinking about this. Yeah. Yeah, that's kind of what I was referring to indeed that for instance, for my case, for the snapshotting thing and everything, being forced kind of upfront or progressively digging into things and think more deeply because you're kind of challenged by the fact that people are going to read what you're writing is kind of helping actually kind of a bit better than a rubber duck. But yeah, it kind of forces you to think about cases and everything and kind of hardens the design I think. And I think it's the right moment to do that because Mindy has been playing and digging into that for quite some time. So now probably she's ready to wrap up something and move forward even more. Okay. But Mindy, if there's anything you need from me on that, let me know. But you and Pati's pairing sounds like a good idea. As is my schedule is messy. Okay. I've been writing a few JEPs so now I could be able to live up to help on the process side at least. And the review obviously, but it's, yeah, even the process side I've been doing that for quite some time. Pro level JEP writer now. Yeah. I might be the one who's written the most because like 10 or 12, I don't know. So most of the stuff that is sitting around in the backlog for me is all in a little bit of a state of, I'd say neglect right now. I've been discussing with some of the folks on the pipeline team what sorts of telemetry they would like and how we would like to start to instrument pipeline to send useful information back to the Jenkins project. I would say somewhat unsurprisingly when you ask big open-ended questions like that, the discussion tends to get very large. So I'm trying to corral some folks within CloudBees in particular around, just giving us a sense of what sort of analytics they might want from pipeline and how they might want to implement it so that we can start to capture it. Well, the reason I'm trying to drive on that with the pipeline team is in Milestone 2 I had scripted out originally some more metrics that we would be starting to receive from Jenkins Evergreen. And we don't currently have a system to report those metrics from an instance. And I kind of want a dummy use case or not a dummy use case, a good prototype use case to design around for how we're gonna get metrics and analytics from a Jenkins Evergreen instance into the backend. Because I don't believe that the same approach we're using for century is gonna work. So that's that. I guess the only other, the only other big thing that I wanted to ask about is it converted the client to TypeScript. And I hope that is not the cause of your problems, Mandy. But I don't think so. I've been having trouble off and on for a while even before that merge. Yeah, but you can use that excuse, Mandy, to say that. No, no, it's totally TypeScript that's causing the problem. Okay, right. That's the way. The reason I'm bringing up TypeScript is I found that that conversion to be, is fairly straightforward. But it seems to be that that type of task is well suited for my manager schedule right now. I could make progress on that in little bits and pieces in between some of my regularly scheduled meetings. So it's considering implementing some of the refactors that Baptisse suggested to improve the TypeScript in the client. But I was also considering starting in on the service backend with TypeScript just because that's something I think will help us long-term and it is easy for me to do in between manager meetings. And I wanted to get both of your feedback on that before I set it on it. Did you have anything or any thoughts about that? Because I've been playing with that, so I don't know. I don't have a strong opinion either way. I've been playing with that the whole day, so mainly the whole day because it's merged the day before, so it's kind of normal. So there are some interesting things. For instance, the fact that now we cannot really use the, which I've been using for quite some time, the watch mode for NPM. So it can be used, but it's a bit convoluted. I do that now. I have a complicated local setup that does work. I need to document it, but using I notified weight, I notified weight to actually watch the disk and trigger TSC. So yeah, I know there is, by the way, watch mode normally on the TypeScript compiler, but for some reason it doesn't work for me. So I ended up watching the file system and triggering TSC, which then is going to trigger in transitively the watch mode or NPM just, but that works. It's a bit convoluted, but it takes only a few, a handful of seconds each time after you read save. So it's usable. I could document that, I mean, until we find somewhere maybe to make TSC-W work. So I really don't understand why it doesn't work this way, because when you're having a look at the make compile goal target, it's just a TSC call. So you would think that TSC-W would be enough, but it's not the case for some reason. So I've not dug into that deeply. So it's interesting to me because there's this watch compile target. This works for me. It works for you. So that's new or that's a good thing. Let me see if I, I think I just did that some time ago. So one thing that is useful to keep in mind that I learned when I was first starting to play with this a month or so ago is the TypeScript compilation is not required for Jest. So TS Jest, which is what is configured. Let me go to the package JSON here. Yeah, TS Jest doesn't require the TSC to complete. So what I actually end up doing for my local development on some other TypeScript projects is I find the error messages from the TypeScript compiler to be very good. So I'll have one pane in T-Mux that is just running TSC-W. And then I have another pane in T-Mux that is running Jest-WatchAll. And whenever I save a TypeScript file, they both run. That's exactly what I ended up doing. But you know, the TSC-W works around by using I-notify-wait. But yeah, that's mostly the main idea. Right. And then because I think the directory we're building into is just build, what I, I don't know if I put this in this project. Let me go ahead and pull that up. But TS was hopefully submitting some pull requests for this thing that I had worked on that may be interesting to you, if I can find it. Yeah, but I've been spending quite some time because for some reason when you're opening, because I think this is probably because of the TS Jest package. If I do not locally add the thing into the TS config.json, then VS Code is not able to actually show, not underline the, so I have the fix locally, but then it changes the layout and everything. So I'm going to probably push that later. But I'm not sure if it's going to then be conflicting with the TS Jest thingy. So we'll see. We'll see, yeah. Maybe I'll drop a link to this in chat. But this was something that I just used as an experiment to create a good quote unquote, I'm doing air quotes here. A good feathers application in TypeScript. There's no test, right? No, of course not. So it's an okay feathers script. What am I going to test? That's the point, you're going to do something right from the ground up. But this has some of the tools that are sort of necessary and that I would bring in for the evergreen back end we're ready to use it. There's also another application that we use that is feathers based for the Jenkins Infer project now called Uplink, which this actually has tests, thank you Batiste. But this is a feathers application written with TypeScript and using SQLize and a lot of the same things that we have in the evergreen back end. I don't know, my build is failing, but written in TypeScript. And so this would be sort of the direction I would likely be going in to very, very good application as you can see. I'm not going to log in because this is publicly recorded. And I have super admin access and I don't want to show what super admin access gets you. Anyways, yeah, there's, I don't want to cause problems with any of your development environments, but I know with Uplink, for example, there have been cases where TypeScript has prevented me from doing a lot of stupid things. And I found it to be a good safeguard for a lot of that. And I know, at least as a, there are definitely issues like three months ago working on evergreen where the type system from TypeScript would have actually prevented me from shooting myself in the foot. And hopefully it helps us all not shoot ourselves in the feet. Yeah, maybe I'll take a crack at that in between, in between my meetings and my other managerial duties. Since I can't work on anything of consequence. Yeah, I think it's, even if it's creating a lot of conflicts when that thing is done, I mean, let's do that rather sooner than later for obvious reasons because it's going to be harder and harder to prove that in. Yeah. Yeah, I'm trying to find more tasks like this. This is what I did at my last company and I'm sure you both have experienced this with previous companies. At a certain point, you need a tech leader, a manager to stop trying to take on big projects and just sort of do little things on the side and let you two, for example, take on the big projects that require more thinking and more focus. And I think I'm there for better or worse. Don't expect me to do big thinking projects. We will create some little shiny tasks for you. Yes. The one that a few manager tasks, just a little bit of tasks that I can handle. The thing that makes people happy. Maybe depending on who we get from Hacktoberfest, I haven't seen any pool requests thus far, but maybe I'll just do Hacktoberfest tasks towards the end of October if somebody else ticks them on. Anyways, so there's that. I don't really have any other topics to discuss. I think I understand we're sort of in a frustratingly sort of slow period right now as you work through the rollback stuff and Mandy as you fight with your environment and work on the support distribution rollback. But I think we're close to moving quickly again over that way. Yeah. Any other topics we should discuss? I don't think so. Maybe there's this infra task which is not very critical right now. Well, it could become more and more as we have to look into century. That infra task about providing us with really access to the D.B., the prod D.B. And I also want definitely to push more things along with tickets. That might be something that is a shiny one and easy for you. I mean, pushing the edit level along with messages that we can immediately immediately know what a given message is associated to which update level and if it's supposed to be crappy or I mean fixed or not already. Is that this one? No, that's another one that is shiny and easy enough which should probably be a nice sign myself from. That one is a small error that appears in the UI of century, but that's unrelated. I would not think. Would you explain to me the ticket you're referring to? I don't think we file, I think we discussed that already probably during the World Sword Rankings World and we didn't file anything yet so I can do that if you want. And I think you forgot in that ticket you just moved the, but that's not a big deal, but the description itself. Anyway, probably kind of. Probably right. I'll go through the description after this. So I guess if you've got shiny tickets. Yeah, I will do that then we'll make you shine. Mandy, anything from you? Nope. Okay. Yeah, I'll be on, I'll be, I'll be commuting a bit today. I have to go down to San Francisco. So maybe I'll take a first run at that TypeScript conversion for the services. It's a good thing to do when you don't have connectivity. Yep. And I was, I mean, I'm going to propose something now and think about it, we kind of run out of time, but what do you think about trying to actually unassign ourselves to the tasks that we do not plan to tackle in the next few days or whatever, or a thing we are sure we are going to tackle ourselves? Well, we can keep them, but to try to clarify what is actually not really and can be taken by actually by anyone. And because it will show unassigned a much more than tasks that we, for instance, I'm going to do that first for me. And 15, probably I won't tackle 15 in the next few months, I mean, not weeks, I mean, 15 is quite a lot, so, yeah. Does that work for you, Mandy? Yeah, I mean, I don't have that many assigned to me right now, so. Yeah, you have already fixed the issue on your side. Yeah, I think that's a good idea, but at least that'll make it a lot more clear what the shiny tasks I'm going to work on are. Yeah, and should we close or try and work on things assigned to other people like Raul or Oleg, which I don't think is going to be worked on, at least for Mystone 2 or create a Mystone fridge or Mystone freezer? I think these tasks for Raul, I think I'll just, I'll probably assign those and reprioritize them. The ones for Oleg I don't think are related to us. They're labeled something similar. But yeah, I'll go through and unassign all of the things that I think are important in Mystone 2, but I'm not going to be addressing at least this week. Or, yeah, or remove the sprint if it's really not really my son, too, or whatever, so that we can feel better. All right. Sounds good. Bye-bye. Thanks. Cheers. Mandy, do you want to?