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

fix: 28340 Focus freeze on add contact method magic code on coming back from search #28682

Merged
merged 1 commit into from
Oct 11, 2023

Conversation

tienifr
Copy link
Contributor

@tienifr tienifr commented Oct 3, 2023

Details

Fixed Issues

$ #28340
PROPOSAL: #28340 (comment)

Tests

  1. Open the app
  2. Open settings->profile->contact method
  3. Open pending contact method or add new contact method and open the contact method
  4. Observe that currently on all digits, I cursor is visible and we can change focus to other digits
  5. Focus back to first digit and press CTRL+K/CMD+K to open search
  6. Click on back
  7. Verify that the input is focus and we can use it without being freeze
  • Verify that no errors appear in the JS console

Offline tests

Same as above

QA Steps

  1. Open the app
  2. Open settings->profile->contact method
  3. Open pending contact method or add new contact method and open the contact method
  4. Observe that currently on all digits, I cursor is visible and we can change focus to other digits
  5. Focus back to first digit and press CTRL+K/CMD+K to open search
  6. Click on back
  7. Verify that the input is focus and we can use it without being freeze
  • Verify that no errors appear in the JS console

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
Screen.Recording.2023-10-03.at.10.35.02.mov
Mobile Web - Chrome
Screen.Recording.2023-10-03.at.14.44.24.mov
Mobile Web - Safari
Screen.Recording.2023-10-03.at.10.45.33.mov
Desktop
Screen.Recording.2023-10-03.at.10.48.52.mov
iOS
Screen.Recording.2023-10-03.at.11.09.59.mov
Android
Screen.Recording.2023-10-03.at.14.41.12.mov

@tienifr tienifr marked this pull request as ready for review October 3, 2023 04:11
@tienifr tienifr requested a review from a team as a code owner October 3, 2023 04:11
@melvin-bot melvin-bot bot removed the request for review from a team October 3, 2023 04:11
@melvin-bot
Copy link

melvin-bot bot commented Oct 3, 2023

@mollfpr 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]

@melvin-bot melvin-bot bot requested a review from mollfpr October 3, 2023 04:11
@mollfpr
Copy link
Contributor

mollfpr commented Oct 3, 2023

@tienifr is there a reason why on mWeb/native, you didn't test step five?

@tienifr
Copy link
Contributor Author

tienifr commented Oct 3, 2023

I don't think that using keyboard shortcuts on mobile devices is possible.

@mollfpr
Copy link
Contributor

mollfpr commented Oct 4, 2023

@tienifr Our app now supports open shortcuts from the native app with an external keyboard. I can test the Android and mWeb/Chrome on a physical device and external keyboard. For iOS, you can test by enabling I/O > Input > Send keyboard input to device, then open the page with a shortcut.

@mollfpr
Copy link
Contributor

mollfpr commented Oct 4, 2023

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
28682.Web.mp4
Mobile Web - Chrome
28682.mWeb.Chrome.mp4
Mobile Web - Safari
28682.mWeb-Safari.mp4
Desktop
28682.Desktop.mp4
iOS
28682.iOS.mp4
Android
28682.Android.mp4

@tienifr
Copy link
Contributor Author

tienifr commented Oct 4, 2023

Great, thanks! Now I knew that.

@mollfpr
Copy link
Contributor

mollfpr commented Oct 4, 2023

@tienifr I think we can just use the records from mine to cover the test on native and mWeb since the change and test look good.

Copy link
Contributor

@mollfpr mollfpr left a comment

Choose a reason for hiding this comment

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

LGTM and tests well on all platforms 🚀

@melvin-bot melvin-bot bot requested a review from grgia October 4, 2023 12:42
@tienifr
Copy link
Contributor Author

tienifr commented Oct 6, 2023

@grgia Can you help take a look at this PR? Thanks

@tienifr
Copy link
Contributor Author

tienifr commented Oct 9, 2023

@grgia friendly bump

@tienifr
Copy link
Contributor Author

tienifr commented Oct 11, 2023

@grgia any updates?

@grgia
Copy link
Contributor

grgia commented Oct 11, 2023

Thanks for your patience, I have been working on a high priority project. Approved!

@grgia grgia merged commit 0a20111 into Expensify:main Oct 11, 2023
17 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.

@OSBotify
Copy link
Contributor

🚀 Deployed to staging by https://github.com/grgia in version: 1.3.81-4 🚀

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

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

Performance Comparison Report 📊

Significant Changes To Duration

Name Duration
App start TTI 1224.084 ms → 1296.573 ms (+72.489 ms, +5.9%) 🔴
App start runJsBundle 836.483 ms → 894.429 ms (+57.945 ms, +6.9%) 🔴
Show details
Name Duration
App start TTI Baseline
Mean: 1224.084 ms
Stdev: 42.712 ms (3.5%)
Runs: 1105.3467230000533 1149.095339000225 1154.5016749999486 1162.4857509997673 1163.0928190001287 1163.7053959998302 1165.219616000075 1167.2732480000705 1169.175975999795 1171.981780000031 1176.204206999857 1176.8912889999337 1178.606964000035 1180.932444000151 1182.9398889997974 1184.138919999823 1184.8546170000918 1185.0444310000166 1185.986256999895 1189.4058590000495 1190.0366839999333 1190.6870729997754 1191.586533000227 1194.8291440000758 1195.0397680001333 1196.1812649997883 1196.4503770000301 1198.3797430000268 1200.8366550002247 1202.5210409997962 1203.0442760000005 1204.1333180000074 1204.7951469998807 1206.410474000033 1206.7512960000895 1207.0626819999889 1207.9655539998785 1208.2796860001981 1209.5356999998912 1210.7303889999166 1212.0475249998271 1213.0605190000497 1215.203335000202 1216.5666439998895 1216.9934459999204 1217.29104000004 1217.6079620001838 1217.8631520001218 1220.209249000065 1221.9299960001372 1224.9514040001668 1228.2577619999647 1230.1868759999052 1231.7630340000615 1233.2261330001056 1233.2425409997813 1236.3329230002128 1237.3923419998027 1238.1849679998122 1242.660223999992 1244.217323999852 1248.5938059999608 1252.4864909998141 1256.3630209998228 1256.545882999897 1257.1604499998502 1257.1669330000877 1258.035329000093 1258.1828279998153 1259.2314530001022 1262.3792369998991 1262.5455209999345 1263.510801000055 1265.0543820001185 1265.1784350001253 1265.9755850001238 1267.8381010000594 1268.4128539999947 1272.6210130001418 1274.2391800000332 1275.1512199998833 1278.8414880000055 1281.0887190001085 1281.3452770002186 1287.4623460001312 1291.9205370000564 1292.4694989998825 1300.1768350000493 1310.7386340000667 1311.0836950000376 1338.4852599999867

Current
Mean: 1296.573 ms
Stdev: 49.571 ms (3.8%)
Runs: 1192.4801340000704 1198.2777829999104 1211.4047090001404 1219.1482080002315 1222.4529109997675 1222.862251999788 1229.8139209998772 1234.511448000092 1234.6226619998924 1237.394822999835 1240.5161000001244 1241.7366289999336 1245.338599999901 1247.5318140001036 1250.0970499999821 1250.3988470002078 1251.2121669999324 1255.842900000047 1256.0972699997947 1257.7827889998443 1257.9154869997874 1258.4883790002204 1261.3724850001745 1262.7193709998392 1262.7516250000335 1263.2775130001828 1265.2238090001047 1265.6217769999057 1266.6127679999918 1267.6509090000764 1272.9643199997954 1273.1938990000635 1273.6215530000627 1274.0917349997908 1274.8421049998142 1277.2614739998244 1278.5669339997694 1279.280881000217 1280.2574169998989 1280.4743070001714 1281.504718999844 1281.567023999989 1284.5893910001032 1284.6808279999532 1284.7361579998396 1288.2257090001367 1290.8545189998113 1292.3621660000645 1292.7655250001699 1296.700164000038 1296.8791100000963 1298.330901000183 1298.6669129999354 1300.4699989999644 1304.9230100000277 1308.9705980001017 1310.694821999874 1311.8274240000173 1312.9717159997672 1313.7901329998858 1314.210299000144 1314.8130080001429 1317.405584000051 1321.2881470001303 1330.325898999814 1332.2503820001148 1332.7124640000984 1332.8221220001578 1334.338618000038 1334.6902100001462 1335.1348029999062 1335.7988740000874 1337.8243439998478 1338.241375000216 1340.3908359999768 1341.8032100000419 1353.0609969999641 1354.2298059999011 1355.274920000229 1361.1118979998864 1367.470958000049 1369.7869629999623 1372.392469999846 1375.6856630002148 1376.6372790001333 1381.526023000013 1383.4957980001345 1395.3242520000786 1398.483506000135 1402.6612209999003 1415.697771999985
App start runJsBundle Baseline
Mean: 836.483 ms
Stdev: 30.244 ms (3.6%)
Runs: 769 780 782 784 785 786 790 790 792 794 796 801 804 807 810 811 812 815 816 816 817 818 819 820 821 821 822 822 822 822 824 825 826 826 828 829 830 831 832 832 832 833 833 833 834 835 835 837 837 838 838 839 839 839 841 842 844 846 847 847 847 850 851 851 852 855 856 857 858 858 862 864 865 866 868 870 872 872 876 876 876 878 878 885 890 902 902 902 912

Current
Mean: 894.429 ms
Stdev: 35.566 ms (4.0%)
Runs: 822 826 828 830 831 837 849 849 850 853 854 856 856 857 859 863 864 864 865 867 867 869 869 871 871 871 872 873 873 874 876 877 877 878 878 878 878 882 882 883 883 886 887 889 892 894 895 896 896 899 899 902 903 904 905 905 905 905 905 907 908 908 910 911 912 915 915 916 917 918 918 924 924 928 929 934 936 937 938 938 941 943 944 953 954 958 961 964 965 966 972

Meaningless Changes To Duration

Show entries
Name Duration
Open Search Page TTI 621.073 ms → 624.540 ms (+3.467 ms, +0.6%)
App start nativeLaunch 20.644 ms → 21.276 ms (+0.632 ms, +3.1%)
App start regularAppStart 0.014 ms → 0.016 ms (+0.001 ms, +8.2%)
Show details
Name Duration
Open Search Page TTI Baseline
Mean: 621.073 ms
Stdev: 18.965 ms (3.1%)
Runs: 590.9540199995972 592.5983489998616 598.1144210002385 598.5323489997536 599.3298749998212 599.5742999999784 601.3406169996597 601.3438719999976 601.4340010001324 601.8833419997245 602.1830649999902 602.4827890000306 602.5915930001065 602.678833999671 602.9310300000943 603.0611979998648 603.2414549998939 603.9918209998868 604.8378900000826 604.9414070001803 605.0484219999053 606.6548259998672 607.5160719999112 607.5326339998282 607.9509280002676 608.0845949999057 608.5479739997536 608.6331790001132 608.6704510003328 609.2892260001972 609.6796880001202 610.571858999785 610.8740240000188 611.4791260003112 611.6751299998723 611.813192000147 613.60705600027 613.7030440000817 614.143514000345 614.5143639999442 615.4415289997123 615.9524340000935 616.0015879999846 616.3675130000338 616.4837239999324 617.0589609998278 617.1541349999607 617.2591560003348 617.7456869999878 618.444376999978 618.9192300001159 619.0967199997976 619.4324950003065 620.644817000255 621.2640379997902 621.6019289996475 622.8253589998931 623.1482349997386 623.6219069999643 623.7679860000499 624.3985190000385 625.0440670000389 626.31612199964 631.5204670000821 632.568847999908 633.6865650000982 634.6274010003544 635.7471520002 637.1948650004342 638.4576009996235 639.3205979997292 639.8101400001906 640.8450929997489 641.8779300004244 644.287434999831 647.0709239998832 647.5372319999151 648.2917890003882 651.4456790001132 652.5507409996353 652.8318690001033 653.222779000178 653.6712650000118 653.7183840000071 655.3860679999925 660.7150880000554 674.3229990000837 677.6523040002212

Current
Mean: 624.540 ms
Stdev: 20.477 ms (3.3%)
Runs: 586.5059409998357 598.2277020001784 598.6483559999615 600.6882319999859 600.8287349999882 601.4386799996719 602.3048499999568 603.6017660005018 605.2770589999855 606.0401209997945 606.3604330001399 606.8045250000432 606.9038909999654 607.0389000000432 607.1479090000503 607.3935960000381 607.4912109998986 607.5498049994931 607.8971760002896 608.1351319998503 608.6020509991795 609.2029630001634 609.4618329992518 609.5861010001972 609.9261880000122 610.3049720004201 611.0860190000385 611.3645020006225 611.7097169999033 612.3096929998137 614.1477050008252 614.3514409996569 614.4069830002263 614.594605000224 614.8269460001029 614.9478360000066 615.0753170000389 615.8693439997733 616.1963710002601 616.3524180003442 617.1754160001874 617.4097090000287 618.009603000246 618.0717779994011 618.2711999993771 618.5726719992235 618.800456000492 619.0118009997532 619.3133549997583 619.64009599993 620.6209309995174 620.9458830002695 622.441529000178 622.5311690000817 623.0805259998888 623.8205169998109 624.1325679998845 624.2025560000911 624.7866209996864 624.9868979994208 625.0985110001639 625.2416179999709 628.3430989999324 628.7364099998958 629.2167150001042 630.6175130000338 632.5469160000794 632.9429119997658 637.1369640002958 639.7364100003615 640.6233729999512 641.125163000077 642.2282719993964 642.7371009998024 642.9632570003159 643.4919030005112 644.3794759996235 644.5013430002145 647.9547530002892 649.2521569998935 649.3944500000216 649.4269209997728 659.4521080004051 659.5397129999474 666.2572429999709 668.285116000101 672.9607750000432 673.2967940000817 673.8725180001929 680.0181080000475 685.3154710000381
App start nativeLaunch Baseline
Mean: 20.644 ms
Stdev: 1.583 ms (7.7%)
Runs: 18 18 19 19 19 19 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 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 21 21 21 21 21 21 21 21 21 22 22 22 22 22 22 22 22 22 22 22 22 23 23 23 23 23 23 23 23 24 24 24 25 25

Current
Mean: 21.276 ms
Stdev: 2.396 ms (11.3%)
Runs: 18 19 19 19 19 19 19 19 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 20 20 20 20 20 21 21 21 21 21 21 21 21 21 21 21 21 21 21 22 22 22 22 22 22 22 22 23 23 23 23 23 24 24 24 25 25 25 25 26 26 26 26 26 27 27 27 27
App start regularAppStart Baseline
Mean: 0.014 ms
Stdev: 0.001 ms (6.1%)
Runs: 0.0122079998254776 0.012817000038921833 0.013021000195294619 0.013143000192940235 0.013183999806642532 0.013264999724924564 0.0133050000295043 0.013386999722570181 0.013428000267595053 0.013509000185877085 0.013509000185877085 0.013549999799579382 0.013590000104159117 0.013671000022441149 0.013671999797224998 0.013672000262886286 0.013712000101804733 0.01371300034224987 0.013793999794870615 0.01383400009945035 0.0138349998742342 0.0138349998742342 0.0138349998742342 0.013915999792516232 0.013915999792516232 0.013916000258177519 0.013996999710798264 0.01399700017645955 0.014037999790161848 0.014038000255823135 0.014078000094741583 0.014078999869525433 0.014078999869525433 0.014078999869525433 0.014119999948889017 0.014159999787807465 0.014161000028252602 0.014200999867171049 0.014241000171750784 0.014241999946534634 0.014283000025898218 0.0143630001693964 0.0143630001693964 0.01436399994418025 0.014403999783098698 0.014404000248759985 0.014444999862462282 0.014444999862462282 0.01448499970138073 0.014566999860107899 0.014566999860107899 0.014567000325769186 0.014567000325769186 0.014606999699026346 0.014649000018835068 0.014649000018835068 0.014771000016480684 0.014771000016480684 0.014771000016480684 0.014810999855399132 0.014812000095844269 0.014851999934762716 0.014934000093489885 0.014973999932408333 0.01501399977132678 0.015176999848335981 0.015178000088781118 0.015300000086426735 0.01534000039100647 0.015421000309288502 0.015421000309288502 0.015463000163435936 0.015503000002354383 0.015544000081717968 0.015544000081717968 0.01582799991592765 0.015828999690711498 0.015828999690711498 0.015951000154018402 0.016030999831855297 0.01607299968600273 0.016316999681293964 0.0165200000628829 0.016846000216901302

Current
Mean: 0.016 ms
Stdev: 0.001 ms (6.6%)
Runs: 0.013386999722570181 0.013630999717861414 0.01375299971550703 0.013753000181168318 0.013753000181168318 0.013753999955952168 0.013753999955952168 0.013998000416904688 0.014403999783098698 0.014444999862462282 0.014527000021189451 0.014527000021189451 0.014730000402778387 0.014851999934762716 0.0148930000141263 0.0148930000141263 0.014932999853044748 0.014973999932408333 0.014973999932408333 0.015054999850690365 0.015054999850690365 0.015137000009417534 0.015176999848335981 0.015177000313997269 0.015177000313997269 0.015178000088781118 0.015217999927699566 0.015218000393360853 0.015219000168144703 0.01525900000706315 0.01525900000706315 0.015299000311642885 0.015299000311642885 0.015381000004708767 0.015381000004708767 0.015381000004708767 0.015381000004708767 0.015421999618411064 0.015461999922990799 0.015461999922990799 0.015462000388652086 0.015503000002354383 0.01554399961605668 0.015625 0.015665999613702297 0.015666000079363585 0.015705999918282032 0.015746999997645617 0.015786999836564064 0.015868999995291233 0.015868999995291233 0.015868999995291233 0.015910000074654818 0.015910000074654818 0.015950999688357115 0.01599099999293685 0.016032000072300434 0.016112999990582466 0.016114000231027603 0.016153999604284763 0.016194999683648348 0.016194999683648348 0.01627599960193038 0.01627599960193038 0.01631700014695525 0.0163569999858737 0.0163569999858737 0.01643799990415573 0.016439000144600868 0.016479999758303165 0.016560999676585197 0.01672299997881055 0.016764000058174133 0.016805000137537718 0.01700799958780408 0.017251999583095312 0.017292999662458897 0.017293000128120184 0.017456000205129385 0.017658999655395746 0.01769999973475933 0.01822899980470538 0.018350999802350998

@github-actions
Copy link
Contributor

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

@OSBotify
Copy link
Contributor

🚀 Deployed to staging by https://github.com/grgia in version: 1.3.83-0 🚀

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

@OSBotify
Copy link
Contributor

🚀 Deployed to production by https://github.com/jasperhuangg in version: 1.3.83-11 🚀

platform result
🤖 android 🤖 skipped 🚫
🖥 desktop 🖥 skipped 🚫
🍎 iOS 🍎 skipped 🚫
🕸 web 🕸 skipped 🚫

@OSBotify
Copy link
Contributor

🚀 Deployed to production by https://github.com/jasperhuangg in version: 1.3.83-11 🚀

platform result
🤖 android 🤖 skipped 🚫
🖥 desktop 🖥 skipped 🚫
🍎 iOS 🍎 skipped 🚫
🕸 web 🕸 skipped 🚫

1 similar comment
@OSBotify
Copy link
Contributor

🚀 Deployed to production by https://github.com/jasperhuangg in version: 1.3.83-11 🚀

platform result
🤖 android 🤖 skipped 🚫
🖥 desktop 🖥 skipped 🚫
🍎 iOS 🍎 skipped 🚫
🕸 web 🕸 skipped 🚫

@OSBotify
Copy link
Contributor

🚀 Deployed to production by https://github.com/jasperhuangg in version: 1.3.83-11 🚀

platform result
🤖 android 🤖 failure ❌
🖥 desktop 🖥 success ✅
🍎 iOS 🍎 failure ❌
🕸 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.

4 participants