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 IssuesEnsure 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 visionThere are 14 Pages of Stale Branches5 pages of active branches, mostly greenkeeperClear 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"
- Support today's import @edx/paragon and also @edx/paragon-{componentName}
- 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