Paragon Roadmap

Paragon Roadmap

Establish: Paragon Working Group

  • Representatives:

    • A Frontend Engineer from as many themes as possible

    • A11y (Jeff)

    • (UX) UI/Vis Designer

    • ... (get suggestions for others required)

  • Meeting:

    • Bi-weekly, 1 hour

    • Purpose: discuss issues, desired features, distribute workload

Phase 1: Project Tune Up (version 4.0)

"Reset" GreenKeeper

  • Upgrade project dependencies to current versions (prefer an all-at-once approach)

  • Delete Greenkeeper PRs and Issues

  • Ensure Greenkeeper is configured properly

    • Evaluate Renovate as replacement

Clear Stale Issues, PRs, Branches

  • Old issues may be valid, but we will take this opportunity to reset our vision

  • There are 14 Pages of Stale Branches

  • 5 pages of active branches, mostly greenkeeper

  • Clear project board

Upgrade linters to match current MFEs

Get a11y review to understand baseline

Phase 2: Minor Updates (4.x)

Let's work on all non-breaking improvements we can.

  • Create a mechanism to add deprecation warnings for old props.

  • Add per-component npm package exports

    • Support today's import @edx/paragon and also @edx/paragon-{componentName}

      • Look at "Bit"

  • Streamline exported package (today including a component from Paragon may add about 500kb to build)

    • Tree shaking

  • Swap icons to use FontAwesome React inline SVG: https://github.com/edx/paragon/issues/347

  • Storybook should style with edx-bootstrap v2 theme

  • Add more components with Reactstrap (non-breaking additions)

    • Add passthrough components

    • be judicious about what components we add to augment the library.

  • Docs

    • combine with edx bootstrap, do work to sort out best way to do this.

  • Component Interface Cleanup (maintain backwards compatibility)

    • Paragon components should have similar consistent props

    • write down decisions on naming. WOOw

  • Stop auto-generating ids on things where it doesn't make sense (i.e. <Icon />)

  • Support i18n

  • Analytics

  • remove hardcoded English labels



Major/Minor Grey Area

  • Stop using content in a component for aria-labels. They should be required when it makes sense, but not made for you.

Phase 3: Major Updates (5.0)

All breaking improvements.

  • Remove build targets themeable and static. Lose support for use in legacy applications.

  • Simplify the ways styles are added in Paragon

    • Prefer class strings over imported style objects

    • Remove includes of scss in .jsx files

  • Remove backwards compatibility for legacy props

  • remove asInput()

  • Open Issues (with proposed breaking changes)

  • Leverage Reactstrap (breaking change implementations)

    • Where appropriate swap Paragon implementations with Reactstrap passthroughs/wrappers.





Notes:



edx-platform is the only consumer of the "static" build:

edx/edx-platform – StatusBarAlert.jsx
edx/edx-platform – account_settings.html
edx/edx-platform – PasswordResetInput.jsx
edx/edx-platform – UpsellExperimentModal.jsx
edx/edx-platform – PortfolioExperimentUpsellModal.jsx
edx/edx-platform – PasswordResetConfirmation.jsx

edx/edx-platform – course-home-fragment.html
edx/edx-platform – StudentAccountDeletion.jsx
edx/edx-platform – StudentAccountDeletionModal.jsx
edx/edx-platform – choose.html
edx/edx-platform – dashboard.html