feat: implement internal/alpha/beta/ API removals from package public API surface#23369
Merged
Hotell merged 17 commits intomicrosoft:masterfrom Aug 22, 2022
Conversation
Collaborator
📊 Bundle size reportUnchanged fixtures
|
d455c19 to
070e45e
Compare
Asset size changesSize Auditor did not detect a change in bundle size for any component! Baseline commit: bf151e71e0ffa5de5c44cc722e629cdeb7abdbb2 (build) |
Collaborator
Perf Analysis (
|
| Scenario | Current PR Ticks | Baseline Ticks | Ratio |
|---|---|---|---|
| RefMinimalPerf.default | 185 | 159 | 1.16:1 |
| ChatWithPopoverPerf.default | 310 | 269 | 1.15:1 |
| DropdownManyItemsPerf.default | 565 | 497 | 1.14:1 |
| TreeMinimalPerf.default | 675 | 592 | 1.14:1 |
| ButtonSlotsPerf.default | 452 | 403 | 1.12:1 |
| HeaderSlotsPerf.default | 600 | 534 | 1.12:1 |
| ItemLayoutMinimalPerf.default | 964 | 860 | 1.12:1 |
| ListMinimalPerf.default | 415 | 369 | 1.12:1 |
| MenuMinimalPerf.default | 694 | 627 | 1.11:1 |
| SliderMinimalPerf.default | 1416 | 1277 | 1.11:1 |
| ImageMinimalPerf.default | 300 | 273 | 1.1:1 |
| RadioGroupMinimalPerf.default | 364 | 332 | 1.1:1 |
| SegmentMinimalPerf.default | 279 | 254 | 1.1:1 |
| ChatDuplicateMessagesPerf.default | 234 | 215 | 1.09:1 |
| PopupMinimalPerf.default | 523 | 482 | 1.09:1 |
| CardMinimalPerf.default | 447 | 417 | 1.07:1 |
| ToolbarMinimalPerf.default | 743 | 692 | 1.07:1 |
| RosterPerf.default | 946 | 894 | 1.06:1 |
| ListWith60ListItems.default | 480 | 455 | 1.05:1 |
| AvatarMinimalPerf.default | 139 | 134 | 1.04:1 |
| ButtonMinimalPerf.default | 117 | 113 | 1.04:1 |
| ButtonOverridesMissPerf.default | 1192 | 1145 | 1.04:1 |
| FlexMinimalPerf.default | 211 | 203 | 1.04:1 |
| ListNestedPerf.default | 467 | 448 | 1.04:1 |
| ProviderMergeThemesPerf.default | 961 | 925 | 1.04:1 |
| CheckboxMinimalPerf.default | 2136 | 2083 | 1.03:1 |
| EmbedMinimalPerf.default | 3334 | 3248 | 1.03:1 |
| SkeletonMinimalPerf.default | 285 | 277 | 1.03:1 |
| AccordionMinimalPerf.default | 105 | 103 | 1.02:1 |
| AnimationMinimalPerf.default | 445 | 435 | 1.02:1 |
| AttachmentSlotsPerf.default | 885 | 866 | 1.02:1 |
| ChatMinimalPerf.default | 596 | 583 | 1.02:1 |
| GridMinimalPerf.default | 247 | 242 | 1.02:1 |
| LayoutMinimalPerf.default | 265 | 259 | 1.02:1 |
| ListCommonPerf.default | 506 | 496 | 1.02:1 |
| InputMinimalPerf.default | 1090 | 1083 | 1.01:1 |
| TextMinimalPerf.default | 279 | 275 | 1.01:1 |
| CustomToolbarPrototype.default | 2109 | 2096 | 1.01:1 |
| ProviderMinimalPerf.default | 323 | 322 | 1:1 |
| IconMinimalPerf.default | 444 | 446 | 1:1 |
| AlertMinimalPerf.default | 217 | 219 | 0.99:1 |
| AttachmentMinimalPerf.default | 119 | 120 | 0.99:1 |
| BoxMinimalPerf.default | 274 | 276 | 0.99:1 |
| DatepickerMinimalPerf.default | 4486 | 4535 | 0.99:1 |
| DropdownMinimalPerf.default | 2493 | 2509 | 0.99:1 |
| TableMinimalPerf.default | 291 | 293 | 0.99:1 |
| TreeWith60ListItems.default | 125 | 127 | 0.98:1 |
| MenuButtonMinimalPerf.default | 1263 | 1296 | 0.97:1 |
| SplitButtonMinimalPerf.default | 3298 | 3407 | 0.97:1 |
| TooltipMinimalPerf.default | 845 | 874 | 0.97:1 |
| VideoMinimalPerf.default | 495 | 510 | 0.97:1 |
| CarouselMinimalPerf.default | 342 | 360 | 0.95:1 |
| DialogMinimalPerf.default | 594 | 635 | 0.94:1 |
| FormMinimalPerf.default | 283 | 300 | 0.94:1 |
| ReactionMinimalPerf.default | 281 | 300 | 0.94:1 |
| StatusMinimalPerf.default | 499 | 538 | 0.93:1 |
| TextAreaMinimalPerf.default | 376 | 404 | 0.93:1 |
| TableManyItemsPerf.default | 1412 | 1538 | 0.92:1 |
| HeaderMinimalPerf.default | 268 | 298 | 0.9:1 |
| LabelMinimalPerf.default | 277 | 310 | 0.89:1 |
| LoaderMinimalPerf.default | 501 | 562 | 0.89:1 |
| PortalMinimalPerf.default | 123 | 140 | 0.88:1 |
| DividerMinimalPerf.default | 248 | 284 | 0.87:1 |
Collaborator
Perf Analysis (
|
| Scenario | Render type | Master Ticks | PR Ticks | Iterations | Status |
|---|---|---|---|---|---|
| BaseButton | mount | 793 | 787 | 5000 | |
| Breadcrumb | mount | 2401 | 2393 | 1000 | |
| Checkbox | mount | 2262 | 2243 | 5000 | |
| CheckboxBase | mount | 1890 | 1957 | 5000 | |
| ChoiceGroup | mount | 3975 | 4073 | 5000 | |
| ComboBox | mount | 824 | 783 | 1000 | |
| CommandBar | mount | 9155 | 8776 | 1000 | |
| ContextualMenu | mount | 10680 | 11737 | 1000 | |
| DefaultButton | mount | 900 | 996 | 5000 | |
| DetailsRow | mount | 3266 | 3326 | 5000 | |
| DetailsRowFast | mount | 3272 | 3341 | 5000 | |
| DetailsRowNoStyles | mount | 3112 | 3179 | 5000 | |
| Dialog | mount | 2493 | 2414 | 1000 | |
| DocumentCardTitle | mount | 158 | 159 | 1000 | |
| Dropdown | mount | 2696 | 2865 | 5000 | |
| FocusTrapZone | mount | 1551 | 1632 | 5000 | |
| FocusZone | mount | 1569 | 1500 | 5000 | |
| IconButton | mount | 1526 | 1471 | 5000 | |
| Label | mount | 303 | 303 | 5000 | |
| Layer | mount | 2859 | 2793 | 5000 | |
| Link | mount | 408 | 413 | 5000 | |
| MenuButton | mount | 1279 | 1270 | 5000 | |
| MessageBar | mount | 1830 | 1816 | 5000 | |
| Nav | mount | 2866 | 2718 | 1000 | |
| OverflowSet | mount | 876 | 933 | 5000 | |
| Panel | mount | 1907 | 1829 | 1000 | |
| Persona | mount | 870 | 870 | 1000 | |
| Pivot | mount | 1227 | 1250 | 1000 | |
| PrimaryButton | mount | 1110 | 1000 | 5000 | |
| Rating | mount | 6666 | 6654 | 5000 | |
| SearchBox | mount | 1074 | 1110 | 5000 | |
| Shimmer | mount | 2176 | 2189 | 5000 | |
| Slider | mount | 1683 | 1682 | 5000 | |
| SpinButton | mount | 4269 | 4209 | 5000 | |
| Spinner | mount | 378 | 387 | 5000 | |
| SplitButton | mount | 2740 | 2770 | 5000 | |
| Stack | mount | 457 | 397 | 5000 | |
| StackWithIntrinsicChildren | mount | 1848 | 1953 | 5000 | |
| StackWithTextChildren | mount | 4442 | 4427 | 5000 | |
| SwatchColorPicker | mount | 9942 | 9890 | 5000 | |
| TagPicker | mount | 2172 | 2322 | 5000 | |
| TeachingBubble | mount | 82809 | 84964 | 5000 | |
| Text | mount | 376 | 322 | 5000 | |
| TextField | mount | 1208 | 1228 | 5000 | |
| ThemeProvider | mount | 1066 | 1097 | 5000 | |
| ThemeProvider | virtual-rerender | 641 | 622 | 5000 | |
| ThemeProvider | virtual-rerender-with-unmount | 1625 | 1556 | 5000 | |
| Toggle | mount | 681 | 683 | 5000 | |
| buttonNative | mount | 102 | 92 | 5000 |
749a682 to
7adc9bb
Compare
|
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 bcab8a6:
|
1898dcf to
35a98ac
Compare
Collaborator
Perf Analysis (
|
| Scenario | Render type | Master Ticks | PR Ticks | Iterations | Status |
|---|---|---|---|---|---|
| Avatar | mount | 1608 | 1594 | 5000 | |
| Button | mount | 1116 | 1161 | 5000 | |
| FluentProvider | mount | 1891 | 1881 | 5000 | |
| FluentProviderWithTheme | mount | 717 | 715 | 10 | |
| FluentProviderWithTheme | virtual-rerender | 652 | 676 | 10 | |
| FluentProviderWithTheme | virtual-rerender-with-unmount | 719 | 722 | 10 | |
| MakeStyles | mount | 2263 | 2285 | 50000 | |
| SpinButton | mount | 3153 | 3147 | 5000 |
35a98ac to
dd64082
Compare
79a4462 to
d1fc9af
Compare
Contributor
Author
Hotell
commented
Jul 25, 2022
| .filter(([, { packageJson, packagePath }]) => { | ||
| // Ignore northstar | ||
| if (/[\\/]fluentui[\\/]/.test(packagePath)) { | ||
| const isNorthstar = /[\\/]fluentui[\\/]/.test(packagePath); |
Contributor
Author
There was a problem hiding this comment.
add test to cover this logic not right now....
|
|
||
| apiExtractorVerifyTask({ | ||
| configJsonFilePath: configPath, | ||
| showVerboseMessages: args.verbose, |
Contributor
Author
There was a problem hiding this comment.
adding support for all raw api-extractor CLI APIs
2798e80 to
7de0565
Compare
Hotell
commented
Jul 27, 2022
| ```ts | ||
|
|
||
| // Warning: (ae-internal-missing-underscore) The name "createOverflowManager" should be prefixed with an underscore because the declaration is marked as @internal | ||
| // |
Contributor
Author
There was a problem hiding this comment.
| import { DispatchWithoutAction } from 'react'; | ||
| import * as React_2 from 'react'; | ||
|
|
||
| // Warning: (ae-internal-missing-underscore) The name "applyTriggerPropsToChildren" should be prefixed with an underscore because the declaration is marked as @internal |
Contributor
Author
There was a problem hiding this comment.
Hotell
commented
Jul 28, 2022
| color: NonNullable<Exclude<AvatarProps['color'], 'colorful'>>; | ||
| }; | ||
|
|
||
| // Warning: (ae-internal-missing-underscore) The name "getInitials" should be prefixed with an underscore because the declaration is marked as @internal |
Contributor
Author
There was a problem hiding this comment.
67df780 to
bcab8a6
Compare
ling1726
added a commit
to ling1726/fluentui
that referenced
this pull request
Sep 27, 2022
Migrates the react-avatar package to use the new build experience introduced in microsoft#23369
ling1726
added a commit
to ling1726/fluentui
that referenced
this pull request
Sep 27, 2022
Migrates the react-avatar package to use the new build experience introduced in microsoft#23369
ling1726
added a commit
that referenced
this pull request
Sep 28, 2022
* chore: Migrate react-avatar to use new build Migrates the react-avatar package to use the new build experience introduced in #23369 * changefile
ling1726
added a commit
that referenced
this pull request
Sep 28, 2022
* chore: Migrate react-table to use new build Migrates the react-avatar package to use the new build experience introduced in #23369 * changefile
This was referenced Oct 12, 2022
Merged
1 task
NotWoods
pushed a commit
to NotWoods/fluentui
that referenced
this pull request
Nov 18, 2022
* chore: Migrate react-avatar to use new build Migrates the react-avatar package to use the new build experience introduced in microsoft#23369 * changefile
NotWoods
pushed a commit
to NotWoods/fluentui
that referenced
this pull request
Nov 18, 2022
* chore: Migrate react-table to use new build Migrates the react-avatar package to use the new build experience introduced in microsoft#23369 * changefile
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

This implements revamped build workflow and api-generation with stripping of APIs marked via
@internal/@alpha/@betaJSDoc annotation.💡NOTE:
migrate-converged-pkgautomation per package.Current Behavior
Build tasks:
buildtask doesn't uses path aliasesbuild:localtask uses path aliasesAPI-extractor configuration:
buildandbuild:local, which tend to not work all the time ( react-components suite)API Surface:
index.d.ts, which might expose APIs not intended to be used for consumersNew Behavior
Build tasks:
buildtask uses path aliasesdistinstead of per packagedist, afterwards assets are copied to package scope for publishing purposesbuild:localnpm script task is replaced withgenerate-apitask that uses path aliasesAPI-extractor configuration:
API Surface:
@internal/@alpha/@betaare removed from package API surface ( rollupedindex.d.ts)Detailed workflow comparison
generating
api.mdfileBEFORE:
yarn workspace @fluentui/react-text build:local🚨 No failures ever as there is no api trimming/validation
AFTER:
yarn workspace @fluentui/react-text generate-api✅ This might fail in 2 scenarios:
index.d.tsfile.If this case occurs tooling will guide you with following DX:

If this case occurs tooling will guide you with following DX:

🛠 Known issues:
index.d.tsfile. A follow up work will be done after this will be merged.ts-minbar-react-componentswill catch such an issue on CI⬇⬇⬇ tsc emit
Related Issue(s)
Fixes partially #23343