Overview: rewriting static asset build for edx-platform to get rid of the python involved and have it all be front-end tooling What does it mean to process static assets?
Build. Turn scss into css, run webpack
Collect. Copy all built assets to a folder
Watch. Run a daemon to look at built assets and rebuild if things change (only for dev env)
Making the collection step simpler:
Previously, you had to use paver as a wrapper around the python management command. We moved the necessary configs into edx-platform so we don’t need paver. We can just run ./manage.py <cms/lms> collectstatic. Result: No more paver!
Before: certain xblocks generated scss and we used those as input to the lms and studio scss. That meant there were intermingled stylesheets
Now: we write separate stylesheets that are included separately since xblocks are optional plugins
This is a step towards reimplementing the build without python
Current: writing GH actions
Ideally, no one notices except maybe that something is faster
We don’t want to click through and look at every asset because literally no one has time for that
Instead: look at output processes from old and new. Generate sha1s for each created file, and compare the list of shas.
Still not a bad idea to spot check
based on an existing action that built all assets for every PR to make sure they were ok
Q&A:
When you compare the diff, how do you know which file is which if the name has changed?
the name only changes for prod builds, not developer builds, so it’s easy to compare
Momentum on metrics has slowed a bit. Need to look into Grafana and Prometheus, which would be more useful for the community than Okay anyway
Unclear how long we are willing to spend on this
Connor
Spent a lot of time in edx-sandbox world (really would be much smoother if aligned more closely with tutor/community use), no improvements made, just challenges.
Notes:
Cycle time is very long.
Sandboxes are important for a lot of developer use cases, especially around QA
Opportunities for overcoming the many and varied challenges?
bind-mount has been hard to work on because of inertia required, but I do have a personal goal around it, and will be picking it back up soon.
Kyle
I would really like to get sandboxes* going, but I don’t have time right now. Would anyone be interested in helping lead this? Farhaan from OpenCraft says that it should be pretty easy with Grove.
*sandboxes could mean several things:
pr sandboxes
reference environments to hook up to
feature sandboxes
Notes:
sandbox: small instance you can spin up to show off a feature
A lot of folks have their own versions, including 2u, OpenCraft, Axim
Grove is an OpenCraft tool for managing Open edX instances, and they already have a way to plug it into GitLab
question: who would be the host for PR sandboxes that come from the community?
Maybe Axim? There would have to be a cost analysis to figure out how many sandboxes Axim could support at any given time
Make it easy for providers to set up their own hosted sandboxes on their own infrastructure
there would be some overlap with hosted development environments
Diana
Arch-BOM is going to start planning on developer data project soon ™️
Notes:
Cloud-based dev work has been pushed to after dev data
Goal: import and modify development data easily for faster start up of development work
Arch BOM keeps getting sniped by event bus and weird upgrades
Challenges
Each challenge should have a follow up action.
If you have an idea for follow up actions, add it.