-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Closed
Description
Epic
This is an Epic which will track implementation of issues pointed out in following documents:
- POC POC: TS path aliases, standard tools without abstractions, hierarchical storybook #16706 (review)
- RFC docs(rfcs): add convergence devstack rfc #16570 (review)
Problem
- need to build before run/test/demo
- unified/explicit TSConfigs
- missing co-located demos via storybook
Solution
- we'll use TSConfig path aliases as the only source of truth for converged components.
Implementation:
Pre-requirements
- use singleVersion policy for TypeScript (chore: switch to single version policy for typescript #16592)
- use singleVersion policy for Jest (chore: apply single version policy on jest #16950)
- use singleVersion policy for Storybook (chore: apply single version policy on storybook #16965)
Requirements:
- create
tsconfig.base.jsonwith all existing converged component paths (chore: create new tsconfig.base with path aliases #16976) - implement TS path aliases resolution for jest (chore: implement test in memory execution based on TS aliases #17161)
- fornpm:testuse jest binary directly insteadjust-script - api-extractor integration with TS path aliases approach (chore(react-menu): implement docs generation with ts path aliases #17449)
- new react-storybook package that doesn't depends on v8 (feat(react-storybook): init new package for convergence storybooks co… #17921)
- new storybook configuration with collocated stories (chore: implement new storybook architecture - for converged packages/react-menu #17866)
- implement TS path aliases resolution for webpack/storybook
- for
npm:startuse storybook binary directly insteadjust-script
- for
- implement "standard" storybook root config -
<monorepoRoot>/.storybook- this will house common storybook configuration
- implement localised storybooks per converged package
<packageFolder>/.storybook
- implement TS path aliases resolution for webpack/storybook
[ ] implement root storybook app (running it will render all converged stories)<monorepoRoot>/apps/storybook
- 💡 this was applied on react-components package. Additional setup will be needed for react-components -> will be implemented in separate issue/PR- implement migration to switch all existing converged packages to this new "dev loop" behaviour | series of PR's finalised with feat(tools): add migration generator user input validations #18421
- update generators to adhere to new dev flow when creating converged package feat(tools): add migration generator user input validations #18421
- should update tsconfig.base.json#paths
- should update jest.config.js projects
Risks (Rabbit holes)
- No idea about plop AST capabilities (might get into issues when I'll need to add new package to
monorepoRoot/jest.config.js) - plop is not very testable AFAIR (will need to try it out)
Out of scope (No-gos)
- using solution TS config style (project references per package) to explicitly distinguish between environments (story/implementation/test)
- revamping all npm:scripts and how we build/publish
- use babel for transpilation
- use babel-jest for testing
- use rollup as main bundler
Reactions are currently unavailable