Open issues

Enable diff quality reporting on .jsx files in edx-platform
FEDX-374
Node 8 Upgrade
FEDX-394
Add AJAX spec helper functions for getting specific request.
FEDX-365
Update the IDA cookiecutter repo to support front end best practices
FEDX-355
Add react-intl to Paragon to support component translations
FEDX-533
Remove getTextFromElement
FEDX-532
Create guide: Develop a canonical way to address controlled vs uncontrolled components
FEDX-531
Add snapshot tests to replace storybook snapshot coverage
FEDX-530
@edx/paragon: accommodate per-component imports to prevent bloat
FEDX-529
Change headers in Paragon Colors docs for clarity
FEDX-528
Inputs require minimum 3:1 contrast vs. adjacent colors
FEDX-527
Text scaling for mobile viewports
FEDX-526
Improve our story for form inputs and validation
FEDX-524
Write Principles for Writing Components
FEDX-523
Refactor: Update SCSS structure to better accommodate theming
FEDX-522
Paragon Maintenance & Improvements
FEDX-521
Upgrade all MFEs to Paragon 7
FEDX-520
Create upgrade plan for all MFEs to use up-to-date Paragon
FEDX-519
Move React and react-dom back to peer dependencies
FEDX-518
Refactor <StatusAlert />
FEDX-517
Guard against es6/jsx template literal translations
FEDX-516
Add greenkeeper to SFE
FEDX-515
Fix "does nothing if item not moved far enough" js test to work with firefox 59
FEDX-514
Upgrade our fork of the TinyMCE editor and host it in an NPM package
FEDX-513
Upgrade moment.js in stylelint-config-edx
FEDX-510
Devstack asset watchers failing to compile
FEDX-507
gettext() does not work with template literals in JSX (and possibly elsewhere?)
FEDX-505
Upgrade Automation
FEDX-504
Convert post-processing of CSS to Webpack
FEDX-502
Convert base platform Sass to be compiled by Webpack
FEDX-501
Convert Dynamically generated XModule Sass
FEDX-499
Assess performance of different approaches
FEDX-497
Convert edx-platform Sass compilation to Webpack
FEDX-496
ecommerce lockfile
FEDX-494
Add JS documentation to edx-platform docs
FEDX-493
Add support for ReactRenderer in XSS Linter
FEDX-492
Paragon Node 6 builds failing on master
FEDX-491
Refactor Django->Webpack configuration bridge
FEDX-490
Draft a Proposal for edx-platform Asset Pipeline
FEDX-489
Add ignore_patterns to staticfiles
FEDX-488
Remove lms/static/xmodule_js
FEDX-487
Remove lms/static/templates
FEDX-486
Remove lms/static/teams
FEDX-485
Remove lms/static/support
FEDX-484
Remove lms/static/sass/*
FEDX-483
Remove lms/static/learner_profile
FEDX-482
Remove lms/static/js/RequireJS-namespace-undefine.js
FEDX-481
Remove lms/static/js/fixtures/donation.underscore
FEDX-480
Remove lms/static/edx-ui-toolkit
FEDX-479
Remove lms/static/edx-pattern-library
FEDX-478
issue 1 of 157

Enable diff quality reporting on .jsx files in edx-platform

Description

We use diff-cover to generate diff quality reports for both python and js code. Its eslint invocation is not configurable, meaning we can't run it against any file types other than .js. It is possible to pass in cli options to eslint via the --options flag, but the option that actually matters in this case (--ext) doesn't work since diff-cover just uses its own baked in supported_extensions list instead.

I see three possible solutions here:

  • Submit an upstream PR against diff-cover to allow users to pass in their own supported_extensions. It looks as though they are receptive to PRs (bjacobel got something merged last year!)

  • Use a node-based tool for eslint diff quality reports instead

  • All of the above

IMO, we should switch to a different tool and start moving towards a fully node-based frontend build process. ESLint itself has supported jsx out of the box for three years now – it's not like it's a bleeding-edge feature. Relying on third-party Python packages (like this one) to handle JS-specific logic introduces brittle overabstraction into our toolchain. While these packages may be great for handling Python code, their JS support often lags behind current tooling, meaning we miss out on crucial test coverage.

AC:

  • diff quality reports catch quality errors on changes to .jsx files

Steps to Reproduce

None

Current Behavior

None

Expected Behavior

None

Reason for Variance

None

Release Notes

None

User Impact Summary

None

Status

Assignee

Unassigned

Reporter

Ari Rizzitano

Reach

None

Impact

None

Customer

None

Partner Manager

None

URL

None

Contributor Name

None

Groups with Read-Only Access

None

Actual Points

None

Category of Work

None

Stakeholders

None

Priority

CAT-2
Configure