...
Paragon
Paragon in edx-platform is version 2.6.4. Paragon is up to version 13.13.2
Paragon no longer uses edx-bootstrap.
Paragon’s CSS classes have presumably shifted since they used to use an older version of bootstrap.
Worst case, this could cause a lot of unexpected visual regressions
Paragon uses newer React features not in React 16.1.0 (like hooks)
edx-platform uses:
Button
Hyperlink
Icon
InputSelect
InputText
StatusAlert
Table
TextArea
Modal (?)
React
React in edx-platform is version 16.1.0
React hooks were introduced in 16.8.0
React has deprecated some APIs which will likely cause a bunch of warnings in our code, if upgraded.
Paragon relies on hooks
ReactRenderer
https://github.com/edx/edx-platform/blob/master/common/static/js/src/ReactRenderer.jsx
Allows rendering a react component at a given DOM ID using the version of react in edx-platform
Works today
Need to define components in webpack config (there’s some glue necessary)
Studio-Frontend
Question: Does upgrading React/paragon mean upgrading studio-frontend?
Side Note on ORA
ORA is an xblock that builds in its own repo. Over the last few months, we have updated its JS implementation to build w/ webpack instead of minification
the existing ORA xblock ( and I assume other xblocks as well) relies on exposing a js method to the window.
We are in the process of supporting OpenCraft in setting up a react embedded provider within a chunk of ORA
The next steps in ORA are going to involve revamping individual xblock render calls and refactor the existing es5 views into react components.
Follow-up technical discovery 05-28-2021
From Adam Butterworth (Deactivated) and David Joy (Deactivated)
The following PRs should be QA’ed and merged in order.
We have done a good amount of digging and feel 80% confident in them.
Dave O. suggested this be communicated widely since if the change impacts our theme it may impact the theme of some open edX providers. In particular, he suggests checking or notifying Usman Khalid of Open Craft that this work is happening.
I suggest part of the acceptance criteria be a report of css file size changes for both the default (no theme) and edx.org-next them and some edXer sign off there
----
(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.