Topics
Linter Love
AdamBl re-discovered his love of Linting at a recent Meetup.
Why Lint
Linters would help us catch issues before merging.
What to Lint
Current Linters at edX
XSS Linters
Pylints
edx/eslint-config
Legacy: eslint-config-edx
There were recent PRs to add linters to gomatic
Note: we may eventually replace gomatic
Example of where this could have helped
Acquia changed their API and broke services - we could have caught it
Possible Future Linters
How to Lint
OEP proposed for Lint amnesty: https://github.com/edx/open-edx-proposals/pull/108
Currently, we rely on “diff-linting” that assesses which lines were actually changed on your PR.
At least one RCA the last few months where Linting would have caught the issue (issue was bypassed by Diff-linting).
ACTION FP: Create a ticket on the Arch backlog to prioritize in the coming quarter.
Change Management of Linting
New IDAs/Repos
Come with Pylint, but it needs to be configured to enable
Travis.yaml - need to check to ensure it runs Pylint by default
Existing IDAs/Repos
Introducing new ones - breaking existing code
See above regarding Lint amnesty.
Responding and Fixing to Lint issues
Zero tolerance will be most effective.
FYI: Static Assets in Containerization
ArgoCD - static assets get built only once → deployed to S3
Where to have the convo on how to implement this?
ACTION DO: Will add his input on the ticket (WhiteNoise)…
Instead of versioning and collect-static, … (Dave will update the ticket)
Note: Cloudflare doesn’t connect to S3 with Https
Webpack builds the assets and generates a directory
If our Django assets were available with proper caching headers, then we wouldn’t need to overly build the assets.
Interesting ADRs in progress:
LTI Freedom: https://github.com/edx/xblock-lti-consumer/pull/85/files
LTI=Learning Tools Interoperability
Today: only supported via an xBlock
Proposal: move this integration capability to other places in our frontend experiences
Questions:
Who? Same as for xBlocks - Course Teams
Where? “Slots” in the UI where LTI can be integrated
What LTI Providers?
Big Blue Button
Discussion tools
Internal tools that edX develops
How LTI and MFE interact?
MFE: container for LTI plugins
MFE: wrapped into an LTI plugin
OEP → Handbook: https://github.com/edx/open-edx-proposals/pull/155
Prep for next week’s Special Guest (Arch Tea with Luca Mezzalira )