-
Notifications
You must be signed in to change notification settings - Fork 114
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
⬆️ Upgrade to the latest everything #1168
⬆️ Upgrade to the latest everything #1168
Conversation
This is consistent with e-mission/e-mission-docs#1079 (comment) and may fix the errors in the CI/CD for the android SDK installation script Testing done: with the other changes in this PR, `npx cordova build` succeeded
This includes: - cordova-android - cordova-ios - core plugins (inapp-browser) - cordova CLI - nvm, node, npm - cocoapods - gradle This is consistent with e-mission/e-mission-docs#1079 (comment) to look through the changes in the cordova codebase
While investigating the issues with SSL errors, I discovered that cordova doesn't use the system gradle, but configures `build.gradle` so that the correct version of gradle is downloaded and installed on the first run. This means that we don't need to install gradle manually, which in turn, means that we don't need to install sdkman so that we install the pinned version of gradle. Yay for simplifying code and removing dependencies! e-mission/e-mission-docs#1079 (comment)
We had a pinned npm version, but we didn't actually use it, using the default version in node instead. As long as we have a reasonbly recent version of node, that seems like it will work. It is still pinned (just pinned implicitly by the node pin), and we don't actually use the pinned version now anyway. Yay for simplicity and not keeping bitrotted code around...
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## maint_upgrade_2024 #1168 +/- ##
=====================================================
Coverage ? 29.98%
=====================================================
Files ? 118
Lines ? 5190
Branches ? 1165
=====================================================
Hits ? 1556
Misses ? 3630
Partials ? 4
Flags with carried forward coverage won't be shown. Click here to find out more. |
So the good news is that the android SDK automated install works.
I am going to spend a time bounded effort on fixing this because the startup cost of getting back to this is so high. |
We are at the correct versions
And appear to find all the right patches
Let's try to reproduce locally first from scratch. |
Ok, so this is reproducible. I just did
and it failed Trying to fix it locally... |
Now I am not sure what I did yesterday for it to work. The precipitating event that got it to work yesterday was that I upgraded the cordova CLI version (e-mission/e-mission-docs#1079 (comment)), but I am now at the correct cordova version and it doesn't seem to fix it. This is why we have the CI/CD in the first place, so yay?! But now let's try to debug it locally. |
The script works, but the build still fails. There does seem to be some overlap with discovering `cordova-plugin-ibeacon`. Not sure why this is not happening for the other plugins...
Bingo! The `com.unarin.cordova.beacon` plugin is not in `package.json`, so it is an implicit package. It looks like we try to add it again, which seems to add the old deployment targets again (probably by calling `prepare`)
So the potential fixes are:
I think we should at least do (2) because there might be other implicit packages in the future. |
Adding the beacon plugins did not fix the issue
Resulted in
Aha! If I look at the plugin list, I still don't see the ibeacon plugin
I bet this is because the plugin name (at least on installation) is actually |
That fixed the `Discovered plugin "cordova-plugin-ibeacon". Adding it to the project` and `Plugin "com.unarin.cordova.beacon" already installed on android.` issue, but did not fix the replacement
I still don't know how I ever got this to work on my local laptop, and I have now lost that setting, so I can't figure it out.
|
This ensures that we don't "discover" the plugin and try to install it e-mission#1168 (comment) Without this change: ``` Discovered plugin "cordova-plugin-ibeacon". Adding it to the project Plugin "com.unarin.cordova.beacon" already installed on android. Plugin "com.unarin.cordova.beacon" already installed on ios. ``` With this change: those logs don't show up
It was in `before_build` earlier, but that led to the changes from the script being overridden before the actual compile started e-mission/e-mission-docs#1079 (comment) e-mission#1168 (comment) e-mission#1168 (comment) e-mission#1168 (comment) e-mission#1168 (comment) Testing done: Before this change: ``` Done setting IPHONEOS_DEPLOYMENT_TARGET Overwriting existing resource file at platforms/ios/emission/Resources/GoogleService-Info.plist ^[[37mcordova-custom-config: Applied custom config from config.xml to /Users/kshankar/Desktop/data/e-mission/native_code_upgrade/platforms/ios/emission/emission-Info.plist^[[39m ``` After this change: ``` Overwriting existing resource file at platforms/ios/emission/Resources/GoogleService-Info.plist ^[[37mcordova-custom-config: Applied custom config from config.xml to /Users/kshankar/Desktop/data/e-mission/native_code_upgrade/platforms/ios/emission/emission-Info.plist^[[39m ... Done setting IPHONEOS_DEPLOYMENT_TARGET ... Touch /Users/kshankar/Desktop/data/e-mission/native_code_upgrade/platforms/ios/build/Debug-iphonesimulator/emission.app (in target 'emission' from project 'emission') cd /Users/kshankar/Desktop/data/e-mission/native_code_upgrade/platforms/ios /usr/bin/touch -c /Users/kshankar/Desktop/data/e-mission/native_code_upgrade/platforms/ios/build/Debug-iphonesimulator/emission.app ** BUILD SUCCEEDED ** ```
`before_compile` worked!
|
…T_TARGET` Add additional logging to debug this more efficiently in the future The additional logging is accessed with `--verbose`. While testing this, I realized that `--verbose` would have been helpful in debugging this issue in the first place - it makes is really clear that the `pod install` happens as part of prepare before the compile. Still not sure how it worked locally before! - No verbose: ``` cordova-custom-config: Applied custom config from config.xml to /Users/kshankar/Desktop/data/e-mission/native_code_upgrade/platforms/ios/emission/emission-Info.plist Apply patch to [ 'node_modules/@shopify/flash-list/ios/RNFlashList.xcodeproj/project.pbxproj', 'node_modules/cordova-ios/CordovaLib/CordovaLib.xcodeproj/project.pbxproj', 'node_modules/cordova-ios/templates/project/__PROJECT_NAME__.xcodeproj/project.pbxproj', 'node_modules/react-native/template/ios/HelloWorld.xcodeproj/project.pbxproj', 'node_modules/react-native-gesture-handler/ios/RNGestureHandler.xcodeproj/project.pbxproj', 'node_modules/react-native-safe-area-context/ios/RNSafeAreaContext.xcodeproj/project.pbxproj', 'node_modules/react-native-screens/ios/RNScreens.xcodeproj/project.pbxproj', 'node_modules/react-native-vector-icons/RNVectorIcons.xcodeproj/project.pbxproj', 'platforms/ios/CordovaLib/CordovaLib.xcodeproj/project.pbxproj', 'platforms/ios/Pods/Pods.xcodeproj/project.pbxproj', 'platforms/ios/emission.xcodeproj/project.pbxproj' ] Done setting IPHONEOS_DEPLOYMENT_TARGET List simulator targets Select last emulator from list as default. List simulator targets No simulator found for ". Falling back to the default target. Building for "iPhone 15 Pro Max" Simulator (com.apple.CoreSimulator.SimDeviceType.iPhone-15-Pro-Max, iPhone-15-Pro-Max). Building project: /Users/kshankar/Desktop/data/e-mission/native_code_upgrade/platforms/ios/emission.xcworkspace Configuration: Debug Platform: emulator Target: iPhone 15 Pro Max Command line invocation: /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -workspace emission.xcworkspace -scheme emission -configuration Debug -sdk iphonesimulator -destination "platform=iOS Simulator,name=iPhone 15 Pro Max" build SYMROOT=/Users/kshankar/Desktop/data/e-mission/native_code_upgrade/platforms/ios/build ``` - verbose ``` pods.json found in platforms/ios Podfile found in platforms/ios Wrote to Podfile. Running `pod install` (to install plugins) ==== pod install start ==== ==== pod install end ==== Updating resource files at platforms/ios Prepared iOS project successfully Executing script found in config.xml for hook "before_compile": hooks/before_compile/ios/ios_change_deployment.js Context { hook: 'before_compile', opts: { platforms: [ 'ios' ], options: { verbose: true, argv: [] }, verbose: true, silent: false, nohooks: [], searchpath: undefined, projectRoot: '/Users/kshankar/Desktop/data/e-mission/native_code_upgrade', cordova: { platforms: [Array], plugins: [Array], version: '12.0.1' }, save: false, paths: [ '/Users/kshankar/Desktop/data/e-mission/native_code_upgrade/platforms/ios/www' ] }, cmdLine: '/Users/kshankar/.nvm/versions/node/v20.9.0/bin/node /Users/kshankar/Desktop/data/e-mission/native_code_upgrade/node_modules/.bin/cordova build ios --verbose', scriptLocation: '/Users/kshankar/Desktop/data/e-mission/native_code_upgrade/hooks/before_compile/ios/ios_change_deployment.js' } Apply patch to [ 'node_modules/@shopify/flash-list/ios/RNFlashList.xcodeproj/project.pbxproj', 'node_modules/cordova-ios/CordovaLib/CordovaLib.xcodeproj/project.pbxproj', 'node_modules/cordova-ios/templates/project/__PROJECT_NAME__.xcodeproj/project.pbxproj', 'node_modules/react-native/template/ios/HelloWorld.xcodeproj/project.pbxproj', 'node_modules/react-native-gesture-handler/ios/RNGestureHandler.xcodeproj/project.pbxproj', 'node_modules/react-native-safe-area-context/ios/RNSafeAreaContext.xcodeproj/project.pbxproj', 'node_modules/react-native-screens/ios/RNScreens.xcodeproj/project.pbxproj', 'node_modules/react-native-vector-icons/RNVectorIcons.xcodeproj/project.pbxproj', 'platforms/ios/CordovaLib/CordovaLib.xcodeproj/project.pbxproj', 'platforms/ios/Pods/Pods.xcodeproj/project.pbxproj', 'platforms/ios/emission.xcodeproj/project.pbxproj' ] Done setting IPHONEOS_DEPLOYMENT_TARGET Executing script found in plugin cordova-custom-config for hook "before_compile": plugins/cordova-custom-config/hooks/applyCustomConfig.js ^[[32mcordova-custom-config: Loaded module dependencies^[[39m ^[[32mcordova-custom-config: Running applyCustomConfig.js^[[39m ^[[32mcordova-custom-config: Finished applying platform config^[[39m before patching, grep -r IPHONEOS_DEPLOYMENT_TARGET platforms/ios | sort | uniq: platforms/ios/CordovaLib/CordovaLib.xcodeproj/project.pbxproj: IPHONEOS_DEPLOYMENT_TARGET = 13.0; platforms/ios/Pods/Pods.xcodeproj/project.pbxproj: IPHONEOS_DEPLOYMENT_TARGET = 10.0; platforms/ios/Pods/Pods.xcodeproj/project.pbxproj: IPHONEOS_DEPLOYMENT_TARGET = 13.0; platforms/ios/Pods/Pods.xcodeproj/project.pbxproj: IPHONEOS_DEPLOYMENT_TARGET = 8.0; platforms/ios/Pods/Pods.xcodeproj/project.pbxproj: IPHONEOS_DEPLOYMENT_TARGET = 9.0; platforms/ios/emission.xcodeproj/project.pbxproj: IPHONEOS_DEPLOYMENT_TARGET = 13.0; after patching, grep -r IPHONEOS_DEPLOYMENT_TARGET platforms/ios | sort | uniq: platforms/ios/CordovaLib/CordovaLib.xcodeproj/project.pbxproj: IPHONEOS_DEPLOYMENT_TARGET = 13.0; platforms/ios/Pods/Pods.xcodeproj/project.pbxproj: IPHONEOS_DEPLOYMENT_TARGET = 13.0; platforms/ios/emission.xcodeproj/project.pbxproj: IPHONEOS_DEPLOYMENT_TARGET = 13.0; ```
This ensures that we don't "discover" the plugin and try to install it e-mission#1168 (comment) Without this change: ``` Discovered plugin "cordova-plugin-ibeacon". Adding it to the project Plugin "com.unarin.cordova.beacon" already installed on android. Plugin "com.unarin.cordova.beacon" already installed on ios. ``` With this change: those logs don't show up
It was in `before_build` earlier, but that led to the changes from the script being overridden before the actual compile started e-mission/e-mission-docs#1079 (comment) e-mission#1168 (comment) e-mission#1168 (comment) e-mission#1168 (comment) e-mission#1168 (comment) Testing done: Before this change: ``` Done setting IPHONEOS_DEPLOYMENT_TARGET Overwriting existing resource file at platforms/ios/emission/Resources/GoogleService-Info.plist ^[[37mcordova-custom-config: Applied custom config from config.xml to /Users/kshankar/Desktop/data/e-mission/native_code_upgrade/platforms/ios/emission/emission-Info.plist^[[39m ``` After this change: ``` Overwriting existing resource file at platforms/ios/emission/Resources/GoogleService-Info.plist ^[[37mcordova-custom-config: Applied custom config from config.xml to /Users/kshankar/Desktop/data/e-mission/native_code_upgrade/platforms/ios/emission/emission-Info.plist^[[39m ... Done setting IPHONEOS_DEPLOYMENT_TARGET ... Touch /Users/kshankar/Desktop/data/e-mission/native_code_upgrade/platforms/ios/build/Debug-iphonesimulator/emission.app (in target 'emission' from project 'emission') cd /Users/kshankar/Desktop/data/e-mission/native_code_upgrade/platforms/ios /usr/bin/touch -c /Users/kshankar/Desktop/data/e-mission/native_code_upgrade/platforms/ios/build/Debug-iphonesimulator/emission.app ** BUILD SUCCEEDED ** ```
This fixes e-mission/e-mission-docs#1079
We are now at the first stage, where we are upgrading the base platform.
We have not yet made the code changes corresponding to the new API upgrade.