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

Show info about workspace members added by secondary logins #23702

Merged
merged 25 commits into from
Oct 27, 2023

Conversation

neil-marcellini
Copy link
Contributor

@neil-marcellini neil-marcellini commented Jul 27, 2023

Details

Previously, if you added a workspace member with their primary login they wouldn't show up and a message saying "Member not found" would appear. If you refreshed than the member would show up under their primary login, because that's how users are added to workspaces / policies. It's a confusing flow.

Now the member will be added with their secondary login optimistically, then get added by their primary (preferred) login. We'll show an informative message "Some users were added with their primary logins" and under each primary login added with a secondary login it will say "Added by secondary login neil+secondary@expensifail.com", for example. When the main error message is dismissed the informative messages will disappear, or if you sign out. The messages are meant to be temporary.

I also created a new "MessagesRow" component which makes it easy to show dismissible info or error messages. It's extracted from OfflineWithFeedback and results in the same behavior.

Fixed Issues

$ #21639
PROPOSAL: N/A

Tests

Set up

  1. Log in with an account A
  2. Click your avatar at the top left
  3. Go to Profile > Contact method and click New contact method
  4. Enter account A's email with +secondary before the @ sign and click Add
  5. Click on the secondary contact method and validate it by entering the magic code
  6. sign out
  7. Repeat the same steps for a user B

Test main flow

  1. Sign in as a user C
  2. Go to workspace then Members
  3. Click the invite button.
  4. Enter and select the secondary logins for user A and B, as well as an account D who has only a primary login
  5. Click on Next and then Invite
  6. Verify that under the search input there's a green dot, a message "Some users were added with their primary logins.", and a close button
  7. Verify that all members have been added with their primary logins
  8. Verify that under A and B it says "Added by secondary login" and their secondary login
  9. Click the X to dismiss the message at the top
  10. Verify that all messages disappear

Test removing all members invited by secondary login

  1. Run test steps 1-8 above again
  2. Remove user A
  3. Verify that the message "Some users were added with their primary logins." is still visible
  4. Remove user B
  5. Verify that all informative messages disappear
  • Verify that no errors appear in the JS console

Offline tests

Repeat the same while offline before inviting, then go online and verify.

QA Steps

Same 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

I only tested on web and iOS because the changes should be platform independent and C+ will test all platforms.

Web

Main flow

web.mov

Remove members

removeMembersWeb.mov
Mobile Web - Chrome
Mobile Web - Safari
Desktop
iOS
iOS.MP4
Android

@neil-marcellini
Copy link
Contributor Author

@shawnborton would you please take a look at the web screenshot I included and the code if you like, and give me some feedback on the design?

@shawnborton
Copy link
Contributor

I think this feels good to me!

@neil-marcellini
Copy link
Contributor Author

neil-marcellini commented Aug 4, 2023

Ok this is ready for review now, except that I need the backend PR to be live before it can be tested by C+. I'm putting the backend PR up for review now.

@neil-marcellini neil-marcellini marked this pull request as ready for review August 9, 2023 17:22
@neil-marcellini neil-marcellini requested a review from a team as a code owner August 9, 2023 17:22
@melvin-bot melvin-bot bot requested review from allroundexperts and removed request for a team August 9, 2023 17:22
@melvin-bot
Copy link

melvin-bot bot commented Aug 9, 2023

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

@allroundexperts
Copy link
Contributor

allroundexperts commented Aug 9, 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
Screen.Recording.2023-10-24.at.6.56.15.AM.mov
Mobile Web - Chrome
Screen.Recording.2023-10-24.at.7.37.20.AM.mov
Mobile Web - Safari
Screen.Recording.2023-10-24.at.7.28.39.AM.mov
Desktop
Screen.Recording.2023-10-24.at.7.46.26.AM.mov
iOS
Screen.Recording.2023-10-24.at.7.33.18.AM.mov
Android
Screen.Recording.2023-10-24.at.7.40.14.AM.mov

@allroundexperts
Copy link
Contributor

Hi @neil-marcellini, can you please resolve the conflicts and address the comments?

@neil-marcellini
Copy link
Contributor Author

Sorry for the delay I've been focusing on distance requests. I'm also going on vacation for the rest of the week. I'll try to squeeze this in today but I might have to get to it much later.

@neil-marcellini
Copy link
Contributor Author

Woah I forgot about this for a long time, sorry. I'm going to make it a draft until I get it updated.

@neil-marcellini neil-marcellini marked this pull request as draft October 10, 2023 22:05
@neil-marcellini
Copy link
Contributor Author

@neil-marcellini Notice that the allroundexperts+pull+23702+c@gmail.com email doesn't show up in the list. Is that because of the following?

Is that "+c" account user C from the test steps above? If so then that's the account you should be logged in with and is the admin of the workspace. When you invite a member by their secondary login, their primary login will be added. It's a bit hard to tell what's going on in your video. Please provide specific test steps if you find a bug.

@neil-marcellini
Copy link
Contributor Author

I have a fix for the bug in progress, but I didn't quite get it working

@neil-marcellini
Copy link
Contributor Author

Bug: Removing the added users does not clear out the main message.

That's resolved and this is ready for another review!

Copy link
Contributor

@allroundexperts allroundexperts left a comment

Choose a reason for hiding this comment

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

Looks good!

@melvin-bot
Copy link

melvin-bot bot commented Oct 26, 2023

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

Copy link
Contributor

@MonilBhavsar MonilBhavsar left a comment

Choose a reason for hiding this comment

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

Looks good overall. Couple of minor NAB comments

src/components/MessagesRow.js Show resolved Hide resolved
src/components/MessagesRow.js Show resolved Hide resolved
src/components/MessagesRow.js Show resolved Hide resolved
src/libs/actions/Policy.js Show resolved Hide resolved
@neil-marcellini
Copy link
Contributor Author

I'm going to merge now because this PR / issue has been open for months. I can fix the NABs in a follow up.

@neil-marcellini neil-marcellini merged commit 32603b6 into main Oct 27, 2023
16 checks passed
@neil-marcellini neil-marcellini deleted the neil-secondary-members branch October 27, 2023 22:19
@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 27, 2023
@github-actions
Copy link
Contributor

Performance Comparison Report 📊

Significant Changes To Duration

Name Duration
App start TTI 1076.525 ms → 1228.998 ms (+152.473 ms, +14.2%) 🔴
App start runJsBundle 747.519 ms → 855.569 ms (+108.050 ms, +14.5%) 🔴
Show details
Name Duration
App start TTI Baseline
Mean: 1076.525 ms
Stdev: 28.228 ms (2.6%)
Runs: 1021.9447090001777 1023.427259999793 1031.807812999934 1032.4336439999752 1036.0612090001814 1038.455604000017 1044.033524000086 1044.101563999895 1045.7749189999886 1046.9482260001823 1048.4351110002026 1054.4936509998515 1055.2988280002028 1055.815134999808 1056.9655010001734 1057.9900600002147 1058.0104490001686 1060.6120179998688 1060.7071710000746 1060.84707600018 1063.1728770001791 1065.6450689998455 1066.6543229999952 1066.8655320000835 1070.4393179998733 1073.2145610000007 1073.285271000117 1073.6295329998247 1073.7693190001883 1074.4005470001139 1076.6334819998592 1078.7042189999484 1079.330978000071 1080.2857050001621 1082.9041610001586 1084.1308749997988 1085.9138009999879 1086.7267430000938 1087.7666310002096 1088.7696340000257 1090.6420840001665 1093.758497999981 1095.1083820001222 1096.654976000078 1097.2212439998984 1097.2954069999978 1097.7644719998352 1099.6092750001699 1101.8096199999563 1101.944476999808 1103.5017229998484 1115.5691120000556 1122.5109689999372 1123.3073229999281 1124.3630579998717 1131.6476750001311 1132.885908999946 1146.4687250000425

Current
Mean: 1228.998 ms
Stdev: 33.380 ms (2.7%)
Runs: 1142.1358449999243 1163.4548599999398 1179.0563799999654 1180.431043999968 1183.636896000011 1188.991694000084 1190.1410890000407 1190.7112439998891 1191.3756069999654 1191.857917000074 1194.4466800000519 1194.4625850000884 1197.5951060000807 1201.0556340001058 1204.8163169999607 1207.0493469999637 1208.512909000041 1209.8571709999815 1210.2052209998947 1213.6551139999647 1217.6702229999937 1218.0260030000936 1218.9143650000915 1221.166219000006 1223.7623280000407 1224.9740760000423 1226.0265240001027 1226.5261780000292 1228.7432430000044 1232.0612669999246 1232.2750740000047 1233.6402159999125 1235.2543329999316 1235.7353389998898 1236.6479720000643 1237.233159000054 1237.4716169999447 1239.117959999945 1240.4276240000036 1244.4758230000734 1245.4575610000174 1246.8749019999523 1248.323963999981 1248.5489940000698 1250.2297280000057 1251.0009520000312 1252.714954999974 1259.551640999969 1260.6539670000784 1266.3033050000668 1268.2442689999007 1269.9584669999313 1270.2645709998906 1271.8446730000433 1273.9142839999404 1279.9603540000971 1296.6430979999714 1297.0867190000135 1299.7265890000854
App start runJsBundle Baseline
Mean: 747.519 ms
Stdev: 19.812 ms (2.7%)
Runs: 703 707 707 708 718 721 721 730 730 731 732 732 732 732 737 737 739 740 741 743 743 746 746 746 747 749 749 750 752 752 753 753 754 754 754 755 756 756 757 758 759 760 762 763 763 765 766 767 778 778 779 781 781 793

Current
Mean: 855.569 ms
Stdev: 25.107 ms (2.9%)
Runs: 805 807 813 814 814 819 827 828 828 829 829 829 837 838 839 842 843 844 844 844 844 845 847 848 849 850 851 853 854 855 856 858 860 864 864 865 865 866 867 868 869 869 871 872 872 875 875 883 885 886 888 890 891 891 893 894 905 912

Meaningless Changes To Duration

Show entries
Name Duration
App start regularAppStart 0.014 ms → 0.015 ms (+0.001 ms, +7.5%)
Open Search Page TTI 706.174 ms → 703.845 ms (-2.329 ms, ±0.0%)
App start nativeLaunch 24.283 ms → 21.719 ms (-2.564 ms, -10.6%)
Show details
Name Duration
App start regularAppStart Baseline
Mean: 0.014 ms
Stdev: 0.001 ms (4.9%)
Runs: 0.01228900020942092 0.012653999961912632 0.012777000200003386 0.012858000118285418 0.012858000118285418 0.012898999731987715 0.012979999650269747 0.012980000115931034 0.012980000115931034 0.013020999729633331 0.013061000034213066 0.013061000034213066 0.013061999808996916 0.013062000274658203 0.01310200011357665 0.013142999727278948 0.013142999727278948 0.013143000192940235 0.013183000031858683 0.013183999806642532 0.013264999724924564 0.013265000190585852 0.013265000190585852 0.013265000190585852 0.013265000190585852 0.013346999883651733 0.013386999722570181 0.013467999640852213 0.0134680001065135 0.0134680001065135 0.013508999720215797 0.013590999878942966 0.013631000183522701 0.013631999958306551 0.013671999797224998 0.013712000101804733 0.013793999794870615 0.013794000260531902 0.0138349998742342 0.0138349998742342 0.013916000258177519 0.0139979999512434 0.014078000094741583 0.014078999869525433 0.01407900033518672 0.014201000332832336 0.01436399994418025 0.014403999783098698 0.014444999862462282 0.01444500032812357 0.014485000167042017 0.014485999941825867 0.014527000021189451 0.014566999860107899 0.014851999934762716 0.01501499954611063 0.015299000311642885 0.015299999620765448

Current
Mean: 0.015 ms
Stdev: 0.001 ms (5.7%)
Runs: 0.012898999964818358 0.013346000108867884 0.013346000108867884 0.013428000034764409 0.013590000104159117 0.013590999878942966 0.01359100011177361 0.013753999955952168 0.013793999794870615 0.013835000107064843 0.013835000107064843 0.013916000025346875 0.013916000025346875 0.013955999864265323 0.013956999871879816 0.014078999869525433 0.014119999948889017 0.014160000020638108 0.014200999867171049 0.01424099993892014 0.014282000018283725 0.014404000015929341 0.014404000015929341 0.014404000015929341 0.014405000023543835 0.014444999862462282 0.014445000095292926 0.014485999941825867 0.014526000013574958 0.014526999788358808 0.014567000092938542 0.014607999939471483 0.014607999939471483 0.014608000172302127 0.014770000008866191 0.014770000008866191 0.014771000016480684 0.014851999934762716 0.014851999934762716 0.014933999860659242 0.014973999932408333 0.015014000004157424 0.015015000011771917 0.015055000083521008 0.015055000083521008 0.015096000162884593 0.015178000088781118 0.015178000088781118 0.015339999925345182 0.015462000155821443 0.015583999920636415 0.015746999997645617 0.015787999844178557 0.0157880000770092 0.015828999923542142 0.016072999918833375 0.01615400006994605 0.016398000065237284 0.016398000065237284 0.016682999907061458
Open Search Page TTI Baseline
Mean: 706.174 ms
Stdev: 39.387 ms (5.6%)
Runs: 633.8142909999005 644.6538080000319 645.8725590002723 646.4952400000766 647.5867519997992 647.7131350003183 658.6587319998071 659.0041100000963 659.0043130000122 665.0782889998518 665.5325929997489 667.3429769999348 668.3391929999925 673.109701000154 675.9751789998263 676.197550999932 676.3404540000483 678.6661790004 682.4637859999202 682.8760990002193 683.1414789999835 683.5610759998672 684.0241700001061 687.2271730001085 689.7065440001898 690.881958999671 693.6231689997949 698.7321380004287 705.3479820000939 709.1917320000939 710.1942960000597 711.0162349999882 711.0295819998719 711.3602709998377 712.0301109999418 712.9473069999367 714.210083999671 714.4561360003427 715.3681239997968 718.6297200000845 721.6974689997733 726.7334389998578 727.8062740000896 730.3267009998672 736.3301190002821 736.574869999662 736.5769859999418 736.8513589999638 741.2801520000212 748.0396320000291 748.9303790000267 750.2469480000436 750.7402349999174 755.5637619998306 758.8733729999512 761.6925059999339 762.7893070001155 774.0525719998404 782.17240400007 787.1606049998663 790.7703859996982

Current
Mean: 703.845 ms
Stdev: 38.139 ms (5.4%)
Runs: 633.06197099993 640.8270679998677 648.8212079999503 649.3197830000427 659.2751470000949 665.8100590000395 666.0979410000145 666.365722999908 669.6967370000202 671.4894609998446 672.7202550000511 672.8378910000902 673.145385999931 677.2294519999996 678.0757659999654 678.6980800000019 678.9967859999742 679.1598310000263 679.4170739999972 679.5910650000442 680.9766029999591 681.1324060000479 682.3151449998841 683.3678790000267 683.5401210000273 684.5731210000813 686.7141120000742 689.7179370000958 692.4077969999053 693.5517179998569 694.1777350001503 695.2790119999554 695.5255539999343 695.7538260000292 697.3527020001784 697.6576340000611 699.1341959999409 711.7885340000503 715.0751960000489 718.7041829999071 720.8028159998357 725.5298669999465 726.9421800000127 728.0125740000512 728.994059999939 730.3388269999996 731.0562740000896 732.9021809999831 734.261108999839 740.4283040000591 741.3531499998644 746.8535159998573 747.4136559998151 747.4600840001367 749.8446860001422 753.0762130001094 771.0998540001456 773.4368080000859 773.7281899999361 801.4204100000206 810.1879889999982
App start nativeLaunch Baseline
Mean: 24.283 ms
Stdev: 3.536 ms (14.6%)
Runs: 19 19 19 20 20 20 20 20 20 21 21 22 22 22 22 22 22 22 22 22 22 23 23 23 23 23 23 23 23 23 23 23 24 24 24 24 24 24 25 25 25 26 26 26 26 27 27 27 28 29 29 29 29 29 30 30 32 32 32 32

Current
Mean: 21.719 ms
Stdev: 1.673 ms (7.7%)
Runs: 19 19 19 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 22 22 22 22 22 22 22 22 22 22 23 23 23 23 23 23 23 23 24 24 24 24 24 24 24 24 26 26

@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/neil-marcellini in version: 1.3.93-0 🚀

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

@neil-marcellini
Copy link
Contributor Author

I'm going to merge now because this PR / issue has been open for months. I can fix the NABs in a follow up.

Ok I kept my word, here is the clean up! [No QA] Clean up for added by secondary login messages

@OSBotify
Copy link
Contributor

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

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

@OSBotify
Copy link
Contributor

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

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

1 similar comment
@OSBotify
Copy link
Contributor

OSBotify commented Nov 1, 2023

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

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

@OSBotify
Copy link
Contributor

OSBotify commented Nov 2, 2023

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

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

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

Successfully merging this pull request may close these issues.

5 participants