feat(workspace-plugin): implement workspace inferred plugin#33028
feat(workspace-plugin): implement workspace inferred plugin#33028Hotell merged 7 commits intomicrosoft:masterfrom
Conversation
📊 Bundle size report✅ No changes found |
Perf Analysis (
|
| Scenario | Render type | Master Ticks | PR Ticks | Iterations | Status |
|---|---|---|---|---|---|
| FluentProviderWithTheme | virtual-rerender-with-unmount | 73 | 75 | 10 | Possible regression |
All results
| Scenario | Render type | Master Ticks | PR Ticks | Iterations | Status |
|---|---|---|---|---|---|
| Avatar | mount | 644 | 653 | 5000 | |
| Button | mount | 304 | 295 | 5000 | |
| Field | mount | 1195 | 1152 | 5000 | |
| FluentProvider | mount | 704 | 710 | 5000 | |
| FluentProviderWithTheme | mount | 86 | 82 | 10 | |
| FluentProviderWithTheme | virtual-rerender | 29 | 35 | 10 | |
| FluentProviderWithTheme | virtual-rerender-with-unmount | 73 | 75 | 10 | Possible regression |
| MakeStyles | mount | 863 | 849 | 50000 | |
| Persona | mount | 1749 | 1710 | 5000 | |
| SpinButton | mount | 1400 | 1401 | 5000 | |
| SwatchPicker | mount | 1627 | 1641 | 5000 |
🕵 FluentUIV0 No visual regressions between this PR and main |
Perf Analysis (
|
| Scenario | Current PR Ticks | Baseline Ticks | Ratio |
|---|---|---|---|
| AvatarMinimalPerf.default | 119 | 107 | 1.11:1 |
| TextMinimalPerf.default | 211 | 190 | 1.11:1 |
| AttachmentMinimalPerf.default | 88 | 80 | 1.1:1 |
| GridMinimalPerf.default | 204 | 185 | 1.1:1 |
| ChatMinimalPerf.default | 461 | 424 | 1.09:1 |
| DividerMinimalPerf.default | 215 | 200 | 1.08:1 |
| VideoMinimalPerf.default | 442 | 410 | 1.08:1 |
| ProviderMinimalPerf.default | 213 | 200 | 1.07:1 |
| IconMinimalPerf.default | 400 | 373 | 1.07:1 |
| ButtonSlotsPerf.default | 329 | 309 | 1.06:1 |
| ListMinimalPerf.default | 328 | 309 | 1.06:1 |
| RadioGroupMinimalPerf.default | 264 | 248 | 1.06:1 |
| BoxMinimalPerf.default | 199 | 190 | 1.05:1 |
| ToolbarMinimalPerf.default | 553 | 526 | 1.05:1 |
| TreeWith60ListItems.default | 91 | 87 | 1.05:1 |
| AnimationMinimalPerf.default | 304 | 291 | 1.04:1 |
| AttachmentSlotsPerf.default | 657 | 629 | 1.04:1 |
| FlexMinimalPerf.default | 163 | 157 | 1.04:1 |
| ImageMinimalPerf.default | 241 | 231 | 1.04:1 |
| TableMinimalPerf.default | 242 | 232 | 1.04:1 |
| AlertMinimalPerf.default | 160 | 156 | 1.03:1 |
| LayoutMinimalPerf.default | 202 | 196 | 1.03:1 |
| StatusMinimalPerf.default | 391 | 381 | 1.03:1 |
| ButtonMinimalPerf.default | 89 | 87 | 1.02:1 |
| CarouselMinimalPerf.default | 266 | 260 | 1.02:1 |
| DialogMinimalPerf.default | 450 | 441 | 1.02:1 |
| DropdownManyItemsPerf.default | 391 | 385 | 1.02:1 |
| DropdownMinimalPerf.default | 1475 | 1440 | 1.02:1 |
| HeaderMinimalPerf.default | 205 | 201 | 1.02:1 |
| ItemLayoutMinimalPerf.default | 719 | 703 | 1.02:1 |
| MenuMinimalPerf.default | 511 | 502 | 1.02:1 |
| PortalMinimalPerf.default | 89 | 87 | 1.02:1 |
| DatepickerMinimalPerf.default | 3587 | 3563 | 1.01:1 |
| HeaderSlotsPerf.default | 465 | 460 | 1.01:1 |
| LabelMinimalPerf.default | 220 | 217 | 1.01:1 |
| ListCommonPerf.default | 385 | 383 | 1.01:1 |
| ListNestedPerf.default | 317 | 314 | 1.01:1 |
| RefMinimalPerf.default | 113 | 112 | 1.01:1 |
| SegmentMinimalPerf.default | 198 | 197 | 1.01:1 |
| ButtonOverridesMissPerf.default | 643 | 643 | 1:1 |
| ChatWithPopoverPerf.default | 196 | 196 | 1:1 |
| PopupMinimalPerf.default | 354 | 354 | 1:1 |
| ProviderMergeThemesPerf.default | 657 | 657 | 1:1 |
| ReactionMinimalPerf.default | 206 | 207 | 1:1 |
| SkeletonMinimalPerf.default | 193 | 193 | 1:1 |
| CustomToolbarPrototype.default | 1467 | 1469 | 1:1 |
| CardMinimalPerf.default | 311 | 315 | 0.99:1 |
| EmbedMinimalPerf.default | 1842 | 1859 | 0.99:1 |
| LoaderMinimalPerf.default | 198 | 201 | 0.99:1 |
| MenuButtonMinimalPerf.default | 946 | 952 | 0.99:1 |
| SliderMinimalPerf.default | 733 | 742 | 0.99:1 |
| TreeMinimalPerf.default | 472 | 476 | 0.99:1 |
| AccordionMinimalPerf.default | 86 | 88 | 0.98:1 |
| CheckboxMinimalPerf.default | 1108 | 1125 | 0.98:1 |
| InputMinimalPerf.default | 543 | 552 | 0.98:1 |
| RosterPerf.default | 1583 | 1617 | 0.98:1 |
| SplitButtonMinimalPerf.default | 2255 | 2295 | 0.98:1 |
| TableManyItemsPerf.default | 1087 | 1107 | 0.98:1 |
| TooltipMinimalPerf.default | 1261 | 1282 | 0.98:1 |
| ListWith60ListItems.default | 356 | 367 | 0.97:1 |
| TextAreaMinimalPerf.default | 275 | 284 | 0.97:1 |
| ChatDuplicateMessagesPerf.default | 152 | 158 | 0.96:1 |
| FormMinimalPerf.default | 213 | 222 | 0.96:1 |
Perf Analysis (
|
| Scenario | Render type | Master Ticks | PR Ticks | Iterations | Status |
|---|---|---|---|---|---|
| BaseButton | mount | 632 | 632 | 5000 | |
| Breadcrumb | mount | 1673 | 1687 | 1000 | |
| Checkbox | mount | 1717 | 1703 | 5000 | |
| CheckboxBase | mount | 1484 | 1508 | 5000 | |
| ChoiceGroup | mount | 2990 | 3023 | 5000 | |
| ComboBox | mount | 691 | 678 | 1000 | |
| CommandBar | mount | 6591 | 6588 | 1000 | |
| ContextualMenu | mount | 13330 | 12836 | 1000 | |
| DefaultButton | mount | 795 | 801 | 5000 | |
| DetailsRow | mount | 2248 | 2249 | 5000 | |
| DetailsRowFast | mount | 2248 | 2253 | 5000 | |
| DetailsRowNoStyles | mount | 2104 | 2076 | 5000 | |
| Dialog | mount | 2868 | 2743 | 1000 | |
| DocumentCardTitle | mount | 233 | 258 | 1000 | |
| Dropdown | mount | 2042 | 2005 | 5000 | |
| FocusTrapZone | mount | 1154 | 1167 | 5000 | |
| FocusZone | mount | 1078 | 1053 | 5000 | |
| GroupedList | mount | 42373 | 42992 | 2 | |
| GroupedList | virtual-rerender | 20363 | 20468 | 2 | |
| GroupedList | virtual-rerender-with-unmount | 52141 | 52453 | 2 | |
| GroupedListV2 | mount | 232 | 224 | 2 | |
| GroupedListV2 | virtual-rerender | 220 | 215 | 2 | |
| GroupedListV2 | virtual-rerender-with-unmount | 228 | 230 | 2 | |
| IconButton | mount | 1172 | 1142 | 5000 | |
| Label | mount | 335 | 349 | 5000 | |
| Layer | mount | 2736 | 2745 | 5000 | |
| Link | mount | 410 | 400 | 5000 | |
| MenuButton | mount | 1004 | 996 | 5000 | |
| MessageBar | mount | 21095 | 21204 | 5000 | |
| Nav | mount | 2038 | 2097 | 1000 | |
| OverflowSet | mount | 807 | 791 | 5000 | |
| Panel | mount | 1808 | 1855 | 1000 | |
| Persona | mount | 761 | 777 | 1000 | |
| Pivot | mount | 900 | 937 | 1000 | |
| PrimaryButton | mount | 939 | 932 | 5000 | |
| Rating | mount | 4722 | 4784 | 5000 | |
| SearchBox | mount | 930 | 933 | 5000 | |
| Shimmer | mount | 1884 | 1923 | 5000 | |
| Slider | mount | 1356 | 1376 | 5000 | |
| SpinButton | mount | 2987 | 3009 | 5000 | |
| Spinner | mount | 389 | 389 | 5000 | |
| SplitButton | mount | 1902 | 1876 | 5000 | |
| Stack | mount | 432 | 423 | 5000 | |
| StackWithIntrinsicChildren | mount | 886 | 898 | 5000 | |
| StackWithTextChildren | mount | 2822 | 2782 | 5000 | |
| SwatchColorPicker | mount | 6415 | 6364 | 5000 | |
| TagPicker | mount | 1481 | 1470 | 5000 | |
| Text | mount | 394 | 391 | 5000 | |
| TextField | mount | 939 | 962 | 5000 | |
| ThemeProvider | mount | 874 | 860 | 5000 | |
| ThemeProvider | virtual-rerender | 583 | 582 | 5000 | |
| ThemeProvider | virtual-rerender-with-unmount | 1318 | 1312 | 5000 | |
| Toggle | mount | 615 | 620 | 5000 | |
| buttonNative | mount | 198 | 194 | 5000 |
349bb9a to
0a5e5b9
Compare
a1d0bf1 to
8e75940
Compare
8e75940 to
920b3c5
Compare
🕵 fluentui-web-components-v3 No visual regressions between this PR and main |
…ns implementation
…ithin generated targets
dmytrokirpa
left a comment
There was a problem hiding this comment.
LGTM! One thing I'd suggest is to switch to fs fixtures from inline snapshots and to have more like end-to-end tests, but unsure if it's worth the extra effort.
so this is kinda (e2e) , but not really - it's an integration test within our workspace - we create physical files on tmp FS, on which we run Regarding assertion only thing we are interested in testing is the json configuration that it creates based on the existing tmp FS. with that moving that into physical file is not that different with file snapshots ( which I don't suggest to use for any kind of scenarious as they are decoupled and provide bad DX in terms of evaluating the test ). proper e2e tests are necessary for plugins that we gonna ship to npm for other repos, which would slightly adjust the flow here and be more resource consuming:
|
Pre-requirements
Previous Behavior
New Behavior
Implements workspace-plugin that creates targets based on project context in whole monorepo
Related Issue(s)