Date
Special Guests
Jeremy Bowman (Deactivated), Brian Beggs, Eric Fischer (Deactivated)
Goals
- Determine what's blocking us from adopting React org-wide, and figure out a way to fix it
- Discuss the asset pipeline's pain points; think through ways we can solve them
- Let's punt the Webpack standardization discussion till Tyler is back next week
...
Time | Item | Who | Notes |
---|---|---|---|
30 mins | Assest Pipeline: what's wrong with it? Why do we want to fix it? | Dennis Jen (Deactivated) | I get the general sense that it's not well understood and is a source of pain for developers. What's the deal? |
20 mins | Let's get real about React. | Ari Rizzitano (Deactivated) | 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
Action Items
- Andy Armstrong (Deactivated) and Dave Ormsbee: Document which assets are being produced and why (for edx-platform)
- Brian Beggs & Eric Fischer (Deactivated): Come up with a stopgap strategy for asset watching in docker
- Ari Rizzitano (Deactivated): set up weekly checkin
- Ari Rizzitano (Deactivated): get owners of various IDAs' (the ones in docker devstack) asset pipelines to document their workflows