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

feat: React Native 0.71.14 with Xcode 15 stable #7114

Merged
merged 59 commits into from
Oct 30, 2023

Conversation

leotm
Copy link
Member

@leotm leotm commented Sep 4, 2023

Development & PR Process

  1. Follow MetaMask Mobile Coding Standards
  2. Add release-xx label to identify the PR slated for a upcoming release (will be used in release discussion)
  3. Add needs-dev-review label when work is completed
  4. Add the appropiate QA label when dev review is completed
    • needs-qa: PR requires manual QA.
    • No QA/E2E only: PR does not require any manual QA effort. Prior to merging, ensure that you have successful end-to-end test runs in Bitrise.
    • Spot check on release build: PR does not require feature QA but needs non-automated verification. In the description section, provide test scenarios. Add screenshots, and or recordings of what was tested.
  5. Add QA Passed label when QA has signed off (Only required if the PR was labeled with needs-qa)
  6. Add your team's label, i.e. label starting with team- (or external-contributor label if your not a MetaMask employee)

Description

Investigation into Xcode 14.2+ support

TODO

  • Fix Branch build error
    • Fork Branch repo, bump IPHONEOS_DEPLOYMENT_TARGETs from 8 to 12, update git submodule
  • Fix MixPanel build error
    • Fork MixPanel repo, IPHONEOS_DEPLOYMENT_TARGETs from 8 to 12, update git submodule
  • Upgrade RN from 0.71.6 to 0.71.13
  • Refactor Podfile
  • Raise/fix Sentry build issue
  • Update react-native.config.js to support NO_FLIPPER env var
  • Fix Yoga/YogaKit build error (disable Flipper natively)
  • Fix Xcode 15 build error: Unable to load ...frameworks-Debug-input-files.xcfilelist
  • Bump BitRise stack from osx-xcode-14.2.x-ventura to osx-xcode-15.0.x
  • Upgrade RN from 0.71.13 to 0.71.14 for additional Xcode 15 compat
  • Upgrade Detox for additional Xcode 15 compat
  • Fix BitRise osx-xcode-15.0.x smoke tests
    • Bump Detox config iOS sim from iPhone 12 Pro to iPhone 13 Pro
  • Test older Xcode 14.2
  • Remove Flipper from release-mode
  • Fix Flipper debug-mode tech debt
  • Reenable Flipper
  • Update build scripts for iPhone 13 Pro
  • Update docs for Xcode 15 and iPhone 13 Pro

Xcode 15 beta 8 tested up to a7ec533, then Xcode 15 stable since

start:ios must be run before running via Xcode 15, or cp node_modules/@metamask/mobile-provider/dist/index.js app/core/InpageBridgeWeb3.js can optionally be run

Xcode updates: https://developer.apple.com/documentation/updates/xcode

Screenshots/Recordings

in link above

Issue

fixes #6158

also fixes ⚠️

Xcode 14 2 warning

Checklist

  • There is a related GitHub issue
  • Tests are included if applicable
  • Any added code is fully documented

@github-actions
Copy link
Contributor

github-actions bot commented Sep 4, 2023

CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes.

@leotm leotm mentioned this pull request Sep 4, 2023
@socket-security
Copy link

socket-security bot commented Sep 4, 2023

Updated and removed dependencies detected. Learn more about Socket for GitHub ↗︎

Packages Version New capabilities Transitives Size Publisher
detox 20.11.0...20.13.1 None +0/-0 8.34 MB wix.mobile
react-native 0.71.6...0.71.14 None +6/-13 62.4 MB react-native-bot

🚮 Removed packages: metro@0.72.3, metro-react-native-babel-preset@0.73.9

@leotm

This comment was marked as outdated.

@codecov-commenter
Copy link

codecov-commenter commented Oct 2, 2023

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (3022144) 34.97% compared to head (59de56a) 34.98%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #7114   +/-   ##
=======================================
  Coverage   34.97%   34.98%           
=======================================
  Files        1030     1030           
  Lines       27379    27376    -3     
  Branches     2253     2253           
=======================================
  Hits         9577     9577           
+ Misses      17292    17289    -3     
  Partials      510      510           
Files Coverage Δ
app/util/device/index.js 50.00% <ø> (+5.55%) ⬆️

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

leotm added 3 commits October 2, 2023 15:40
…filelist

error: Unable to load contents of file list: '.../ios/Pods/Target Support Files/Pods-MetaMask/Pods-MetaMask-frameworks-Debug-input-files.xcfilelist' (in target 'MetaMask' from project 'MetaMask')
@leotm leotm changed the title feat: React Native 0.71.13 with Xcode 15 beta 8 feat: React Native 0.71.13 with Xcode 15 stable Oct 2, 2023
@leotm
Copy link
Member Author

leotm commented Oct 2, 2023

TODO: Bump

metamask-mobile/bitrise.yml

Lines 816 to 819 in 30e2693

meta:
bitrise.io:
stack: osx-xcode-14.2.x-ventura
machine_type_id: g2-m1-max.5core

from https://github.com/bitrise-io/stacks/blob/main/content/stack_reports/osx-xcode-14.2.x-ventura.md

to https://github.com/bitrise-io/stacks/blob/main/content/stack_reports/osx-xcode-15.0.x.md
or https://github.com/bitrise-io/stacks/blob/main/content/stack_reports/osx-xcode-15.0.x-edge.md

edit: done ✅ in 8daa624

nb: CI git submodules error and Xcode Sentry error still need a resolution done ✅

@jpcloureiro
Copy link
Contributor

nb: CI git submodules error and Xcode Sentry error still need a resolution

To solve the submodule errors we will have to either update BranchIO & Mixpanel submodules or fork their repos to apply the changes[1]

Changing the files inside these submodules directly will make the git submodule point to an invalid commit hash.
image

[1] 1c9fc2b & 71a8b0e

leotm added 5 commits October 19, 2023 13:53
And match current Detox sim passing BitRise smoke tests

iPhone 13 Pro comes setup ootb on Xcode 15

iPhone 13 is the default launched by RN
Follow-up: 5006b1a

Despite us not yet running Detox in release mode due to issues
package.json Show resolved Hide resolved
package.json Outdated Show resolved Hide resolved
@leotm leotm requested a review from legobeat October 25, 2023 16:44
Copy link
Contributor

@jpcloureiro jpcloureiro left a comment

Choose a reason for hiding this comment

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

lgtm

@cortisiko
Copy link
Member

@legobeat One small comment, please update the new default device in the Readme: https://github.com/MetaMask/metamask-mobile#ios and https://github.com/MetaMask/metamask-mobile#ios-2

@sonarqubecloud
Copy link

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
0.0% 0.0% Duplication

@leotm
Copy link
Member Author

leotm commented Oct 30, 2023

@legobeat One small comment, please update the new default device in the Readme: https://github.com/MetaMask/metamask-mobile#ios and https://github.com/MetaMask/metamask-mobile#ios-2

think this was for me right :) both of those updated in the pr

or if meant smth else happy to follow-up

@leotm
Copy link
Member Author

leotm commented Oct 30, 2023

https://app.bitrise.io/app/be69d4368ee7e86d/pipelines/e773b76c-7813-4ab2-bbc2-240093da1797

ios_e2e_test

android_e2e_test

unsure how the pr affects Android :suspect:
likely flakey test, going to re-run

@leotm
Copy link
Member Author

leotm commented Oct 30, 2023

https://app.bitrise.io/app/be69d4368ee7e86d/pipelines/e773b76c-7813-4ab2-bbc2-240093da1797

ios_e2e_test

android_e2e_test

unsure how the pr affects Android :suspect: likely flakey test, going to re-run

yeah likely flakey BitRise internet connection

first Android failing on 2 network requests :suspect:

BUILD SUCCESSFUL in 16m 18s
998 actionable tasks: 993 executed, 5 up-to-date
17:20:22.986 detox[34293] B jest --config e2e/jest.e2e.config.js --testNamePattern Smoke
17:20:32.014 detox[34351] i onboarding-wizard-opt-in.spec.js is assigned to emulator-5554 (emulator)
17:20:32.025 detox[34351] i (node:34351) V8: /bitrise/src/node_modules/ganache/dist/node/0.js:2 Linking failure in asm.js: Unexpected stdlib member
(Use `node --trace-warnings ...` to show where the warning was created)
17:20:51.639 detox[34351] i typed-sign.spec.js is assigned to emulator-5554 (emulator)
17:20:51.648 detox[34351] i (node:34351) V8: /bitrise/src/node_modules/ganache/dist/node/0.js:2 Linking failure in asm.js: Unexpected stdlib member
17:21:16.078 detox[34351] i add-custom-rpc.spec.js is assigned to emulator-5554 (emulator)
17:21:16.087 detox[34351] i (node:34351) V8: /bitrise/src/node_modules/ganache/dist/node/0.js:2 Linking failure in asm.js: Unexpected stdlib member
17:21:20.313 detox[34351] i permission-system-delete-wallet.spec.js is assigned to emulator-5554 (emulator)
17:21:20.317 detox[34351] i (node:34351) V8: /bitrise/src/node_modules/ganache/dist/node/0.js:2 Linking failure in asm.js: Unexpected stdlib member
17:21:25.251 detox[34351] i swap-tokens.spec.js is assigned to emulator-5554 (emulator)
17:21:25.258 detox[34351] i (node:34351) V8: /bitrise/src/node_modules/ganache/dist/node/0.js:2 Linking failure in asm.js: Unexpected stdlib member
17:21:30.871 detox[34351] i browser-tests.spec.js is assigned to emulator-5554 (emulator)
17:21:30.903 detox[34351] i (node:34351) V8: /bitrise/src/node_modules/ganache/dist/node/0.js:2 Linking failure in asm.js: Unexpected stdlib member
17:21:37.945 detox[34345] i start-exploring.spec.js is assigned to emulator-15646 (emulator)
17:21:37.974 detox[34345] i (node:34345) V8: /bitrise/src/node_modules/ganache/dist/node/0.js:2 Linking failure in asm.js: Unexpected stdlib member
(Use `node --trace-warnings ...` to show where the warning was created)
17:21:43.221 detox[34351] i Starting fixture server...
17:21:43.225 detox[34351] i The fixture server is started
17:21:43.225 detox[34351] i Loading JSON state...
17:21:43.228 detox[34351] i JSON state loaded
17:21:53.886 detox[34345] i The app is busy with the following tasks:
• 2 network requests with URLs:
  - URL #1: https://api.etherscan.io/api?module=account&offset=40&sort=desc&action=txlist&tag=latest&page=1
  - URL #2: https://api.etherscan.io/api?module=account&offset=40&sort=desc&action=tokentx&tag=latest&page=1
17:22:03.715 detox[34351] i The app is busy with the following tasks:
• "LooperIdlingResource-380-mqt_js" (JS Thread) is executing (JavaScript code).
• 2 network requests with URLs:
  - URL #1: https://api.etherscan.io/api?module=account&address=0x76cf1CdD1fcC252442b50D6e97207228aA4aefC3&offset=40&sort=desc&action=tokentx&tag=latest&page=1
  - URL #2: https://api.etherscan.io/api?module=account&address=0x76cf1CdD1fcC252442b50D6e97207228aA4aefC3&offset=40&sort=desc&action=txlist&tag=latest&page=1
• Activity on the React-Native bridge.
17:22:03.893 detox[34345] i The app is busy with the following tasks:
• 2 network requests with URLs:
  - URL #1: https://api.etherscan.io/api?module=account&offset=40&sort=desc&action=txlist&tag=latest&page=1
  - URL #2: https://api.etherscan.io/api?module=account&offset=40&sort=desc&action=tokentx&tag=latest&page=1
17:22:13.725 detox[34351] i The app is busy with the following tasks:
• 2 network requests with URLs:
  - URL #1: https://api.etherscan.io/api?module=account&address=0x76cf1CdD1fcC252442b50D6e97207228aA4aefC3&offset=40&sort=desc&action=tokentx&tag=latest&page=1
  - URL #2: https://api.etherscan.io/api?module=account&address=0x76cf1CdD1fcC252442b50D6e97207228aA4aefC3&offset=40&sort=desc&action=txlist&tag=latest&page=1
17:22:13.901 detox[34345] i The app is busy with the following tasks:
• 2 network requests with URLs:
  - URL #1: https://api.etherscan.io/api?module=account&offset=40&sort=desc&action=txlist&tag=latest&page=1
  - URL #2: https://api.etherscan.io/api?module=account&offset=40&sort=desc&action=tokentx&tag=latest&page=1
FAIL e2e/specs/settings/addressbook-tests.spec.js
  ● Test suite failed to run
    Exceeded timeout of 120000ms while setting up Detox environment
17:22:48.615 detox[34345] i The app is busy with the following tasks:
• "LooperIdlingResource-360-mqt_js" (JS Thread) is executing (JavaScript code).
• Activity on the React-Native bridge.
17:23:46.217 detox[34345] i The app seems to be idle
PASS e2e/specs/wallet/start-exploring.spec.js (207.037 s)

@leotm
Copy link
Member Author

leotm commented Oct 30, 2023

https://app.bitrise.io/app/be69d4368ee7e86d/pipelines/e773b76c-7813-4ab2-bbc2-240093da1797
ios_e2e_test
android_e2e_test
unsure how the pr affects Android :suspect: likely flakey test, going to re-run

yeah likely flakey BitRise internet connection

first Android failing on 2 network requests :suspect:

yep it was flakey BitRise internet on those tests, Android now passing

https://app.bitrise.io/build/9e7f91de-ec83-4075-afdc-3933dd427853

android_e2e_test

@leotm leotm merged commit 867a410 into main Oct 30, 2023
25 checks passed
@leotm leotm deleted the react-native-0.71.13-xcode-15-beta-8 branch October 30, 2023 12:23
@github-actions github-actions bot locked and limited conversation to collaborators Oct 30, 2023
@metamaskbot metamaskbot added release-7.11.0 Issue or pull request that will be included in release 7.11.0 INVALID-PR-TEMPLATE PR's body doesn't match template labels Oct 30, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
INVALID-PR-TEMPLATE PR's body doesn't match template release-7.11.0 Issue or pull request that will be included in release 7.11.0 team-mobile-platform
Projects
None yet
Development

Successfully merging this pull request may close these issues.

First time build issue
8 participants