...
Prefix your topic with your intention so we are clear on what outcome you are striving from the discussion. Examples:
[inform] You are simply seeking to inform the group of this item. You may field clarifying questions from the group on your inform, but not seeking further discussion at this time.
[ideation] You are seeking divergent and wide perspectives from this group. In this brainstorming mode, all ideas are accepted, without critical analysis.
It may be helpful to clarify whether you’d like to ideate on the problem space or the solution space.
[analysis] You are asking the group to help you poke holes in your idea/topic/plan/etc.
[quest] You are seeking information/responses to a question you have.
2021-11-24
[analysis] (Nathan Sprenkle) Internally-routed XBlock handler calls
I wrote a function for calling XBlock handlers from inside edx-platform for a backend-for-frontend application. This is half [inform] and half [let me know if this is a “Really Bad Idea or Not™”].
See github edx/edx-platform/lms/djangoapps/ora_staff_grader/utils.py#L43
Ask OpenCraft about other ways/options for doing it?
[Ned] Meta-question: are there any more questions or discussion following on from the Eng All-Hands?
Should we be planning for more repo changes programmatically? How will 2U people be able to make changes to things like branch permissions?
Kyle is working on it, he might use https://registry.terraform.io/providers/integrations/github/latest
For now, people who have admin will keep admin.
What’s happening to BD projects?
Some are moving to TCRIL, others are staying with edX
[question] (Jeremy) If you could nominate 1-2 things to improve the experience for new Open edX developers, what would they be? (We’ll likely have many such people soon.)
[dkh] We should pick up the thread of the onboarding work Feanil recently did
[djoy] Better/updated seed data for freshly provisioned devstacks/services
[djoy] push button environment creation and simple installation/setup instructions and documentation
[adam] Make things more consistent (devstack vs sandboxes vs prod, bokchoy vs cypress)
[andy] tests that work outside of a devstack shell
[andy] devstack as cattle not as pet
[andy] meta improvement: measure time lost to devstack to motivate investment
[djoy] is there a third party libraries-so-popular-they're-standards development environment stack that we could adopt so that someone else maintains our development stack for us, effectively. (this is clearly not a small thing)
[Ned] Can TCRIL participate here?
Probably, let’s enable that
[Adam] question: Is there anything stopping us from moving https://build.testeng.edx.org/job/edx-e2e-tests/ to the new tools-automation cluster?
Sub question, if someone changes something in a repo that will break an e2e test how can we make it faster to fix the test?
David Joy: Maybe a GHA?
Diana: Or maybe we can just remove the tests that trip us up
David Joy: e2e tests should be few and far in between, so we should only use them for critical path tests.
2021-11-03
++[analysis] (Dave O): Extracting a low-level learning core out of edx-platform and into a new repo.
(Original post/thread).
Motivation:
Create a smaller/simpler dependency to build extensions on top of (instead of edx-platform). This means smaller, more stable APIs that can add incremental value, instead of the backloaded benefits of removing stuff from edx-platform.
Promote innovation by making it easier to create different experiences on top of Open edX (like LabXchange).
Advance the Studio/LMS split (these would be the core of the LMS).
Some potential apps: publishing, navigation, policy, composition (what’s in a Unit for this user?), scheduling, partitioning (what users are in what groups for various tests).
Strategy for dealing with tricky extractions: Core data models and frameworks exist in new repo. Plugins are implemented in edx-platform. Examples:
For navigation, an outline processor framework exist in new repo, but an EnrollmentOutlineProcessor exists in edx-platform, keeping knowledge of enrollments out of the new core.
For partitioning, the data models to store user/partition mappings live in the new core, but actual partition bucketing logic remains implemented in edx-platform.
Strategy for data migration: Start with content data, that can be rebuilt/backfilled from Modulestore. We do this kind of thing all the time already.
Feedback:
Robert: In general, like the idea. Where to start: serving particular needs, like course overview-like data, verify that it serves the needs. Interfaces vs. implementations: do we need both? E.g. for course overviews, does it just need to move or will work need to be done–define an interface for a mocked version?
Jeremy: Any idea of things currently installed in edx-platform that directly call edx-platform–what are they doing?
Course overviews
Things that reach into modulestore for lack of better APIs that we should probably create
Scheduling
Jeremy: might it be worth identifying APIs in edx-platform that are the main code called by many other parts of the platform, so extracting it could allow all those to also be extracted?
There may be some cases where we move enough of the core of such an app (models, etc.) to a separate repo, but leave all the tangled implementation details in place to minimize the up-front work needed.
+ [quest] (Jeremy) Docker Desktop changes - how does this influence build vs. buy decisions?
Docker is starting to charge for Docker Desktop usage for orgs like ours
There are possible alternatives like Minikube, but we haven’t really evaluated how well they would work for us
Quite possibly worth edX paying for this, not as clear for Open edX at large
Jeremy discussed this with Régis; we agreed it needs to be discussed/resolved, but didn’t come up with any immediate answers
BTR working group at large hasn’t discussed this yet
Does moving to Codespaces or something similar change this
Costs ~$21/user/month for 50+ user orgs
Open edX will probably support multiple options in the future, but edX is likely to pick a default for its own developers
Probably just paying the license fee for now, to free up resources for acquisition-related stuff
Has anyone tried Tutor or Codespaces?
Tutor: https://docs.tutor.overhang.io/run.html , written by Régis Behmo
Codespaces, etc.: sounds cool, nobody’s had time to look at it very closely
Quicker to get started (and to restart!)
Internet speed: are codespaces better or worse than downloading docker images for poor internet speed?
Codespaces are latency, docker images are bandwidth
Doesn’t work at all offline, but that may not really be an issue for most people these days
...