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

[No QA] Sorted import aliases #26605

Merged
merged 4 commits into from
Oct 28, 2023
Merged

Conversation

b4s36t4
Copy link
Contributor

@b4s36t4 b4s36t4 commented Sep 3, 2023

Details

Fixed Issues

$ #20531
PROPOSAL: #20531 (comment)

Tests

  • Verify that no errors appear in the JS console
    NA

Offline tests

NA

QA Steps

  • Verify that no errors appear in the JS console
    NA

PR Author Checklist

  • I linked the correct issue in the ### Fixed Issues section above
  • I wrote clear testing steps that cover the changes made in this PR
    • I added steps for local testing in the Tests section
    • I added steps for the expected offline behavior in the Offline steps section
    • I added steps for Staging and/or Production testing in the QA steps section
    • I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
    • I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
    • I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).
  • I included screenshots or videos for tests on all platforms
  • I ran the tests on all platforms & verified they passed on:
    • Android / native
    • Android / Chrome
    • iOS / native
    • iOS / Safari
    • MacOS / Chrome / Safari
    • MacOS / Desktop
  • I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
  • I followed proper code patterns (see Reviewing the code)
    • I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
    • I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
    • I verified that comments were added to code that is not self explanatory
    • I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
    • I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
      • If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:
    • I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
    • I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
    • I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
    • I verified the JSDocs style guidelines (in STYLE.md) were followed
  • If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
  • I followed the guidelines as stated in the Review Guidelines
  • I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
  • I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
  • I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
  • I verified that if a function's arguments changed that all usages have also been updated correctly
  • If a new component is created I verified that:
    • A similar component doesn't exist in the codebase
    • All props are defined accurately and each prop has a /** comment above it */
    • The file is named correctly
    • The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
    • The only data being stored in the state is data necessary for rendering and nothing else
    • If we are not using the full Onyx data that we loaded, I've added the proper selector in order to ensure the component only re-renders when the data it is using changes
    • For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
    • Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
    • All JSX used for rendering exists in the render method
    • The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions
  • If any new file was added I verified that:
    • The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory
  • If a new CSS style is added I verified that:
    • A similar style doesn't already exist
    • The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))
  • If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
  • If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
  • If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
  • If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
  • If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
  • If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
  • I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
Kapture.2023-10-09.at.17.18.09.mp4
Mobile Web - Chrome
Mobile Web - Safari
Kapture.2023-10-09.at.17.17.10.mp4
Desktop
Kapture.2023-10-09.at.17.54.19.mp4
iOS
Kapture.2023-10-09.at.17.15.53.mp4
Android

@b4s36t4 b4s36t4 requested a review from a team as a code owner September 3, 2023 13:04
@melvin-bot melvin-bot bot requested review from situchan and removed request for a team September 3, 2023 13:05
@melvin-bot
Copy link

melvin-bot bot commented Sep 3, 2023

@situchan Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button]

Copy link
Contributor

@situchan situchan left a comment

Choose a reason for hiding this comment

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

Is it possible to apply lint to force use @ always instead of .../?
So after this change, lint would fail if @ isn't being used.

This branch doesn't work at all for me. Did you test the app?
Screenshot 2023-09-10 at 8 30 00 PM

Cmd+Click also doesn't work.

babel.config.js Outdated Show resolved Hide resolved
tsconfig.json Outdated Show resolved Hide resolved
babel.config.js Outdated Show resolved Hide resolved
@b4s36t4
Copy link
Contributor Author

b4s36t4 commented Sep 10, 2023

Is it possible to apply lint to force use @ always instead of .../?

I'm not sure, but I think we can do.

@b4s36t4
Copy link
Contributor Author

b4s36t4 commented Sep 10, 2023

This branch doesn't work at all for me. Did you test the app?

Yes, I tested and posted the video in the issue as well.

I have tried everything that required for this PR.
Maybe you need to restart your TS server & dev server with npm as well. If still didn't work let me know.

@situchan
Copy link
Contributor

Tested again and works now. Not sure why it didn't work first time.

@situchan
Copy link
Contributor

Is it possible to apply lint to force use @ always instead of .../?

I'm not sure, but I think we can do.

What's your plan to apply changes to all files? Manual?
It would be automatic if we find lint rule.

@b4s36t4
Copy link
Contributor Author

b4s36t4 commented Sep 10, 2023

Tested again and works now. Not sure why it didn't work first time.

It surely requires a restart for server.

@situchan
Copy link
Contributor

Is it possible to apply lint to force use @ always instead of .../?

I'm not sure, but I think we can do.

What's your plan to apply changes to all files? Manual? It would be automatic if we find lint rule.

maybe we can try with eslint-plugin-import-alias package

@b4s36t4
Copy link
Contributor Author

b4s36t4 commented Sep 10, 2023

But that was way too old, not maintained. I suggest we don't go with it. I'll check for some other alternatives and will update.

@situchan
Copy link
Contributor

@roryabraham what's your suggestion on #26605 (comment)?
If we don't have this, there will be inconsistency in newer PRs so authors might not use alias but absolute path.

@roryabraham
Copy link
Contributor

I agree https://www.npmjs.com/package/eslint-plugin-import-alias hasn't been updated in a long time, but let's see if it works for us. It might have just been stable to the point where it doesn't need any updates since it seems a pretty simple lint rule of a very stable syntax (ES6 relative and aliased imports).

If it doesn't work or we uncover some problem with it, then we can re-evaluate.

@b4s36t4
Copy link
Contributor Author

b4s36t4 commented Sep 10, 2023

@situchan
Copy link
Contributor

@situchan
Copy link
Contributor

@b4s36t4
Copy link
Contributor Author

b4s36t4 commented Sep 11, 2023

Hey, @situchan not yet. Been stuck at some work. Will update the progress by night.

@b4s36t4
Copy link
Contributor Author

b4s36t4 commented Sep 12, 2023

@situchan @roryabraham The above package is working perfect. I was able to update all imports with --fix option.

After imports there are 9 errors which are related sort-order (I feel this is not an issue, can raise new PR for solving these).

@b4s36t4
Copy link
Contributor Author

b4s36t4 commented Sep 12, 2023

Also web app is also running perfectly.

Changes required for the above package to work i.e .eslintrc.js

Screenshot 2023-09-12 at 9 50 20 PM

@situchan
Copy link
Contributor

@situchan @roryabraham The above package is working perfect. I was able to update all imports with --fix option.

Great!

After imports there are 9 errors which are related sort-order (I feel this is not an issue, can raise new PR for solving these).

Though it doesn't affect github workflow right? Lint will still success, correct?

@roryabraham what is the plan to merge first PR? At what time?

@b4s36t4
Copy link
Contributor Author

b4s36t4 commented Sep 12, 2023

No lint will fail, @situchan

@situchan
Copy link
Contributor

No lint will fail, @situchan

We can't merge PR with lint failure

@b4s36t4
Copy link
Contributor Author

b4s36t4 commented Sep 12, 2023

--fix is not solving the import order problem (fixable by eslint exntension). We can raise the PR Just after merge solving the import order to complete the whole PR.

@situchan
Copy link
Contributor

situchan commented Sep 13, 2023

--fix is not solving the import order problem (fixable by eslint exntension). We can raise the PR Just after merge solving the import order to complete the whole PR.

In this case, we can do both import alias and fix import order in one PR.
We really don't wanna accept merging PR with lint failing.

@roryabraham what are your thoughts?

@b4s36t4
Copy link
Contributor Author

b4s36t4 commented Sep 14, 2023

In this case, we can do both import alias and fix import order in one PR.

Yes but that might raise merge conflict (not many though) we should let people know before merging.

@situchan
Copy link
Contributor

Yes but that might raise merge conflict (not many though) we should let people know before merging.

That should happen even when we separate PRs

@b4s36t4
Copy link
Contributor Author

b4s36t4 commented Sep 16, 2023

@roryabraham What should we do about the above concerns?

@roryabraham
Copy link
Contributor

In this case, we can do both import alias and fix import order in one PR.
We really don't wanna accept merging PR with lint failing.

Agree with @situchan – we can't merge a PR with lint failing (or any warnings either). We need to manually fix the 9 sort-import warnings in this PR.

--fix is not solving the import order problem

Can we try to add https://github.com/trivago/prettier-plugin-sort-imports or something similar so that Prettier can automatically fix the import sort order?

Yes but that might raise merge conflict (not many though) we should let people know before merging

You mean we should let people know after merging 😈

but yes, after merging this PR I will announce in #expensify-open-source that everyone needs to merge main into their PR branches.

@blazejkustra
Copy link
Contributor

@b4s36t4 can you also take #26605 (comment) into account?

Let's make sure it doesn't affect eslint performance, source

@b4s36t4
Copy link
Contributor Author

b4s36t4 commented Oct 9, 2023

Screenshot 2023-10-09 at 8 25 01 PM

@situchan Yes, it will fail (npm run lint).

@roryabraham
Copy link
Contributor

I'm back from OOO so let's get this cleaned up again then take it over the finish line

babel.config.js Outdated Show resolved Hide resolved
src/Expensify.js Show resolved Hide resolved
@roryabraham roryabraham changed the title [No QA] initial import alias with a single page [No QA] Sorted import aliases Oct 19, 2023
@b4s36t4 b4s36t4 force-pushed the feat/import-alias branch 2 times, most recently from a83610e to 6fd7e62 Compare October 20, 2023 20:35
@situchan
Copy link
Contributor

Reviewer Checklist

  • I have verified the author checklist is complete (all boxes are checked off).
  • I verified the correct issue is linked in the ### Fixed Issues section above
  • I verified testing steps are clear and they cover the changes made in this PR
    • I verified the steps for local testing are in the Tests section
    • I verified the steps for Staging and/or Production testing are in the QA steps section
    • I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
    • I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
  • I checked that screenshots or videos are included for tests on all platforms
  • I included screenshots or videos for tests on all platforms
  • I verified tests pass on all platforms & I tested again on:
    • Android / native
    • Android / Chrome
    • iOS / native
    • iOS / Safari
    • MacOS / Chrome / Safari
    • MacOS / Desktop
  • If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
  • I verified proper code patterns were followed (see Reviewing the code)
    • I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
    • I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
    • I verified that comments were added to code that is not self explanatory
    • I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
    • I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
    • I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
    • I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
    • I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
    • I verified the JSDocs style guidelines (in STYLE.md) were followed
  • If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
  • I verified that this PR follows the guidelines as stated in the Review Guidelines
  • I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
  • I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
  • I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
  • If a new component is created I verified that:
    • A similar component doesn't exist in the codebase
    • All props are defined accurately and each prop has a /** comment above it */
    • The file is named correctly
    • The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
    • The only data being stored in the state is data necessary for rendering and nothing else
    • For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
    • Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
    • All JSX used for rendering exists in the render method
    • The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions
  • If any new file was added I verified that:
    • The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory
  • If a new CSS style is added I verified that:
    • A similar style doesn't already exist
    • The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)
  • If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
  • If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
  • If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
  • If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
  • If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
  • If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
  • I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Web web
Mobile Web - Chrome mchrome
Mobile Web - Safari

msafari

Desktop desktop
iOS

ios

Android android

@situchan
Copy link
Contributor

Just conflict arrived. Let's quickly fix

@roryabraham roryabraham merged commit e99c297 into Expensify:main Oct 28, 2023
13 checks passed
@OSBotify
Copy link
Contributor

✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

@github-actions github-actions bot added the DeployBlockerCash This issue or pull request should block deployment label Oct 28, 2023
@github-actions
Copy link
Contributor

Performance Comparison Report 📊

Significant Changes To Duration

Name Duration
App start TTI 1102.407 ms → 1184.790 ms (+82.383 ms, +7.5%) 🔴
App start runJsBundle 774.183 ms → 828.316 ms (+54.132 ms, +7.0%) 🔴
Show details
Name Duration
App start TTI Baseline
Mean: 1102.407 ms
Stdev: 35.406 ms (3.2%)
Runs: 1033.4640399999917 1041.985553999897 1042.0883749998175 1045.4834099998698 1048.8075250000693 1050.6370999999344 1060.1598620000295 1066.030633999966 1066.9555560001172 1069.6070469999686 1071.5050329999067 1073.5395729998127 1074.642611999996 1075.6275410000235 1077.0104029998183 1079.1925690001808 1079.8167860000394 1080.4284239998087 1081.5474609998055 1085.7985689998604 1087.4177810000256 1088.6946330000646 1089.7332239998505 1089.8711749999784 1090.2044159998186 1091.0325039997697 1091.3659370001405 1092.6997259999625 1094.7953630001284 1095.6143100000918 1098.8441389999352 1100.4291449999437 1102.3065849998966 1104.2668539998122 1105.5564850000665 1107.045243000146 1108.209278000053 1108.686784000136 1115.407292000018 1117.6627409998327 1118.2247330001555 1120.6919550001621 1121.6291820001788 1125.400133999996 1126.3635860001668 1127.31351300003 1127.949101000093 1132.2053020000458 1136.7923530000262 1139.0214169998653 1139.6153190000914 1140.0752900000662 1148.15557599999 1150.8457269999199 1151.101342999842 1156.6967389998026 1157.2089820001274 1172.0196179999039 1172.280025999993 1196.6792979999445

Current
Mean: 1184.790 ms
Stdev: 31.739 ms (2.7%)
Runs: 1129.1514359991997 1134.157051000744 1134.5309490002692 1134.6121510006487 1134.7240510005504 1136.2032060008496 1137.5193540006876 1138.3158790003508 1142.193811999634 1149.8738269992173 1151.2237059995532 1155.8456960003823 1157.0295129995793 1161.6178820002824 1163.4196600001305 1165.6014719996601 1167.139544999227 1168.7849930003285 1172.8194539994001 1173.8933540005237 1174.4124549999833 1177.5278409998864 1177.8516990002245 1181.221596000716 1181.8625210002065 1182.2761300001293 1182.8603859990835 1184.7867690008134 1185.0721189994365 1185.098246999085 1185.9319710005075 1187.140721000731 1187.2303359992802 1191.0908250007778 1192.631779000163 1192.7481219992042 1193.279171999544 1194.3276320006698 1195.491004999727 1199.6961390003562 1201.396052999422 1201.6311029996723 1207.4991529993713 1208.2785349991173 1208.6295270007104 1218.02024500072 1218.1391809992492 1219.9458969999105 1220.7401950005442 1221.301678000018 1226.9647710006684 1227.3759659994394 1235.6015000008047 1237.255922999233 1244.678184999153 1245.977880999446 1248.419550999999
App start runJsBundle Baseline
Mean: 774.183 ms
Stdev: 25.803 ms (3.3%)
Runs: 726 728 731 732 739 743 746 746 748 748 749 750 751 752 753 753 757 757 758 760 762 763 764 766 767 767 768 770 771 772 773 774 775 776 777 777 778 780 782 784 784 785 786 794 795 796 797 798 798 800 800 803 804 804 808 814 824 826 827 835

Current
Mean: 828.316 ms
Stdev: 27.264 ms (3.3%)
Runs: 768 780 782 786 787 788 793 795 798 798 799 801 806 809 810 810 814 814 814 816 818 818 819 822 823 824 827 829 829 835 835 837 838 838 839 840 841 843 843 844 845 846 848 848 851 851 854 854 855 856 857 861 861 863 877 878 899

Meaningless Changes To Duration

Show entries
Name Duration
Open Search Page TTI 691.789 ms → 712.088 ms (+20.299 ms, +2.9%)
App start regularAppStart 0.014 ms → 0.015 ms (+0.000 ms, +2.3%)
App start nativeLaunch 24.100 ms → 20.745 ms (-3.355 ms, -13.9%)
Show details
Name Duration
Open Search Page TTI Baseline
Mean: 691.789 ms
Stdev: 34.236 ms (4.9%)
Runs: 631.5906170001253 633.2756749996915 636.6076659997925 639.8967699999921 649.209309999831 650.3371179997921 650.7574869999662 651.0851239999756 651.45365400007 656.8138429997489 657.0610759998672 661.250326000154 666.2188320001587 666.30334499944 667.6831470001489 668.229127000086 668.6889650002122 668.748292000033 671.3054599994794 671.9298100001179 673.621541000437 674.3776050005108 675.5480150002986 675.5956219998188 675.8228760003112 679.3243009997532 680.500284999609 680.8899329993874 682.5053309998475 682.8293869998306 685.3173830006272 686.8650719998404 687.6681729997508 690.9303790000267 691.5252679996192 691.6967369997874 695.882203000132 696.2631029998884 697.2960200002417 700.8356939991936 707.8766280002892 710.0307620000094 710.8848479995504 713.6982829999179 716.980956999585 719.0307620000094 720.624836999923 721.7357990001328 722.2028409997001 730.6829429995269 734.4006760003977 735.2344160000794 737.01615400007 737.1845699995756 737.724813000299 740.7046709996648 745.3330079996958 747.8518469999544 750.8795170001686 764.9554039994255 770.3489180002362

Current
Mean: 712.088 ms
Stdev: 41.527 ms (5.8%)
Runs: 616.734333999455 634.6408289987594 636.6191810015589 647.953083999455 649.574137000367 649.8341479990631 652.3526209983975 656.6594650000334 660.9317630007863 663.2662349995226 663.9744470007718 664.7351890001446 677.263387998566 678.6418060008436 678.790160998702 683.2701820004731 683.6892089992762 683.8457439988852 696.1980790011585 698.8343510013074 701.9200849998742 704.4875900000334 705.793619999662 706.1241459995508 706.6387530006468 708.2963060010225 711.4350190013647 711.7670499999076 712.2616380006075 712.9357509985566 712.956991000101 714.3992519993335 717.031208999455 717.2195229995996 717.8655609991401 720.5808919984847 722.7246500011533 727.628703000024 727.7326659988612 729.8027349989861 731.2904460001737 732.1944989990443 736.3163250014186 739.5781659986824 739.813436999917 742.4980469997972 742.9421389997005 743.8302820008248 745.4397380016744 747.0280360002071 747.7401129994541 748.5542399995029 753.9038089998066 757.0157069992274 757.6503910012543 770.0238040015101 773.597289999947 773.8394370004535 782.8769129998982 801.2711190003902 802.5772709995508
App start regularAppStart Baseline
Mean: 0.014 ms
Stdev: 0.001 ms (6.2%)
Runs: 0.012858000118285418 0.013019999954849482 0.013062000274658203 0.01310200011357665 0.013142999727278948 0.013142999727278948 0.013142999727278948 0.013265000190585852 0.013428000267595053 0.0134680001065135 0.01355000026524067 0.013753000181168318 0.013753999955952168 0.013794000260531902 0.0138349998742342 0.0138349998742342 0.013915999792516232 0.013955999631434679 0.01399700017645955 0.014037999790161848 0.014119999948889017 0.014159999787807465 0.014200999867171049 0.014241000171750784 0.014241000171750784 0.014322999864816666 0.0143630001693964 0.01436399994418025 0.014405000023543835 0.014444999862462282 0.014444999862462282 0.01444500032812357 0.014525999780744314 0.014566999860107899 0.014567000325769186 0.014607000164687634 0.014607999939471483 0.014648000244051218 0.014649000018835068 0.014690000098198652 0.014771000016480684 0.014810999855399132 0.014810999855399132 0.015054999850690365 0.015137000009417534 0.015217999927699566 0.01525900000706315 0.015339999925345182 0.015461999922990799 0.01554399961605668 0.015583999920636415 0.015746999997645617 0.015746999997645617 0.01582799991592765 0.015828999690711498 0.0165200000628829 0.016805000137537718

Current
Mean: 0.015 ms
Stdev: 0.001 ms (6.5%)
Runs: 0.013387000188231468 0.013427000492811203 0.013508999720215797 0.01355000026524067 0.01355000026524067 0.013630999252200127 0.013630999252200127 0.013631999492645264 0.013671999797224998 0.01379299908876419 0.013793999329209328 0.013794001191854477 0.0138349998742342 0.0139979999512434 0.014038000255823135 0.014118999242782593 0.01411999948322773 0.014159999787807465 0.014200998470187187 0.014201000332832336 0.014240998774766922 0.014241000637412071 0.01428299956023693 0.014322999864816666 0.014322999864816666 0.01440500095486641 0.014444999396800995 0.014444999396800995 0.014444999396800995 0.014445001259446144 0.01448499970138073 0.014527000486850739 0.014649000018835068 0.014649000018835068 0.014729000627994537 0.015095999464392662 0.015095999464392662 0.015137000009417534 0.015177000313997269 0.015178000554442406 0.015258999541401863 0.01533999852836132 0.01534000039100647 0.015380999073386192 0.01550300046801567 0.015584001317620277 0.015786999836564064 0.015828998759388924 0.01590999960899353 0.01607299968600273 0.01607299968600273 0.016154000535607338 0.016235999763011932 0.016439000144600868 0.01660200022161007 0.016641998663544655 0.016763998195528984 0.016885999590158463
App start nativeLaunch Baseline
Mean: 24.100 ms
Stdev: 3.722 ms (15.4%)
Runs: 19 19 19 19 20 20 20 20 20 20 20 21 21 21 21 21 21 21 22 22 22 22 22 22 23 23 23 23 23 23 23 23 24 24 24 24 24 24 25 25 25 25 26 27 27 27 27 27 28 29 29 30 30 30 30 30 31 31 32 32

Current
Mean: 20.745 ms
Stdev: 1.871 ms (9.0%)
Runs: 18 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 21 21 21 21 21 21 21 22 22 22 22 22 22 22 23 23 23 23 24 24 24 26 27

@github-actions
Copy link
Contributor

@Expensify/mobile-deployers 📣 Please look into this performance regression as it's a deploy blocker.

@roryabraham
Copy link
Contributor

It seems very unlikely that this compile-time change has any impact on app performance

@OSBotify
Copy link
Contributor

🚀 Deployed to staging by https://github.com/roryabraham in version: 1.3.93-0 🚀

platform result
🤖 android 🤖 success ✅
🖥 desktop 🖥 success ✅
🍎 iOS 🍎 success ✅
🕸 web 🕸 success ✅

@OSBotify
Copy link
Contributor

🚀 Deployed to production by https://github.com/Beamanator in version: 1.3.93-1 🚀

platform result
🤖 android 🤖 success ✅
🖥 desktop 🖥 success ✅
🍎 iOS 🍎 success ✅
🕸 web 🕸 success ✅

@OSBotify
Copy link
Contributor

🚀 Deployed to staging by https://github.com/roryabraham in version: 1.3.94-0 🚀

platform result
🤖 android 🤖 success ✅
🖥 desktop 🖥 success ✅
🍎 iOS 🍎 failure ❌
🕸 web 🕸 success ✅

1 similar comment
@OSBotify
Copy link
Contributor

OSBotify commented Nov 1, 2023

🚀 Deployed to staging by https://github.com/roryabraham in version: 1.3.94-0 🚀

platform result
🤖 android 🤖 success ✅
🖥 desktop 🖥 success ✅
🍎 iOS 🍎 failure ❌
🕸 web 🕸 success ✅

@OSBotify
Copy link
Contributor

OSBotify commented Nov 2, 2023

🚀 Deployed to production by https://github.com/Beamanator in version: 1.3.94-2 🚀

platform result
🤖 android 🤖 success ✅
🖥 desktop 🖥 success ✅
🍎 iOS 🍎 success ✅
🕸 web 🕸 success ✅

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
DeployBlockerCash This issue or pull request should block deployment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants