FCE-3086: Use fishjam-react-native-webrtc as submodule in mobile-sdk#541
Merged
MiloszFilimowski merged 4 commits intoMay 25, 2026
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates the monorepo to consume the fishjam-react-native-webrtc fork as a git submodule + Yarn workspace (packages/react-native-webrtc) and removes the previous Expo plugin workaround used for local development. It also adds a release-time guard to ensure the submodule points to a tagged, npm-published WebRTC version, and updates CI/README accordingly.
Changes:
- Add
packages/react-native-webrtcas a git submodule and Yarn workspace; switch@fishjam-cloud/react-native-clientto consume it viaworkspace:*and build it as part of its build/prepare flow. - Remove
examples/mobile-client/common/plugins/local-webrtc-paths plugin usage and implementation; rely on autolinking + workspace symlink. - Add
check:webrtc-publishedrelease gate and update GitHub Actions workflows to checkout submodules recursively.
Reviewed changes
Copilot reviewed 22 out of 23 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
yarn.lock |
Updates lockfile to reflect the new @fishjam-cloud/react-native-webrtc workspace and removed plugin workspace deps. |
release-automation/check-webrtc-published.mjs |
Adds a release automation script to verify the WebRTC submodule is pinned to a tagged commit and its package version is published on npm. |
README.md |
Updates contributor workflow to instruct cloning/init of git submodules. |
packages/mobile-client/src/overrides/RTCPeerConnection.ts |
Tightens typing of the stored RTC configuration using constructor parameter inference. |
packages/mobile-client/README.md |
Rewrites local WebRTC fork development instructions to use the submodule + workspace approach. |
packages/mobile-client/package.json |
Switches WebRTC dependency/peerDependency to workspace:*, adds build step to run the WebRTC workspace prepare, and adds check:webrtc-published. |
package.json |
Adds the WebRTC workspace and removes the example plugins workspace; adds a resolution for @types/react. |
examples/mobile-client/fishjam-chat/app.json |
Removes usage of the local WebRTC paths plugin from Expo config. |
examples/mobile-client/common/plugins/tsconfig.json |
Removes the shared plugins TypeScript config (plugin package removal). |
examples/mobile-client/common/plugins/src/withLocalWebrtcPaths.ts |
Removes the Expo config plugin entry point for local WebRTC path overrides. |
examples/mobile-client/common/plugins/src/withLocalWebrtcIos.ts |
Removes iOS Podfile modification logic for local WebRTC path overrides. |
examples/mobile-client/common/plugins/src/withLocalWebrtcAndroid.ts |
Removes Android settings.gradle modification logic for local WebRTC path overrides. |
examples/mobile-client/common/plugins/src/utils.ts |
Removes helper utilities used to detect file: WebRTC dependencies and generate config markers. |
examples/mobile-client/common/plugins/package.json |
Removes the shared plugins workspace package definition. |
.prettierignore |
Ignores formatting for the new submodule directory packages/react-native-webrtc. |
.gitmodules |
Adds the packages/react-native-webrtc submodule configuration. |
.github/workflows/tests.yaml |
Ensures CI checks out submodules recursively. |
.github/workflows/release.yaml |
Ensures CI checks out submodules recursively and adds the check:webrtc-published gate before publishing mobile-client. |
.github/workflows/node.yaml |
Ensures CI checks out submodules recursively. |
.github/workflows/mobile_eas_build.yaml |
Ensures CI checks out submodules recursively for EAS builds. |
.github/workflows/livestreaming-example.yaml |
Ensures CI checks out submodules recursively for the example workflow. |
.github/workflows/fishjam-chat.yaml |
Ensures CI checks out submodules recursively for the chat example workflow. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
czerwiukk
approved these changes
May 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
fishjam-react-native-webrtcas a git submodule + yarn workspace atpackages/react-native-webrtc/.mobile-clientconsumes it viaworkspace:*for bothdependenciesandpeerDependencies; yarn rewrites them at publish time so they can't drift.examples/mobile-client/common/plugins/workaround — autolinking handles the symlinked workspace.check:webrtc-published: release blocks unless the submodule HEAD is at a git tag that's published on npm..prettierignoreupdated.Motivation and Context
Removes the manual
file:toggle flow for co-developing the SDK and the webrtc fork — clone with--recurse-submodulesandyarnis enough.Documentation impact
Types of changes
not work as expected)