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

[TS migration] Migrate 'NetworkConnection.js' lib to TypeScript #28016

Conversation

Skalakid
Copy link
Contributor

@Skalakid Skalakid commented Sep 22, 2023

Details

Migrated NetworkConnection.js lib to TypeScript

Fixed Issues

$ #24898
PROPOSAL: #24898

Tests

  1. Log in
  2. Launch console, and filter logs by NetworkConnection text
  3. Refresh the app and verify if network connection logs appear in the controls
  4. Turn off and then turn on internet connection and verify if app reconnected to the network and if new logs appeard in the console
  • Verify that no errors appear in the JS console

Offline tests

QA Steps

Sam as Tests

  • 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
web.mov
Mobile Web - Chrome
chrome.mov
Mobile Web - Safari
safari.mov
Desktop
desktop.mov
iOS
ios.mov
Android
android.mov

src/libs/Throttle.ts Outdated Show resolved Hide resolved
src/libs/NetworkConnection.ts Show resolved Hide resolved
src/libs/NetworkConnection.ts Outdated Show resolved Hide resolved
src/libs/NetworkConnection.ts Outdated Show resolved Hide resolved
Copy link
Contributor

@kubabutkiewicz kubabutkiewicz left a comment

Choose a reason for hiding this comment

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

LGTM!

@Skalakid Skalakid marked this pull request as ready for review October 9, 2023 09:53
@Skalakid Skalakid requested a review from a team as a code owner October 9, 2023 09:53
@melvin-bot melvin-bot bot requested review from Santhosh-Sellavel and removed request for a team October 9, 2023 09:53
@melvin-bot
Copy link

melvin-bot bot commented Oct 9, 2023

@Santhosh-Sellavel 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
Collaborator

@Santhosh-Sellavel Santhosh-Sellavel left a comment

Choose a reason for hiding this comment

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

I didn't review this

@melvin-bot
Copy link

melvin-bot bot commented Oct 9, 2023

We did not find an internal engineer to review this PR, trying to assign a random engineer to #24898 as well as to this PR... Please reach out for help on Slack if no one gets assigned!

@melvin-bot melvin-bot bot requested a review from robertjchen October 9, 2023 20:02
@robertjchen
Copy link
Contributor

robertjchen commented Oct 10, 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: mWeb Chrome
    • iOS: Native
    • iOS: mWeb 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
Mobile Web - Chrome
Mobile Web - Safari
Desktop
iOS
Android

Copy link
Contributor

@robertjchen robertjchen left a comment

Choose a reason for hiding this comment

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

LGTM!

@robertjchen robertjchen merged commit d916eff into Expensify:main Oct 10, 2023
13 of 14 checks passed
@melvin-bot melvin-bot bot added the Emergency label Oct 10, 2023
@melvin-bot
Copy link

melvin-bot bot commented Oct 10, 2023

@robertjchen looks like this was merged without a test passing. Please add a note explaining why this was done and remove the Emergency label if this is not an emergency.

@robertjchen
Copy link
Contributor

Bit a race condition happening, the checklist was completed and the check was re-run but this was not indicated correctly on the issue prior to merge.

@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 10, 2023
@github-actions
Copy link
Contributor

Performance Comparison Report 📊

Significant Changes To Duration

Name Duration
App start TTI 1258.018 ms → 1372.819 ms (+114.801 ms, +9.1%) 🔴
App start runJsBundle 863.298 ms → 935.088 ms (+71.790 ms, +8.3%) 🔴
Show details
Name Duration
App start TTI Baseline
Mean: 1258.018 ms
Stdev: 44.632 ms (3.5%)
Runs: 1155.739504000172 1162.1563349999487 1172.026291999966 1174.7281769998372 1175.033894999884 1180.1915569999255 1183.9728199997917 1192.8389220000245 1199.186739999801 1211.9854549998417 1214.262143000029 1215.9873979999684 1216.58627300011 1220.9431050000712 1222.202004000079 1222.3183149998076 1223.9337349999696 1224.646083000116 1224.7835569996387 1227.9773099999875 1229.2683589998633 1232.4883449999616 1234.5385630000383 1235.9726100000553 1236.347060999833 1239.2094080001116 1239.5365070002154 1239.8348289998248 1240.186621000059 1240.560742000118 1241.9801500001922 1242.3689209995791 1243.2781119998544 1243.6494590002112 1246.6294339997694 1249.106327000074 1253.381202999968 1255.5665009999648 1255.592676000204 1255.987533999607 1257.9796460000798 1258.3170329998247 1258.6530459998176 1259.8610769999214 1259.9896040000021 1260.2742949998938 1261.28732400015 1261.8025630000047 1261.8674510000274 1263.8458230001852 1264.9724759999663 1265.7204780001193 1266.3184250001796 1267.536379000172 1269.0468729999848 1270.821016000118 1272.8487909999676 1273.3081829999574 1273.7645200002007 1282.5208589998074 1282.8661159998737 1284.8714669998735 1285.7686130004004 1288.3975560003892 1291.1663500000723 1291.7537019997835 1291.8471830002964 1292.9757380001247 1295.8417830001563 1296.6016659997404 1300.049383000005 1300.6483359998092 1306.2136639999226 1313.490141000133 1318.7604249999858 1325.0001219999976 1325.152209999971 1325.6771140000783 1328.9021740001626 1329.1362129999325 1329.4605829999782 1347.2372050001286 1362.516377999913 1371.4383669998497

Current
Mean: 1372.819 ms
Stdev: 69.505 ms (5.1%)
Runs: 1249.5175630003214 1256.546438000165 1259.4803440002725 1261.1350809996948 1271.0224930001423 1272.269272999838 1280.595297000371 1284.3783639995381 1285.4717450002208 1288.8676899997517 1290.5309340003878 1293.0707860002294 1296.1483199996874 1299.3728719996288 1299.7108309995383 1299.9290950000286 1300.844952000305 1308.2244090000167 1308.396533000283 1313.8082879995927 1314.1126920003444 1314.3768699998036 1318.3008260000497 1319.1373129999265 1321.777773999609 1324.3942480003461 1328.7500320002437 1332.0412210002542 1335.70582200028 1336.2349340002984 1337.3737129997462 1337.4207929996774 1339.4964490002021 1340.7861970001832 1342.4450629996136 1342.7905900003389 1345.4630199996755 1346.4718610001728 1349.3495410000905 1350.393670000136 1353.4539559995756 1354.0632389998063 1355.6860429998487 1360.7858530003577 1361.5933389998972 1364.1069269999862 1365.2923550000414 1367.6892290003598 1370.3163559995592 1370.5707670003176 1375.4249299997464 1377.886811999604 1378.5145540004596 1378.6383189996704 1384.3949370002374 1386.6045450000092 1388.8699470004067 1394.2455559996888 1400.1992509998381 1401.8270330000669 1403.3010940002277 1412.6554359998554 1414.256839999929 1414.5751329995692 1418.7484280001372 1418.8675710000098 1420.8553919997066 1422.2371709998697 1427.7052629999816 1427.747344000265 1429.6276289997622 1431.1214699996635 1431.1490989997983 1435.0798840001225 1444.5571140004322 1444.7539809998125 1446.1136060003191 1447.4174410002306 1450.2609810000286 1454.8799259997904 1464.1930929999799 1466.7822019997984 1472.6752660004422 1475.2797809997573 1482.0907370001078 1482.167887000367 1492.9406639998779 1501.5003079995513 1505.6441449997947 1513.8289339998737 1587.2014130000025
App start runJsBundle Baseline
Mean: 863.298 ms
Stdev: 36.979 ms (4.3%)
Runs: 780 783 787 790 800 802 807 812 813 815 819 820 821 823 828 830 831 833 838 839 841 844 844 847 848 848 850 851 852 853 854 856 857 857 858 859 859 860 864 864 865 866 867 867 868 868 869 870 870 871 871 872 872 875 876 876 877 878 878 878 879 880 880 882 885 887 890 891 895 897 898 900 903 904 907 912 914 925 929 930 930 935 945 948

Current
Mean: 935.088 ms
Stdev: 59.022 ms (6.3%)
Runs: 830 836 841 841 845 849 853 859 862 863 863 869 870 871 875 875 875 878 882 883 884 884 889 890 892 893 895 897 901 903 905 907 907 912 913 913 913 918 919 920 923 927 927 927 929 931 933 933 933 934 935 939 939 940 941 943 946 948 949 954 954 954 955 959 966 967 971 975 975 979 990 991 991 992 996 998 998 1006 1012 1017 1020 1020 1021 1024 1033 1036 1040 1043 1052 1071 1081

Meaningless Changes To Duration

Show entries
Name Duration
Open Search Page TTI 637.962 ms → 646.097 ms (+8.135 ms, +1.3%)
App start nativeLaunch 22.667 ms → 24.456 ms (+1.789 ms, +7.9%)
App start regularAppStart 0.015 ms → 0.017 ms (+0.001 ms, +8.2%)
Show details
Name Duration
Open Search Page TTI Baseline
Mean: 637.962 ms
Stdev: 22.656 ms (3.6%)
Runs: 603.1210949998349 605.0765390004963 607.9965820005164 608.3867590008304 611.4726970000193 611.6854260005057 612.0713700000197 612.3927819998935 612.6652830000967 612.808675000444 612.8273520004004 613.0589199997485 613.4489339999855 614.2580570001155 614.7242430001497 615.835572000593 616.047159999609 618.4466960001737 618.6183679997921 619.3373620007187 620.2677419995889 620.538208999671 620.7034100005403 620.9755870001391 621.4891360001639 621.6997070005164 622.1507569998503 622.3090009996668 624.9050709996372 626.0991620002314 626.7437340002507 629.0039480002597 629.500204000622 629.5184329999611 629.8010660000145 630.1442469991744 630.8675539996475 631.3638110002503 631.4714360004291 632.2049970002845 632.6827800003812 633.0125730000436 633.412150000222 636.1656490005553 636.3961590006948 636.484864000231 636.6371670002118 636.7159019997343 637.0862639993429 637.6733400002122 638.1931969998404 638.219239000231 638.260498999618 638.5055749993771 638.8085529999807 638.9194339998066 639.4181730002165 640.1845710007474 640.2577320002019 641.0265309996903 641.7427980005741 642.5209150006995 645.1121829999611 645.5367430001497 645.5757250003517 645.92419399973 647.7245690003037 649.0692549999803 650.90625 651.3286549998447 652.34790099971 654.7471930002794 654.9113370003179 655.0594080006704 656.7752679996192 658.7412109998986 659.1619470007718 659.6035979995504 670.516155000776 672.7993980003521 676.9482840001583 680.8417970007285 680.8567299991846 683.0171710001305 685.3963219998404 690.8485930003226 695.183960000053 698.7665610006079 702.5852870000526

Current
Mean: 646.097 ms
Stdev: 22.899 ms (3.5%)
Runs: 609.4446220006794 609.4648029999807 613.8015139997005 614.2110999999568 614.6454669991508 615.8987639993429 617.3058680007234 617.8722339998931 617.90047199931 619.3319089999422 622.329183999449 623.0327960001305 624.2807210003957 624.4023040002212 625.1706950003281 625.6436769999564 625.7710779998451 625.9223639992997 628.2548829996958 630.4902340006083 630.9074299996719 630.9680999992415 631.0146479997784 631.5336509998888 631.701132000424 631.9388429997489 631.9574380004779 632.0562749998644 632.1364339999855 632.3640549993142 632.6169030005112 632.7780360002071 632.9734299993142 633.135172999464 633.4521890003234 634.4307450000197 634.5286050001159 638.3522539995611 639.1351730003953 639.1537280008197 639.2203370006755 639.2364099994302 639.4250489994884 639.5234779994935 640.0385750001296 640.1446130005643 640.35705600027 640.6252450002357 641.113688999787 641.3738609999418 642.3941239994019 642.7434490006417 645.255941000767 646.3802080005407 647.1177169997245 647.8721120003611 648.3739830004051 650.1432699998841 650.4128419999033 652.3190099997446 653.0710049998015 653.8368739997968 654.8105060001835 655.7934980001301 656.6960860006511 658.313395999372 658.6991790002212 658.9678549999371 659.0132240001112 661.5718999998644 661.8841960001737 663.0753180002794 663.4262290000916 664.2074379995465 664.3864749995992 665.6735849995166 666.3796389997005 666.9370929999277 672.4235439999029 675.4441729998216 677.9123129993677 683.0920009994879 683.7373049994931 683.9559739995748 690.1782630002126 690.9408370004967 695.6584069998935 697.7679039994255 698.0892749996856 705.6446529999375 706.863241000101
App start nativeLaunch Baseline
Mean: 22.667 ms
Stdev: 3.448 ms (15.2%)
Runs: 18 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 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 23 23 23 23 24 24 24 24 24 25 25 25 26 26 26 27 27 27 27 28 28 28 28 28 29 29 29 29 30 30 31 32

Current
Mean: 24.456 ms
Stdev: 2.910 ms (11.9%)
Runs: 19 20 21 21 21 21 21 21 21 21 21 21 21 21 22 22 22 22 22 22 22 22 22 22 22 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 24 24 24 24 24 24 24 24 24 24 24 24 24 25 25 25 25 25 25 25 25 25 25 26 26 26 26 26 26 26 26 26 27 28 28 28 29 29 29 29 29 29 29 29 30 30 30 31 31 32
App start regularAppStart Baseline
Mean: 0.015 ms
Stdev: 0.001 ms (7.7%)
Runs: 0.01293900003656745 0.013224000111222267 0.013631000183522701 0.013671999797224998 0.013712999876588583 0.013794000260531902 0.0138349998742342 0.013874999713152647 0.013916000258177519 0.013956000097095966 0.013956000097095966 0.0139979999512434 0.014078999869525433 0.014201000332832336 0.014241999946534634 0.014281999785453081 0.014404000248759985 0.014444999862462282 0.014485999941825867 0.014525999780744314 0.014527000021189451 0.014567000325769186 0.014649000018835068 0.01472900016233325 0.014770000241696835 0.014810999855399132 0.014812000095844269 0.014851000159978867 0.014851999934762716 0.014852000400424004 0.014852000400424004 0.014892000239342451 0.014973999932408333 0.015014000236988068 0.015055000316351652 0.015056000091135502 0.01509599993005395 0.01509599993005395 0.015136000700294971 0.015176999848335981 0.015217999927699566 0.01525900000706315 0.015300000086426735 0.015381000004708767 0.015381000004708767 0.015420999843627214 0.015422000084072351 0.015461999922990799 0.015503000002354383 0.015503000002354383 0.01550300046801567 0.015544000081717968 0.015625 0.015625 0.015665000304579735 0.015665999613702297 0.015705999918282032 0.01570700015872717 0.015746999997645617 0.015786999836564064 0.015828999690711498 0.015868999995291233 0.015990999527275562 0.01599099999293685 0.01607299968600273 0.01607300015166402 0.016193999908864498 0.016234999988228083 0.016234999988228083 0.016316000372171402 0.01631700014695525 0.016519999131560326 0.01652099983766675 0.016600999981164932 0.01680499967187643 0.01688600005581975 0.01696799974888563 0.01733399974182248 0.017416000366210938 0.017537000589072704 0.017578999511897564 0.017943999730050564 0.01814799988642335 0.018391999881714582 0.018635999877005816

Current
Mean: 0.017 ms
Stdev: 0.001 ms (6.9%)
Runs: 0.014526999555528164 0.01464799977838993 0.014649000018835068 0.0147299999371171 0.0148930000141263 0.015096000395715237 0.015259000472724438 0.01534000039100647 0.015381000004708767 0.015420999377965927 0.015461999922990799 0.015461999922990799 0.015463000163435936 0.015544000081717968 0.015584000386297703 0.015625 0.015665999613702297 0.015706000849604607 0.015747000463306904 0.015747000463306904 0.015828000381588936 0.015910000540316105 0.015949999913573265 0.015949999913573265 0.015949999913573265 0.015951000154018402 0.0159919997677207 0.016032000072300434 0.016071999445557594 0.01607200037688017 0.016073000617325306 0.016112999990582466 0.016112999990582466 0.016114000231027603 0.016153999604284763 0.016153999604284763 0.016153999604284763 0.016195000149309635 0.016234999522566795 0.01623500045388937 0.016235999763011932 0.016276000067591667 0.016316999681293964 0.01648000068962574 0.01660200022161007 0.01660200022161007 0.016642000526189804 0.016642999835312366 0.016764000058174133 0.01680499967187643 0.016844999976456165 0.016885999590158463 0.0168869998306036 0.016927000135183334 0.017009000293910503 0.017049000598490238 0.0170499999076128 0.017090000212192535 0.017090000212192535 0.01713000051677227 0.017211999744176865 0.0172520000487566 0.017253000289201736 0.017293999902904034 0.01733400020748377 0.017455999739468098 0.017578000202775 0.0176189998164773 0.0176189998164773 0.017619000747799873 0.017659000121057034 0.017741000279784203 0.01782199926674366 0.01782199926674366 0.017902999185025692 0.018106999807059765 0.018148000352084637 0.018391999416053295 0.0185139998793602 0.01859499979764223 0.018636000342667103 0.01887999940663576 0.019003000110387802 0.019164999946951866 0.01928700041025877 0.01953099947422743

@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/robertjchen in version: 1.3.81-0 🚀

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

@OSBotify
Copy link
Contributor

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

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.

6 participants