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

Improve new form validation #28821

Merged

Conversation

kowczarz
Copy link
Contributor

@kowczarz kowczarz commented Oct 4, 2023

Details

Fixed Issues

$ #25397

Tests

  • Verify that no errors appear in the JS console

Offline tests

QA Steps

  1. Go ot Settings -> Profile -> Display Name (should do both First name and Last name):
  2. Try to set the name to a normal string.
  3. Try to set the name with Emojis.
  4. Try to set the name to empty one.
  5. Try to set the name to one with only invisible characters (e.g. \u200D) (should be able to save, but the name will be treated as empty)
  • 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_H.265.mp4
Mobile Web - Chrome
android.web_H.265.mp4
Mobile Web - Safari
ios.web_H.265.mp4
Desktop
desktop_H.265.mp4
iOS
ios.native_H.265.mp4
Android
android.native_H.265.mp4

@melvin-bot
Copy link

melvin-bot bot commented Oct 4, 2023

Hey! I see that you made changes to our Form component. Make sure to update the docs in FORMS.md accordingly. Cheers!

@kosmydel kosmydel mentioned this pull request Oct 5, 2023
94 tasks
@kowczarz kowczarz marked this pull request as ready for review October 9, 2023 11:44
@kowczarz kowczarz requested a review from a team as a code owner October 9, 2023 11:44
@melvin-bot melvin-bot bot requested review from Santhosh-Sellavel and removed request for a team October 9, 2023 11:44
@Santhosh-Sellavel
Copy link
Collaborator

@kowczarz @luacmartins is this a regression or new PR? Does this require a C+ Review?

@kowczarz
Copy link
Contributor Author

kowczarz commented Oct 10, 2023

@Santhosh-Sellavel yes, we spotted an issue with validation after previous changes. The second question is to @luacmartins

@luacmartins luacmartins self-requested a review October 10, 2023 16:42
luacmartins
luacmartins previously approved these changes Oct 10, 2023
Copy link
Contributor

@luacmartins luacmartins left a comment

Choose a reason for hiding this comment

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

LGTM! I see that most of the logic is identical to what we currently do for Form.js

@kowczarz
Copy link
Contributor Author

@luacmartins should we re-assign a C+ from #27025, or current C+ can proceed with the review?

@luacmartins
Copy link
Contributor

luacmartins commented Oct 11, 2023

@Santhosh-Sellavel are you able to review this one today or @thesahindia since you reviewed the original PR too

@Santhosh-Sellavel
Copy link
Collaborator

Sorry, I can't get to it today!

@luacmartins luacmartins requested a review from situchan October 11, 2023 18:24
@luacmartins
Copy link
Contributor

Np! Gonna reassign to @situchan to get this merged and unblock the refactor PRs.

@luacmartins luacmartins removed the request for review from Santhosh-Sellavel October 11, 2023 18:24
@situchan
Copy link
Contributor

Please fix conflict

…lidation

# Conflicts:
#	src/components/Form/FormProvider.js
@kowczarz
Copy link
Contributor Author

@situchan I was already after hours, but now it's fixed

luacmartins
luacmartins previously approved these changes Oct 12, 2023
@luacmartins
Copy link
Contributor

@situchan are you available to review this PR today?

@situchan
Copy link
Contributor

reviewing now

@situchan
Copy link
Contributor

situchan commented Oct 12, 2023

iOS app freezes when focus on text input (also happening on main)

Screenshot

ios

@situchan
Copy link
Contributor

Can we fix this console error here?

Screenshot 2023-10-13 at 1 04 42 AM

@kowczarz
Copy link
Contributor Author

iOS app freezes when focus on text input (also happening on main)

I can't reproduce it

iOS screen recording
Simulator.Screen.Recording.-.iPhone.15.Pro.-.2023-10-13.at.12.05.35_H.265.mp4

@kowczarz
Copy link
Contributor Author

kowczarz commented Oct 13, 2023

Can we fix this console error here?

@situchan Done

@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.mov
Mobile Web - Chrome
mchrome.mov
Mobile Web - Safari
msafari.mov
Desktop
desktop.mov
iOS
ios.mov
Android
android.mov

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.

:shipit:

@melvin-bot melvin-bot bot requested a review from luacmartins October 13, 2023 19:29
@luacmartins luacmartins merged commit 06ab1eb into Expensify:main Oct 13, 2023
12 of 14 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/luacmartins in version: 1.3.84-0 🚀

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

Performance Comparison Report 📊

Significant Changes To Duration

Name Duration
App start TTI 1261.364 ms → 1688.855 ms (+427.491 ms, +33.9%) 🔴🔴
App start runJsBundle 862.378 ms → 1213.489 ms (+351.111 ms, +40.7%) 🔴🔴
Show details
Name Duration
App start TTI Baseline
Mean: 1261.364 ms
Stdev: 42.159 ms (3.3%)
Runs: 1155.8292709998786 1176.237138000317 1179.3263490004465 1189.9709729999304 1200.560242000036 1201.0425429996103 1208.1034159995615 1210.2226309999824 1212.277452999726 1212.9895810000598 1215.4156740000471 1220.1067460002378 1220.6660810001194 1222.2166809998453 1223.5876900004223 1224.7779489997774 1226.2659529997036 1226.3423939999193 1226.7148350002244 1227.7182069998235 1229.2570179998875 1230.5985620003194 1231.2181099997833 1232.4212360000238 1232.964002000168 1236.4305339995772 1237.6163820000365 1238.5701959999278 1239.3187969997525 1240.7988050002605 1241.453293999657 1241.4860779996961 1242.5497279996052 1242.7706840001047 1244.2079429998994 1245.137593000196 1246.3961929995567 1247.9020539997146 1250.4429339999333 1250.8811600003392 1251.464491000399 1251.7012849999592 1253.910174000077 1253.9905890002847 1255.9415359999985 1257.5027959998697 1258.378092000261 1260.3302459996194 1260.4673899998888 1260.566181000322 1261.6358099998906 1261.9757930003107 1263.500539000146 1264.0839449996129 1264.3750849999487 1267.663371999748 1268.5712339999154 1269.4003119999543 1269.6154110003263 1274.0468990001827 1274.0689570000395 1276.324187000282 1279.2261720001698 1284.9714400004596 1285.2647529998794 1286.5971360001713 1288.961581000127 1289.8715669997036 1290.0662099998444 1292.637490999885 1294.3787259999663 1296.0664830002934 1296.946042000316 1296.9623769996688 1298.9962870003656 1301.7207829998806 1303.249873000197 1305.1260069999844 1306.0260819997638 1306.2994480002671 1309.383837999776 1323.5103470003232 1325.0700890002772 1331.197584000416 1335.2319630002603 1339.0230620000511 1339.503761 1343.3033370003104 1344.341652999632 1357.1545120002702 1370.7723200004548

Current
Mean: 1688.855 ms
Stdev: 82.905 ms (4.9%)
Runs: 1508.6173019995913 1520.4788459995762 1530.142520999536 1542.5543969999999 1553.488191000186 1570.2194210002199 1571.3854050002992 1580.2561680004 1584.0056050000712 1589.7428190000355 1595.0091180000454 1597.0690590003505 1597.0908139999956 1605.5104980003089 1606.7607890004292 1606.8929209997877 1608.1214920002967 1610.237912000157 1614.1990029998124 1615.77787300013 1617.417395000346 1620.025728999637 1625.1428589997813 1631.8031449997798 1634.2487300001085 1634.709157999605 1635.4721670001745 1636.07773800008 1638.3108620001003 1638.7891530003399 1649.8692899998277 1650.4242099998519 1658.3964619999751 1662.5081650000066 1663.023512000218 1666.7701089996845 1666.9729019999504 1667.5088510001078 1668.190371000208 1673.9916890002787 1677.133058000356 1678.5826399996877 1679.2035379996523 1680.125950999558 1682.210291000083 1684.097345000133 1686.281736000441 1690.9625359997153 1691.86004900001 1692.954114999622 1693.5284470003098 1695.1259209997952 1695.36815799959 1697.6800720002502 1701.2355279996991 1707.9187049996108 1713.4105650000274 1713.6333919996396 1718.0614400003105 1720.007397999987 1723.4791670003906 1725.3123040003702 1727.2505949996412 1728.8852979997173 1729.4067850001156 1729.7625420000404 1732.5456109996885 1733.3266319995746 1737.5284000001848 1749.3003080002964 1755.877523000352 1766.074698000215 1771.4676350001246 1786.7450120002031 1787.5825140001252 1787.614675999619 1790.3078260002658 1792.9385439995676 1793.883716000244 1801.4398809997365 1804.4941769996658 1805.354240999557 1808.8844659999013 1811.095665000379 1813.0566630000249 1821.2339150002226 1822.919714000076 1823.5837979996577 1833.5104560004547 1854.2303659999743 1890.1307880003005
App start runJsBundle Baseline
Mean: 862.378 ms
Stdev: 34.977 ms (4.1%)
Runs: 785 795 796 798 802 802 803 805 809 825 829 829 830 831 831 832 833 834 834 835 836 836 837 839 840 840 841 843 845 846 846 848 848 850 851 853 854 855 855 856 857 857 857 858 858 863 864 865 866 868 870 870 870 871 871 871 872 873 874 875 876 877 878 879 879 888 890 892 892 893 893 894 895 895 897 900 901 901 902 902 902 902 904 904 912 921 923 923 941 971

Current
Mean: 1213.489 ms
Stdev: 56.826 ms (4.7%)
Runs: 1123 1127 1130 1130 1134 1138 1140 1142 1149 1150 1150 1151 1151 1152 1153 1154 1157 1159 1160 1163 1167 1168 1169 1171 1172 1173 1174 1176 1176 1176 1176 1177 1184 1184 1188 1190 1190 1190 1192 1192 1193 1195 1198 1202 1202 1205 1207 1208 1208 1208 1209 1212 1219 1221 1222 1224 1224 1225 1227 1229 1235 1237 1241 1242 1247 1248 1251 1254 1255 1256 1257 1260 1260 1263 1265 1265 1265 1266 1271 1277 1279 1284 1284 1294 1297 1309 1313 1317 1334 1337 1366 1376

Meaningless Changes To Duration

Show entries
Name Duration
Open Search Page TTI 620.023 ms → 629.108 ms (+9.085 ms, +1.5%)
App start regularAppStart 0.015 ms → 0.017 ms (+0.002 ms, +14.7%)
App start nativeLaunch 22.066 ms → 22.058 ms (-0.008 ms, ±0.0%)
Show details
Name Duration
Open Search Page TTI Baseline
Mean: 620.023 ms
Stdev: 16.091 ms (2.6%)
Runs: 597.8232829999179 602.094034999609 602.3717860002071 603.3462730003521 604.4409179994836 605.162313000299 605.1695969998837 605.3306889999658 605.4755450002849 605.5832120003179 605.6690680002794 605.8141270000488 605.8236899999902 606.1726890001446 606.7104489998892 607.0078940000385 607.0767829995602 607.1297199996188 607.1747649991885 607.9032800002024 607.9562579998747 608.7663170006126 608.7949630003422 608.9263110002503 609.015951000154 609.0614419998601 609.1439220001921 609.221842000261 609.3216970004141 609.3703209999949 609.3764650002122 609.6108809998259 609.7317310003564 609.7720139995217 609.867148000747 609.9025880005211 610.165527000092 611.0459810001776 613.5847979998216 613.8171389997005 614.2378340000287 614.2867440003902 614.6511639999226 614.9106450006366 615.2321779998019 616.019817000255 616.1322029996663 616.3104249993339 617.0981850000098 617.6501870006323 618.0950929997489 618.3087160000578 618.9833169998601 619.232382000424 619.5236820001155 620.5987550001591 621.9014889998361 622.8772390000522 623.4068600004539 623.4992680000141 623.605671999976 623.6528730001301 623.8760580001399 624.0013019992039 624.4923909995705 625.0851239999756 628.1278069997206 628.353516000323 631.1813970003277 631.6504319999367 633.2515459991992 634.3530280003324 635.9796959999949 637.6458750003949 638.0684009995311 643.6241049999371 643.6686209999025 646.4187830006704 647.271646999754 647.7938640005887 648.2122400002554 648.6104740006849 654.7515059998259 660.3438720004633 663.2307949997485 665.4525960003957 666.5983490003273

Current
Mean: 629.108 ms
Stdev: 18.906 ms (3.0%)
Runs: 593.116822000593 598.544108000584 598.7633459996432 599.3956709997728 600.3595780003816 600.6066490001976 605.0064289998263 605.8762610005215 605.9863689988852 606.1641030004248 606.7614339999855 607.9385169995949 608.8139249999076 608.8353679999709 609.0933839995414 610.6977130006999 611.0784100005403 611.2488209996372 613.5393479997292 614.1981210000813 614.6687020007521 615.4087730003521 616.1169840004295 616.5099279992282 617.4283859990537 617.8456629998982 618.0763349998742 618.6385500002652 618.738404000178 618.7453619986773 619.2514239996672 620.6905119996518 620.8106279997155 620.9205329995602 621.0984700005502 621.3580330004916 621.9269610000774 622.1430259998888 622.3220620006323 622.6066890005022 623.2902429997921 623.7887779995799 624.2844650000334 624.6097820000723 625.3717050002888 625.5376389995217 627.1440840000287 628.2862149998546 629.2757980003953 629.6432290002704 630.8020430002362 630.9123130012304 631.3850109996274 633.0820720000193 633.2243649996817 633.2972820000723 633.3867999985814 633.6530770007521 634.0722250007093 634.1031490005553 634.8380939997733 634.8861090000719 635.2722580004483 635.8421640004963 636.310628999956 638.4639090001583 639.319499000907 639.6193439997733 639.9425049992278 640.2523200009018 641.756999000907 641.8215739997104 642.8058280004188 643.1074629984796 647.9995120000094 649.6874189991504 650.187947999686 650.5607100017369 651.8026529997587 653.2507330011576 655.8470860002562 656.0466309990734 657.6638190001249 657.7473150007427 658.8042810000479 665.6684570005164 666.6917720008641 666.7319339998066 673.980671999976 674.7827160004526 676.6771240001544
App start regularAppStart Baseline
Mean: 0.015 ms
Stdev: 0.001 ms (6.0%)
Runs: 0.01281800027936697 0.012939000502228737 0.013020000420510769 0.013102000579237938 0.013183999806642532 0.013264999724924564 0.013264999724924564 0.013265000656247139 0.013346999883651733 0.013346999883651733 0.013387000188231468 0.013427999801933765 0.0134680001065135 0.013590999878942966 0.013671000488102436 0.013671999797224998 0.013712000101804733 0.013712999410927296 0.013794000260531902 0.013794000260531902 0.013794000260531902 0.0138349998742342 0.01387499924749136 0.01387499924749136 0.013915999792516232 0.013916000723838806 0.013957000337541103 0.013996999710798264 0.01403799932450056 0.01411999948322773 0.01416000071913004 0.014161000028252602 0.0142000000923872 0.014240999706089497 0.014282000251114368 0.014322999864816666 0.0143630001693964 0.0143630001693964 0.014364000409841537 0.014403999783098698 0.014405000023543835 0.014444999396800995 0.014444999396800995 0.01448499970138073 0.014485000632703304 0.014485999941825867 0.014527000486850739 0.014566999860107899 0.01460800040513277 0.014688999392092228 0.014729000627994537 0.014770000241696835 0.014771000482141972 0.014810999855399132 0.014810999855399132 0.014852000400424004 0.014852000400424004 0.0148930000141263 0.014932999387383461 0.014933000318706036 0.014973999932408333 0.014973999932408333 0.015014000236988068 0.01501499954611063 0.01501499954611063 0.015015000477433205 0.01505500078201294 0.015055999159812927 0.015056000091135502 0.015137000009417534 0.015137000009417534 0.015217999927699566 0.015300000086426735 0.015339999459683895 0.015421000309288502 0.015421999618411064 0.015461999922990799 0.015544000081717968 0.015625 0.015747000463306904 0.015747000463306904 0.015949999913573265 0.015951000154018402 0.0159919997677207 0.016235999763011932 0.016275999136269093 0.01648000068962574 0.016642000526189804

Current
Mean: 0.017 ms
Stdev: 0.001 ms (6.0%)
Runs: 0.014851999469101429 0.015015000477433205 0.015137000009417534 0.015177000313997269 0.015339999459683895 0.015381000004708767 0.015421999618411064 0.015461999922990799 0.015461999922990799 0.015461999922990799 0.015463000163435936 0.015542999841272831 0.015543999150395393 0.015544000081717968 0.015544000081717968 0.015625 0.015706999227404594 0.015747000463306904 0.015828999690711498 0.015829000622034073 0.015829000622034073 0.01587000023573637 0.01590999960899353 0.01590999960899353 0.0159919997677207 0.0159919997677207 0.016032000072300434 0.016032000072300434 0.01607200037688017 0.01607200037688017 0.016112999990582466 0.016114000231027603 0.016154000535607338 0.01623500045388937 0.01623500045388937 0.01623500045388937 0.016235999763011932 0.01635799929499626 0.016397999599575996 0.01639800053089857 0.01643799990415573 0.016439000144600868 0.016439000144600868 0.016439000144600868 0.016439000144600868 0.016439000144600868 0.016479999758303165 0.0165200000628829 0.01655999943614006 0.016560999676585197 0.016560999676585197 0.016560999676585197 0.016642000526189804 0.016642999835312366 0.0166830001398921 0.01672299951314926 0.016724000684916973 0.01680499967187643 0.01680499967187643 0.016885999590158463 0.016927000135183334 0.016927000135183334 0.017008000053465366 0.01708999928086996 0.017130999825894833 0.017252999357879162 0.017252999357879162 0.01729300059378147 0.017293999902904034 0.01733400020748377 0.01737399958074093 0.017374999821186066 0.017374999821186066 0.0174150001257658 0.017455999739468098 0.017496000044047832 0.017496999353170395 0.017578000202775 0.017659000121057034 0.017659000121057034 0.01766000036150217 0.017780999653041363 0.017985000275075436 0.018066000193357468 0.018391999416053295 0.018554000183939934 0.018636000342667103 0.018757999874651432 0.019084000028669834 0.01912400033324957 0.019164999946951866 0.019245999865233898
App start nativeLaunch Baseline
Mean: 22.066 ms
Stdev: 3.134 ms (14.2%)
Runs: 18 18 18 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 21 21 21 21 21 21 21 21 22 22 22 22 22 22 22 22 22 22 22 22 22 22 23 23 23 23 23 23 24 24 24 24 24 25 25 25 25 26 26 26 26 27 28 28 28 28 29 29 29 29 29 30

Current
Mean: 22.058 ms
Stdev: 2.607 ms (11.8%)
Runs: 18 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 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 22 22 22 22 22 22 22 22 22 22 22 22 22 23 23 23 23 23 23 23 23 23 24 24 24 24 24 25 26 26 26 26 26 27 27 27 28 28 28 28 30

@github-actions
Copy link
Contributor

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

@luacmartins luacmartins removed the DeployBlockerCash This issue or pull request should block deployment label Oct 13, 2023
@luacmartins
Copy link
Contributor

we're ignoring e2e tests

@OSBotify
Copy link
Contributor

🚀 Deployed to production by https://github.com/francoisl in version: 1.3.84-10 🚀

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

@OSBotify
Copy link
Contributor

🚀 Deployed to production by https://github.com/francoisl in version: 1.3.84-10 🚀

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

@OSBotify
Copy link
Contributor

🚀 Deployed to staging by https://github.com/luacmartins in version: 1.3.85-0 🚀

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

@OSBotify
Copy link
Contributor

🚀 Deployed to production by https://github.com/francoisl in version: 1.3.85-4 🚀

platform result
🤖 android 🤖 success ✅
🖥 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
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants