Skip to content

feat: make tokens package native ESM (build transforms)#30620

Closed
Hotell wants to merge 19 commits into
microsoft:masterfrom
Hotell:hotell/pkg/tokens-to-full-esm
Closed

feat: make tokens package native ESM (build transforms)#30620
Hotell wants to merge 19 commits into
microsoft:masterfrom
Hotell:hotell/pkg/tokens-to-full-esm

Conversation

@Hotell

@Hotell Hotell commented Feb 26, 2024

Copy link
Copy Markdown
Contributor

Blockers

Previous Behavior

New Behavior

Uses compile time transforms for tokens package to produce native ESM package

Related Issue(s)

Comment thread package.json
@fabricteam

fabricteam commented Feb 26, 2024

Copy link
Copy Markdown
Collaborator

🕵 fluentuiv9 No visual regressions between this PR and main

@codesandbox-ci

codesandbox-ci Bot commented Feb 26, 2024

Copy link
Copy Markdown

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.

@fabricteam

fabricteam commented Feb 26, 2024

Copy link
Copy Markdown
Collaborator

🕵 fluentuiv8 No visual regressions between this PR and main

@fabricteam

fabricteam commented Feb 26, 2024

Copy link
Copy Markdown
Collaborator

Perf Analysis (@fluentui/react-northstar)

⚠️ 9 potential perf regressions detected

Potential regressions comparing to master

Scenario Current PR Ticks Baseline Ticks Ratio Regression Analysis
PortalMinimalPerf.default 92 85 1.08:1 analysis
RefMinimalPerf.default 118 111 1.06:1 analysis
TreeWith60ListItems.default 89 84 1.06:1 analysis
AvatarMinimalPerf.default 115 110 1.05:1 analysis
AttachmentMinimalPerf.default 83 80 1.04:1 analysis
ButtonMinimalPerf.default 89 87 1.02:1 analysis
AccordionMinimalPerf.default 85 84 1.01:1 analysis
AlertMinimalPerf.default 160 164 0.98:1 analysis
ChatWithPopoverPerf.default 182 196 0.93:1 analysis
Perf tests with no regressions
Scenario Current PR Ticks Baseline Ticks Ratio
DividerMinimalPerf.default 247 208 1.19:1
ChatDuplicateMessagesPerf.default 154 140 1.1:1
BoxMinimalPerf.default 201 185 1.09:1
HeaderMinimalPerf.default 214 200 1.07:1
ProviderMinimalPerf.default 209 195 1.07:1
ListMinimalPerf.default 317 300 1.06:1
DialogMinimalPerf.default 467 444 1.05:1
IconMinimalPerf.default 394 377 1.05:1
InputMinimalPerf.default 555 533 1.04:1
TooltipMinimalPerf.default 1321 1275 1.04:1
CardMinimalPerf.default 310 300 1.03:1
DropdownMinimalPerf.default 1459 1423 1.03:1
FlexMinimalPerf.default 158 154 1.03:1
SliderMinimalPerf.default 774 749 1.03:1
TreeMinimalPerf.default 500 484 1.03:1
VideoMinimalPerf.default 444 431 1.03:1
ButtonOverridesMissPerf.default 648 637 1.02:1
LayoutMinimalPerf.default 201 197 1.02:1
MenuMinimalPerf.default 515 504 1.02:1
RadioGroupMinimalPerf.default 259 255 1.02:1
SegmentMinimalPerf.default 198 194 1.02:1
TableManyItemsPerf.default 1119 1094 1.02:1
TableMinimalPerf.default 232 227 1.02:1
AnimationMinimalPerf.default 305 301 1.01:1
AttachmentSlotsPerf.default 630 625 1.01:1
EmbedMinimalPerf.default 1892 1875 1.01:1
GridMinimalPerf.default 188 187 1.01:1
ListNestedPerf.default 327 323 1.01:1
PopupMinimalPerf.default 354 349 1.01:1
ProviderMergeThemesPerf.default 644 639 1.01:1
SplitButtonMinimalPerf.default 2286 2261 1.01:1
TextMinimalPerf.default 191 189 1.01:1
ChatMinimalPerf.default 433 431 1:1
CheckboxMinimalPerf.default 1154 1149 1:1
DatepickerMinimalPerf.default 3584 3589 1:1
HeaderSlotsPerf.default 467 467 1:1
ItemLayoutMinimalPerf.default 701 700 1:1
MenuButtonMinimalPerf.default 952 949 1:1
ButtonSlotsPerf.default 316 319 0.99:1
FormMinimalPerf.default 218 221 0.99:1
RosterPerf.default 1554 1571 0.99:1
SkeletonMinimalPerf.default 197 199 0.99:1
ToolbarMinimalPerf.default 537 545 0.99:1
CarouselMinimalPerf.default 258 264 0.98:1
LoaderMinimalPerf.default 193 196 0.98:1
ReactionMinimalPerf.default 207 212 0.98:1
CustomToolbarPrototype.default 1459 1484 0.98:1
TextAreaMinimalPerf.default 282 292 0.97:1
ListWith60ListItems.default 357 376 0.95:1
StatusMinimalPerf.default 389 408 0.95:1
DropdownManyItemsPerf.default 387 410 0.94:1
ListCommonPerf.default 373 395 0.94:1
ImageMinimalPerf.default 207 225 0.92:1
LabelMinimalPerf.default 214 232 0.92:1

@fabricteam

fabricteam commented Feb 26, 2024

Copy link
Copy Markdown
Collaborator

📊 Bundle size report

Package & Exports Baseline (minified/GZIP) PR Change
react-jsx-runtime
JSX Dev Runtime
3.783 kB
1.648 kB
3.781 kB
1.646 kB
-2 B
-2 B
Unchanged fixtures
Package & Exports Size (minified/GZIP)
keyboard-key
keyboard-key package
3.746 kB
1.928 kB
priority-overflow
createOverflowManager
4.447 kB
1.853 kB
react-jsx-runtime
Classic Pragma
1.057 kB
530 B
react-jsx-runtime
JSX Runtime
4.377 kB
1.881 kB
react-theme
Single theme token import
69 B
89 B
react-theme
Teams: all themes
35.666 kB
7.453 kB
react-theme
Teams: Light theme
19.642 kB
5.549 kB
react-utilities
SSRProvider
180 B
160 B
🤖 This report was generated against b072525b88f147ed988efd2e17a5bc9d4d1238a0

@fabricteam

fabricteam commented Feb 26, 2024

Copy link
Copy Markdown
Collaborator

🕵 FluentUIV0 No visual regressions between this PR and main

@fabricteam

fabricteam commented Feb 26, 2024

Copy link
Copy Markdown
Collaborator

Perf Analysis (@fluentui/react)

Scenario Render type Master Ticks PR Ticks Iterations Status
BaseButton mount 639 643 5000 Possible regression
Breadcrumb mount 1678 1672 1000 Possible regression
Checkbox mount 1702 1703 5000 Possible regression
CheckboxBase mount 1478 1464 5000 Possible regression
ChoiceGroup mount 2909 2886 5000 Possible regression
ComboBox mount 654 647 1000 Possible regression
CommandBar mount 6223 6179 1000 Possible regression
ContextualMenu mount 12272 12909 1000 Possible regression
DefaultButton mount 750 744 5000 Possible regression
DetailsRow mount 2173 2214 5000 Possible regression
DetailsRowFast mount 2233 2177 5000 Possible regression
DetailsRowNoStyles mount 2033 2023 5000 Possible regression
Dialog mount 2773 2643 1000 Possible regression
DocumentCardTitle mount 230 219 1000 Possible regression
Dropdown mount 1953 1991 5000 Possible regression
FocusTrapZone mount 1161 1142 5000 Possible regression
FocusZone mount 1078 1095 5000 Possible regression
GroupedList mount 41361 41701 2 Possible regression
GroupedList virtual-rerender 17807 19862 2 Possible regression
GroupedList virtual-rerender-with-unmount 50984 50662 2 Possible regression
GroupedListV2 mount 218 231 2 Possible regression
GroupedListV2 virtual-rerender 216 214 2 Possible regression
GroupedListV2 virtual-rerender-with-unmount 229 229 2 Possible regression
IconButton mount 1067 1093 5000 Possible regression
Label mount 335 337 5000 Possible regression
Layer mount 2771 2729 5000 Possible regression
Link mount 392 393 5000 Possible regression
MenuButton mount 953 974 5000 Possible regression
Nav mount 1970 1991 1000 Possible regression
OverflowSet mount 791 798 5000 Possible regression
Panel mount 1804 1748 1000 Possible regression
Persona mount 718 772 1000 Possible regression
Pivot mount 869 907 1000 Possible regression
PrimaryButton mount 851 860 5000 Possible regression
Rating mount 4593 4617 5000 Possible regression
SearchBox mount 911 917 5000 Possible regression
Shimmer mount 1884 1911 5000 Possible regression
Slider mount 1337 1331 5000 Possible regression
SpinButton mount 2888 2878 5000 Possible regression
Spinner mount 383 373 5000 Possible regression
SplitButton mount 1848 1810 5000 Possible regression
Stack mount 424 418 5000 Possible regression
StackWithIntrinsicChildren mount 879 857 5000 Possible regression
StackWithTextChildren mount 2620 2609 5000 Possible regression
SwatchColorPicker mount 6200 6169 5000 Possible regression
TagPicker mount 1454 1461 5000 Possible regression
Text mount 366 373 5000 Possible regression
TextField mount 942 946 5000 Possible regression
ThemeProvider mount 839 848 5000 Possible regression
ThemeProvider virtual-rerender 581 601 5000 Possible regression
ThemeProvider virtual-rerender-with-unmount 1246 1266 5000 Possible regression
Toggle mount 623 617 5000 Possible regression
buttonNative mount 201 197 5000 Possible regression
All results

Scenario Render type Master Ticks PR Ticks Iterations Status
BaseButton mount 639 643 5000 Possible regression
Breadcrumb mount 1678 1672 1000 Possible regression
Checkbox mount 1702 1703 5000 Possible regression
CheckboxBase mount 1478 1464 5000 Possible regression
ChoiceGroup mount 2909 2886 5000 Possible regression
ComboBox mount 654 647 1000 Possible regression
CommandBar mount 6223 6179 1000 Possible regression
ContextualMenu mount 12272 12909 1000 Possible regression
DefaultButton mount 750 744 5000 Possible regression
DetailsRow mount 2173 2214 5000 Possible regression
DetailsRowFast mount 2233 2177 5000 Possible regression
DetailsRowNoStyles mount 2033 2023 5000 Possible regression
Dialog mount 2773 2643 1000 Possible regression
DocumentCardTitle mount 230 219 1000 Possible regression
Dropdown mount 1953 1991 5000 Possible regression
FocusTrapZone mount 1161 1142 5000 Possible regression
FocusZone mount 1078 1095 5000 Possible regression
GroupedList mount 41361 41701 2 Possible regression
GroupedList virtual-rerender 17807 19862 2 Possible regression
GroupedList virtual-rerender-with-unmount 50984 50662 2 Possible regression
GroupedListV2 mount 218 231 2 Possible regression
GroupedListV2 virtual-rerender 216 214 2 Possible regression
GroupedListV2 virtual-rerender-with-unmount 229 229 2 Possible regression
IconButton mount 1067 1093 5000 Possible regression
Label mount 335 337 5000 Possible regression
Layer mount 2771 2729 5000 Possible regression
Link mount 392 393 5000 Possible regression
MenuButton mount 953 974 5000 Possible regression
MessageBar mount 21257 21564 5000
Nav mount 1970 1991 1000 Possible regression
OverflowSet mount 791 798 5000 Possible regression
Panel mount 1804 1748 1000 Possible regression
Persona mount 718 772 1000 Possible regression
Pivot mount 869 907 1000 Possible regression
PrimaryButton mount 851 860 5000 Possible regression
Rating mount 4593 4617 5000 Possible regression
SearchBox mount 911 917 5000 Possible regression
Shimmer mount 1884 1911 5000 Possible regression
Slider mount 1337 1331 5000 Possible regression
SpinButton mount 2888 2878 5000 Possible regression
Spinner mount 383 373 5000 Possible regression
SplitButton mount 1848 1810 5000 Possible regression
Stack mount 424 418 5000 Possible regression
StackWithIntrinsicChildren mount 879 857 5000 Possible regression
StackWithTextChildren mount 2620 2609 5000 Possible regression
SwatchColorPicker mount 6200 6169 5000 Possible regression
TagPicker mount 1454 1461 5000 Possible regression
Text mount 366 373 5000 Possible regression
TextField mount 942 946 5000 Possible regression
ThemeProvider mount 839 848 5000 Possible regression
ThemeProvider virtual-rerender 581 601 5000 Possible regression
ThemeProvider virtual-rerender-with-unmount 1246 1266 5000 Possible regression
Toggle mount 623 617 5000 Possible regression
buttonNative mount 201 197 5000 Possible regression

Comment thread .storybook/main.js
},
webpackFinal: config => {
config.resolve ??= {};
config.resolve.extensionAlias = {

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

needed because SB6 uses webpack4

webpack/webpack#13252

@fabricteam

fabricteam commented Feb 27, 2024

Copy link
Copy Markdown
Collaborator

Perf Analysis (@fluentui/react-components)

Scenario Render type Master Ticks PR Ticks Iterations Status
Avatar mount 623 641 5000 Possible regression
Button mount 295 305 5000 Possible regression
Field mount 1103 1123 5000 Possible regression
FluentProvider mount 705 689 5000 Possible regression
FluentProviderWithTheme mount 74 77 10 Possible regression
FluentProviderWithTheme virtual-rerender 63 58 10 Possible regression
FluentProviderWithTheme virtual-rerender-with-unmount 68 77 10 Possible regression
MakeStyles mount 847 886 50000 Possible regression
Persona mount 1756 1756 5000 Possible regression
SpinButton mount 1352 1410 5000 Possible regression
All results

Scenario Render type Master Ticks PR Ticks Iterations Status
Avatar mount 623 641 5000 Possible regression
Button mount 295 305 5000 Possible regression
Field mount 1103 1123 5000 Possible regression
FluentProvider mount 705 689 5000 Possible regression
FluentProviderWithTheme mount 74 77 10 Possible regression
FluentProviderWithTheme virtual-rerender 63 58 10 Possible regression
FluentProviderWithTheme virtual-rerender-with-unmount 68 77 10 Possible regression
MakeStyles mount 847 886 50000 Possible regression
Persona mount 1756 1756 5000 Possible regression
SpinButton mount 1352 1410 5000 Possible regression

@Hotell Hotell force-pushed the hotell/pkg/tokens-to-full-esm branch from a0eaf8e to 1e0383a Compare February 27, 2024 14:54
Comment thread packages/react-components/react-utilities/.swcrc
@Hotell Hotell changed the title feat: make tokens package native ESM feat: make tokens package native ESM (build transforms) Mar 1, 2024
@Hotell Hotell force-pushed the hotell/pkg/tokens-to-full-esm branch from ed2373a to f24b38d Compare March 6, 2024 14:39
@Hotell Hotell force-pushed the hotell/pkg/tokens-to-full-esm branch from f24b38d to e4e6204 Compare March 6, 2024 14:45
@Hotell Hotell closed this May 14, 2025
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.

[Feature]: Add .js file extension to built output to improve native ESM support

4 participants