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

feat(typings): create environment package to provide strict type checking for process.env #20603

Merged
merged 7 commits into from
Nov 16, 2021

Conversation

Hotell
Copy link
Contributor

@Hotell Hotell commented Nov 12, 2021

Pull request checklist

Description of changes

Demo:

BEFORE

before.mov

AFTER

after.mov

Focus areas to test

(optional)

@Hotell Hotell requested a review from a team as a code owner November 12, 2021 16:42
@fabricteam
Copy link
Collaborator

fabricteam commented Nov 12, 2021

📊 Bundle size report

🤖 This report was generated against f8113b88c86cccedd5f232640ef70c4e6282bca8

@size-auditor
Copy link

size-auditor bot commented Nov 12, 2021

Asset size changes

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

Baseline commit: f8113b88c86cccedd5f232640ef70c4e6282bca8 (build)

@codesandbox-ci
Copy link

codesandbox-ci bot commented Nov 12, 2021

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 6ebeb19:

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

@fabricteam
Copy link
Collaborator

fabricteam commented Nov 12, 2021

Perf Analysis (@fluentui/react)

No significant results to display.

All results

Scenario Render type Master Ticks PR Ticks Iterations Status
Avatar mount 1089 1047 5000
BaseButton mount 1071 1075 5000
Breadcrumb mount 2799 2779 1000
ButtonNext mount 568 551 5000
Checkbox mount 1745 1766 5000
CheckboxBase mount 1494 1513 5000
ChoiceGroup mount 5444 5383 5000
ComboBox mount 1067 1064 1000
CommandBar mount 11024 10841 1000
ContextualMenu mount 9143 9190 1000
DefaultButton mount 1296 1289 5000
DetailsRow mount 4238 4294 5000
DetailsRowFast mount 4236 4210 5000
DetailsRowNoStyles mount 4035 4024 5000
Dialog mount 2737 2751 1000
DocumentCardTitle mount 185 196 1000
Dropdown mount 3598 3599 5000
FluentProviderNext mount 4007 4069 5000
FluentProviderWithTheme mount 245 229 10
FluentProviderWithTheme virtual-rerender 118 115 10
FluentProviderWithTheme virtual-rerender-with-unmount 258 281 10
FocusTrapZone mount 2006 2015 5000
FocusZone mount 1994 1894 5000
IconButton mount 1986 2058 5000
Label mount 383 395 5000
Layer mount 3345 3280 5000
Link mount 558 536 5000
MakeStyles mount 1967 1927 50000
MenuButton mount 1748 1712 5000
MessageBar mount 2184 2187 5000
Nav mount 3733 3694 1000
OverflowSet mount 1231 1252 5000
Panel mount 2675 2645 1000
Persona mount 962 930 1000
Pivot mount 1570 1596 1000
PrimaryButton mount 1460 1446 5000
Rating mount 8969 8881 5000
SearchBox mount 1587 1527 5000
Shimmer mount 2904 2924 5000
Slider mount 2176 2160 5000
SpinButton mount 5551 5483 5000
Spinner mount 465 485 5000
SplitButton mount 3562 3515 5000
Stack mount 573 597 5000
StackWithIntrinsicChildren mount 2011 2010 5000
StackWithTextChildren mount 5439 5410 5000
SwatchColorPicker mount 11575 11414 5000
TagPicker mount 3099 3021 5000
TeachingBubble mount 14003 13944 5000
Text mount 490 494 5000
TextField mount 1606 1605 5000
ThemeProvider mount 1305 1312 5000
ThemeProvider virtual-rerender 642 657 5000
ThemeProvider virtual-rerender-with-unmount 2076 2079 5000
Toggle mount 932 936 5000
buttonNative mount 133 148 5000

Perf Analysis (@fluentui/react-northstar)

Perf tests with no regressions
Scenario Current PR Ticks Baseline Ticks Ratio
ReactionMinimalPerf.default 477 425 1.12:1
IconMinimalPerf.default 754 685 1.1:1
ButtonMinimalPerf.default 210 192 1.09:1
PortalMinimalPerf.default 204 188 1.09:1
AvatarMinimalPerf.default 237 221 1.07:1
BoxMinimalPerf.default 417 390 1.07:1
RefMinimalPerf.default 265 250 1.06:1
TextMinimalPerf.default 412 388 1.06:1
GridMinimalPerf.default 411 390 1.05:1
HeaderSlotsPerf.default 913 869 1.05:1
LabelMinimalPerf.default 448 428 1.05:1
ListWith60ListItems.default 759 725 1.05:1
CardMinimalPerf.default 660 636 1.04:1
CarouselMinimalPerf.default 538 516 1.04:1
ChatWithPopoverPerf.default 446 430 1.04:1
FormMinimalPerf.default 521 499 1.04:1
LayoutMinimalPerf.default 430 414 1.04:1
TreeWith60ListItems.default 211 203 1.04:1
ChatMinimalPerf.default 751 732 1.03:1
FlexMinimalPerf.default 330 319 1.03:1
InputMinimalPerf.default 1472 1425 1.03:1
LoaderMinimalPerf.default 792 770 1.03:1
MenuMinimalPerf.default 967 942 1.03:1
MenuButtonMinimalPerf.default 1880 1820 1.03:1
StatusMinimalPerf.default 773 751 1.03:1
TableMinimalPerf.default 475 461 1.03:1
TreeMinimalPerf.default 936 905 1.03:1
AlertMinimalPerf.default 330 322 1.02:1
DropdownMinimalPerf.default 3433 3382 1.02:1
ItemLayoutMinimalPerf.default 1400 1371 1.02:1
ListMinimalPerf.default 603 593 1.02:1
ProviderMinimalPerf.default 1287 1259 1.02:1
SliderMinimalPerf.default 1881 1844 1.02:1
TableManyItemsPerf.default 2232 2178 1.02:1
CustomToolbarPrototype.default 4546 4440 1.02:1
ToolbarMinimalPerf.default 1081 1063 1.02:1
TooltipMinimalPerf.default 1196 1170 1.02:1
AnimationMinimalPerf.default 466 461 1.01:1
ButtonOverridesMissPerf.default 2005 1992 1.01:1
EmbedMinimalPerf.default 4744 4710 1.01:1
PopupMinimalPerf.default 649 640 1.01:1
ProviderMergeThemesPerf.default 1855 1837 1.01:1
SkeletonMinimalPerf.default 406 400 1.01:1
SplitButtonMinimalPerf.default 4797 4772 1.01:1
CheckboxMinimalPerf.default 2992 2985 1:1
HeaderMinimalPerf.default 412 411 1:1
ListNestedPerf.default 656 653 1:1
RadioGroupMinimalPerf.default 513 513 1:1
AttachmentSlotsPerf.default 1197 1209 0.99:1
ButtonSlotsPerf.default 620 629 0.99:1
DatepickerMinimalPerf.default 5994 6070 0.99:1
DialogMinimalPerf.default 835 846 0.99:1
DropdownManyItemsPerf.default 800 812 0.99:1
SegmentMinimalPerf.default 390 393 0.99:1
VideoMinimalPerf.default 730 735 0.99:1
ListCommonPerf.default 756 769 0.98:1
AccordionMinimalPerf.default 190 196 0.97:1
AttachmentMinimalPerf.default 200 207 0.97:1
ChatDuplicateMessagesPerf.default 330 339 0.97:1
ImageMinimalPerf.default 442 454 0.97:1
RosterPerf.default 1335 1380 0.97:1
DividerMinimalPerf.default 410 426 0.96:1
TextAreaMinimalPerf.default 583 613 0.95:1

Copy link
Member

@layershifter layershifter left a comment

Choose a reason for hiding this comment

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

image

It looks that this PR causes regression in bundle size as one of conditions is not eliminated anymore. Can you please check?

@Hotell Hotell force-pushed the hotell/environments-quick-fix branch from 508ec3c to 3648642 Compare November 16, 2021 08:55
@Hotell Hotell requested a review from a team as a code owner November 16, 2021 08:55
@Hotell Hotell closed this Nov 16, 2021
@Hotell Hotell reopened this Nov 16, 2021
@Hotell Hotell changed the title fix: encapsulate process.env access without leaking of node global types feat(typings): create environment package to provide strict type checking for process.env Nov 16, 2021
@Hotell Hotell marked this pull request as draft November 16, 2021 09:00
@Hotell Hotell force-pushed the hotell/environments-quick-fix branch from c86cc51 to 6ebeb19 Compare November 16, 2021 18:02
@Hotell Hotell requested review from layershifter, andrefcdias and ling1726 and removed request for layershifter November 16, 2021 18:11
@Hotell Hotell requested a review from layershifter November 16, 2021 18:12
@Hotell Hotell marked this pull request as ready for review November 16, 2021 18:24
@Hotell Hotell dismissed layershifter’s stale review November 16, 2021 18:25

redone whole solution - changes not valid

@Hotell Hotell removed the request for review from layershifter November 16, 2021 18:25
Copy link
Contributor

@andrefcdias andrefcdias left a comment

Choose a reason for hiding this comment

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

LGTM, great stuff 🎉

@Hotell Hotell enabled auto-merge (squash) November 16, 2021 18:35
@Hotell Hotell merged commit 21ee852 into microsoft:master Nov 16, 2021
@Hotell Hotell deleted the hotell/environments-quick-fix branch November 16, 2021 18:40
mlp73 pushed a commit to mlp73/fluentui that referenced this pull request Jan 17, 2022
…king for process.env (microsoft#20603)

* feat(typings): create environment package to provide strict type checking for process.env

* feat(tools): add new 'environment' global type to migration generator

* fixup! feat(typings): create environment package to provide strict type checking for process.env

* fixup! fixup! feat(typings): create environment package to provide strict type checking for process.env

* fixup! feat(tools): add new 'environment' global type to migration generator

* chore(typings): use solution config file to proerly check extensions/declaration without leaking globals

* feat(typings): make environment globals work everywhere with proper DX
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

node globals leaking within vNext via process.env
7 participants