2024-07-25 Meeting notes

All public Working Group meetings follow the Recording Policy for Open edX Meetings

 Date

Jul 25, 2024

Previous TODOs

 Discussion topics

Item

Presenter

Notes

Item

Presenter

Notes

Customizing the header and footer for MFEs

@Adolfo Brandes

  • lot of slots targeted for sumac

    • we’ll have a priority list

    • header first priority, then footer

  • we know that we’ll have these slots, and we know we want to DEPR the old way of doing things. when do we announce the breaking change?

    • Maybe just wait until OEP-65, post-sumac

    • sounds like we’re signing up to keep the old way working for a bit until the new way has landed

    • brian would prefer depr’ing forking the footer sooner than later. we have the footer slot, can we push people towards that now? it would get people on the right path.

    • decision: will DEPR forking the header and footer

      • sumac will support it, it’ll be unsupported in teak

  • also an ongoing conversation on doing frontend plugins better – eg, plugins owning the configuraiton rather than env.config.js owning it. See frontend-wg notes for more info.

  •  

PyPI Publish GH Action Update

@Feanil Patel

Hand off of Node 20 upgrade to Brian Smith


@Adolfo Brandes

  • Brian S is taking over node 20 upgrade

  • Go over the merge to master procedure

    • Adolfo: What warning/approval is needed from 2U in order to merge these upgrade PRs?

    • Feanil: This first step is to just add Node 20 support, since that is additive, we shouldn’t need 2U’s approval

      • tutor will switch to node 20 once support is added

      • nvmrc won’t be switched to node 20 until we are ready to drop node 18 support

      • Adolfo: We should start by having the Node 18 vs 20 test matrix, making Node 20 optional at first, so you know which repos have Node 20 working. Then get Node 20 working, then drop Node 18 support.

      • Brian S: What to have in nvmrc? Use whatever you want package-lock.json to be ge

        • In the odd edge case where we can’t have both versions running at the same time, then it’ll be different. we expect this on a few MFEs.

      • Robert: just clarifying, the backwards incompat step is the change the package-lock.json?

        • yes

        • More precisely, this is the breaking change:

          • nvmrc: 18->20

          • package-lock.json: generate with 20

          • drop Node 18 tests

      • We need to be Node 20 compatible by Sumac. We will remain Node 18 compatible for Sumac wherever possible. In Dec/Jan, at the 6-month depr acceptance mark, that’s when we drop Node 18 support

      • Reference, the 6-month pilot we are doing for DEPRs: Pilot: Use the DEPR process for breaking changes · Issue #595 · openedx/open-edx-proposals

        • How do we handle multiple dates?… tbd

      •  

 

 

  • seems like we had more attendees last week. Is this a bad time?

    • could just be an August thing

    • Feanil will pre-announce the next meeting to see if we can get more heads

edx-platform meeting

“Big Changes to edx-platform” → “edx-platform Arch Roadmap”

@Kyle McCormick

[Draft] edx-platform Architectural Roadmap · Issue #35144 · openedx/edx-platform

API DRF Conversion

Awais Q/Feanil

Migrating LMS APIs to DRF · Issue #35057 · openedx/edx-platform

Awais is working through these, and at least one community member has stepped up to help. If you are interested please feel free to jump in with implementation or review.

Robert: will there be backwards incompat changes? even minor ones like a 401 becoming a 403?

  • Feanil: for this first conversion, based on the unit tests, the APi stayed the same

  • Feanil: If/when an API endpoint is broken by converting to DRF, we’ll need to use the DEPR process

  • Testing for regressions?

    • Awais has been manually testing, including error codes. Has not changed existing unit tests.

    • Awais will check headers going forward

    • Feanil: Write test steps down in PR

  • Parallelization

    • Awais will help that one volunteer so far

    • After a few more PRs we can probably solicit more help from CCs

    • Awais will put a how-to on the wiki

    • good-first-issue ? Not yet, but once the how-to is more fleshed out, that could be good

    • Fea

 

 

Django 5.1?

  • aximprovements is currently turning the warnings into tickets

  • which will let us get more good-first-issues for fixing those

  • Teak timeline

    • 4.2 EOL is April 2026

 

 

 

 Action items

@Feanil Patel Announce in Maintainers about the PyPI Publishing Update
@Robert Raposa let us know when the DD profiling feature is enabled so we can get some sweet sweet profiling

Recording and Transcript

Recording: https://drive.google.com/file/d/1K7nlmqUid5PhdYHQ5tyPhptC3igQ5MfN/view?usp=sharing

Maintenance Working Group Meeting (2024-07-25 09:04 GMT-4) - Transcript

Attendees

Adolfo Brandes, Awais Qureshi, Brian Smith, Feanil Patel, Kyle McCormick, Kyle McCormick's Presentation, Michelle Philbrick, Muhammad Qasim Gulzar, Robert Raposa

Transcript

This editable transcript was computer generated and might contain errors. People can also change the text after it was created.

Kyle McCormick: We are recording.

Feanil Patel: All right morning everybody. Welcome to the maintenance working group meeting July 25th. It's got a couple of different things to chat about real quick. Let's go through.

Feanil Patel: previous to do's

Feanil Patel: Robert I think that first one is just like we're waiting on your time limit to complete and then that checkbox is completed at this point.

Robert Raposa: Yeah, I mean,…

Robert Raposa: we could check it out. if I have been. Following up and we've got tickets in our current spring and…

Feanil Patel: We're gonna check it out. Yeah.

Feanil Patel: Okay.

Robert Raposa: stuff like that. So there's lots of progress and…

Feanil Patel: That's great.

Robert Raposa: hopeful progress.

Robert Raposa: We'll say

Feanil Patel: Yeah, I'm gonna check that one off them. So I don't think we…

Robert Raposa: yeah.

Robert Raposa: agree

Feanil Patel: Yeah, And then the next one was the Decker stuff, which I think we're talking about probably today at the Denver working group meeting.

Robert Raposa: I added it to that agendas. So. I think we should do that.

Feanil Patel: Yeah.

Robert Raposa: I don't know if we want to Quest on the Deborah agendas so that we could check it there. but

Feanil Patel: I'd say let's just leave it here and we'll sort of check back in on results next week. And then Jeremy is not here since it's not here and Kyle. I think you have started on this or you've done with sort of migrating the issues.

Kyle McCormick: I'm done. I'm going to bring it up for feedback in the mid and that Xbox one part of the meeting today.

Feanil Patel: Okay, awesome. I'm gonna check that checkbox off and for you.

Feanil Patel: awesome, and then Adolfo and I need to write up the stepper ticket, which I'm going to schedule some time for next week adolfo's so that we can sort of figure out what that means and what the next steps are unless you've already got something that

Adolfo Brandes: I don't but Me Brian and Serena met yesterday to talk about the immediate future of several frontend projects. And this is related.

Adolfo Brandes: so basically While we're on the topic, there are a bunch of slots targets for sumac. So it's not just the footer. It's also the header. And possibly some other thing we haven't discussed yet.

Feanil Patel: Okay.

Adolfo Brandes: Basically the idea is We're gonna have a priority list of slots. We want to add. And we'll try to get to as many as we can for sumac. And it starts with the header. And of course the footer…

Feanil Patel: there's

Adolfo Brandes: which is already a header, but we might want to do something about a slots and anyway.

Feanil Patel: Do you think that we should wait till sort of like that all lands before writing this upper? Does it make sense to write this up? Assuming that some we know those lots will happen at some point. And we want to be able to remove the old way of doing things. So I'm trying to understand sort of the sequencing of when to announce that the old way is gonna stop working because it feels like we should do that before we start look at you we could do that before we start adding this lot so we could wait.

Adolfo Brandes: So it depends on the way we're doing the slot for the footer. We were able to figure out a way. That Anything right is kind of ugly. So we want to improve that going forward. what the item in the to-do list was originally about…

Feanil Patel: Yeah, yeah.

Feanil Patel: right

Adolfo Brandes: but Brian can be honest, but it's pounding to me or it's feeling like That's gonna happen as part of the 65 work where we have a single front and base repository that contains. Footer header and the shell so the better way of doing that might be that and that's post sumac at least in release terms. Yeah.

Feanil Patel: got it, It's hard to have a recommendation because we don't have a good recommendation for what the replacement should be because we're still in flux.

Adolfo Brandes: yeah, at least as far as how to do that slot is concerned and there's another conversation out of the conference,…

Feanil Patel: That's it.

Adolfo Brandes: which is

Feanil Patel: right

Adolfo Brandes: and out of a previous work front and working group meeting where Kyle Wilson also, which is How to do plugins better and it's like includes them config.js syntax and also plugins owning.

Feanil Patel: but new naming

00:05:00

Adolfo Brandes: the configuration aspect of where to insert themselves in the page among other things and that's also posed to

Adolfo Brandes: So yeah,…

Brian Smith: I think

Feanil Patel: 

Adolfo Brandes: this is a bit still open the air.

Feanil Patel: yeah, I guess what I'm trying to understand is When we first put this on the board there were sort of like an urgency to be able to drop the old ugly way of doing things for footer. do you think that because the new way is so much in flux that maybe it sounds like we're kind of signing up to keep the old way working longer so that when we ask people to replace it,…

Adolfo Brandes: Yeah.

Feanil Patel: we will ask them to replace it towards the thing more confident in is that right?

Adolfo Brandes: Yeah. that sounds right again, Brian. Keep me honest here is General expectation.

Brian Smith: Even if the current way is in flux, I'd prefer people to not be forking the footer as soon as possible.

Feanil Patel: Okay.

Brian Smith: And so if we can Fork the footer as a supported path. Sooner as opposed to later. I'd like to do that and…

Feanil Patel: Yeah.

Brian Smith: if there's something standing in the way of that just thinking about the footer here, right the header gets more complicated there's more to it than that, but for the footer itself, we have the foot We have the ability to put things in the footer slot. Can we push people to put things in a footer slot as opposed to?

Brian Smith: working the footer

Feanil Patel: right Even if they have the name of the footer or change where it gets injected later. That's like slot config updates rather.

Brian Smith: it gets people on the right path as opposed to continuing to have a Fork of the footer that they then need to install everywhere

Adolfo Brandes: Yeah, that's fair. I agree with that writing up with effort to the sense that we're not going to support forking the water as a extension strategy. I think we can do that sooner rather than later.

Brian Smith: cool

Feanil Patel: Okay. Would you guys mind just put it making that Dipper on your list of Deckers that I know you're already? Okay, awesome.

Adolfo Brandes: Yeah, no sure. Yes.

Kyle McCormick: or keep in mind that we Are trying this thing where we have six month grace period for anyone running master. When a Tepper is made whenever is accepted. So I'd say if you want to drop the support in six months make zipper right now.

Feanil Patel: right

Adolfo Brandes: Yep.

Kyle McCormick: And of course we can make that shorter if people running Masters say that they're all set, but that's not a given.

Feanil Patel: Okay, I'm gonna update this to do item to say Brian and Adolfo instead of me and Adolfo. Thank you.

Adolfo Brandes: Yeah. as so Brian we might as well do that for the header as well…

Brian Smith: Sounds good.

Adolfo Brandes: since it's very specific we're dampering the ability the implicit contract yeah

Feanil Patel: those are the two things, right? Yeah.

Brian Smith: Yeah, we are devouring forking the header and footer as a supported way to customize the header and footer. And even…

Adolfo Brandes: Yeah.

Brian Smith: if we only have a header slot that lets you replace the whole thing, and that is still a step above forking and that's obviously not the goal for the header, but we'll get there.

Feanil Patel: Yeah, having great that up and announce. It's that people know about it and it sounds like sumac will still support it but this will sort of pave the way for us to be able to get rid of it before take.

Brian Smith: Perfect.

Adolfo Brandes: Yeah, we expect that by sumac if you want to use plugins for the header and footer. But you'll still be able to Fork the header and…

Feanil Patel: right

Adolfo Brandes: footer to customize.

Brian Smith: Yeah, so similar to…

Feanil Patel: Great.

Brian Smith: what we did with order for Redwood.

Feanil Patel: Okay.

Adolfo Brandes: Yeah.

Feanil Patel: Yeah, and that all sounds aligned with how we want to do maintenance announcements. So timing wise it's great. Yeah, I think now is the time to make that Dipper if you want to get rid of it in December.

Brian Smith: Perfect.

Adolfo Brandes: Yeah, I think the time is actually pretty good. But December is post. release and…

Feanil Patel: Yeah.

Adolfo Brandes: it's a good time for So now we can start removing things, right?

Feanil Patel: Yeah, it'll be Christmas and…

Brian Smith: Yeah.

Feanil Patel: we can remove things. That'll be our gift.

Adolfo Brandes: That's present. Yes.

Feanil Patel: Yeah. and stuff

00:10:00

Feanil Patel: cool And that's all the previous to do. So.

Feanil Patel: Real quick.

Feanil Patel: You can tell I was mid sentence when I

Feanil Patel: was putting this up.

Feanil Patel: Ahmad from Ed Spirit has been took on basically this piece of Maintenance that is required for any. system that publishes a Pipi package

Feanil Patel: he made a pull request across all of the repos that need this update, which is that the publishing GitHub action that we use. That is the official python. it have Switched how it's doing versioning. So it's no longer using master and it's using named versions. And so he's made pull requests for that across all of the edit the open edx GitHub or so what I need is for people who are maintainers to review those pull requests and merge them within the next couple of months.

Feanil Patel: This isn't a high priority maintenance thing, but given that he already did all of the work. I think it's a really easy merge. It's literally is he changed the branch name for where the GitHub action gets pulled from and so it should be pretty fast, but I'd like to see how much of it as we can get the maintenance to sort of do because this is like a routine maintenance that somebody else has already done all the hard work for and you just need to review and land. so To all the maintenance watching this later. Please go to the repos you maintain and look for these. If you have python code new repos, you'll probably see a PR along these lines and please merge it. Thank you.

Robert Raposa: Do we have a topic thread or something that maintenance can

Robert Raposa: can Subscribe to that would get certain things like this where we could just say.

Feanil Patel: Yeah, that's actually good idea.

Robert Raposa: Man.

Feanil Patel: Would you have a discuss maintenance announcements area and all I'll make this same request there. I'll post hey this has happened. If you are a maintainer, please look at your repos and do this. So I'll post this there. So that's a good call out.

Robert Raposa: That's good. So then the thing that I should share to all my maintenance is to subscribe there. Then they will get all future things.

Michelle Philbrick: and check

Feanil Patel: Yeah, yeah. Yeah, and I'll put a link.

Feanil Patel: at gmail

Robert Raposa: Thank you.

Feanil Patel: Alright when they drop that link.

Feanil Patel: Yeah, I can post that. I don't know just three of me.

Feanil Patel: No, there's three of me in Confluence, which is not a thing I did. So now I have to go track down who added me multiple times to Confluence, which I'm not excited about. Because I mean somebody's pinging some other finale and it's not working probably.

Feanil Patel: And then node 20 Adolfo handing the reins over to Brian.

Adolfo Brandes: Yeah, as part of our planning meeting yesterday. We Shuffle around some responsibilities and Brian volunteered to take over the note 20 upgrade.

Feanil Patel: Great.

Adolfo Brandes: So I walked him through what exists in terms of issues and what the general expectation is. But I wanted to take the opportunity, especially since Robert's. Here to make sure we're aligned on what the procedure is to actually merge this to master once as mfe's become ready.

Adolfo Brandes: so I remember we discussed in the previous meeting and the idea was to of course give some heads up and right of approval or whatever actually ends up happening to you. So when it actually emerges to master they're ready for it. Go ahead and you

00:15:00

Feanil Patel: So I think our last conversation was that we'd actually try to do the phased approach, So we would be adding 20 support. now And then we drop 18 support later. The only times we shouldn't like the only time was we don't do that is when it's actually not possible to do that…

Adolfo Brandes: Yep.

Feanil Patel: where the packages can't be both 18 and 20 and that's when we should bring up those specific cases for coordination, but for everything else we should be able to add 20 without talking to you or getting their permission. We should just be able to land those changes of this is now tested on 20 and once all of the mfe's that are in tutor or tested on 20 we can tell maintenance to update tutor to be running. No 20 In terms of I think the sort of biggest complexity is like the nvmrc files. I think those stay on 18 until we drop 18.

Adolfo Brandes: So yeah, that's exactly one of the things that we could discuss for example. one of the things we could do and I actually intended to do was to

Adolfo Brandes: NCI to actually have a matrix. So 1820 so that's the first thing you do. so basically, you can do that across the board and you now have a list of mfis that work on node 20 and those that don't off the bat and then once you're ready to drop 18 you just

Adolfo Brandes: Drop it from The Matrix. And what remains in nvmrc is,…

Feanil Patel: right

Adolfo Brandes: in that case a programs. I don't know what do folks think Brian.

Brian Smith: I guess yeah the timing of nvmrc I would think. If you are generating the package lock using node 20, then it makes sense to have no 20 in the nvmrc. Even if we still are doing note 18 everywhere else. So at the point of having both 18 and 20 in The Matrix, I think it makes sense to upgrade the nvmrc 220 in regenerate the package lock and then if the Matrix is saying Yep, it's still testing and working on 18 and 20, then we can go ahead and land that already and then the dropping 18 from The Matrix PR is just dropping 18 from The Matrix. In the odd Edge case where we can't have 18 and 20 working at the same time.

Brian Smith: then we just need to wait on when we can actually land that stuff and have stuff sit around in a PR for a bit longer.

Feanil Patel: Yeah for what it's worth. I did the reverse at ex platform, which is that it's on a team but the tests are running on 18 and 20, but the package lock is generated from 18 because I found that when you move to the newer version, it's often dropping support, but the older version often works with the newer version.

Brian Smith: Okay, okay.

Adolfo Brandes: So I just dropped in an issue there with an example issue of what the original plan was, which is first task add note 20 to the CI Matrix and there's an example PR for front and…

Brian Smith: Yeah.

Adolfo Brandes: template application. So that just adds it to the Matrix. package lock regeneration. and then in the second step, that's when

Adolfo Brandes: Wait this when you're changing vmrc and presumably update package lock as well. Up. So people have their hands up. Sorry Robert.

Robert Raposa: I just want to check cuz I'm not. So it is that last not but that's step of changing package laptop. Json that is going to be a backward incompatible change not. right

Feanil Patel: potentially

Brian Smith: potentially

Adolfo Brandes: potentially

Robert Raposa: I think just Knowing when you're hitting a backward and compatible change and that is when people need time and preparation for it, everything that is not backward incompatible is do it on whatever timeline you wish and then that is requires coordination with people to make sure they're not breaking anything.

Feanil Patel: Yeah.

00:20:00

Feanil Patel: Yeah.

Brian Smith: yeah, so nvmrc dropping note 18 tests and a package lock.json Can all happen at the same time that can be one PR?

Feanil Patel: Okay, Yeah, and that happens in the future, but Unless we find that we can't ask node 20 tests. With our current set of settings.

Brian Smith: yeah, which I wouldn't be surprised if we hit that on at least a couple mfe's…

Feanil Patel: Yeah, I expect to hit it in a couple places,…

Brian Smith: but we'll

Feanil Patel: but I was surprised when the edx platform node upgrade. I was able to do the thing. I'm describing. So I'm curious if we can do it that feels like a much more.

Feanil Patel: sort of Coherent way of doing it where we don't have to coordinate with a bunch of people because once we get everything running on 20, we can start shipping that for tutor and then when the six-month time Mark hits we can drop right and Robert and to you folks can be aware of all of that stuff Via de peppers and

Feanil Patel: Can plan their changes independent of us.

Adolfo Brandes: So this is a situation where? The cutoff is in three months or for the next release by that time. less now. and We want to be on Note 20 by then, but that's the fine Beyond note.

Adolfo Brandes: Got that compatible with the notes 18 Decker. right

Feanil Patel: Yeah.

Feanil Patel: So the node to me. I think for the open source Community we want to be able to run to run tutor on node 20 and have all of the mfe's and even the Django apps that are running To be able to run with no 20. So that everybody can be on no 20 by default in sumac That doesn't mean it stops working with node 18.

Brian Smith: okay, so even if we are still on nvmrc note 18 package lock but we have no 20 in CI. To verify that it will continue to work on node 20 and tutor uses node 20, then we're an okay shape. Yeah.

Feanil Patel: Exactly. And then in just something in December January, we'd hit the six month Mark and whether or not to you is prepared for it is the theory we can merge the removal of the node 18 stuff at that point. and the theory is that gives us them enough time to transition to that independent of the open edx releases

Brian Smith: Yeah.

Brian Smith: We got cool.

Robert Raposa: and the two additional details on the Decker process one is I think this the six-month mark not from when the door is announced, but it is the available Future update is there so once node 20 is actually available. It's six months from there. I think

Adolfo Brandes: I'd say it's from the dates that Dapper is accepted, right?

Kyle McCormick: Yeah.

Kyle McCormick: The pilot we're doing is what Robert said.

Adolfo Brandes: Okay. All right.

Robert Raposa: right because

Robert Raposa: right

Robert Raposa: because if you announce today and…

Feanil Patel: but

Robert Raposa: then wait six months to actually land having no 20 available and we have one day to

Feanil Patel: Transition. Yeah.

Robert Raposa: Make Transition. So the whole point is to have six months and what Kyle said earlier which is hopefully we don't need six months, so it's not the six months is just as a right.

Feanil Patel: It's an upper limit. Yeah.

Robert Raposa: happy to to work with this and work this Arby bomb and work with our different teams and see how quickly we can actually get onto the 21st is available, but You can.

Feanil Patel: Yeah, I think they're pretty ready to accept it. So it's just a matter of being available. And in the side chat. I put the edx platform Dapper for node 18. If we move a bunch of MFE sort of within a week of each other, we could probably have a single Dapper for all of those mfe's.

00:25:00

Feanil Patel: but Yeah, I think probably making a separate ticket for each time. The time difference is significant. It might be interesting Robert to sort of ask the question of

Feanil Patel: If everything is available within a month of each other, can we sort of combine that into a single ticket and a single date?

Robert Raposa: yeah, I don't think there's any hard and fast rule so I think we

Feanil Patel: we can try that and…

Robert Raposa: We'll figure it out.

Feanil Patel: see how

Feanil Patel: Yeah.

Feanil Patel: okay, and with that at 9:30, so if people want to drop From the meeting. We're going to sort of start talking about edx platforms specifics.

Robert Raposa: quick note and…

Feanil Patel: And yeah.

Robert Raposa: this seems like so I don't know but attendance, I mean, so I don't know if It's a bad time or if there wasn't communication or if this isn't right, but I feel like we used to have more attendees or maybe.

Feanil Patel: Yeah. I'll announce it further next week and…

Robert Raposa: Just note on.

Feanil Patel: if we can. get it back up because I know last week Tim was confused and it is also we're moving into August between Europe is going to be busy. being on vacation

Robert Raposa: Do that.

Feanil Patel: So we're in vacations and also yeah, that's a good call. I'll do a pre-announcement for the next couple and see if we can make sure everybody's aware.

Robert Raposa: Yeah, and we'll see if people join for the edx platform one and we can remind them.

Feanil Patel: Yeah, exactly that they're in the wrong way. Yeah.

Brian Smith: cool

Feanil Patel: Thanks all.

Brian Smith: Yep. Thanks.

Kyle McCormick: Thanks folks.

Feanil Patel: And before you go if you need help or any of the coordinating or process stuff, please feel free to use me as a resource for that and can help out with some of the tooling I built up around the python upgrade.

Feanil Patel: That sounds good, but

Feanil Patel: Okay.

Kyle McCormick: All right. no, Robert. I don't get to see your visceral reactions to next platform architectural roadmap Just have to keep me praised.

Robert Raposa: and now I'm happy to come on video so you can see my face of Art. I'm looking for.

Robert Raposa: it's

Kyle McCormick: Yeah, so some context for this that. Everyone might be aware of but I'll say it anyway. There was a Google doc a while ago. That I had drafted called big change Aesthetics platform is mostly my brainstorming, but then my team came in and a lot of items and we decided to be good to make this a road map of GitHub issues rather than a Google doc So here's that roadmap. It is a draft. It has several things that are already GitHub issues some are already in progress. It has some things that are just items because they're a little up in there. And I've tried to break it into categories of benefits such as making it smaller making it faster. Is your configure?

Kyle McCormick: There's this big pile at the bottom that just make model store go away, which I know is not an end benefit.

Feanil Patel: it's

Kyle McCormick: But all these things did tie together and happen to have all the benefits of the things about so I'm still trying to figure out how to communicate that maybe labels would be a better way to organize these but specifics aside. I'm really interested to get feedback on this. I'm also interested in.

Kyle McCormick: High level feedback on what do we want? the goals of this to be so if you look at the things in capital letters, those are kind of the goals that we'd want from investing correctly in edx platform than starting from the top make it smaller both in terms of Maintenance burden, but that'll affect build size as well. Making it faster performance wise. Making it easier to integrate. So that's plugging author is people writing AP HTTP API Integrations. And making it more sense for internal Developers. And then model storage just feeds into all of those. so I guess the first question I'll post to folks is do those categories make sense. Is there anything that seems missing?

00:30:00

Robert Raposa: and the resiliency

Robert Raposa: Make it.

Kyle McCormick: resiliency

Kyle McCormick: There's gonna take notes Here.

Robert Raposa: and then

Kyle McCormick: Do you think that would be a top level category make it more resilient for operators?

Robert Raposa: the potential

Robert Raposa: they have Quickly go back over your topics and see it. There's another place where that already makes sense, but it

Kyle McCormick: I think there might be some issues but I definitely didn't call that out in particular. Can you add some detail on specifically…

Robert Raposa: Muhammad

Kyle McCormick: what that might be like serviceability or?

Robert Raposa: Yeah, I had. Some ideas and that's still haven't made it here. Let me just see if 999 notes around us. They

Robert Raposa: so we had

Robert Raposa: I mean one of the

Robert Raposa: I sure Basically we have problems that come up and I'm not sure that we necessarily got to root cause to know why is the LMS getting backed up? And is it due to I think anyone case it may have been.

Robert Raposa: migrations related to Atomic request problems. And I don't know. how and if we can find the requests that have the biggest issues due to being Atomic by default. and fixing those or if there's some way

Robert Raposa: Some dream that I'm sure that we will never do. It's like of actually being able to change that setting by I literally adding decorators everywhere to make things more explicit and then

Robert Raposa: And then being able to update as we go, but yeah, I don't know that we'd ever do that.

Kyle McCormick: and maybe think that's a great call out.

Robert Raposa: So the atomic request problem there's problems potentially with Discovery issues that back up into LMS. I know we have separate wishes to not be dependent on Discovery at all, possibly. That would resolve that issue. But I'm not sure if that's something from the old days and then I'll see stuff that makes me think that that's the problem but it's not necessarily that problem side. So I don't know what the problems are. I just know

Kyle McCormick: Yeah. I think I'm sensing the theme of the problems whether these specific problems with them.

Robert Raposa: Okay.

Kyle McCormick: Yeah, making it easier to operate the site at scale easier to recover.

Feanil Patel: yeah.

Kyle McCormick: Yeah, less likely for it to come down for mysterious reasons. I think it is going.

Robert Raposa: Yes.

Feanil Patel: reduce fragility

Kyle McCormick: Yeah, let's fragile. I think that could be a category in itself. And I think Dave is going to have a lot of ideas for that. In fact, I think he has a lot of notes that we should just get together under this heading.

Robert Raposa: Yeah, that's good. and definitely the last bullet point of less likely to come down from mysterious reasons, especially given the fact that right now the identity Services baked into it,

Kyle McCormick: right

Feanil Patel: bread

Robert Raposa: yeah, so that's a high level topic. I'm also curious.

Robert Raposa: whether This ticket is a great start, as a you mentioned somewhere. I think there's a lot of old authentication tickets, that could be grouped together and I'm wondering about just Project management of all of this stuff and…

00:35:00

Feanil Patel: es

Robert Raposa: I could imagine. this is the start of…

Feanil Patel: es

Robert Raposa: what would actually be aboard and…

Feanil Patel: think yeah.

Robert Raposa: labels and I think maybe we continue to just use this…

Kyle McCormick: Yeah.

Feanil Patel: just

Robert Raposa: until it doesn't work for us, but That's…

Kyle McCormick: right

Robert Raposa: what I'm learning. What's the best way to actually

Kyle McCormick: So my sense is that this roadmap is not going to be when you're on a delivery team and you have an epic and you drive from the Epic to get stuff done. I don't think that's what this will…

Feanil Patel: Okay.

Kyle McCormick: because we're not a delivery team. We're more of like a coordination across a lot of different things that are going on sort of team, I think. What this roadmap should do ideally is be a North star for various. projects that are going on platform and some of those I think will be

Kyle McCormick: a future projects that touch the architecture a Content libraries is the big one that's going on. Now that moves us towards some of these goals. So during the content libraries project will be referencing this to make sure we're heading in the right direction. And moving towards this instead of against it.

Kyle McCormick: I see. Also, probably some accent-funded.

Kyle McCormick: Projects where we take bits of this and work on them. So in that case, it's more of a Direct Delivery.

Feanil Patel: please

Kyle McCormick: I also am really hoping that edx platform for contributors would be able to step up and take on some of this during their poor contributor time.

Feanil Patel: which is a great segue into the next topic actually. Which is always actually working on API improvements, which is one of the items on this list.

Kyle McCormick: So let me wrap this So product management, I think I'm gonna avoid having a board for that reason so I think we can start with this and Adapt it depending on…

Robert Raposa: there Yeah agreed I mean starting with this ticket totally makes sense.

Kyle McCormick: how things.

Feanil Patel: Yeah.

Robert Raposa: There are questions about Do we wish to discuss and prioritize amongst us? some of these less items or is it just like Hey…

Kyle McCormick: Yeah.

Robert Raposa: if you're doing Look at anything on this list and if it happens to work with whatever you wish to be doing, please do something. Yeah.

Kyle McCormick: You different I think prioritization as a group would be really good. So I think let me

Kyle McCormick: Let's let this sit for a week. review asynchronously and then in a future meeting,…

Feanil Patel: Yeah.

Kyle McCormick: I'd love to do some prioritization because I'm also hearing feedback from Accent stakeholders that they'd like to see prioritization rather than a big pile of tech Network that we want to do all of so.

Feanil Patel: In and I think Kyle with the thought you mentioned of if you make the current. Top level groupings into labels makes a lot of sense because then we can prioritize sort of independently. of that and have a prioritized and sized list we can also make sizing labels or we can make something because We don't want to move to a board, which I don't necessarily want to do.

Feanil Patel: Then we'll need to capture that information elsewhere.

Kyle McCormick: Sounds good to me. I will make that change. now we can have items that are in multiple categories, which is Good,…

Feanil Patel: Yeah, also nice.

Kyle McCormick: we can group The all stuff together.

Robert Raposa: up and a little informed to is we haven't been able to turn it on yet in datadog because we've got other data dog related problems, but there is a datadog profile on future that we will eventually turn on that really does great CPU and memory Information. I know David was talking about it somewhere, but I think it'll be really helpful for.

Feanil Patel: Yeah. Maybe we can finally find that memory link.

Robert Raposa: profilement APM provided

Kyle McCormick: what was the

00:40:00

Feanil Patel: just

Kyle McCormick: all right. Thanks everybody.

Feanil Patel: Yeah, and the next one is mostly an informant and I don't know always if you wanted to say anything about it, but essentially. one of the items on this big roadmap list was improving our apis. And if you refresh Kyle, I'd just updated the list. So I always made an epic basically tracking a bunch of our current apis in the next platform that aren't using vrf and therefore are slightly snowflake

Feanil Patel: But error, I also saw and a couple of refreshes did make it go away. So I think everything is okay.

Robert Raposa: At that question about this when we get there about this actual work.

Feanil Patel: but

Feanil Patel: yeah, so I think

Feanil Patel: yeah, if you make it easier to integrate section, you'll see that I added the API improvements top level epic that existed before and in that epic there's a bunch of stuff, but I also added. That if you scroll down there's the migrate elements apis to drf ticket, which is the top level ticket. So a couple of layers here, but hopefully makes sense. And this is all of the views that are spewing Json to some degree.

Kyle McCormick: You cool.

Feanil Patel: and then Always, what's I think he did one as a sample to sort of try out?

Feanil Patel: Let me see that I can find that. Yeah, okay, if you go to the bottom he's got and a pull request there

Feanil Patel: that first one. Yeah. and so I've gone through and reviewed this if you're curious about this definitely take a look, but it's essentially a conversion to a serializer and a API view instead of having a Django function View for some of these things which gives us the added benefits of now Works through our off providers and the permissions work through drf permissions classes for this one always actually added a permission class. for an object level permission thing long-term I was cool with that because I don't think we have a good vision of long term how we want to do drf permissions and object level permissions. I think we have four ways and

Feanil Patel: this is just the most drf way of doing it. So I figured that would be a fine thing to have in here and if we want to convert to something else later, it won't be too hard. but it's now a drf permission class to see if a person is Staff in. A particular course that they're trying to get access to information access to.

Feanil Patel: Yeah, whether they have instructor permission on a particular course. so it's all pretty encapsulated in the Django app where this is so it's not like it's making New high-level problems which I liked also. So it's like the decisions are pretty encapsulated, but If you were interested in apis and have capacity definitely take a look at this because I think whatever approach we agree on here.

Feanil Patel: Incorrectly among Oasis going to try to apply to more places and also other people now that he's made the tickets are interested in helping him. So We can sort of get more support on this. I saw at least one other person being like I would love to help with some guidance. So on one of the sub tickets that he's already made.

Kyle McCormick: awesome

Feanil Patel: Robert

Robert Raposa: but that's my question which hopefully can get worked out on one of these as you…

Feanil Patel: Okay.

Robert Raposa: we roll out is I imagine that there's gonna be potentially some at least backward incompatible, but hopefully not a big deal kind of things that there's gonna be changes and…

Feanil Patel: Yeah.

Robert Raposa: the question is What are those changes and it are there, different. when we did some of our work we had.

00:45:00

Robert Raposa: different response codes 401 was gonna for a three is and…

Feanil Patel: the response codes and stuff.

Robert Raposa: whatever what's gonna happen with errors and…

Feanil Patel: right Yeah.

Robert Raposa: other things and is there something that people need to keep in mind about these changes?

Feanil Patel: Yeah, so for this first one it's as far as I could tell based on the unit testing that was already there and the test that always added it did not change the response codes or the response data in any way that impacted the contract of this API.

Robert Raposa: Doing know if we had enough unit test coverage to catch.

Feanil Patel: I think you're right.

Feanil Patel: There will probably be one in the future that does and when that happens, I think that sort of boots it into a special category of this now needs to either have a replacement and…

Robert Raposa: It is exactly the same in terms of the response.

Robert Raposa: all situations but

Feanil Patel: a deprecation of the old API or it needs to have a modification on the corresponding other pieces that use the API if it's like a backend for front-end thing or if it's like a integration with a different service kind of thing.

Feanil Patel: Yeah. Yeah.

Feanil Patel: so, Yes, for this one. It's a very simple and point which is giving you But there's a URL that comes in the context.

Robert Raposa: yeah, and I'm just thinking both. there was and…

Feanil Patel: And so for that the tests were mostly of these fields that are important in here are exist in the same places.

Robert Raposa: none error was And literally looking at the full. Response, including all headers and…

Feanil Patel: They used to there's only Four Fields.

Robert Raposa: making sure drf does its own thing.

Feanil Patel: I want to say and…

Robert Raposa: Sometimes that are different than your templates making sure literally it is a

Feanil Patel: three of them are the things you sent in back at you. But this is a very small serializer. So it's very easy to verify that the serializer would produce the exact thing that it was producing previously.

Robert Raposa: a diff that there are no in the death and if there are it's not that we can't do it's like what are those and does it matter all or is it literally white space and solve the changes,

Feanil Patel: right

Feanil Patel: Yeah, yeah.

Awais Qureshi: Yes, I did some testing. First of all, I didn't change any existing test. So all the tests are green. I have added a couple of tests just to make sure permissions and…

Feanil Patel: right

Awais Qureshi: working And then I did some testing on local machine as well.

Feanil Patel: read

Robert Raposa: but

Awais Qureshi: So I checked API response and in case of wrong user…

Feanil Patel: Yeah. Yeah,…

Awais Qureshi: what is the error code and…

Feanil Patel: always do you want to speak to any of that?

Awais Qureshi: I check on my Pia the both are same so I did some testing and…

Feanil Patel: I don't know which testing you did up front for this one. It was small enough that I was able to just quickly.

Awais Qureshi: test cases didn't make any change in existent.

Feanil Patel: spot check the responses and…

Awais Qureshi: That's so everything is looking fine.

Feanil Patel: it seemed fine, but

Robert Raposa: okay, and

Awais Qureshi: No. I will make sure I mean exactly.

Awais Qureshi: I just noticed one person is assigned one ticket. Yes, I will contact it. Yeah. Yeah, I'm

Feanil Patel: Cool, and I think the other question Robert had was headers,…

Awais Qureshi: just

Feanil Patel: did you look rs the headers in the response? That might be one to like do you?

Feanil Patel: awesome Yeah, and it sounds there was at least one person interested in helping with some of this work.

Feanil Patel: Yeah, he chimed in and said I want to help with this. So I think you should check in with him and see if awesome. Thank you.

Feanil Patel: Yeah, this is I think the kind of thing. I want to see out of more cc's of edx platform which is like even if they're not doing all the work sort of fleshing out and leading some of these pieces would help us make progress and there's the Other with the Devil's Advocate question from that is how many of these things are. We okay with running In parallel and when we have a couple of these big ones can we ask more cc's to chime in and help with this one? I think now that we have an example maybe if we get one or two more example PRS, then we can start farming out to cc's and…

00:50:00

Robert Raposa: As I was gonna suggest something related to it,…

Feanil Patel: be like, hey, do you have time convert and…

Robert Raposa: they said which is can you create a to somewhere that you can iterate on and…

Feanil Patel: API endpoint and here are some examples of what you do? at least when you do the testing locally…

Robert Raposa: that gets attached to the Epic so that you can just keep pointing people to that…

Feanil Patel: if you can put in Right down…

Robert Raposa: how to and you can add to it around here's…

Feanil Patel: what testing you did locally in the pr so people have that as reference for the future.

Robert Raposa: how you deal with permission you search how you will whatever.

Feanil Patel: Locally. I use Postman to look at the headers this way and here's the responses from the two things or things like that, whatever you end up doing just so we record when we have manual that validation that's happening.

Feanil Patel: Yeah.

Feanil Patel: Yeah.

Awais Qureshi: Okay.

Kyle McCormick: What you want to farm it out to first-time contributors to or…

Feanil Patel: Got it.

Kyle McCormick: is this a bit too high touch? You think that?

Feanil Patel: Yeah, I think it'd be good to use Postman to make sure that headers and things are all right. Yeah, and then if you start compiling what you're doing into a how-to then and it can be on the wiki for now and I think some of these are pretty small and it would be very easy to give these to first timers the tickets themselves are pretty empty right now because I felt information will be in the Epic. I think if we flesh those out a little bit so that any given and point is a little bit more approachable. yeah, and I think then we can start sort of farming this out to more people and getting some of this. done Then I would be even more comfortable giving this the first time here. So the person who chimed in on one of these was the first timer and they were like I see that this is connected to this high level ticket and I get what needs to happen. I'm gonna try it. I'm like sure because for the most part

Feanil Patel: 

Feanil Patel: none of this is platform specific that says here is a Django view. Here's how drf does it you can read the docs for both of these and convert from one to the other. So I think it's a very approachable problem set for non-experienced engineers.

Kyle McCormick: right

Kyle McCormick: awesome

Awais Qureshi: If any level at I will add some more information the tickets as well.

Feanil Patel: So yeah, we're starting to build up that back. Yeah.

Awais Qureshi: I was flying through this model. Yeah.

Feanil Patel: Yeah, no, this wasn't a you would have done the wrong thing. was more it makes sense to do that. So yeah,…

Awais Qureshi: No, no.

Feanil Patel: that's good…

Feanil Patel: if you're gonna do it.

Awais Qureshi: Yes, I think for some newcomer.

Awais Qureshi: It will be helpful for them.

Feanil Patel: Okay, Yeah, so it's good. We're starting to build out. I think a good backlog of good first issues in ATX platform. Now between the work that Oasis been doing the work that the ax improvements team has been doing and some of the stuff that the rest of us have been doing to sort of start flagging those things. So

Kyle McCormick: Yep.

Feanil Patel: All right. I think that's everything.

Feanil Patel: Anybody have anything else?

Robert Raposa: so not this exciting to see possible improvements and actual improvements and have it moving that direction.

Feanil Patel: Yeah.

Kyle McCormick: Yep.

Feanil Patel: Yeah, it's really nice. I think it's a good year for the edx platform.

Awais Qureshi: It feel like I want a small question that are you guys planning for Django 5.1 as well.

Feanil Patel: yeah accent movements is gonna write up the warnings as tickets so that we can start. Doing the same thing with them which is get more people to help with them. But yeah, they're looking at converting the five one five zero and five one warnings into issues so that we can Farm those out. But yeah, but we've got a little bit of time for that still so. We'll probably won't worry too much about it for sumac but we'll probably start looking at it for teak.

Awais Qureshi: Thank you.

Feanil Patel: And just look at Django again. Because two end of life is April 2026. So we've got good Runway.

Awais Qureshi: Yes.

Feanil Patel: But I do want to get ahead of it. compared to previous years

Feanil Patel: so if we can get warnings being squashed all year next year instead of just Rush at the end of the year to try to land something in what you guys will need to do that if 42 is El in April.

00:55:00

Feanil Patel: That'll be nice.

Feanil Patel: Okay.

Robert Raposa: are we gonna have to extend the alphabetes?

Feanil Patel: We're gonna be Greek words.

Kyle McCormick: we talked Z is the last version so only extensions can be made after the maintenance and extensions.

Feanil Patel: Yeah, breaking changes that it's platform after Z.

Robert Raposa: some setting

Kyle McCormick: If you're watching the recording that was a joke.

Kyle McCormick: probably I think we're open to a ideas for the next round of the alphabet.

Feanil Patel: Here, yeah. yeah.

Kyle McCormick: 

Feanil Patel: No, I think we should what if we just moved into other letters of other alphabets and start using just test how Unicode friendly all of our tooling is

Kyle McCormick: Sounds great. You could use this cerelic alphabet.

Feanil Patel: yeah. that Mandarin we've got Japanese got in that all kinds of options.

Kyle McCormick: And people complained about the branch names before going to be Riot is now.

Feanil Patel: Just do it.

Kyle McCormick: All right. Thanks everybody.

Feanil Patel: But we can have it be a single character like how much easier that would be.

Kyle McCormick: I'm not gonna think about that.

Kyle McCormick: This release is the Emoji.

Feanil Patel: All right. Thanks everybody. Yeah.

Robert Raposa: that's awesome Thank you.

Feanil Patel: All right. See you guys later.

Awais Qureshi: So I thank you.

Meeting ended after 00:56:47 👋