Skip to content

Conversation

@Hotell
Copy link
Contributor

@Hotell Hotell commented Nov 2, 2023

Previous Behavior

we use mix of npmignore + gitignore resolution to determine what should be published to npm.

This appraoch doesn't work as expected and also makes hard to reason about what is actually being published. Last but not least this combo caused a lot of issues when migrating to new major node versions in the past.

New Behavior

these changes have been done via nx generate @fluentui/workspace-plugin:migrate-converged-pkg --all generator

  • v9 libraries use files instead of npmignore
  • files is build via known project patterns. Some exotic patterns need to be maintained manually (see react-components suite or react-jsx-runtime project )
  • v9 suite adds verify-packaging task to verify we ship our core package as expected

Related Issue(s)

@Hotell Hotell changed the title Build/releases/migrate to files chore: use package.json#files setup instead of npmignore for all v9 libraries Nov 2, 2023
@fabricteam
Copy link
Collaborator

fabricteam commented Nov 2, 2023

Perf Analysis (@fluentui/react-components)

Scenario Render type Master Ticks PR Ticks Iterations Status
FluentProviderWithTheme mount 79 78 10 Possible regression
All results

Scenario Render type Master Ticks PR Ticks Iterations Status
Avatar mount 612 638 5000
Button mount 322 327 5000
Field mount 1094 1126 5000
FluentProvider mount 696 696 5000
FluentProviderWithTheme mount 79 78 10 Possible regression
FluentProviderWithTheme virtual-rerender 61 63 10
FluentProviderWithTheme virtual-rerender-with-unmount 73 75 10
MakeStyles mount 867 861 50000
Persona mount 1773 1705 5000
SpinButton mount 1400 1375 5000

@codesandbox-ci
Copy link

codesandbox-ci bot commented Nov 2, 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 3dd2fbd:

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

@fabricteam
Copy link
Collaborator

fabricteam commented Nov 2, 2023

Perf Analysis (@fluentui/react-northstar)

⚠️ 1 potential perf regressions detected

Potential regressions comparing to master

Scenario Current PR Ticks Baseline Ticks Ratio Regression Analysis
PortalMinimalPerf.default 83 85 0.98:1 analysis
Perf tests with no regressions
Scenario Current PR Ticks Baseline Ticks Ratio
ButtonMinimalPerf.default 107 88 1.22:1
LoaderMinimalPerf.default 208 181 1.15:1
AttachmentMinimalPerf.default 86 76 1.13:1
TreeWith60ListItems.default 89 80 1.11:1
AvatarMinimalPerf.default 109 101 1.08:1
CardMinimalPerf.default 329 306 1.08:1
ChatWithPopoverPerf.default 204 191 1.07:1
FlexMinimalPerf.default 158 149 1.06:1
LayoutMinimalPerf.default 204 194 1.05:1
ProviderMinimalPerf.default 200 191 1.05:1
RefMinimalPerf.default 115 110 1.05:1
FormMinimalPerf.default 230 222 1.04:1
IconMinimalPerf.default 395 379 1.04:1
TreeMinimalPerf.default 480 462 1.04:1
AnimationMinimalPerf.default 306 297 1.03:1
ButtonOverridesMissPerf.default 680 658 1.03:1
DividerMinimalPerf.default 206 200 1.03:1
HeaderSlotsPerf.default 474 458 1.03:1
PopupMinimalPerf.default 354 344 1.03:1
TextMinimalPerf.default 198 192 1.03:1
AlertMinimalPerf.default 152 149 1.02:1
BoxMinimalPerf.default 196 192 1.02:1
ButtonSlotsPerf.default 308 303 1.02:1
CarouselMinimalPerf.default 256 250 1.02:1
ListCommonPerf.default 397 391 1.02:1
MenuMinimalPerf.default 504 496 1.02:1
DatepickerMinimalPerf.default 3606 3582 1.01:1
DialogMinimalPerf.default 437 434 1.01:1
DropdownMinimalPerf.default 1415 1401 1.01:1
InputMinimalPerf.default 527 521 1.01:1
MenuButtonMinimalPerf.default 947 940 1.01:1
ToolbarMinimalPerf.default 533 529 1.01:1
DropdownManyItemsPerf.default 392 393 1:1
LabelMinimalPerf.default 217 217 1:1
ListMinimalPerf.default 310 311 1:1
SliderMinimalPerf.default 735 733 1:1
TableManyItemsPerf.default 1080 1085 1:1
AttachmentSlotsPerf.default 648 652 0.99:1
ChatMinimalPerf.default 426 429 0.99:1
CheckboxMinimalPerf.default 1110 1119 0.99:1
ItemLayoutMinimalPerf.default 715 722 0.99:1
RosterPerf.default 1574 1594 0.99:1
ProviderMergeThemesPerf.default 638 642 0.99:1
RadioGroupMinimalPerf.default 262 264 0.99:1
ReactionMinimalPerf.default 208 210 0.99:1
TableMinimalPerf.default 232 235 0.99:1
TooltipMinimalPerf.default 1253 1262 0.99:1
VideoMinimalPerf.default 425 429 0.99:1
ChatDuplicateMessagesPerf.default 153 156 0.98:1
EmbedMinimalPerf.default 1868 1900 0.98:1
SegmentMinimalPerf.default 194 198 0.98:1
SplitButtonMinimalPerf.default 2201 2254 0.98:1
StatusMinimalPerf.default 389 397 0.98:1
TextAreaMinimalPerf.default 295 301 0.98:1
CustomToolbarPrototype.default 1455 1481 0.98:1
GridMinimalPerf.default 187 192 0.97:1
ListWith60ListItems.default 354 364 0.97:1
ListNestedPerf.default 321 336 0.96:1
SkeletonMinimalPerf.default 193 202 0.96:1
ImageMinimalPerf.default 224 237 0.95:1
AccordionMinimalPerf.default 80 85 0.94:1
HeaderMinimalPerf.default 207 228 0.91:1

@fabricteam
Copy link
Collaborator

fabricteam commented Nov 2, 2023

🕵 FluentUIV0 No visual regressions between this PR and main

@fabricteam
Copy link
Collaborator

fabricteam commented Nov 2, 2023

📊 Bundle size report

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.341 kB
1.81 kB
react-accordion
Accordion (including children components)
92.983 kB
28.418 kB
react-alert
Alert
84.293 kB
23.456 kB
react-avatar
Avatar
50.534 kB
15.923 kB
react-avatar
AvatarGroup
20.064 kB
7.894 kB
react-avatar
AvatarGroupItem
65.19 kB
20.259 kB
react-badge
Badge
27.264 kB
8.808 kB
react-badge
CounterBadge
28.165 kB
9.101 kB
react-badge
PresenceBadge
25.67 kB
9.313 kB
react-button
Button
40.074 kB
11.292 kB
react-button
CompoundButton
47.43 kB
12.787 kB
react-button
MenuButton
44.848 kB
12.668 kB
react-button
SplitButton
52.862 kB
14.254 kB
react-button
ToggleButton
57.122 kB
13.194 kB
react-calendar-compat
Calendar Compat
141.324 kB
36.821 kB
react-card
Card - All
92.955 kB
26.977 kB
react-card
Card
87.781 kB
25.462 kB
react-card
CardFooter
13.423 kB
5.481 kB
react-card
CardHeader
15.666 kB
6.235 kB
react-card
CardPreview
14.374 kB
5.854 kB
react-checkbox
Checkbox
37.505 kB
12.327 kB
react-combobox
Combobox (including child components)
92.033 kB
30.008 kB
react-combobox
Dropdown (including child components)
90.475 kB
29.668 kB
react-components
react-components: Button, FluentProvider & webLightTheme
70.007 kB
20.164 kB
react-components
react-components: Accordion, Button, FluentProvider, Image, Menu, Popover
207.417 kB
59.289 kB
react-components
react-components: FluentProvider & webLightTheme
42.291 kB
14.005 kB
react-datepicker-compat
DatePicker Compat
212.494 kB
59.326 kB
react-dialog
Dialog (including children components)
94.473 kB
28.28 kB
react-divider
Divider
21.179 kB
7.839 kB
react-field
Field
22.788 kB
8.639 kB
react-image
Image
16.096 kB
6.317 kB
react-infobutton
InfoButton
130.729 kB
41.194 kB
react-infobutton
InfoLabel
134.413 kB
42.351 kB
react-input
Input
27.247 kB
9.194 kB
react-jsx-runtime
Classic Pragma
1.049 kB
531 B
react-jsx-runtime
JSX Dev Runtime
4.14 kB
1.741 kB
react-jsx-runtime
JSX Runtime
4.734 kB
1.983 kB
react-label
Label
14.508 kB
5.857 kB
react-link
Link
17.4 kB
6.977 kB
react-menu
Menu (including children components)
140.176 kB
43.004 kB
react-menu
Menu (including selectable components)
142.862 kB
43.51 kB
react-message-bar
MessageBar (all components)
25.54 kB
9.102 kB
react-overflow
hooks only
12.598 kB
4.754 kB
react-persona
Persona
57.425 kB
17.798 kB
react-popover
Popover
119.46 kB
37.714 kB
react-portal
Portal
12.4 kB
4.541 kB
react-portal-compat
PortalCompatProvider
6.651 kB
2.252 kB
react-positioning
usePositioning
25.305 kB
9.162 kB
react-progress
ProgressBar
17.788 kB
6.986 kB
react-provider
FluentProvider
22.831 kB
8.429 kB
react-radio
Radio
31.266 kB
10.267 kB
react-radio
RadioGroup
15.704 kB
6.35 kB
react-select
Select
28.968 kB
10.269 kB
react-slider
Slider
38.349 kB
12.595 kB
react-spinbutton
SpinButton
37.133 kB
11.856 kB
react-spinner
Spinner
23.762 kB
8.556 kB
react-switch
Switch
33.731 kB
10.899 kB
react-table
DataGrid
157.084 kB
43.906 kB
react-table
Table (Primitives only)
43.941 kB
13.76 kB
react-table
Table as DataGrid
130.165 kB
35.174 kB
react-table
Table (Selection only)
75.777 kB
20.477 kB
react-table
Table (Sort only)
74.384 kB
20.075 kB
react-tags
InteractionTag
15.618 kB
6.152 kB
react-tags
Tag
30.341 kB
9.505 kB
react-tags
TagGroup
73.816 kB
22.097 kB
react-text
Text - Default
17.065 kB
6.645 kB
react-text
Text - Wrappers
20.237 kB
6.965 kB
react-textarea
Textarea
31.306 kB
10.549 kB
react-theme
Single theme token import
69 B
89 B
react-theme
Teams: all themes
34.616 kB
7.299 kB
react-theme
Teams: Light theme
19.287 kB
5.49 kB
react-timepicker-compat-preview
TimePicker
93.434 kB
31.284 kB
react-toast
Toast (including Toaster)
92.725 kB
27.876 kB
react-tooltip
Tooltip
52.466 kB
18.466 kB
react-utilities
SSRProvider
180 B
159 B
🤖 This report was generated against 667d05dda55b7edbba8e41f483bf27f7dbefbc47

@size-auditor
Copy link

size-auditor bot commented Nov 2, 2023

Asset size changes

Size Auditor did not detect a change in bundle size for any component!

Baseline commit: 667d05dda55b7edbba8e41f483bf27f7dbefbc47 (build)

@fabricteam
Copy link
Collaborator

fabricteam commented Nov 2, 2023

🕵 fluentuiv9 No visual regressions between this PR and main

@fabricteam
Copy link
Collaborator

fabricteam commented Nov 2, 2023

Perf Analysis (@fluentui/react)

No significant results to display.

All results

Scenario Render type Master Ticks PR Ticks Iterations Status
BaseButton mount 629 652 5000
Breadcrumb mount 1681 1665 1000
Checkbox mount 1690 1676 5000
CheckboxBase mount 1474 1521 5000
ChoiceGroup mount 2884 2971 5000
ComboBox mount 652 662 1000
CommandBar mount 6235 6254 1000
ContextualMenu mount 13071 12856 1000
DefaultButton mount 749 754 5000
DetailsRow mount 2247 2176 5000
DetailsRowFast mount 2204 2225 5000
DetailsRowNoStyles mount 2027 2036 5000
Dialog mount 2753 2772 1000
DocumentCardTitle mount 230 232 1000
Dropdown mount 1990 1994 5000
FocusTrapZone mount 1117 1164 5000
FocusZone mount 1042 1058 5000
GroupedList mount 41470 41753 2
GroupedList virtual-rerender 19899 19920 2
GroupedList virtual-rerender-with-unmount 51068 50619 2
GroupedListV2 mount 221 237 2
GroupedListV2 virtual-rerender 219 215 2
GroupedListV2 virtual-rerender-with-unmount 230 236 2
IconButton mount 1106 1109 5000
Label mount 332 338 5000
Layer mount 2770 2758 5000
Link mount 405 387 5000
MenuButton mount 956 940 5000
MessageBar mount 21413 21426 5000
Nav mount 1925 1951 1000
OverflowSet mount 779 798 5000
Panel mount 1770 1830 1000
Persona mount 739 731 1000
Pivot mount 862 875 1000
PrimaryButton mount 854 850 5000
Rating mount 4678 4655 5000
SearchBox mount 897 912 5000
Shimmer mount 1919 1856 5000
Slider mount 1326 1341 5000
SpinButton mount 2871 2879 5000
Spinner mount 374 399 5000
SplitButton mount 1843 1825 5000
Stack mount 418 408 5000
StackWithIntrinsicChildren mount 850 856 5000
StackWithTextChildren mount 2581 2578 5000
SwatchColorPicker mount 6071 6123 5000
TagPicker mount 1442 1491 5000
Text mount 370 371 5000
TextField mount 938 914 5000
ThemeProvider mount 849 835 5000
ThemeProvider virtual-rerender 581 594 5000
ThemeProvider virtual-rerender-with-unmount 1278 1280 5000
Toggle mount 594 601 5000
buttonNative mount 193 200 5000

@Hotell Hotell force-pushed the build/releases/migrate-to-files branch from cbb3132 to 42b2854 Compare November 2, 2023 16:19
@fabricteam
Copy link
Collaborator

fabricteam commented Nov 2, 2023

🕵 fluentuiv8 No visual regressions between this PR and main

@Hotell Hotell force-pushed the build/releases/migrate-to-files branch from b024295 to 3dd2fbd Compare November 3, 2023 12:23
@Hotell Hotell marked this pull request as ready for review November 3, 2023 13:30
@Hotell Hotell merged commit baa8387 into microsoft:master Nov 8, 2023
@Hotell Hotell deleted the build/releases/migrate-to-files branch November 8, 2023 15:36
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.

5 participants