-
Notifications
You must be signed in to change notification settings - Fork 25k
fix: android autolinkLibrariesFromCommand should handle timeout or non zero exit code #45333
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
Conversation
cortinico
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the PR. Can we make the CI green @mfazekas ?
...s/gradle-plugin/settings-plugin/src/main/kotlin/com/facebook/react/ReactSettingsExtension.kt
Show resolved
Hide resolved
...s/gradle-plugin/settings-plugin/src/main/kotlin/com/facebook/react/ReactSettingsExtension.kt
Outdated
Show resolved
Hide resolved
a460b91 to
e5c1116
Compare
Base commit: b4b6614 |
@cortinico sorry, my bad should be fixed now, along with suggestions in review |
Yup I've left just a follow up comment and then we can merge this 👍 |
32ddf13 to
8708d0e
Compare
8708d0e to
313d65e
Compare
|
@cortinico has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator. |
|
@cortinico merged this pull request in 3782511. |
|
This pull request was successfully merged by @mfazekas in 3782511. When will my fix make it into a release? | How to file a pick request? |
…n zero exit code (#45333) Summary: Fixes: #45307 ## Changelog: [Android] [Fixed] - if `npx react-native-community/cli config` fails or timeouts proper error is shown and built is aborted, instead of leaving and empty autolinking.json During build `npx react-native-community/cli config` is generated into autolinking.json. When command fails, we should error and should not leave and empty `autolinking.json` Pull Request resolved: #45333 Test Plan: Output of the reproducer in #45307 looks like this: ```log android % ./gradlew assembleDebug Starting a Gradle Daemon (subsequent builds will be faster) ERROR: autolinkLibrariesFromCommand: Failed to create /Users/boga/Work/OSS/RNMBGL/rn-fabric-boolattribute/ReproducerApp/android/build/generated/autolinking/autolinking.json - process npx react-native-community/cli config exited with error code: 126 FAILURE: Build failed with an exception. * Where: Settings file '/Users/boga/Work/OSS/RNMBGL/rn-fabric-boolattribute/ReproducerApp/android/settings.gradle' line: 3 * What went wrong: A problem occurred evaluating settings 'android'. > ERROR: autolinkLibrariesFromCommand: Failed to create /Users/boga/Work/OSS/RNMBGL/rn-fabric-boolattribute/ReproducerApp/android/build/generated/autolinking/autolinking.json - process npx react-native-community/cli config exited with error code: 126 * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. BUILD FAILED in 10s 8 actionable tasks: 4 executed, 4 up-to-date ``` Output if you modify the package.json to be invalid looks like this: ```log android % ./gradlew assembleDebug ERROR: autolinkLibrariesFromCommand: process npx react-native-community/cli config exited with error code: 1 JSONError: JSON Error in /Users/boga/Work/OSS/RNMBGL/rn-fabric-boolattribute/ReproducerApp/package.json: 35 | "node": ">=18" 36 | }, > 37 | SOMETHING_NON_JSON | ^ 38 | "packageManager": "[email protected]", 39 | "resolutions": { 40 | "rtn-centered-text": "portal:../RTNCenteredText" Unexpected token "S" (0x53) in JSON at position 1019 while parsing near "...ode\": \">=18\"\n },\n SOMETHING_NON_JSON\n ..." 35 | "node": ">=18" 36 | }, > 37 | SOMETHING_NON_JSON | ^ 38 | "packageManager": "[email protected]", 39 | "resolutions": { 40 | "rtn-centered-text": "portal:../RTNCenteredText" at parseJson (/Users/boga/Work/OSS/RNMBGL/rn-fabric-boolattribute/ReproducerApp/node_modules/parse-json/index.js:29:21) at loadJson (/Users/boga/Work/OSS/RNMBGL/rn-fabric-boolattribute/ReproducerApp/node_modules/react-native-community/cli-config/node_modules/cosmiconfig/dist/loaders.js:48:16) at #loadConfiguration (/Users/boga/Work/OSS/RNMBGL/rn-fabric-boolattribute/ReproducerApp/node_modules/react-native-community/cli-config/node_modules/cosmiconfig/dist/ExplorerSync.js:116:36) at #loadConfigFileWithImports (/Users/boga/Work/OSS/RNMBGL/rn-fabric-boolattribute/ReproducerApp/node_modules/react-native-community/cli-config/node_modules/cosmiconfig/dist/ExplorerSync.js:87:54) at #readConfiguration (/Users/boga/Work/OSS/RNMBGL/rn-fabric-boolattribute/ReproducerApp/node_modules/react-native-community/cli-config/node_modules/cosmiconfig/dist/ExplorerSync.js:84:82) at search (/Users/boga/Work/OSS/RNMBGL/rn-fabric-boolattribute/ReproducerApp/node_modules/react-native-community/cli-config/node_modules/cosmiconfig/dist/ExplorerSync.js:50:63) at emplace (/Users/boga/Work/OSS/RNMBGL/rn-fabric-boolattribute/ReproducerApp/node_modules/react-native-community/cli-config/node_modules/cosmiconfig/dist/util.js:36:20) at ExplorerSync.search (/Users/boga/Work/OSS/RNMBGL/rn-fabric-boolattribute/ReproducerApp/node_modules/react-native-community/cli-config/node_modules/cosmiconfig/dist/ExplorerSync.js:78:42) at getUserDefinedOptionsFromMetaConfig (/Users/boga/Work/OSS/RNMBGL/rn-fabric-boolattribute/ReproducerApp/node_modules/react-native-community/cli-config/node_modules/cosmiconfig/dist/index.js:32:37) at mergeOptionsBase (/Users/boga/Work/OSS/RNMBGL/rn-fabric-boolattribute/ReproducerApp/node_modules/react-native-community/cli-config/node_modules/cosmiconfig/dist/index.js:60:31) FAILURE: Build failed with an exception. * Where: Settings file '/Users/boga/Work/OSS/RNMBGL/rn-fabric-boolattribute/ReproducerApp/android/settings.gradle' line: 3 * What went wrong: A problem occurred evaluating settings 'android'. > ERROR: autolinkLibrariesFromCommand: process npx react-native-community/cli config exited with error code: 1 * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. BUILD FAILED in 2s 8 actionable tasks: 4 executed, 4 up-to-date ``` Reviewed By: cipolleschi Differential Revision: D59582430 Pulled By: cortinico fbshipit-source-id: bedb9563175cc5c46f5af80cf309769e56b803cc
|
Hey guys @mfazekas @cortinico, does this fix support monorepos projects? I'd like to try to help. I get the following error: My |
|
If I run
I receive
|
Yes it should. @migueldaipre please open a separate issue and provide a reproducer of your repo setup. Ultimately, you should be able to invoke |
I saw this too, that lead to this PR, but wasn't able to reproduce after nuking the. node_modules and yarn install again. This fix doesn't address |
|
After I ran |
|
rm-rf node_modules and re-install packages, this fixed the issue for me after a recent upgrade to 0.75 |
Fixes: #45307
Changelog:
[Android] [Fixed] - if
npx @react-native-community/cli configfails or timeouts proper error is shown and built is aborted, instead of leaving and empty autolinking.jsonSummary
During build
npx @react-native-community/cli configis generated into autolinking.json. When command fails, we should error and should not leave and emptyautolinking.jsonTest Plan
Output of the reproducer in #45307 looks like this:
Output if you modify the package.json to be invalid looks like this: