Skip to content

feat(workspace-plugin): split-library-in-two migration generator and other tweaks#30866

Closed
Hotell wants to merge 17 commits intomicrosoft:masterfrom
Hotell:type-checking-perf/migration-generator
Closed

feat(workspace-plugin): split-library-in-two migration generator and other tweaks#30866
Hotell wants to merge 17 commits intomicrosoft:masterfrom
Hotell:type-checking-perf/migration-generator

Conversation

@Hotell
Copy link
Contributor

@Hotell Hotell commented Mar 25, 2024

Previous Behavior

New Behavior

nx generator which will split existing STABLE UI v9 package into library and stories packages under the same folder name.

|- react-components/
|- |- react-text/

↓↓↓

|- react-components/
|- |- react-text/
|- |- |- library/
|- |- |- stories/

Implements https://github.com/microsoft/fluentui/pull/30514/files#diff-fd1f65124cb8a5f905a337bf23e6dd67b607808793d84f21178c25c80b3a8028R283

Related Issue(s)

NOTES (remove)

generate api:

still uses pathAliases !

  • remove and measure improvements

e2e issues:

Seems cypress setups are broken in some packages

  • this generator will parse those files and accordingly add those ghost dependencies as package devDependency in order to make type-check work/pass

DATA:

command Before (package only/command) After
lage type-check --to react-drawer 20.64s / 69.37s 8.49s + 6.02s(stories) / 76.96 (new deps added which were ghosted before)
lage type-check --to react-menu 20.26s / 65.24s. 7.83s + 6.52s(stories) / 62.66s (new deps added which were ghosted before)
lage type-check --to react-table 28.55s / 90.87s 10.22s + 6.73s(stories) / 83.57s (new deps added which were ghosted before)
Cell Cell Cell
Cell Cell Cell

tsPath alias turned off for tsc -p:

command Before After
nx run-many -t build --projects='packages/react-components/*' --skip-nx-cache 416s 347s 𝚫 16.5% faster

@github-actions github-actions bot added this to the March Project Cycle Q1 2024 milestone Mar 25, 2024
@fabricteam
Copy link
Collaborator

fabricteam commented Mar 25, 2024

📊 Bundle size report

✅ No changes found

@codesandbox-ci
Copy link

codesandbox-ci bot commented Mar 25, 2024

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.

@Hotell Hotell force-pushed the type-checking-perf/migration-generator branch from 465cfd0 to 1e4e40f Compare March 25, 2024 12:23
@fabricteam
Copy link
Collaborator

fabricteam commented Mar 25, 2024

🕵 fluentuiv8 No visual regressions between this PR and main

@fabricteam
Copy link
Collaborator

fabricteam commented Mar 25, 2024

🕵 fluentuiv9 No visual regressions between this PR and main

@Hotell Hotell changed the title Type checking perf/migration generator feat(workspace-plugin): implement split-in-two migration generator Mar 28, 2024
@Hotell Hotell changed the title feat(workspace-plugin): implement split-in-two migration generator feat(workspace-plugin): implement split-library-in-two migration generator Mar 28, 2024
@Hotell Hotell force-pushed the type-checking-perf/migration-generator branch from 49f7d2d to 50603c2 Compare April 5, 2024 09:33
@fabricteam
Copy link
Collaborator

fabricteam commented Apr 5, 2024

Perf Analysis (@fluentui/react-components)

Scenario Render type Master Ticks PR Ticks Iterations Status
FluentProviderWithTheme virtual-rerender 35 29 10 Possible regression
All results

Scenario Render type Master Ticks PR Ticks Iterations Status
Avatar mount 662 626 5000
Button mount 298 315 5000
Field mount 1145 1156 5000
FluentProvider mount 721 729 5000
FluentProviderWithTheme mount 76 88 10
FluentProviderWithTheme virtual-rerender 35 29 10 Possible regression
FluentProviderWithTheme virtual-rerender-with-unmount 76 84 10
MakeStyles mount 867 868 50000
Persona mount 1800 1726 5000
SpinButton mount 1420 1428 5000

@fabricteam
Copy link
Collaborator

fabricteam commented Apr 5, 2024

Perf Analysis (@fluentui/react-northstar)

Perf tests with no regressions
Scenario Current PR Ticks Baseline Ticks Ratio
TreeWith60ListItems.default 93 79 1.18:1
ButtonMinimalPerf.default 93 84 1.11:1
AlertMinimalPerf.default 171 156 1.1:1
GridMinimalPerf.default 201 184 1.09:1
AttachmentMinimalPerf.default 88 82 1.07:1
TextMinimalPerf.default 200 188 1.06:1
MenuMinimalPerf.default 505 482 1.05:1
AvatarMinimalPerf.default 117 113 1.04:1
FlexMinimalPerf.default 161 155 1.04:1
SliderMinimalPerf.default 742 716 1.04:1
TreeMinimalPerf.default 482 463 1.04:1
AnimationMinimalPerf.default 305 297 1.03:1
CarouselMinimalPerf.default 271 264 1.03:1
ChatDuplicateMessagesPerf.default 150 145 1.03:1
ListMinimalPerf.default 302 293 1.03:1
RadioGroupMinimalPerf.default 264 257 1.03:1
ReactionMinimalPerf.default 216 209 1.03:1
SegmentMinimalPerf.default 197 191 1.03:1
TableMinimalPerf.default 243 235 1.03:1
CustomToolbarPrototype.default 1485 1448 1.03:1
VideoMinimalPerf.default 454 441 1.03:1
AttachmentSlotsPerf.default 646 632 1.02:1
BoxMinimalPerf.default 198 194 1.02:1
ChatMinimalPerf.default 436 429 1.02:1
DropdownManyItemsPerf.default 388 381 1.02:1
DropdownMinimalPerf.default 1437 1406 1.02:1
HeaderSlotsPerf.default 466 458 1.02:1
ItemLayoutMinimalPerf.default 700 687 1.02:1
LayoutMinimalPerf.default 195 191 1.02:1
MenuButtonMinimalPerf.default 962 942 1.02:1
ProviderMergeThemesPerf.default 661 648 1.02:1
ProviderMinimalPerf.default 204 200 1.02:1
HeaderMinimalPerf.default 204 201 1.01:1
ImageMinimalPerf.default 225 222 1.01:1
RefMinimalPerf.default 107 106 1.01:1
SkeletonMinimalPerf.default 199 198 1.01:1
AccordionMinimalPerf.default 83 83 1:1
ButtonSlotsPerf.default 299 300 1:1
CheckboxMinimalPerf.default 1143 1141 1:1
EmbedMinimalPerf.default 1902 1893 1:1
InputMinimalPerf.default 541 540 1:1
ListNestedPerf.default 317 317 1:1
SplitButtonMinimalPerf.default 2263 2266 1:1
TextAreaMinimalPerf.default 280 281 1:1
ChatWithPopoverPerf.default 189 191 0.99:1
DatepickerMinimalPerf.default 3559 3585 0.99:1
DialogMinimalPerf.default 438 444 0.99:1
DividerMinimalPerf.default 203 206 0.99:1
LoaderMinimalPerf.default 187 189 0.99:1
RosterPerf.default 1535 1558 0.99:1
PopupMinimalPerf.default 345 349 0.99:1
StatusMinimalPerf.default 398 401 0.99:1
TableManyItemsPerf.default 1082 1090 0.99:1
ToolbarMinimalPerf.default 531 539 0.99:1
TooltipMinimalPerf.default 1255 1268 0.99:1
ButtonOverridesMissPerf.default 642 658 0.98:1
PortalMinimalPerf.default 87 89 0.98:1
IconMinimalPerf.default 366 375 0.98:1
FormMinimalPerf.default 224 231 0.97:1
LabelMinimalPerf.default 216 222 0.97:1
CardMinimalPerf.default 302 313 0.96:1
ListWith60ListItems.default 356 374 0.95:1
ListCommonPerf.default 367 403 0.91:1

@fabricteam
Copy link
Collaborator

fabricteam commented Apr 5, 2024

Perf Analysis (@fluentui/react)

No significant results to display.

All results

Scenario Render type Master Ticks PR Ticks Iterations Status
BaseButton mount 625 632 5000
Breadcrumb mount 1679 1669 1000
Checkbox mount 1707 1718 5000
CheckboxBase mount 1484 1464 5000
ChoiceGroup mount 2939 2936 5000
ComboBox mount 660 652 1000
CommandBar mount 6232 6205 1000
ContextualMenu mount 12241 12421 1000
DefaultButton mount 745 764 5000
DetailsRow mount 2242 2267 5000
DetailsRowFast mount 2226 2210 5000
DetailsRowNoStyles mount 2048 2026 5000
Dialog mount 2686 2645 1000
DocumentCardTitle mount 231 232 1000
Dropdown mount 1993 1999 5000
FocusTrapZone mount 1135 1149 5000
FocusZone mount 1102 1070 5000
GroupedList mount 42346 42725 2
GroupedList virtual-rerender 20426 20267 2
GroupedList virtual-rerender-with-unmount 51310 52137 2
GroupedListV2 mount 228 226 2
GroupedListV2 virtual-rerender 221 206 2
GroupedListV2 virtual-rerender-with-unmount 234 236 2
IconButton mount 1108 1088 5000
Label mount 334 348 5000
Layer mount 2718 2754 5000
Link mount 395 397 5000
MenuButton mount 953 946 5000
MessageBar mount 21369 21507 5000
Nav mount 1970 1985 1000
OverflowSet mount 763 804 5000
Panel mount 1811 1774 1000
Persona mount 739 745 1000
Pivot mount 866 875 1000
PrimaryButton mount 842 833 5000
Rating mount 4717 4642 5000
SearchBox mount 910 929 5000
Shimmer mount 1902 1897 5000
Slider mount 1315 1338 5000
SpinButton mount 2877 2868 5000
Spinner mount 398 388 5000
SplitButton mount 1886 1876 5000
Stack mount 407 410 5000
StackWithIntrinsicChildren mount 865 858 5000
StackWithTextChildren mount 2622 2676 5000
SwatchColorPicker mount 6319 6336 5000
TagPicker mount 1480 1538 5000
Text mount 375 378 5000
TextField mount 957 947 5000
ThemeProvider mount 837 834 5000
ThemeProvider virtual-rerender 583 594 5000
ThemeProvider virtual-rerender-with-unmount 1274 1289 5000
Toggle mount 610 618 5000
buttonNative mount 196 196 5000

@Hotell Hotell force-pushed the type-checking-perf/migration-generator branch from bad4cf2 to 8e5d96c Compare April 8, 2024 12:42
@fabricteam
Copy link
Collaborator

fabricteam commented Apr 8, 2024

🕵 FluentUIV0 No visual regressions between this PR and main

@Hotell Hotell force-pushed the type-checking-perf/migration-generator branch from 19279ca to 115c688 Compare April 11, 2024 09:31
@Hotell Hotell changed the title feat(workspace-plugin): implement split-library-in-two migration generator feat(workspace-plugin): split-library-in-two migration generator and other tweaks Apr 17, 2024
@Hotell Hotell closed this May 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants