-
Notifications
You must be signed in to change notification settings - Fork 2.8k
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
fix(scripts-tasks): make generate-api work in deterministic way #28215
fix(scripts-tasks): make generate-api work in deterministic way #28215
Conversation
…hich causes invalid api.md and .d.ts rollup generation
…ble to run generate-api task without build
🕵 fluentuiv8 No visual regressions between this PR and main |
…to be able to run generate-api task without build
🕵 fluentuiv9 No visual regressions between this PR and main |
Asset size changesSize Auditor did not detect a change in bundle size for any component! Baseline commit: 02c7384de10ee35cc4db1a2132c32de59db58e1f (build) |
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 6097243:
|
Perf Analysis (
|
Scenario | Render type | Master Ticks | PR Ticks | Iterations | Status |
---|---|---|---|---|---|
Avatar | mount | 606 | 587 | 5000 | |
Button | mount | 292 | 292 | 5000 | |
Field | mount | 1039 | 1051 | 5000 | |
FluentProvider | mount | 648 | 621 | 5000 | |
FluentProviderWithTheme | mount | 77 | 73 | 10 | |
FluentProviderWithTheme | virtual-rerender | 66 | 69 | 10 | |
FluentProviderWithTheme | virtual-rerender-with-unmount | 73 | 73 | 10 | |
InfoButton | mount | 10 | 13 | 5000 | |
MakeStyles | mount | 862 | 831 | 50000 | |
Persona | mount | 1653 | 1622 | 5000 | |
SpinButton | mount | 1267 | 1291 | 5000 |
Perf Analysis (
|
Scenario | Current PR Ticks | Baseline Ticks | Ratio | Regression Analysis |
---|---|---|---|---|
ButtonMinimalPerf.default | 91 | 99 | 0.92:1 | analysis |
Perf tests with no regressions
Scenario | Current PR Ticks | Baseline Ticks | Ratio |
---|---|---|---|
ChatDuplicateMessagesPerf.default | 159 | 147 | 1.08:1 |
ChatMinimalPerf.default | 464 | 431 | 1.08:1 |
ListCommonPerf.default | 414 | 385 | 1.08:1 |
CarouselMinimalPerf.default | 275 | 257 | 1.07:1 |
PopupMinimalPerf.default | 375 | 351 | 1.07:1 |
AttachmentMinimalPerf.default | 85 | 81 | 1.05:1 |
RefMinimalPerf.default | 111 | 106 | 1.05:1 |
SegmentMinimalPerf.default | 207 | 197 | 1.05:1 |
AccordionMinimalPerf.default | 83 | 80 | 1.04:1 |
ButtonSlotsPerf.default | 322 | 309 | 1.04:1 |
FormMinimalPerf.default | 219 | 211 | 1.04:1 |
SkeletonMinimalPerf.default | 197 | 189 | 1.04:1 |
SplitButtonMinimalPerf.default | 2311 | 2229 | 1.04:1 |
ToolbarMinimalPerf.default | 551 | 530 | 1.04:1 |
AvatarMinimalPerf.default | 113 | 110 | 1.03:1 |
CheckboxMinimalPerf.default | 1167 | 1128 | 1.03:1 |
DialogMinimalPerf.default | 466 | 452 | 1.03:1 |
HeaderMinimalPerf.default | 212 | 206 | 1.03:1 |
TextAreaMinimalPerf.default | 296 | 287 | 1.03:1 |
ButtonOverridesMissPerf.default | 668 | 654 | 1.02:1 |
DropdownMinimalPerf.default | 1410 | 1388 | 1.02:1 |
EmbedMinimalPerf.default | 1874 | 1837 | 1.02:1 |
GridMinimalPerf.default | 193 | 189 | 1.02:1 |
StatusMinimalPerf.default | 395 | 387 | 1.02:1 |
IconMinimalPerf.default | 395 | 389 | 1.02:1 |
DropdownManyItemsPerf.default | 391 | 387 | 1.01:1 |
InputMinimalPerf.default | 540 | 537 | 1.01:1 |
MenuMinimalPerf.default | 501 | 495 | 1.01:1 |
MenuButtonMinimalPerf.default | 981 | 969 | 1.01:1 |
TableManyItemsPerf.default | 1132 | 1126 | 1.01:1 |
TooltipMinimalPerf.default | 1268 | 1252 | 1.01:1 |
AnimationMinimalPerf.default | 301 | 300 | 1:1 |
DividerMinimalPerf.default | 202 | 203 | 1:1 |
FlexMinimalPerf.default | 157 | 157 | 1:1 |
ItemLayoutMinimalPerf.default | 712 | 709 | 1:1 |
LabelMinimalPerf.default | 230 | 230 | 1:1 |
LayoutMinimalPerf.default | 200 | 201 | 1:1 |
ListMinimalPerf.default | 312 | 311 | 1:1 |
ReactionMinimalPerf.default | 219 | 218 | 1:1 |
SliderMinimalPerf.default | 744 | 746 | 1:1 |
CustomToolbarPrototype.default | 1485 | 1482 | 1:1 |
TreeMinimalPerf.default | 470 | 468 | 1:1 |
AlertMinimalPerf.default | 153 | 154 | 0.99:1 |
AttachmentSlotsPerf.default | 634 | 638 | 0.99:1 |
DatepickerMinimalPerf.default | 3617 | 3645 | 0.99:1 |
ImageMinimalPerf.default | 224 | 226 | 0.99:1 |
ListNestedPerf.default | 331 | 333 | 0.99:1 |
ListWith60ListItems.default | 365 | 368 | 0.99:1 |
RosterPerf.default | 1527 | 1536 | 0.99:1 |
ProviderMinimalPerf.default | 200 | 202 | 0.99:1 |
TextMinimalPerf.default | 193 | 194 | 0.99:1 |
BoxMinimalPerf.default | 192 | 195 | 0.98:1 |
CardMinimalPerf.default | 307 | 313 | 0.98:1 |
LoaderMinimalPerf.default | 181 | 185 | 0.98:1 |
ProviderMergeThemesPerf.default | 649 | 663 | 0.98:1 |
RadioGroupMinimalPerf.default | 258 | 263 | 0.98:1 |
VideoMinimalPerf.default | 428 | 436 | 0.98:1 |
ChatWithPopoverPerf.default | 202 | 208 | 0.97:1 |
HeaderSlotsPerf.default | 454 | 467 | 0.97:1 |
PortalMinimalPerf.default | 88 | 92 | 0.96:1 |
TableMinimalPerf.default | 233 | 242 | 0.96:1 |
TreeWith60ListItems.default | 83 | 88 | 0.94:1 |
📊 Bundle size reportUnchanged fixtures
|
🕵 FluentUI-v0 No visual regressions between this PR and main |
Perf Analysis (
|
Scenario | Render type | Master Ticks | PR Ticks | Iterations | Status |
---|---|---|---|---|---|
BaseButton | mount | 619 | 628 | 5000 | |
Breadcrumb | mount | 1670 | 1666 | 1000 | |
Checkbox | mount | 1691 | 1680 | 5000 | |
CheckboxBase | mount | 1495 | 1488 | 5000 | |
ChoiceGroup | mount | 2921 | 2941 | 5000 | |
ComboBox | mount | 649 | 654 | 1000 | |
CommandBar | mount | 6203 | 6223 | 1000 | |
ContextualMenu | mount | 12841 | 12755 | 1000 | |
DefaultButton | mount | 741 | 729 | 5000 | |
DetailsRow | mount | 2144 | 2214 | 5000 | |
DetailsRowFast | mount | 2183 | 2150 | 5000 | |
DetailsRowNoStyles | mount | 1985 | 2030 | 5000 | |
Dialog | mount | 2610 | 2752 | 1000 | |
DocumentCardTitle | mount | 229 | 232 | 1000 | |
Dropdown | mount | 1986 | 1953 | 5000 | |
FocusTrapZone | mount | 1123 | 1148 | 5000 | |
FocusZone | mount | 1058 | 1085 | 5000 | |
GroupedList | mount | 41393 | 41202 | 2 | |
GroupedList | virtual-rerender | 17751 | 19824 | 2 | |
GroupedList | virtual-rerender-with-unmount | 50524 | 50388 | 2 | |
GroupedListV2 | mount | 236 | 226 | 2 | |
GroupedListV2 | virtual-rerender | 199 | 221 | 2 | |
GroupedListV2 | virtual-rerender-with-unmount | 229 | 232 | 2 | |
IconButton | mount | 1083 | 1042 | 5000 | |
Label | mount | 321 | 341 | 5000 | |
Layer | mount | 2715 | 2713 | 5000 | |
Link | mount | 388 | 396 | 5000 | |
MenuButton | mount | 949 | 957 | 5000 | |
MessageBar | mount | 21372 | 21431 | 5000 | |
Nav | mount | 1934 | 1926 | 1000 | |
OverflowSet | mount | 793 | 777 | 5000 | |
Panel | mount | 2047 | 1769 | 1000 | |
Persona | mount | 722 | 737 | 1000 | |
Pivot | mount | 865 | 845 | 1000 | |
PrimaryButton | mount | 816 | 860 | 5000 | |
Rating | mount | 4520 | 4546 | 5000 | |
SearchBox | mount | 899 | 929 | 5000 | |
Shimmer | mount | 1874 | 1838 | 5000 | |
Slider | mount | 1380 | 1325 | 5000 | |
SpinButton | mount | 2845 | 2870 | 5000 | |
Spinner | mount | 375 | 379 | 5000 | |
SplitButton | mount | 1870 | 1808 | 5000 | |
Stack | mount | 416 | 416 | 5000 | |
StackWithIntrinsicChildren | mount | 869 | 869 | 5000 | |
StackWithTextChildren | mount | 2626 | 2582 | 5000 | |
SwatchColorPicker | mount | 6152 | 6130 | 5000 | |
TagPicker | mount | 1472 | 1423 | 5000 | |
Text | mount | 384 | 379 | 5000 | |
TextField | mount | 932 | 931 | 5000 | |
ThemeProvider | mount | 829 | 845 | 5000 | |
ThemeProvider | virtual-rerender | 592 | 578 | 5000 | |
ThemeProvider | virtual-rerender-with-unmount | 1263 | 1257 | 5000 | |
Toggle | mount | 609 | 588 | 5000 | |
buttonNative | mount | 181 | 187 | 5000 |
change/@fluentui-react-conformance-35e35a06-cb99-40ac-9617-72e443ec3109.json
Show resolved
Hide resolved
* master: (32 commits) applying package updates feat(react-tags): add styles for size (microsoft#28229) docs(react-dialog): update DialogTriggerOutsideDialog to include focus behavior (microsoft#28176) bugfix: Ensures dialog actions stretches on breakpoints (microsoft#28258) applying package updates fix: TableHeaderCell should not render button when not sortable (microsoft#28097) fix(react-file-type-icons): Map mhtml extension to html icon (microsoft#28112) Fix overlapping axis labels on smaller viewports (microsoft#28239) useArrowNavigationGroup grid-linear axis (microsoft#28253) applying package updates fix: Alert example missing aria-label for icon (microsoft#28234) Overflow divider fix (microsoft#28011) feat(tools): implement `cypress-component-configuration` generator (microsoft#28115) chore: migrate to TS 4.7 (microsoft#28067) fix(scripts-tasks): make generate-api work in deterministic way (microsoft#28215) feat(react-tags): add overflow story (microsoft#28012) Structure and slots for SearchBox, using Input as a slot (microsoft#28090) feat(tokens): Add/update theme tokens (microsoft#27791) feat(react-tags): add a11y role and best practices guide (microsoft#28075) fix: Toast intent should always be present in the context (microsoft#28226) ...
🎉 Handy links: |
🎉 Handy links: |
Previous Behavior
generate-api is non deterministic/broken on ci/local environmnent
New Behavior
generating api (api.md)
yarn workspace <your-package-name> generate-api
won't work anymore if your package dependencies are missing thus you need to uselage
->yarn lage generate-api --to <your-package-name>
This is an unfortunate limitation caused by api-extractor.
they implemented path aliases behaviour in buggy way which will bundle inner workspace package definitions, thus getting deterministic dts rollups and api.md is only possible via tight coupling/relying on symlink functionality provided by npm/yarn workspaces.
How to generate api.md on local:
While running
yarn lage build -to <your-package-name>
works, you can narrow that down for v9 family of packages toyarn lage generate-api --to <your-package-name>
.react-conformance
Migrated to v9 setup -> this change might introduce breaking changes / we ship now rolluped d.ts and transpilation is done via
swc
.This was necessary in order to make
generate-api
task work.Related Issue(s)