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

New v9 api extractor config with forgotten export supressed #22144

Merged
merged 9 commits into from
Mar 30, 2022

Conversation

micahgodbolt
Copy link
Member

create v9 api extractor config and set all v9 packages to use it, suppress forgotten export

fixes #21658

@codesandbox-ci
Copy link

codesandbox-ci bot commented Mar 17, 2022

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

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

@fabricteam
Copy link
Collaborator

fabricteam commented Mar 17, 2022

📊 Bundle size report

Unchanged fixtures
Package & Exports Size (minified/GZIP)
priority-overflow
createOverflowManager
2.836 kB
1.209 kB
react-accordion
Accordion (including children components)
74.792 kB
22.516 kB
react-avatar
Avatar
45.18 kB
13.128 kB
react-badge
Badge
20.895 kB
6.567 kB
react-badge
CounterBadge
21.848 kB
6.883 kB
react-badge
PresenceBadge
21.951 kB
6.565 kB
react-button
Button
28.013 kB
8.059 kB
react-button
CompoundButton
33.508 kB
9.092 kB
react-button
MenuButton
29.796 kB
8.665 kB
react-button
SplitButton
36.268 kB
9.863 kB
react-button
ToggleButton
37.395 kB
8.68 kB
react-card
Card - All
53.619 kB
15.372 kB
react-card
Card
48.904 kB
14.089 kB
react-card
CardFooter
7.686 kB
3.264 kB
react-card
CardHeader
9.251 kB
3.78 kB
react-card
CardPreview
7.658 kB
3.291 kB
react-combobox
Combobox
6.817 kB
2.901 kB
react-components
react-components: Accordion, Button, FluentProvider, Image, Menu, Popover
176.084 kB
49.112 kB
react-components
react-components: FluentProvider & webLightTheme
32.526 kB
10.645 kB
react-divider
Divider
15.385 kB
5.539 kB
react-image
Image
10.109 kB
3.958 kB
react-input
Input
21.635 kB
7.166 kB
react-label
Label
8.371 kB
3.504 kB
react-link
Link
11.106 kB
4.507 kB
react-menu
Menu (including children components)
105.847 kB
32.431 kB
react-menu
Menu (including selectable components)
109.026 kB
32.895 kB
react-popover
Popover
96.782 kB
29.558 kB
react-portal
Portal
6.267 kB
2.168 kB
react-positioning
usePopper
23.21 kB
8.084 kB
react-priority-overflow
hooks only
10.606 kB
4.087 kB
react-provider
FluentProvider
14.009 kB
5.25 kB
react-select
Select
7.853 kB
3.297 kB
react-slider
Slider
25.402 kB
8.251 kB
react-spinner
Spinner
6.815 kB
2.9 kB
react-switch
Switch
24.279 kB
8.001 kB
react-text
Text - Default
10.797 kB
4.233 kB
react-text
Text - Wrappers
14.113 kB
4.576 kB
react-theme
Single theme token import
69 B
89 B
react-theme
Teams: all themes
29.426 kB
6.551 kB
react-theme
Teams: Light theme
18.42 kB
5.27 kB
react-tooltip
Tooltip
42.789 kB
14.712 kB
react-utilities
SSRProvider
189 B
161 B
🤖 This report was generated against 81b795baa776cd6a9390287de2fe91559956cab3

@size-auditor
Copy link

size-auditor bot commented Mar 17, 2022

Asset size changes

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

Baseline commit: 81b795baa776cd6a9390287de2fe91559956cab3 (build)

@fabricteam
Copy link
Collaborator

fabricteam commented Mar 17, 2022

Perf Analysis (@fluentui/react-northstar)

Perf tests with no regressions
Scenario Current PR Ticks Baseline Ticks Ratio
ImageMinimalPerf.default 444 372 1.19:1
HeaderSlotsPerf.default 841 762 1.1:1
TreeMinimalPerf.default 928 845 1.1:1
TreeWith60ListItems.default 187 170 1.1:1
AccordionMinimalPerf.default 162 148 1.09:1
SliderMinimalPerf.default 1920 1767 1.09:1
SegmentMinimalPerf.default 365 339 1.08:1
StatusMinimalPerf.default 725 671 1.08:1
ChatWithPopoverPerf.default 414 386 1.07:1
FormMinimalPerf.default 454 426 1.07:1
LabelMinimalPerf.default 399 374 1.07:1
AttachmentMinimalPerf.default 165 155 1.06:1
BoxMinimalPerf.default 364 342 1.06:1
GridMinimalPerf.default 357 336 1.06:1
DividerMinimalPerf.default 371 353 1.05:1
ProviderMergeThemesPerf.default 1847 1755 1.05:1
AlertMinimalPerf.default 289 278 1.04:1
ButtonOverridesMissPerf.default 1811 1740 1.04:1
ChatDuplicateMessagesPerf.default 314 301 1.04:1
RadioGroupMinimalPerf.default 478 458 1.04:1
ChatMinimalPerf.default 755 733 1.03:1
ListMinimalPerf.default 518 502 1.03:1
ProviderMinimalPerf.default 1214 1182 1.03:1
TableMinimalPerf.default 423 412 1.03:1
DropdownManyItemsPerf.default 693 677 1.02:1
DropdownMinimalPerf.default 3190 3117 1.02:1
ItemLayoutMinimalPerf.default 1213 1186 1.02:1
RefMinimalPerf.default 281 276 1.02:1
TextAreaMinimalPerf.default 495 484 1.02:1
CustomToolbarPrototype.default 4324 4223 1.02:1
CardMinimalPerf.default 584 577 1.01:1
DatepickerMinimalPerf.default 5706 5651 1.01:1
FlexMinimalPerf.default 287 285 1.01:1
ListCommonPerf.default 625 617 1.01:1
TableManyItemsPerf.default 2002 1983 1.01:1
ToolbarMinimalPerf.default 981 969 1.01:1
TooltipMinimalPerf.default 1017 1009 1.01:1
LayoutMinimalPerf.default 372 372 1:1
PopupMinimalPerf.default 653 653 1:1
VideoMinimalPerf.default 636 637 1:1
AnimationMinimalPerf.default 544 548 0.99:1
ListWith60ListItems.default 659 669 0.99:1
LoaderMinimalPerf.default 689 695 0.99:1
MenuMinimalPerf.default 861 867 0.99:1
MenuButtonMinimalPerf.default 1725 1741 0.99:1
ReactionMinimalPerf.default 367 371 0.99:1
SplitButtonMinimalPerf.default 4519 4546 0.99:1
ButtonSlotsPerf.default 557 566 0.98:1
EmbedMinimalPerf.default 4288 4397 0.98:1
HeaderMinimalPerf.default 358 365 0.98:1
TextMinimalPerf.default 354 362 0.98:1
ButtonMinimalPerf.default 175 181 0.97:1
InputMinimalPerf.default 1303 1342 0.97:1
CarouselMinimalPerf.default 486 507 0.96:1
SkeletonMinimalPerf.default 370 385 0.96:1
CheckboxMinimalPerf.default 2702 2847 0.95:1
DialogMinimalPerf.default 773 814 0.95:1
AttachmentSlotsPerf.default 1045 1110 0.94:1
PortalMinimalPerf.default 182 194 0.94:1
IconMinimalPerf.default 603 641 0.94:1
ListNestedPerf.default 540 580 0.93:1
RosterPerf.default 1138 1230 0.93:1
AvatarMinimalPerf.default 196 214 0.92:1

@fabricteam
Copy link
Collaborator

fabricteam commented Mar 17, 2022

Perf Analysis (@fluentui/react)

No significant results to display.

All results

Scenario Render type Master Ticks PR Ticks Iterations Status
BaseButton mount 939 916 5000
Breadcrumb mount 2795 2683 1000
Checkbox mount 1521 1507 5000
CheckboxBase mount 1284 1363 5000
ChoiceGroup mount 4954 4870 5000
ComboBox mount 1023 1043 1000
CommandBar mount 10890 10702 1000
ContextualMenu mount 12954 13185 1000
DefaultButton mount 1163 1171 5000
DetailsRow mount 4043 3911 5000
DetailsRowFast mount 3980 3983 5000
DetailsRowNoStyles mount 3684 3767 5000
Dialog mount 2264 2248 1000
DocumentCardTitle mount 159 170 1000
Dropdown mount 3450 3353 5000
FocusTrapZone mount 1920 1865 5000
FocusZone mount 1909 1864 5000
IconButton mount 1845 1790 5000
Label mount 354 362 5000
Layer mount 3104 3197 5000
Link mount 486 502 5000
MenuButton mount 1574 1500 5000
MessageBar mount 2275 2305 5000
Nav mount 3377 3489 1000
OverflowSet mount 1159 1114 5000
Panel mount 2187 2237 1000
Persona mount 849 876 1000
Pivot mount 1448 1476 1000
PrimaryButton mount 1376 1344 5000
Rating mount 7975 7857 5000
SearchBox mount 1346 1311 5000
Shimmer mount 2601 2616 5000
Slider mount 2055 2011 5000
SpinButton mount 5193 5210 5000
Spinner mount 483 421 5000
SplitButton mount 3192 3348 5000
Stack mount 520 537 5000
StackWithIntrinsicChildren mount 2338 2459 5000
StackWithTextChildren mount 5520 5655 5000
SwatchColorPicker mount 12242 12636 5000
TagPicker mount 2805 2748 5000
TeachingBubble mount 105386 107014 5000
Text mount 460 437 5000
TextField mount 1512 1473 5000
ThemeProvider mount 1239 1211 5000
ThemeProvider virtual-rerender 651 656 5000
ThemeProvider virtual-rerender-with-unmount 1901 1875 5000
Toggle mount 822 843 5000
buttonNative mount 139 141 5000

@@ -1,4 +1,4 @@
{
"$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
"extends": "@fluentui/scripts/api-extractor/api-extractor.common.json"
"extends": "@fluentui/scripts/api-extractor/api-extractor.common.v-next.json"
Copy link
Member

Choose a reason for hiding this comment

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

@Hotell - when doing version specific config, is the convention to use v-next or v9?

Copy link
Member Author

Choose a reason for hiding this comment

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

i wondered this as well. easy to change if needed though

Copy link
Member

Choose a reason for hiding this comment

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

I'd almost lean towards changing the existing config to .v8.common.json and having the v9 config as plain .common.json (or open to whatever others want to do)

@@ -1,33 +1,5 @@
{
"$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
"extends": "./api-extractor.json",
"mainEntryPointFilePath": "<projectFolder>/dist/packages/<unscopedPackageName>/src/index.d.ts",
Copy link
Member

Choose a reason for hiding this comment

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

Did you want to delete all this as part of this change?

Copy link
Member Author

Choose a reason for hiding this comment

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

this was removed upon running migration script

Copy link
Member

Choose a reason for hiding this comment

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

I think the one in react-components needs to be different (so the migration script is wrong in this case)--you can look at the issue that was linked in the comment to see if it's still relevant.

Copy link
Member Author

@micahgodbolt micahgodbolt Mar 17, 2022

Choose a reason for hiding this comment

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

heh, this comment in the discussion hid all the lines below being deleted. Thought Geoff was only talking about the 1 line.

image

Copy link
Member Author

Choose a reason for hiding this comment

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

As for this issue, it might be good for @Hotell to confirm, but I have no problem building to react-components and creating an updated api file without this workaround. So it seems to be resolved?

Copy link
Member Author

Choose a reason for hiding this comment

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

passing!

Copy link
Member Author

Choose a reason for hiding this comment

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

returned this code. I'll make a mention in the linked issue that this appears to be resolved and this should could be removed.

Copy link
Contributor

Choose a reason for hiding this comment

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

yeah react-components is the only exempt as it needs various workarounds because limitations of our current tooling. this will be resolved in future.

@fabricteam
Copy link
Collaborator

fabricteam commented Mar 17, 2022

Perf Analysis (@fluentui/react-components)

No significant results to display.

All results

Scenario Render type Master Ticks PR Ticks Iterations Status
Avatar mount 1047 1037 5000
Button mount 634 644 5000
FluentProvider mount 2136 2091 5000
FluentProviderWithTheme mount 305 311 10
FluentProviderWithTheme virtual-rerender 266 251 10
FluentProviderWithTheme virtual-rerender-with-unmount 366 333 10
MakeStyles mount 1806 1803 50000

@tudorpopams tudorpopams requested a review from Hotell March 18, 2022 13:15
@micahgodbolt
Copy link
Member Author

Looks like this PR will have to wait until next week. Would like confirmation from @Hotell about this comment #22144 (review)

Also an open question on naming of the two different configurations. should the updated config big v-next, or v9, or should the old one be v8?

@micahgodbolt
Copy link
Member Author

northstar screener failed? nice

@Hotell
Copy link
Contributor

Hotell commented Mar 21, 2022

should the updated config big v-next, or v9,

v-next is good for now IMO

or should the old one be v8?

maybe we should start using legacy as we do for eslint-plugin. it's not just for v8 but also for v7 AFAIK

Copy link
Contributor

@Hotell Hotell left a comment

Choose a reason for hiding this comment

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

🙌

@andrefcdias andrefcdias removed their assignment Mar 24, 2022
@micahgodbolt micahgodbolt self-assigned this Mar 28, 2022
@micahgodbolt micahgodbolt enabled auto-merge (squash) March 29, 2022 15:41
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.

Determine api-extractor usage most appropriate for v9 components
8 participants