From zero to merge in record time: What PR authors can do to accelerate review timelines
Getting PRs merged quickly is a two-way street. Maintainers must respond to new PRs in a timely fashion and follow up on updates from their authors without too much delay. On the other hand, there’s a number of things that PR authors can do to maximize their chances of a smooth review process. This lightning talk would focus on the latter.
I don’t have any solid ideas, I can co-present with someone.
One topic I don’t know much about, but want to learn and get improved in Open edX is integrations with other platforms, like SalesForce and/or other CRMs. Clients often want better features for managing their learners, collections of courses, subscriptions, etc, and Open edX doesn’t provide such functionality. The state of the edx-enterprise is sad, it’s basically unusable right now with Redwood on Tutor/Grove set up. Course discovery service is nominated to be deprecated. I remember there was a ticket on the roadmap about improving integration with SalesForce (@tikr do you remember what it was?), so may be between now and then I can learn more about that and present on such topic.
I really like this idea and am familiar with the bounds of the problem. I’d love to do this talk if I’m still around by then.
Retrospective: How has the community changed since the 2U acquisition of edX?
I wanted to do a follow up blog post to this post I made a few years back musing about the 2U acquisition. A lot of the things I predicted were spot on, though there were some curveballs. There was a lot of skepticism and concern at the time and I think it’s important to take some time reflecting on how the community has changed since then. In my opinion, things are a lot better, though not exclusively so.
I did touch on some of these on my lightning talk about React Query last year, but I’m sure there’s more to cover and I would appreciate your help getting the word out more :)
Open edX at Scale - How we scaled an Open edX instance to handle 30k users across 50 microsites.
We can talk about what an instance running at this scale looks like, the tools that we used to achive this scale and what challenges we faced along the way. cc.@paulo
Supercharge your PR reviews with automated PR sandboxes
This could be a lightning talk about the PR sandbox automation that we operate for Axim. We can talk about how many PR this has benefitted already, how to spin up and configure a sandbox for your own PRs.
Why can’t I just delete a user ? Demystifying User Retirement in Open edX
(This idea is from last year, which I never submitted because I went for a different proposal.)
What is user retirement and why do we need it ?
How exactly does the retirement service work - Exploring the user retirement flow
User retirement sounds great, but how do I set it up in my Open edX instance ?
Bonus: How to make user retirement less permanent ?
I only came up with a single idea, but a ton of these above look great, and would love to help if I can. So here is my talk idea: Exploring the OpenedX development and distribution tooling (alt title: Escaping dependency hell, the OpenedX Case)
An overview sprinkled with workflow suggestions and opinions on all the pieces required to install and run Openedx for development and production use cases. My first approach would be going from a bottom-up approach:
Briefly explaining the strengths and shortcomings of: the Python dependency management ecosystem, NPM, and Docker.
Detailing what software/processes needs to be ran in order to have a full OpenedX platform running and which of the tools above are used for each one.
Listing all the OpenedX specific tooling available to run these processes for development: Devstack, Tutor, TVM. Linking them back to the general tooling that they are based on and thus the inherited strengths and shortcomings.
Repeating the points above for production: Tutor, Grove, Harmony.
A call to action to discuss the described strengths and shortcomings, and continue improving the distribution and dependency management workflows for OpenedX.
The challenge was to extract data from “millions” of xblocks and passing it to an external service (AI) to get meaningful tags and keeping these tags up to date as an when xblocks are updated. We also had to allow users to vote and validate these AI tags and finalize them. I don’t think it was really hard due to existing tools/helpers like openedx-events and openedx-filters, so the plan is to show it as an use case of hooks extension framework. Also include some information about the “new” event bus that uses Redis instead of Kafka.
@navin It might be worth mentioning the specific challenges early on, even within the title if possible. It’s not just labeling them, it’s categorizing them automatically (you can even say “with AI!”, which is fashionable currently ) and through student contributions.
@daniel.valenzuela Good one I think, though it’s currently hard to tell exactly what it would be from its title, it might benefit from focusing on a specific aspect (the “dependency hell” sounds like a good one - but what is hellish precisely about it for Open edX?)
@maxim If you review your work over the past year (or even before), I am sure that you can find some topics to present? Everyone does the effort to come up with ideas, could you also try? It’s fine if it’s not the best idea immediately, that’s what the brainstorm is about
Good point. I’d talk about the model-agnostic architecture that allows educators to choose the AI model best suited for their needs. Additionally, the integration with Judge0 for the “Coding XBlock” external code execution ensures a secure solution for coding exercises. I could also highlight the personalized feedback capabilities, which make these XBlocks suitable across a wide range of subjects.
We don’t exactly have any tangible results or numbers yet, but I could talk about how the “Timeline” and “Accordion” XBlocks can transform static content into manageable, interactive formats which should enhance focus and reduce cognitive load. I could also talk about potential use cases of these XBlocks.
I would also be interested in giving or contributing to a talk about Meilisearch - why/how we’re using it and what it enables for us compared to ElasticSearch. (Suggested by @dave on Slack).
Course life cicle: witness the birth and death of and everything in between
We’ve done a lot of work on making course cloning works. It heavily reuses the course rerun mechanism. So we learned and modified how it works, and also fixed some bugs. Since talking about cloning mechanism was someone else’s idea, and it would also only be a lightning talk, the full talk can take a larger scope, and include more things related to courses, like what happens when you create a course, what can you do with it, what happens when you archive, rerun, clone, etc.
Death by a thousand cuts: how do we perform upgrades at opencraft
A lot of my work over the past months has been related to upgrading to Redwood. We can talk about the processes we put in place to reduce the number of disruptions during upgrades, how we test things, and little tricks to applying patches.
Works on my machine: how to debug Open edX on k8s cluster during runtime
We faced a ton of issues recently with different clusters, especially when upgrading one of the clusters to Redwood. One of the challenges since switching to tutor and Grove has been debugging things. It’s hard to replicate the production set up locally, and we weren’t able to do any runtime debugging on k8s cluster pods. So if an incident happened that didn’t generate verbose logs (happens all the time), you’re are out of luck. However, me and @demid started investigating if it’s possible to attach a debugger to a pod in productions (for example), or clone a pod, and mark it editable to live patch something. Although, we don’t have an answer yet, it would be cool to spend time digging into it (which can be done under budget of fixing the actual bugs, and not the budget dedicated for talk prep) and preparing a talk on this topic.
I’d like to propose the “Migrating from Ansible-based deployment to Grove” talk. Since the configuration repo is officially no longer supported, it would be good to have a clear guide for operators on how to deploy their instances after upgrading to Redwood.
I’m struggling to find a way to transform my recent work into a talk. Much of it involves metawork for ASU, redwood bug fixes, monitoring and scaling up their production cluster (as Kaustav mentioned earlier, and this relates to my entry from last year), as well as DevOps infrastructure for their migration discovery. In short, work very specific to ASU.
The only thing I can think of is:
Integrating Open edX with a SIS
We have been developing many API and event callbacks to integrate Open edX with an SIS based on SalesForce for ASU. Syncing user data, cloning courses, handling enrollments, and others are accomplished in SalesForce by the use of new APIs. These APIs are in the process of being upstreamed. We also have developed a plugin listening to events such as certificate creation to push data back into SalesForce through a middleware coded by Dept.
Thanks for the additional proposals - all looking good.
@maxim Your proposals look great, thanks for coming up with them!
@Agrendalath This one can be a good one, but it would be good to make sure it’s not just a tutorial/workshop. Also there isn’t just grove installs - there is Harmony (which we should advertise first since that is part of the official project, and we want other providers to join it), but also people just using Tutor, or plain installs. Maybe a review of those approaches?
@paulo Maybe a talk about the challenges of large government-level projects would be something you have lots to say about? :p Joke aside, maybe after the Ethiopian project is completed, or has reached large milestones - it could be something to copresent with ASU and the Ethiopians? In the meantime, your other proposal look good.
I’m having a very hard time coming up with anything that hasn’t been mentioned yet. I am not familiar with current state of theming, but I would definitely like to see a talk about that.
+1 Ability to debug issues in production is one of the main issues I have with Tutor/Grove/docker. It was so much easeir back in the VM days.