Project Summary

Working on frontend code in edx-platform is extremely difficult today, as supported by the results of our recent developer satisfaction survey.  Unfortunately, there are still times when the right (or only) way to move forward and deliver value without significant overhead is to work in this codebase, rather than re-platforming an entire feature into a new micro-frontend.  Frontend code in edx-platform isn't going away completely anytime soon, and we still need to work with it, but there's significant drag inherent in doing so.

We believe we can address the root of this difficulty, and see the most positive impact for our investment, by upgrading a few of the core libraries which we use in frontend development at edX to the versions used by our micro-frontends. Specifically, Paragon, and through its required dependencies, React.

In-Scope for this Effort

Out-of-Scope for this Effort

Impact & Measure

What outcome is being impacted or driven by this work?

Sources of friction addressed by this effort:

How will you measure success? (Focus on singular impact  / measure when possible)

Initial Technical Detail

Follow-up technical discovery 05-28-2021

From Adam Butterworth (Deactivated) and David Joy (Deactivated)

----

(1) Prepare edx.org-next theme for Libsass upgrade
https://github.com/edx/edx-themes/pull/737  
sandbox: http://edx-theme-libsass.sandbox.edx.org/ 

(2) Upgrade Libsass in platform
https://github.com/edx/edx-platform/pull/27683
sandbox: https://libsass-upgrade.sandbox.edx.org/ 

(3) Upgrade Bootstrap to 4.6.0
https://github.com/edx/edx-platform/pull/27751
sandbox job: https://tools-edx-jenkins.edx.org/job/sandboxes/job/CreateSandbox/39089/
will deploy to: http://bootstrap-4-6-0.sandbox.edx.org/

(4) Swap Bootstrap for Paragon and fix visual regressions
https://github.com/edx/edx-platform/pull/27771/files
sandbox job: https://tools-edx-jenkins.edx.org/job/sandboxes/job/CreateSandbox/39089/
will deploy to: http://bootstrap-paragon-swap.sandbox.edx.org/

Future: There is probably a good amount of work that could be done to optimize the sass and shrink the sizes of the outputted CSS.