Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: bump swc core to mitigate transpilation memory leaks #29253

Merged
merged 6 commits into from
Sep 26, 2023

Conversation

Hotell
Copy link
Contributor

@Hotell Hotell commented Sep 22, 2023

Previous Behavior

New Behavior

  • bumped monorepo swc core which fixes memory leaks
  • force generated changefiles for all published packages using swc for transpilation.
  • removes direct usage of ts-node/register with nx in memory transpilation as ts-node blocks this PR otherwise Fix swc issues TypeStrong/ts-node#2062
  • adds beachball config to react-conformance package for consistency

Related Issue(s)

@fabricteam
Copy link
Collaborator

fabricteam commented Sep 22, 2023

Perf Analysis (@fluentui/react-components)

Scenario Render type Master Ticks PR Ticks Iterations Status
FluentProviderWithTheme virtual-rerender-with-unmount 75 68 10 Possible regression
InfoButton mount 8 11 5000 Possible regression
All results

Scenario Render type Master Ticks PR Ticks Iterations Status
Avatar mount 620 641 5000
Button mount 323 318 5000
Field mount 1106 1136 5000
FluentProvider mount 733 713 5000
FluentProviderWithTheme mount 79 82 10
FluentProviderWithTheme virtual-rerender 63 59 10
FluentProviderWithTheme virtual-rerender-with-unmount 75 68 10 Possible regression
InfoButton mount 8 11 5000 Possible regression
MakeStyles mount 859 848 50000
Persona mount 1770 1709 5000
SpinButton mount 1390 1384 5000

@codesandbox-ci
Copy link

codesandbox-ci bot commented Sep 22, 2023

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 a13ff2b:

Sandbox Source
@fluentui/react 8 starter Configuration
@fluentui/react-components 9 starter Configuration

@fabricteam
Copy link
Collaborator

fabricteam commented Sep 22, 2023

🕵 fluentuiv8 No visual regressions between this PR and main

@fabricteam
Copy link
Collaborator

fabricteam commented Sep 22, 2023

Perf Analysis (@fluentui/react-northstar)

Perf tests with no regressions
Scenario Current PR Ticks Baseline Ticks Ratio
TreeWith60ListItems.default 94 81 1.16:1
AttachmentMinimalPerf.default 86 77 1.12:1
FlexMinimalPerf.default 160 144 1.11:1
AlertMinimalPerf.default 158 145 1.09:1
SkeletonMinimalPerf.default 197 182 1.08:1
LayoutMinimalPerf.default 206 193 1.07:1
ListNestedPerf.default 321 301 1.07:1
CardMinimalPerf.default 314 296 1.06:1
HeaderSlotsPerf.default 470 445 1.06:1
PortalMinimalPerf.default 84 79 1.06:1
StatusMinimalPerf.default 394 373 1.06:1
TreeMinimalPerf.default 475 448 1.06:1
IconMinimalPerf.default 387 369 1.05:1
BoxMinimalPerf.default 198 191 1.04:1
ButtonOverridesMissPerf.default 681 653 1.04:1
TableMinimalPerf.default 230 222 1.04:1
AccordionMinimalPerf.default 80 78 1.03:1
AttachmentSlotsPerf.default 642 624 1.03:1
DropdownManyItemsPerf.default 391 380 1.03:1
InputMinimalPerf.default 537 519 1.03:1
ProviderMinimalPerf.default 200 194 1.03:1
ChatWithPopoverPerf.default 190 187 1.02:1
EmbedMinimalPerf.default 1890 1860 1.02:1
GridMinimalPerf.default 187 184 1.02:1
RadioGroupMinimalPerf.default 251 246 1.02:1
RefMinimalPerf.default 108 106 1.02:1
SegmentMinimalPerf.default 190 187 1.02:1
ButtonSlotsPerf.default 313 311 1.01:1
ChatMinimalPerf.default 430 427 1.01:1
DropdownMinimalPerf.default 1432 1416 1.01:1
RosterPerf.default 1538 1520 1.01:1
SplitButtonMinimalPerf.default 2243 2220 1.01:1
ToolbarMinimalPerf.default 523 517 1.01:1
CarouselMinimalPerf.default 265 266 1:1
ChatDuplicateMessagesPerf.default 154 154 1:1
DatepickerMinimalPerf.default 3483 3480 1:1
DividerMinimalPerf.default 201 202 1:1
ItemLayoutMinimalPerf.default 704 706 1:1
LabelMinimalPerf.default 210 211 1:1
MenuButtonMinimalPerf.default 948 949 1:1
PopupMinimalPerf.default 341 340 1:1
TableManyItemsPerf.default 1099 1099 1:1
CustomToolbarPrototype.default 1462 1467 1:1
ListMinimalPerf.default 302 305 0.99:1
MenuMinimalPerf.default 493 498 0.99:1
AnimationMinimalPerf.default 279 285 0.98:1
ButtonMinimalPerf.default 85 87 0.98:1
DialogMinimalPerf.default 429 439 0.98:1
FormMinimalPerf.default 211 215 0.98:1
HeaderMinimalPerf.default 202 206 0.98:1
ImageMinimalPerf.default 230 234 0.98:1
ListWith60ListItems.default 346 352 0.98:1
ProviderMergeThemesPerf.default 632 643 0.98:1
SliderMinimalPerf.default 740 752 0.98:1
CheckboxMinimalPerf.default 1110 1140 0.97:1
ListCommonPerf.default 375 386 0.97:1
ReactionMinimalPerf.default 207 213 0.97:1
TooltipMinimalPerf.default 1262 1303 0.97:1
LoaderMinimalPerf.default 190 197 0.96:1
AvatarMinimalPerf.default 104 110 0.95:1
TextAreaMinimalPerf.default 274 287 0.95:1
TextMinimalPerf.default 188 200 0.94:1
VideoMinimalPerf.default 425 455 0.93:1

@fabricteam
Copy link
Collaborator

fabricteam commented Sep 22, 2023

🕵 FluentUIV0 No visual regressions between this PR and main

@fabricteam
Copy link
Collaborator

fabricteam commented Sep 22, 2023

📊 Bundle size report

Package & Exports Baseline (minified/GZIP) PR Change
react-accordion
Accordion (including children components)
91.932 kB
28.052 kB
91.68 kB
28.007 kB
-252 B
-45 B
react-alert
Alert
84.006 kB
23.008 kB
83.653 kB
22.915 kB
-353 B
-93 B
react-avatar
Avatar
49.384 kB
15.546 kB
49.181 kB
15.491 kB
-203 B
-55 B
react-avatar
AvatarGroup
18.782 kB
7.48 kB
18.712 kB
7.458 kB
-70 B
-22 B
react-avatar
AvatarGroupItem
64.036 kB
19.896 kB
63.837 kB
19.834 kB
-199 B
-62 B
react-badge
Badge
25.987 kB
8.384 kB
25.917 kB
8.355 kB
-70 B
-29 B
react-badge
CounterBadge
26.888 kB
8.687 kB
26.818 kB
8.658 kB
-70 B
-29 B
react-badge
PresenceBadge
24.393 kB
8.893 kB
24.323 kB
8.867 kB
-70 B
-26 B
react-button
Button
39.667 kB
10.794 kB
39.44 kB
10.738 kB
-227 B
-56 B
react-button
CompoundButton
47.023 kB
12.295 kB
46.795 kB
12.233 kB
-228 B
-62 B
react-button
MenuButton
44.466 kB
12.188 kB
44.214 kB
12.119 kB
-252 B
-69 B
react-button
SplitButton
52.469 kB
13.771 kB
52.228 kB
13.705 kB
-241 B
-66 B
react-button
ToggleButton
56.756 kB
12.702 kB
56.486 kB
12.641 kB
-270 B
-61 B
react-card
Card - All
91.841 kB
26.563 kB
91.48 kB
26.485 kB
-361 B
-78 B
react-card
Card
86.63 kB
25.007 kB
86.306 kB
24.947 kB
-324 B
-60 B
react-card
CardFooter
12.14 kB
5.061 kB
12.07 kB
5.034 kB
-70 B
-27 B
react-card
CardHeader
14.431 kB
5.832 kB
14.319 kB
5.8 kB
-112 B
-32 B
react-card
CardPreview
13.097 kB
5.434 kB
13.027 kB
5.403 kB
-70 B
-31 B
react-checkbox
Checkbox
36.155 kB
11.925 kB
35.955 kB
11.852 kB
-200 B
-73 B
react-combobox
Combobox (including child components)
90.949 kB
29.689 kB
90.117 kB
29.441 kB
-832 B
-248 B
react-combobox
Dropdown (including child components)
89.28 kB
29.328 kB
88.557 kB
29.081 kB
-723 B
-247 B
react-components
react-components: Button, FluentProvider & webLightTheme
69.572 kB
19.658 kB
69.223 kB
19.584 kB
-349 B
-74 B
react-components
react-components: Accordion, Button, FluentProvider, Image, Menu, Popover
208.688 kB
59.552 kB
206.779 kB
59.084 kB
-1.909 kB
-468 B
react-components
react-components: FluentProvider & webLightTheme
40.966 kB
13.569 kB
40.789 kB
13.521 kB
-177 B
-48 B
react-datepicker-compat
DatePicker Compat
211.988 kB
58.971 kB
210.553 kB
58.665 kB
-1.435 kB
-306 B
react-dialog
Dialog (including children components)
90.474 kB
27.605 kB
90.096 kB
27.528 kB
-378 B
-77 B
react-divider
Divider
19.902 kB
7.415 kB
19.832 kB
7.391 kB
-70 B
-24 B
react-field
Field
21.61 kB
8.259 kB
21.439 kB
8.194 kB
-171 B
-65 B
react-image
Image
14.818 kB
5.902 kB
14.748 kB
5.874 kB
-70 B
-28 B
react-infobutton
InfoButton
130.15 kB
40.884 kB
128.84 kB
40.576 kB
-1.31 kB
-308 B
react-infobutton
InfoLabel
133.883 kB
42.068 kB
132.531 kB
41.752 kB
-1.352 kB
-316 B
react-input
Input
26.143 kB
8.844 kB
25.966 kB
8.771 kB
-177 B
-73 B
react-jsx-runtime
Classic Pragma
1.072 kB
544 B
1.049 kB
531 B
-23 B
-13 B
react-jsx-runtime
JSX Dev Runtime
2.893 kB
1.319 kB
2.87 kB
1.307 kB
-23 B
-12 B
react-jsx-runtime
JSX Runtime
3.479 kB
1.554 kB
3.456 kB
1.542 kB
-23 B
-12 B
react-label
Label
13.225 kB
5.438 kB
13.155 kB
5.416 kB
-70 B
-22 B
react-link
Link
16.095 kB
6.53 kB
15.979 kB
6.493 kB
-116 B
-37 B
react-menu
Menu (including children components)
140.184 kB
43.176 kB
138.751 kB
42.859 kB
-1.433 kB
-317 B
react-menu
Menu (including selectable components)
142.92 kB
43.714 kB
141.437 kB
43.369 kB
-1.483 kB
-345 B
react-overflow
hooks only
12.594 kB
4.702 kB
12.419 kB
4.687 kB
-175 B
-15 B
react-persona
Persona
56.275 kB
17.425 kB
56.072 kB
17.369 kB
-203 B
-56 B
react-popover
Popover
118.895 kB
37.406 kB
117.585 kB
37.1 kB
-1.31 kB
-306 B
react-portal
Portal
12.362 kB
4.543 kB
12.255 kB
4.504 kB
-107 B
-39 B
react-portal-compat
PortalCompatProvider
6.541 kB
2.227 kB
6.48 kB
2.203 kB
-61 B
-24 B
react-positioning
usePositioning
25.245 kB
9.141 kB
25.137 kB
9.109 kB
-108 B
-32 B
react-progress
ProgressBar
16.598 kB
6.608 kB
16.444 kB
6.546 kB
-154 B
-62 B
react-provider
FluentProvider
21.511 kB
7.994 kB
21.334 kB
7.945 kB
-177 B
-49 B
react-radio
Radio
29.883 kB
9.851 kB
29.716 kB
9.801 kB
-167 B
-50 B
react-radio
RadioGroup
14.543 kB
5.985 kB
14.351 kB
5.913 kB
-192 B
-72 B
react-select
Select
27.865 kB
9.922 kB
27.688 kB
9.85 kB
-177 B
-72 B
react-slider
Slider
37.043 kB
12.203 kB
36.866 kB
12.142 kB
-177 B
-61 B
react-spinbutton
SpinButton
36.072 kB
11.521 kB
35.853 kB
11.427 kB
-219 B
-94 B
react-spinner
Spinner
22.481 kB
8.146 kB
22.408 kB
8.118 kB
-73 B
-28 B
react-switch
Switch
32.426 kB
10.517 kB
32.175 kB
10.437 kB
-251 B
-80 B
react-table
DataGrid
157.087 kB
43.832 kB
155.916 kB
43.462 kB
-1.171 kB
-370 B
react-table
Table (Primitives only)
43.017 kB
13.414 kB
42.711 kB
13.341 kB
-306 B
-73 B
react-table
Table as DataGrid
129.841 kB
34.929 kB
129.186 kB
34.771 kB
-655 B
-158 B
react-table
Table (Selection only)
75.114 kB
20.231 kB
74.553 kB
20.071 kB
-561 B
-160 B
react-table
Table (Sort only)
73.745 kB
19.826 kB
73.16 kB
19.671 kB
-585 B
-155 B
react-tags-preview
InteractionTag
14.356 kB
5.746 kB
14.271 kB
5.717 kB
-85 B
-29 B
react-tags-preview
Tag
29.146 kB
9.108 kB
28.994 kB
9.061 kB
-152 B
-47 B
react-tags-preview
TagGroup
72.793 kB
21.685 kB
72.503 kB
21.606 kB
-290 B
-79 B
react-text
Text - Default
15.832 kB
6.254 kB
15.762 kB
6.23 kB
-70 B
-24 B
react-text
Text - Wrappers
19.01 kB
6.578 kB
18.94 kB
6.551 kB
-70 B
-27 B
react-textarea
Textarea
30.203 kB
10.199 kB
30.026 kB
10.128 kB
-177 B
-71 B
react-toast
Toast (including Toaster)
91.789 kB
27.423 kB
91.12 kB
27.292 kB
-669 B
-131 B
react-tooltip
Tooltip
51.348 kB
18.113 kB
50.855 kB
17.956 kB
-493 B
-157 B
Unchanged fixtures
Package & Exports Size (minified/GZIP)
global-context
createContext
510 B
330 B
global-context
createContextSelector
537 B
342 B
priority-overflow
createOverflowManager
4.162 kB
1.735 kB
react-theme
Single theme token import
69 B
89 B
react-theme
Teams: all themes
34.611 kB
7.295 kB
react-theme
Teams: Light theme
19.282 kB
5.486 kB
react-utilities
SSRProvider
180 B
159 B
🤖 This report was generated against 5b6536c989c9ebb2bf4010fbf18dfb50b570b2c6

@fabricteam
Copy link
Collaborator

fabricteam commented Sep 22, 2023

🕵 fluentuiv9 No visual regressions between this PR and main

@fabricteam
Copy link
Collaborator

fabricteam commented Sep 22, 2023

Perf Analysis (@fluentui/react)

No significant results to display.

All results

Scenario Render type Master Ticks PR Ticks Iterations Status
BaseButton mount 629 629 5000
Breadcrumb mount 1671 1659 1000
Checkbox mount 1672 1686 5000
CheckboxBase mount 1485 1466 5000
ChoiceGroup mount 2969 2922 5000
ComboBox mount 643 640 1000
CommandBar mount 6185 6106 1000
ContextualMenu mount 13477 13498 1000
DefaultButton mount 756 765 5000
DetailsRow mount 2152 2145 5000
DetailsRowFast mount 2197 2135 5000
DetailsRowNoStyles mount 1938 1989 5000
Dialog mount 2610 2641 1000
DocumentCardTitle mount 220 233 1000
Dropdown mount 1934 1972 5000
FocusTrapZone mount 1141 1152 5000
FocusZone mount 1059 1059 5000
GroupedList mount 41232 41390 2
GroupedList virtual-rerender 19967 19781 2
GroupedList virtual-rerender-with-unmount 51127 50382 2
GroupedListV2 mount 222 223 2
GroupedListV2 virtual-rerender 205 207 2
GroupedListV2 virtual-rerender-with-unmount 218 215 2
IconButton mount 1053 1085 5000
Label mount 330 336 5000
Layer mount 2660 2720 5000
Link mount 385 418 5000
MenuButton mount 918 915 5000
MessageBar mount 22562 21316 5000
Nav mount 1888 1912 1000
OverflowSet mount 765 774 5000
Panel mount 1780 1763 1000
Persona mount 725 732 1000
Pivot mount 836 836 1000
PrimaryButton mount 835 854 5000
Rating mount 4589 4619 5000
SearchBox mount 902 916 5000
Shimmer mount 1901 1845 5000
Slider mount 1304 1313 5000
SpinButton mount 2818 2890 5000
Spinner mount 389 386 5000
SplitButton mount 1828 1804 5000
Stack mount 397 403 5000
StackWithIntrinsicChildren mount 852 853 5000
StackWithTextChildren mount 2581 2570 5000
SwatchColorPicker mount 5985 6053 5000
TagPicker mount 1415 1437 5000
Text mount 356 369 5000
TextField mount 946 929 5000
ThemeProvider mount 832 823 5000
ThemeProvider virtual-rerender 576 575 5000
ThemeProvider virtual-rerender-with-unmount 1256 1249 5000
Toggle mount 603 609 5000
buttonNative mount 200 186 5000

@Hotell
Copy link
Contributor Author

Hotell commented Sep 22, 2023

currently we are blocked by ts-node TypeStrong/ts-node#2062 (test-ssr) or any tooling we use ts-node/register for will explode.

update:

unblocked by using nx apis.

@size-auditor
Copy link

size-auditor bot commented Sep 22, 2023

Asset size changes

⚠️ Insufficient baseline data to detect size changes

Unable to find bundle size details for Baseline commit: 5b6536c

Possible causes

  • The baseline build 5b6536c is broken
  • The Size Auditor run for the baseline build 5b6536c was not triggered

Recommendations

  • Please merge your branch for this Pull request with the latest master build and commit your changes once again

@Hotell Hotell marked this pull request as ready for review September 22, 2023 14:42
@Hotell Hotell requested a review from a team as a code owner September 22, 2023 14:42
@Hotell Hotell enabled auto-merge (squash) September 25, 2023 16:20
@Hotell Hotell merged commit e61473f into microsoft:master Sep 26, 2023
23 checks passed
marcosmoura added a commit to marcosmoura/fluentui that referenced this pull request Sep 26, 2023
* master:
  fix(react-dialog): use makeResetStyles for base dialog components styles (microsoft#29280)
  chore(react-tags-preview): update props descriptions (microsoft#29287)
  chore: bump swc core to mitigate transpilation memory leaks (microsoft#29253)
  feat: adds customizeSelector to createCustomFocusIndicatorStyle method (microsoft#29209)
  applying package updates
  Updated TooltipBestPractices to include accessibility best practices (microsoft#29284)
  fix: BreadcrumbItem should use makeResetStyles for base styles (microsoft#29278)
@Hotell Hotell deleted the hotell/bug/29192 branch September 26, 2023 11:02
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.

bump SWC to latest once bug is fixed
5 participants