-
Notifications
You must be signed in to change notification settings - Fork 6.7k
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
[RNSDK] Upgrade peer dependencies for @jitsi/react-native-sdk #14850
Comments
Others that having a newer version, is there anything in those deps that you need? Last I checked they work and there are no security problems with them, so we are not in a rush to update. |
Yes, support of new React Native versions 0.73 and 0.74. Example why it is not supported currently:
|
Is that the only one? |
I've tested with react-native 0.74.2 (currently latest stable release). Full list of updates:
Maybe you could consider specifying peer dependencies with After these updates, app is built successfully, but after enter to the call (probably requires at least one another participant with video enabled), the following exception is thrown:
I found a suggested solution here: #14441 (comment) It works. |
Are those required to run on RN 0.74, or just packages with updates?
We've been bitten by that before, never again.
We are the maintainers of react-native-webrtc too, thanks for the heads up, we'll take care of that! |
These versions are recommended to work stable with Expo 51 that uses RN 0.74.
https://expo.dev/changelog/2024/05-07-sdk-51#%EF%B8%8F-upgrading-your-app In first order, I've started manual research, package by package, but it takes too much time. So I've decided to better use some recommended list. Examples of findings during manual research:
|
Sorry, but I'm not interested in their recommendations. Does something actually not work? There is the storage library and the declared supported RN versions, but is there something elase? |
I don't understand the question.
Also please take into account React Native Releases Support Policy: https://github.com/reactwg/react-native-releases/blob/main/docs/support.md 0.72 will be unsupported soon, so it makes sense to update @jitsi/react-native-sdk to support latest RN versions, to make sure it is useful for modern apps.
npm blocked it during installation phase, I didn't try to test it. I've already spent several working days to find working set of dependencies with overrides and patches of @jitsi/react-native-sdk.
@jitsi/react-native-sdk has a problem of using it in modern applications, because it depends on old react-native version. Expo is an officially recommended React Native framework (https://reactnative.dev/blog/2024/06/25/use-a-framework-to-build-react-native-apps), so I think they have good experience and authority for React Native world. Maybe you can reconsider usage of their recommendations. |
Hey. Sorry for my response earlier, I was rushing and as I read it now, I sound like an asshole. I should've waited until I had the time to give a proper response. Here is goes. Some back-story, which may help undertand why I hold certain opinions. Expo (then Exponent) was first published in August 2016: expo/expo@2a38a11 The first bits of Jitsi Meet RN code were published on October of the same yeah 7f3ff13 even though work had been happening previously, on a different repo. That is, we've seen a lot over the years. I used to always want to stay current because otherwise RN updates were painful, but updating too hastily was also painful, we encountered many bugs updating. Early adopting Hermes was also a mistake we had to undo, for example. A bit about the architecture of the code:
So, this is not a "traditional" SDK, in a way it's an "app as an SDK" of sorts, since what the main component exposes really is,is the full app. This means we have dozens of dependencies, that are key to the functionality of the app. When not using the RN SDK, the RN library versions don't really matter. If it works, and there are no security bugs, the incentive to update fades somewhat, because the risk of introducing new bugs trumps the new features we may not need. Now, when you consume our RN SDK in an actual RN app, shenanigans begin :-/ So now let's go back to our previous conversation.
What I meant here is, that, while some depenencies might be slightly off, I'd be interested in knowing which are causing the trouble, not a list of everything that is not the latest, because as I mentioned earlier, statibility is very important to us. Looks like updating async-storage and fixing up rn-webrtc might be enough?
I am aware. The problem here is the same, we might not need the uncertainty of the new features, and I will admit that my frustration with unfixed longstanding bugs certainly plays a part here. Example: facebook/react-native#33686 So these days I became more conservative with updates, because more and more people rely on our apps / SDKs, and they expect stability. That said, I think we can find some middle ground by updating the blocking dependencies first, thus allowing those who want to use a certain version to do so, while we stay in the one we prefer a release cycle or 2 more.
Gotcha. I'll look into updating those 2 first, and see what'd next.
Even though we have been using RN for many years, the RN SDK itself is the youngest, apologies for the pain you are enduring.
I understand Expo is useful for new projects, it's just not a good match for this one, because it has diverged from a "traditional" RN project so much already. I am also biased because over the years, when Expo was not as simple to use with native dependencies the interactions I had over at rn-webrtc gave me negative vibes. Things seem to be better now, which is great! I'm glad RN is simpler to use than it was when we started! Once again, sorry for the reply earlier. We'll try to fix things to make it work with more modern RN versions. |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
What problem are you trying to solve?
Using Jitsi React Native SDK in modern application is blocked, because it has old peer dependencies.
Current peer dependencies of latest (2.2.1) version:
What solution would you like to see?
Upgrade dependencies regularly (at least each 4 months).
Some examples of outdated peer dependencies:
@react-native-community/clipboard
published 4 years ago, useexpo-clipboard
(it works in bare react native without expo too)react-native-svg
13.13.0 is published almost 1 year ago, upgrade to latest versionIs there an alternative?
No response
The text was updated successfully, but these errors were encountered: