docs(rfcs): add TS solution style config rfc#19044
Conversation
|
This pull request is automatically built and testable in CodeSandbox. To see build info of the built libraries, click here or the icon next to each commit SHA. Latest deployment of this branch, based on commit 4fde9ba:
|
Asset size changesSize Auditor did not detect a change in bundle size for any component! Baseline commit: 1df00258679108cac8425f7832c57f18cfea352d (build) |
📊 Bundle size reportUnchanged fixtures
|
Perf Analysis (
|
| Scenario | Render type | Master Ticks | PR Ticks | Iterations | Status |
|---|---|---|---|---|---|
| Avatar | mount | 927 | 932 | 5000 | |
| BaseButton | mount | 937 | 931 | 5000 | |
| Breadcrumb | mount | 2726 | 2662 | 1000 | |
| ButtonNext | mount | 528 | 520 | 5000 | |
| Checkbox | mount | 1618 | 1533 | 5000 | |
| CheckboxBase | mount | 1297 | 1336 | 5000 | |
| ChoiceGroup | mount | 4848 | 4847 | 5000 | |
| ComboBox | mount | 992 | 980 | 1000 | |
| CommandBar | mount | 10364 | 10350 | 1000 | |
| ContextualMenu | mount | 6471 | 6589 | 1000 | |
| DefaultButton | mount | 1178 | 1156 | 5000 | |
| DetailsRow | mount | 3783 | 3843 | 5000 | |
| DetailsRowFast | mount | 3854 | 3859 | 5000 | |
| DetailsRowNoStyles | mount | 3690 | 3779 | 5000 | |
| Dialog | mount | 2551 | 2532 | 1000 | |
| DocumentCardTitle | mount | 179 | 165 | 1000 | |
| Dropdown | mount | 3274 | 3252 | 5000 | |
| FluentProviderNext | mount | 3420 | 3509 | 5000 | |
| FluentProviderWithTheme | mount | 219 | 213 | 10 | |
| FluentProviderWithTheme | virtual-rerender | 100 | 97 | 10 | |
| FluentProviderWithTheme | virtual-rerender-with-unmount | 257 | 247 | 10 | |
| FocusTrapZone | mount | 1827 | 1840 | 5000 | |
| FocusZone | mount | 1878 | 1890 | 5000 | |
| IconButton | mount | 1796 | 1942 | 5000 | |
| Label | mount | 365 | 357 | 5000 | |
| Layer | mount | 3050 | 3028 | 5000 | |
| Link | mount | 495 | 505 | 5000 | |
| MakeStyles | mount | 1851 | 1839 | 50000 | |
| MenuButton | mount | 1540 | 1514 | 5000 | |
| MessageBar | mount | 2045 | 2034 | 5000 | |
| Nav | mount | 3363 | 3382 | 1000 | |
| OverflowSet | mount | 1144 | 1126 | 5000 | |
| Panel | mount | 2477 | 2486 | 1000 | |
| Persona | mount | 868 | 866 | 1000 | |
| Pivot | mount | 1457 | 1460 | 1000 | |
| PrimaryButton | mount | 1297 | 1324 | 5000 | |
| Rating | mount | 7893 | 7797 | 5000 | |
| SearchBox | mount | 1351 | 1345 | 5000 | |
| Shimmer | mount | 2566 | 2597 | 5000 | |
| Slider | mount | 1960 | 2030 | 5000 | |
| SpinButton | mount | 5028 | 5158 | 5000 | |
| Spinner | mount | 430 | 460 | 5000 | |
| SplitButton | mount | 3231 | 3182 | 5000 | |
| Stack | mount | 523 | 549 | 5000 | |
| StackWithIntrinsicChildren | mount | 1754 | 1763 | 5000 | |
| StackWithTextChildren | mount | 4742 | 4717 | 5000 | |
| SwatchColorPicker | mount | 10636 | 10497 | 5000 | |
| Tabs | mount | 1477 | 1447 | 1000 | |
| TagPicker | mount | 2671 | 2702 | 5000 | |
| TeachingBubble | mount | 13215 | 13225 | 5000 | |
| Text | mount | 441 | 439 | 5000 | |
| TextField | mount | 1444 | 1407 | 5000 | |
| ThemeProvider | mount | 1196 | 1233 | 5000 | |
| ThemeProvider | virtual-rerender | 650 | 632 | 5000 | |
| ThemeProvider | virtual-rerender-with-unmount | 1908 | 1923 | 5000 | |
| Toggle | mount | 842 | 823 | 5000 | |
| buttonNative | mount | 136 | 130 | 5000 |
Perf Analysis (@fluentui/react-northstar)
Perf tests with no regressions
| Scenario | Current PR Ticks | Baseline Ticks | Ratio |
|---|---|---|---|
| IconMinimalPerf.default | 657 | 600 | 1.1:1 |
| ListWith60ListItems.default | 667 | 626 | 1.07:1 |
| HeaderMinimalPerf.default | 380 | 358 | 1.06:1 |
| ImageMinimalPerf.default | 384 | 361 | 1.06:1 |
| LoaderMinimalPerf.default | 738 | 696 | 1.06:1 |
| ButtonMinimalPerf.default | 177 | 168 | 1.05:1 |
| ChatWithPopoverPerf.default | 399 | 380 | 1.05:1 |
| PortalMinimalPerf.default | 195 | 185 | 1.05:1 |
| ItemLayoutMinimalPerf.default | 1249 | 1205 | 1.04:1 |
| MenuButtonMinimalPerf.default | 1704 | 1646 | 1.04:1 |
| TreeMinimalPerf.default | 813 | 785 | 1.04:1 |
| CardMinimalPerf.default | 558 | 543 | 1.03:1 |
| ChatDuplicateMessagesPerf.default | 311 | 302 | 1.03:1 |
| LayoutMinimalPerf.default | 368 | 359 | 1.03:1 |
| ReactionMinimalPerf.default | 387 | 375 | 1.03:1 |
| TableMinimalPerf.default | 423 | 409 | 1.03:1 |
| AccordionMinimalPerf.default | 155 | 152 | 1.02:1 |
| ButtonSlotsPerf.default | 561 | 552 | 1.02:1 |
| CarouselMinimalPerf.default | 467 | 457 | 1.02:1 |
| StatusMinimalPerf.default | 677 | 665 | 1.02:1 |
| TextMinimalPerf.default | 352 | 345 | 1.02:1 |
| VideoMinimalPerf.default | 624 | 609 | 1.02:1 |
| DialogMinimalPerf.default | 753 | 746 | 1.01:1 |
| DividerMinimalPerf.default | 374 | 372 | 1.01:1 |
| FormMinimalPerf.default | 415 | 410 | 1.01:1 |
| InputMinimalPerf.default | 1328 | 1319 | 1.01:1 |
| SegmentMinimalPerf.default | 343 | 338 | 1.01:1 |
| SliderMinimalPerf.default | 1740 | 1723 | 1.01:1 |
| TableManyItemsPerf.default | 1908 | 1891 | 1.01:1 |
| ToolbarMinimalPerf.default | 937 | 930 | 1.01:1 |
| TooltipMinimalPerf.default | 1050 | 1036 | 1.01:1 |
| AnimationMinimalPerf.default | 421 | 422 | 1:1 |
| AttachmentSlotsPerf.default | 1085 | 1080 | 1:1 |
| BoxMinimalPerf.default | 353 | 353 | 1:1 |
| ButtonOverridesMissPerf.default | 1795 | 1795 | 1:1 |
| CheckboxMinimalPerf.default | 2770 | 2772 | 1:1 |
| DatepickerMinimalPerf.default | 5547 | 5553 | 1:1 |
| DropdownManyItemsPerf.default | 684 | 686 | 1:1 |
| DropdownMinimalPerf.default | 3239 | 3240 | 1:1 |
| LabelMinimalPerf.default | 393 | 393 | 1:1 |
| ListMinimalPerf.default | 512 | 514 | 1:1 |
| ListNestedPerf.default | 550 | 552 | 1:1 |
| RadioGroupMinimalPerf.default | 454 | 456 | 1:1 |
| AlertMinimalPerf.default | 271 | 274 | 0.99:1 |
| EmbedMinimalPerf.default | 4337 | 4390 | 0.99:1 |
| GridMinimalPerf.default | 342 | 347 | 0.99:1 |
| ListCommonPerf.default | 635 | 641 | 0.99:1 |
| MenuMinimalPerf.default | 851 | 862 | 0.99:1 |
| RosterPerf.default | 1150 | 1166 | 0.99:1 |
| ProviderMinimalPerf.default | 1158 | 1175 | 0.99:1 |
| SkeletonMinimalPerf.default | 359 | 362 | 0.99:1 |
| SplitButtonMinimalPerf.default | 4235 | 4261 | 0.99:1 |
| TextAreaMinimalPerf.default | 502 | 506 | 0.99:1 |
| CustomToolbarPrototype.default | 4137 | 4177 | 0.99:1 |
| AttachmentMinimalPerf.default | 160 | 163 | 0.98:1 |
| ChatMinimalPerf.default | 645 | 658 | 0.98:1 |
| FlexMinimalPerf.default | 292 | 297 | 0.98:1 |
| HeaderSlotsPerf.default | 758 | 777 | 0.98:1 |
| ProviderMergeThemesPerf.default | 1734 | 1765 | 0.98:1 |
| AvatarMinimalPerf.default | 191 | 197 | 0.97:1 |
| PopupMinimalPerf.default | 591 | 611 | 0.97:1 |
| RefMinimalPerf.default | 228 | 240 | 0.95:1 |
| TreeWith60ListItems.default | 183 | 195 | 0.94:1 |
|
@Hotell - provide simple demo for @ecraig12345 how it works |
|
|
||
| - we'll need to adjust current build setup to accommodate our changes | ||
|
|
||
| `just-scripts` doesn't support TypeScript `build` mode, so we'll need to provide another solution. |
There was a problem hiding this comment.
If it literally just doesn't support passing the appropriate option through, that's very easy to fix
| > see [Open Issues](#open_issues) | ||
|
|
||
| - leaking global types | ||
| - invalid type checking (TS is not following proper `target` and `lib`) |
There was a problem hiding this comment.
It might be better to just directly link to the issues here, rather than having them in a separate section
|
|
||
| ```json | ||
| { | ||
| "extends": "./tsconfig.json", |
There was a problem hiding this comment.
Could be a stupid question, are there any circular issues since each tsconfig is extending the root tsconfig.json which is then also referencing each tsconfig? 🤔🤔
There was a problem hiding this comment.
no question is stupid @ling1726 :)
there are no circular issues, this is by design from TS folks
Co-authored-by: Elizabeth Craig <ecraig12345@gmail.com>
edbc971 to
4fde9ba
Compare
* docs(rfcs): add ts solution style config rfc * Update rfcs/build-system/02-solution-style-ts-configs.md * docs(rfcs): tweaks from PR suggestions Co-authored-by: Elizabeth Craig <ecraig12345@gmail.com>
Pull request checklist
[ ] Addresses an existing issue:[ ] Include a change request file using$ yarn changeDescription of changes
Focus areas to test
(optional)