OEP-11 landed months ago. Why haven't we started using React yet? What's standing in our way and how can we address it?
Notes
This week Eric discovered docker devstack wasn't watching assets! We need to solve this so Dahlia (and other product teams working on edx-platform) can work effectively on client-side code.
Background on caching within lms vs studio:
Within LMS, static files get an md5 hash within the filename
Within studio, the static directory is named after the current git commit hash. Everything within this directory can be safely cached.
Does studio use the requirejs optimizer?
Goals
Keep assets small
Use HTTP2
Reduce the number of round trips
Address static assets within separately-installed Django apps
Build assets all through one process separate from Django. Why?
Webpack is built with frontend compilation in mind
Python asset-building tools don't necessarily stay up to date with the JS ecosystem
Effective development environment tools
Fast builds
Sourcemaps
Handle theming
Eat our own dog food re: theming
Asset builds for CI/production:
Should happen separately from AMI builds
Use the same process/practices for all IDAs
Process
Store static assets with their associated Django apps
Kill symlinks
Make sure our process isn't at odds with Bootstrap's standard means of organizing assets
Build incrementally!
Use our findings to establish and share best practices with the community
Break the right stuff
Determine specific requirements for LMS assets & CMS assets
Document the current state of the pipeline
Enumerate everything we want to kill; make plans to kill it
Weekly(?) checkin re: static assets
Our asset build process(es) should work across different OS's/platforms