-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
[GENERAL][BUGFIX][build] - patch v5 build toolchains for XCode10.2 & RN0.59 compatibility #2166
Conversation
The last commit is my reverting the build changes made after v5.3.1 tag that moved to incompatible / AndroidX detox - those were a non-starter I think, thus my approach of just carefully patching from v5.3.1 without moving versions much. This whole thing may be terrible though, you can look and see :-). Fingers crossed for CircleCI to go green either way |
Okay - so definitely needs some of your changes past v5.3.1 to build, I de-conflicted android/build.gradle but there is still something attempting to use kotlinVersion past the v5.3.1 tag, and now that it's gone that blows up the android build on the branch |
I just force-pushed again (and maybe the last time?) after rebasing to tip of v5.x.x and manually fixing conflicts to get everything working with local testing (as opposed to just hand-hacking it in the github web ui). I think this one is going to pass CI My packager ( |
CI has gone green (well, for android anyway, the ios-e2e-test failed on a crashlytics thing locally even if it passes in CircleCI but I had nothing to do with that...) |
Well, I'll be damned, thanks so much for this @mikehardy, MVP. Any objections if I merge as is? I can run the android e2e tests locally then (CI not setup for this until v6 - it only runs iOS e2e tests right now) - if all is well I will publish a v5.4.0 I guess. Can look at the jet PR during the week then Feel free to invoice the Open Collective again (ignore the hourly limits) as you've clearly worked hard on this and saved us a ton of time. |
I have no objections, it's as surgical as I can make it, and though having the jet dependency point to some random developer's fork (mine) isn't 100%, it isn't so weird when it's all transparent on github. And I am strongly motivated by self-interest to see the v5 branch stable so I'm not going to go blow it up myself :-) |
As an aside, this is just a preview of the crapshow the AndroidX transition is going to be, with the Detox v12 thing. Moving forward I think we can use jetifier in reverse mode to process AARs but that kills the ability for people to easily fork and depend on local forks of react-native modules, or use patch-package, because the AAR is a processed artifact. Going to be messy... |
Only a temporary measure, will get a 0.3.x patch published during the week based on the PR you submitted there
Only going to get worse with React Native 0.60.x 😞 thankfully v6 will target >0.60, so we can use AndroidX without worrying too much about backwards compat, v6 tests run on detox ^12.5.0 also without issue 🤞 . |
Running e2e tests locally - will report back 👍 |
Awesome - I hadn't set up a Testing AVD like the docs and run them locally, I was trusting (dangerously) that because my changes were minimal and the build worked before that it should work again without change, but if not I'll take this back, make a testing AVD and fuzzbust through there on android-e2e-test |
Am getting a crash relating to RN Argument serialisation; am looking into it now - I think I know what it is though as its something that came up recently for v6 - don't think it's related to any of your changes 👍 It did build and get through a fair chunk of tests so it's really good progress at least 🔥 cc @Ehesp - this is the JSON serialise issue I mentioned the other day to look out for when refactoring Database serialisation utils - so we should probably revert those changes to those serialize methods on your Database branch.
|
Right, all sorted with all e2e tests passing, had to upgrade android dependencies to work around run time crashes (#2122); which then caused the above serialisation issue so fixed that in f80338f - native dev is fun 👀 Published a v5.4.0 version to npm, updated the docs & change log and upgraded the starter 👍 Thanks again for the assist on this @mikehardy - as mentioned above, feel free to invoice the Open Collective again (ignore the hourly limits), you saved me a lot of time with this. |
Very cool! Now that this freshly shaven yak is sent back to the herd, the second next one in line is to get a notification/messaging demo app going (ideally fully automated). Not that there are a lot of problems in the library there but I personally am having difficulty in my project and it's the next biggest issue generator in the repo I think. Unfortunately it's blocked by the imposing yak that is #2163 where for some reason the header file search paths or messed up on fresh installs. One by one I/we'll get them though |
* v5.x.x: 5.4.0 [tests] disable admob (has a new runtime check that causes a crash as we don't have a valid admob identifier) [android] update firebase sdk versions - forced to upgrade due to invertase#2122 [android][internals] rework internals utils to better support JSONObject/Array values [GENERAL][BUGFIX][build] - patch v5 build toolchains for XCode10.2 & RN0.59 compatibility (invertase#2166) [tests] update podfile lock [tests] sync v5.x.x local changes [tests] sync v5.x.x local changes [docs] update link [STORAGE][BUGFIX][ANDROID] - Preserve `file://` prefix [JS][BUGFIX] [package.json] - Fix build on Windows (BABEL_ENV error) [Messaging] Add null check to acquire WakeLock on Android (invertase#2092) [TYPES][BUGFIX][AUTHENTICATION] - Change type PhoneAuthSnapshot.Error to NativeError
Summary
As near as I can tell the v5.x.x branch does not currently build (it certainly doesn't pass CircleCI) owing to various areas of bitrot
This PR aims to start with the v5.3.1 tag (the most recent release tag? maybe I missed one) and simply get it working before building on it for future releases
The change involved patching:
All of that is just toolchain work, nothing semantic was done.
Android and iOS installs and builds for me locally now and on CI, with all patches from v5.3.1 integrated, and my work overriding just the minimal gradle changes from tip of v5.x.x to make it work again - I left in the Firebase SDK and gradle version bumps
One of the dependencies is currently pointing to a local jet fork but if PR invertase/jet#13 is merged and a jet v0.3.1 is released it should be pointed back to the official upstream repo again
Checklist
Android
iOS
e2e
tests added or updated in /tests/e2e/*Test Plan
This whole PR is just to make CI work so we can run the tests! :-)
Release Plan
[GENERAL][BUGFIX][build] - patch build toolchains for XCode10.2 & RN0.59 compatibility
Think
react-native-firebase
is great? Please consider supporting the project with any of the below:React Native Firebase
andInvertase
on Twitter