-
Notifications
You must be signed in to change notification settings - Fork 24.3k
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
Extracting Platform Specific TM code to break dependency cycle between ReactCommon and React-Core #36461
Conversation
This pull request was exported from Phabricator. Differential Revision: D44023865 |
1 similar comment
This pull request was exported from Phabricator. Differential Revision: D44023865 |
…n ReactCommon and React-Core (facebook#36461) Summary: Pull Request resolved: facebook#36461 This change breaks a dependency cycle between `ReactCommon` and `React-Core`. `React-Core` depends on `ReactCommon` to have access to the various `TurboModule` native files. `ReactCommon` depends on `React-Core` because the content of the `core/platform/ios` folder and the `samples` folder needs to access the `RCTBridge` and other files in Core. To break the circular dependency, we introduced two new `podspecs`: * `React-NativeModulesIOS` for the content of `core/platform/ios`. * `ReactCommon-Samples` for the content of the `samples` folder. In this way, the new dependencies are linear as `React-NativeModulesIOS` and `ReactCommon-Samples` depends on `React-Core` and `ReactCommon` and `React-Core` only depends on `ReactCommon`. While doing this, we also make sure that all the include path are aligned, to limit the amount of breaking changes. ## Changelog: [iOS][Breaking] - Split the `ReactCommon/react/nativemodule/core/platform/ios` and `ReactCommon/react/nativemodule/samples` in two separate pods to break circular dependencies. Differential Revision: D44023865 fbshipit-source-id: 4790395850a0f5eca5b5d8ec4b1c640e6e079ec4
fa86f96
to
4ea830b
Compare
Base commit: 803bb16 |
This pull request was exported from Phabricator. Differential Revision: D44023865 |
…n ReactCommon and React-Core (facebook#36461) Summary: Pull Request resolved: facebook#36461 This change breaks a dependency cycle between `ReactCommon` and `React-Core`. `React-Core` depends on `ReactCommon` to have access to the various `TurboModule` native files. `ReactCommon` depends on `React-Core` because the content of the `core/platform/ios` folder and the `samples` folder needs to access the `RCTBridge` and other files in Core. To break the circular dependency, we introduced two new `podspecs`: * `React-NativeModulesIOS` for the content of `core/platform/ios`. * `ReactCommon-Samples` for the content of the `samples` folder. In this way, the new dependencies are linear as `React-NativeModulesIOS` and `ReactCommon-Samples` depends on `React-Core` and `ReactCommon` and `React-Core` only depends on `ReactCommon`. While doing this, we also make sure that all the include path are aligned, to limit the amount of breaking changes. ## Changelog: [iOS][Breaking] - Split the `ReactCommon/react/nativemodule/core/platform/ios` and `ReactCommon/react/nativemodule/samples` in two separate pods to break circular dependencies. Differential Revision: D44023865 fbshipit-source-id: 63b20ba70e4fe83436cbd49fb6582c9cc495e5f4
4ea830b
to
8831f2d
Compare
This pull request was exported from Phabricator. Differential Revision: D44023865 |
…n ReactCommon and React-Core (facebook#36461) Summary: Pull Request resolved: facebook#36461 This change breaks a dependency cycle between `ReactCommon` and `React-Core`. `React-Core` depends on `ReactCommon` to have access to the various `TurboModule` native files. `ReactCommon` depends on `React-Core` because the content of the `core/platform/ios` folder and the `samples` folder needs to access the `RCTBridge` and other files in Core. To break the circular dependency, we introduced two new `podspecs`: * `React-NativeModulesApple` for the content of `core/platform/ios`. * `ReactCommon-Samples` for the content of the `samples` folder. In this way, the new dependencies are linear as `React-NativeModulesApple` and `ReactCommon-Samples` depends on `React-Core` and `ReactCommon` and `React-Core` only depends on `ReactCommon`. While doing this, we also make sure that all the include path are aligned, to limit the amount of breaking changes. ## Changelog: [iOS][Breaking] - Split the `ReactCommon/react/nativemodule/core/platform/ios` and `ReactCommon/react/nativemodule/samples` in two separate pods to break circular dependencies. Differential Revision: D44023865 fbshipit-source-id: 38e267504fb602ffa5ff9baa6ed9618b1dea55de
8831f2d
to
1bda114
Compare
This pull request was exported from Phabricator. Differential Revision: D44023865 |
…n ReactCommon and React-Core (facebook#36461) Summary: Pull Request resolved: facebook#36461 This change breaks a dependency cycle between `ReactCommon` and `React-Core`. `React-Core` depends on `ReactCommon` to have access to the various `TurboModule` native files. `ReactCommon` depends on `React-Core` because the content of the `core/platform/ios` folder and the `samples` folder needs to access the `RCTBridge` and other files in Core. To break the circular dependency, we introduced two new `podspecs`: * `React-NativeModulesApple` for the content of `core/platform/ios`. * `ReactCommon-Samples` for the content of the `samples` folder. In this way, the new dependencies are linear as `React-NativeModulesApple` and `ReactCommon-Samples` depends on `React-Core` and `ReactCommon` and `React-Core` only depends on `ReactCommon`. While doing this, we also make sure that all the include path are aligned, to limit the amount of breaking changes. ## Changelog: [iOS][Breaking] - Split the `ReactCommon/react/nativemodule/core/platform/ios` and `ReactCommon/react/nativemodule/samples` in two separate pods to break circular dependencies. Differential Revision: D44023865 fbshipit-source-id: 1e76dc840476333453481c439d72ff6044fcfdc0
1bda114
to
ebf94e6
Compare
This pull request was exported from Phabricator. Differential Revision: D44023865 |
…n ReactCommon and React-Core (facebook#36461) Summary: Pull Request resolved: facebook#36461 This change breaks a dependency cycle between `ReactCommon` and `React-Core`. `React-Core` depends on `ReactCommon` to have access to the various `TurboModule` native files. `ReactCommon` depends on `React-Core` because the content of the `core/platform/ios` folder and the `samples` folder needs to access the `RCTBridge` and other files in Core. To break the circular dependency, we introduced two new `podspecs`: * `React-NativeModulesApple` for the content of `core/platform/ios`. * `ReactCommon-Samples` for the content of the `samples` folder. In this way, the new dependencies are linear as `React-NativeModulesApple` and `ReactCommon-Samples` depends on `React-Core` and `ReactCommon` and `React-Core` only depends on `ReactCommon`. While doing this, we also make sure that all the include path are aligned, to limit the amount of breaking changes. ## Changelog: [iOS][Breaking] - Split the `ReactCommon/react/nativemodule/core/platform/ios` and `ReactCommon/react/nativemodule/samples` in two separate pods to break circular dependencies. Differential Revision: D44023865 fbshipit-source-id: c4fe26842c48533253e344c97d8e98cd3b5d958a
ebf94e6
to
8ac7edc
Compare
This pull request was exported from Phabricator. Differential Revision: D44023865 |
…n ReactCommon and React-Core (facebook#36461) Summary: Pull Request resolved: facebook#36461 This change breaks a dependency cycle between `ReactCommon` and `React-Core`. `React-Core` depends on `ReactCommon` to have access to the various `TurboModule` native files. `ReactCommon` depends on `React-Core` because the content of the `core/platform/ios` folder and the `samples` folder needs to access the `RCTBridge` and other files in Core. To break the circular dependency, we introduced two new `podspecs`: * `React-NativeModulesApple` for the content of `core/platform/ios`. * `ReactCommon-Samples` for the content of the `samples` folder. In this way, the new dependencies are linear as `React-NativeModulesApple` and `ReactCommon-Samples` depends on `React-Core` and `ReactCommon` and `React-Core` only depends on `ReactCommon`. While doing this, we also make sure that all the include path are aligned, to limit the amount of breaking changes. ## Changelog: [iOS][Breaking] - Split the `ReactCommon/react/nativemodule/core/platform/ios` and `ReactCommon/react/nativemodule/samples` in two separate pods to break circular dependencies. Differential Revision: D44023865 fbshipit-source-id: db8fb1d79589b6ae8b20f7ea7be25387d231e305
8ac7edc
to
d000638
Compare
This pull request was exported from Phabricator. Differential Revision: D44023865 |
…n ReactCommon and React-Core (facebook#36461) Summary: Pull Request resolved: facebook#36461 This change breaks a dependency cycle between `ReactCommon` and `React-Core`. `React-Core` depends on `ReactCommon` to have access to the various `TurboModule` native files. `ReactCommon` depends on `React-Core` because the content of the `core/platform/ios` folder and the `samples` folder needs to access the `RCTBridge` and other files in Core. To break the circular dependency, we introduced two new `podspecs`: * `React-NativeModulesApple` for the content of `core/platform/ios`. * `ReactCommon-Samples` for the content of the `samples` folder. In this way, the new dependencies are linear as `React-NativeModulesApple` and `ReactCommon-Samples` depends on `React-Core` and `ReactCommon` and `React-Core` only depends on `ReactCommon`. While doing this, we also make sure that all the include path are aligned, to limit the amount of breaking changes. ## Changelog: [iOS][Breaking] - Split the `ReactCommon/react/nativemodule/core/platform/ios` and `ReactCommon/react/nativemodule/samples` in two separate pods to break circular dependencies. Differential Revision: D44023865 fbshipit-source-id: bfb9bf859c7101be745a2b67c9216c9b471c654a
d000638
to
8eef6f5
Compare
This pull request was exported from Phabricator. Differential Revision: D44023865 |
…n ReactCommon and React-Core (facebook#36461) Summary: Pull Request resolved: facebook#36461 This change breaks a dependency cycle between `ReactCommon` and `React-Core`. `React-Core` depends on `ReactCommon` to have access to the various `TurboModule` native files. `ReactCommon` depends on `React-Core` because the content of the `core/platform/ios` folder and the `samples` folder needs to access the `RCTBridge` and other files in Core. To break the circular dependency, we introduced two new `podspecs`: * `React-NativeModulesApple` for the content of `core/platform/ios`. * `ReactCommon-Samples` for the content of the `samples` folder. In this way, the new dependencies are linear as `React-NativeModulesApple` and `ReactCommon-Samples` depends on `React-Core` and `ReactCommon` and `React-Core` only depends on `ReactCommon`. While doing this, we also make sure that all the include path are aligned, to limit the amount of breaking changes. ## Changelog: [iOS][Breaking] - Split the `ReactCommon/react/nativemodule/core/platform/ios` and `ReactCommon/react/nativemodule/samples` in two separate pods to break circular dependencies. Differential Revision: D44023865 fbshipit-source-id: 60c48a7ddc12911c979bd7867122d9cb4a9a9894
8eef6f5
to
37a19c3
Compare
This pull request was exported from Phabricator. Differential Revision: D44023865 |
…n ReactCommon and React-Core (facebook#36461) Summary: Pull Request resolved: facebook#36461 This change breaks a dependency cycle between `ReactCommon` and `React-Core`. `React-Core` depends on `ReactCommon` to have access to the various `TurboModule` native files. `ReactCommon` depends on `React-Core` because the content of the `core/platform/ios` folder and the `samples` folder needs to access the `RCTBridge` and other files in Core. To break the circular dependency, we introduced two new `podspecs`: * `React-NativeModulesApple` for the content of `core/platform/ios`. * `ReactCommon-Samples` for the content of the `samples` folder. In this way, the new dependencies are linear as `React-NativeModulesApple` and `ReactCommon-Samples` depends on `React-Core` and `ReactCommon` and `React-Core` only depends on `ReactCommon`. While doing this, we also make sure that all the include path are aligned, to limit the amount of breaking changes. ## Changelog: [iOS][Breaking] - Split the `ReactCommon/react/nativemodule/core/platform/ios` and `ReactCommon/react/nativemodule/samples` in two separate pods to break circular dependencies. Differential Revision: D44023865 fbshipit-source-id: 5567fb5e536600792a438624e2abfbcdd1f2d81c
37a19c3
to
1ea4e94
Compare
This pull request was exported from Phabricator. Differential Revision: D44023865 |
…n ReactCommon and React-Core (facebook#36461) Summary: Pull Request resolved: facebook#36461 This change breaks a dependency cycle between `ReactCommon` and `React-Core`. `React-Core` depends on `ReactCommon` to have access to the various `TurboModule` native files. `ReactCommon` depends on `React-Core` because the content of the `core/platform/ios` folder and the `samples` folder needs to access the `RCTBridge` and other files in Core. To break the circular dependency, we introduced two new `podspecs`: * `React-NativeModulesApple` for the content of `core/platform/ios`. * `ReactCommon-Samples` for the content of the `samples` folder. In this way, the new dependencies are linear as `React-NativeModulesApple` and `ReactCommon-Samples` depends on `React-Core` and `ReactCommon` and `React-Core` only depends on `ReactCommon`. While doing this, we also make sure that all the include path are aligned, to limit the amount of breaking changes. ## Changelog: [iOS][Breaking] - Split the `ReactCommon/react/nativemodule/core/platform/ios` and `ReactCommon/react/nativemodule/samples` in two separate pods to break circular dependencies. Differential Revision: D44023865 fbshipit-source-id: 416445e19b5a32abb76480bc13ce48ed2473248c
1ea4e94
to
c079361
Compare
…n ReactCommon and React-Core (facebook#36461) Summary: Pull Request resolved: facebook#36461 This change breaks a dependency cycle between `ReactCommon` and `React-Core`. `React-Core` depends on `ReactCommon` to have access to the various `TurboModule` native files. `ReactCommon` depends on `React-Core` because the content of the `core/platform/ios` folder and the `samples` folder needs to access the `RCTBridge` and other files in Core. To break the circular dependency, we introduced two new `podspecs`: * `React-NativeModulesApple` for the content of `core/platform/ios`. * `ReactCommon-Samples` for the content of the `samples` folder. In this way, the new dependencies are linear as `React-NativeModulesApple` and `ReactCommon-Samples` depends on `React-Core` and `ReactCommon` and `React-Core` only depends on `ReactCommon`. While doing this, we also make sure that all the include path are aligned, to limit the amount of breaking changes. ## Changelog: [iOS][Breaking] - Split the `ReactCommon/react/nativemodule/core/platform/ios` and `ReactCommon/react/nativemodule/samples` in two separate pods to break circular dependencies. Differential Revision: D44023865 fbshipit-source-id: d1709820a806c59199d04380c4ca958e5b05b1b6
This pull request was exported from Phabricator. Differential Revision: D44023865 |
c079361
to
287a539
Compare
…n ReactCommon and React-Core (facebook#36461) Summary: Pull Request resolved: facebook#36461 This change breaks a dependency cycle between `ReactCommon` and `React-Core`. `React-Core` depends on `ReactCommon` to have access to the various `TurboModule` native files. `ReactCommon` depends on `React-Core` because the content of the `core/platform/ios` folder and the `samples` folder needs to access the `RCTBridge` and other files in Core. To break the circular dependency, we introduced two new `podspecs`: * `React-NativeModulesApple` for the content of `core/platform/ios`. * `ReactCommon-Samples` for the content of the `samples` folder. In this way, the new dependencies are linear as `React-NativeModulesApple` and `ReactCommon-Samples` depends on `React-Core` and `ReactCommon` and `React-Core` only depends on `ReactCommon`. While doing this, we also make sure that all the include path are aligned, to limit the amount of breaking changes. ## Changelog: [iOS][Breaking] - Split the `ReactCommon/react/nativemodule/core/platform/ios` and `ReactCommon/react/nativemodule/samples` in two separate pods to break circular dependencies. Differential Revision: D44023865 fbshipit-source-id: 7cff6825c90f061e00610c88e1c8f3b5a85fe58c
287a539
to
1f6e52b
Compare
This pull request was exported from Phabricator. Differential Revision: D44023865 |
1 similar comment
This pull request was exported from Phabricator. Differential Revision: D44023865 |
…n ReactCommon and React-Core (facebook#36461) Summary: Pull Request resolved: facebook#36461 This change breaks a dependency cycle between `ReactCommon` and `React-Core`. `React-Core` depends on `ReactCommon` to have access to the various `TurboModule` native files. `ReactCommon` depends on `React-Core` because the content of the `core/platform/ios` folder and the `samples` folder needs to access the `RCTBridge` and other files in Core. To break the circular dependency, we introduced two new `podspecs`: * `React-NativeModulesApple` for the content of `core/platform/ios`. * `ReactCommon-Samples` for the content of the `samples` folder. In this way, the new dependencies are linear as `React-NativeModulesApple` and `ReactCommon-Samples` depends on `React-Core` and `ReactCommon` and `React-Core` only depends on `ReactCommon`. While doing this, we also make sure that all the include path are aligned, to limit the amount of breaking changes. ## Changelog: [iOS][Breaking] - Split the `ReactCommon/react/nativemodule/core/platform/ios` and `ReactCommon/react/nativemodule/samples` in two separate pods to break circular dependencies. Differential Revision: D44023865 fbshipit-source-id: b85a36b65072043f5ffbcd1d58ab29107c462cf0
1f6e52b
to
e4e699b
Compare
…n ReactCommon and React-Core (facebook#36461) Summary: Pull Request resolved: facebook#36461 This change breaks a dependency cycle between `ReactCommon` and `React-Core`. `React-Core` depends on `ReactCommon` to have access to the various `TurboModule` native files. `ReactCommon` depends on `React-Core` because the content of the `core/platform/ios` folder and the `samples` folder needs to access the `RCTBridge` and other files in Core. To break the circular dependency, we introduced two new `podspecs`: * `React-NativeModulesApple` for the content of `core/platform/ios`. * `ReactCommon-Samples` for the content of the `samples` folder. In this way, the new dependencies are linear as `React-NativeModulesApple` and `ReactCommon-Samples` depends on `React-Core` and `ReactCommon` and `React-Core` only depends on `ReactCommon`. While doing this, we also make sure that all the include path are aligned, to limit the amount of breaking changes. ## Changelog: [iOS][Breaking] - Split the `ReactCommon/react/nativemodule/core/platform/ios` and `ReactCommon/react/nativemodule/samples` in two separate pods to break circular dependencies. Reviewed By: mdvacca Differential Revision: D44023865 fbshipit-source-id: d7cb460cc762fe9d6911f7f41afc74d49e74fcbf
This pull request was exported from Phabricator. Differential Revision: D44023865 |
e4e699b
to
f9be097
Compare
This pull request has been merged in 21d5302. |
…n ReactCommon and React-Core (facebook#36461) Summary: Pull Request resolved: facebook#36461 This change breaks a dependency cycle between `ReactCommon` and `React-Core`. `React-Core` depends on `ReactCommon` to have access to the various `TurboModule` native files. `ReactCommon` depends on `React-Core` because the content of the `core/platform/ios` folder and the `samples` folder needs to access the `RCTBridge` and other files in Core. To break the circular dependency, we introduced two new `podspecs`: * `React-NativeModulesApple` for the content of `core/platform/ios`. * `ReactCommon-Samples` for the content of the `samples` folder. In this way, the new dependencies are linear as `React-NativeModulesApple` and `ReactCommon-Samples` depends on `React-Core` and `ReactCommon` and `React-Core` only depends on `ReactCommon`. While doing this, we also make sure that all the include path are aligned, to limit the amount of breaking changes. ## Changelog: [iOS][Breaking] - Split the `ReactCommon/react/nativemodule/core/platform/ios` and `ReactCommon/react/nativemodule/samples` in two separate pods to break circular dependencies. Reviewed By: mdvacca Differential Revision: D44023865 fbshipit-source-id: a97569506350db5735ac5534b1592471de196cbe
Summary:
This change breaks a dependency cycle between
ReactCommon
andReact-Core
.React-Core
depends onReactCommon
to have access to the variousTurboModule
native files.ReactCommon
depends onReact-Core
because the content of thecore/platform/ios
folder and thesamples
folder needs to access theRCTBridge
and other files in Core.To break the circular dependency, we introduced two new
podspecs
:React-NativeModulesIOS
for the content ofcore/platform/ios
.ReactCommon-Samples
for the content of thesamples
folder.In this way, the new dependencies are linear as
React-NativeModulesIOS
andReactCommon-Samples
depends onReact-Core
andReactCommon
andReact-Core
only depends onReactCommon
.While doing this, we also make sure that all the include path are aligned, to limit the amount of breaking changes.
Changelog:
[iOS][Breaking] - Split the
ReactCommon/react/nativemodule/core/platform/ios
andReactCommon/react/nativemodule/samples
in two separate pods to break circular dependencies.Differential Revision: D44023865