-
Notifications
You must be signed in to change notification settings - Fork 1
Description
tl;dr
The example app is so out of date, I believe the best course of action is to either:
- Delete it and do not include a working example
- Create a new example app built on Expo development builds, taking advantage of their well-documented upgrade paths, to minimize maintenance.
A decision would need to be made by maintainers. πββοΈ
The long version
While following the excellent instructions in CONTRIBUTING.md
I encountered this error:
Verification checksum was incorrect, expected f0397ba6e982c4450f27bf32a2a83292aba035b827a5623a14636ea583318c41, got 79e6d3f986444e5a80afbeccdaf2d1c1cf964baa8d766d20859d653a16c39848
Couldn't install Pods. Updating the Pods project and trying again...
Command `pod install` failed.
ββ Cause: Error installing boost
Verification checksum was incorrect, expected f0397ba6e982c4450f27bf32a2a83292aba035b827a5623a14636ea583318c41, got 79e6d3f986444e5a80afbeccdaf2d1c1cf964baa8d766d20859d653a16c39848
This is a known issue that was fixed by facebook/react-native#39555 and released in v0.72.9.
After making that upgrade, I proceeded to encounter a series of other errors:
- Needing another upgrade to switch sources for boost: [Local][RN][General] 0.72 - migrate boost away from JFrogΒ facebook/react-native#42175
CocoaPods could not find compatible versions for pod "RCT-Folly"
which required re workingexample/ios/Podfile.lock
and more upgrades to the example app versions.An error occurred while processing the post-install hook of the Podfile.
: which required removing__apply_Xcode_12_5_M1_post_install_workaround
fromexample/ios/Podfile
.- After clearing this hurdles, I needed to update the iOS target version from ~11 to ~15.
- Further errors continued with
implicit instantiation of undefined template 'std::char_traits<fmt::internal::char8_type>'
which required further react-native version upgrades.
After overcoming all these challenges, the project was finally starting to build successfully when I realized that all the underlying example app code was going to need updates as well. You can see all the application code that requires changing here: https://react-native-community.github.io/upgrade-helper/?from=0.73.11&to=0.79.2
And all of this was just for the iOS portion of the example app!
At this point, I'm starting to think that the best way forward is to simply build a new example app from scratch. But I find myself asking: how can we avoid this kind of upgrade pain in the future.
My experience tells me that Expo is the way to minimize these challenges. They abstract away most of the native code management by using plugins, but in exchange you have to follow some additional build steps to get a development build. This still requires a fair bit of complexity and upkeep.
With all that said, I think the most practical solution is to remove the example app.
If this repo is being used in other actively maintained projects, that is by far the best way to ensure it is healthy.
If this isn't acceptable, then I suggest moving to Expo development builds to work within the well-supported and well-documented upgrade paths provided by Expo for each react-native upgrade cycle.
What path do you think is best @Polarisation ?