Open roryabraham opened 6 months ago
Update 06.05:
Main Draft PR link -> https://github.com/Expensify/App/pull/40548 Reanimated Draft PR link -> https://github.com/Expensify/App/pull/40775
Hey hey! Im back from OO, today I was trying to resolve issues with codegen, made some progress. Tomorrow I will update PR with main merge and will doublecheck iOS build. Also we found a proper fix for react-native-pager-view
that I will crate PR for.
CC: @mallenexpensify @roryabraham @mountiny
Update 07.05:
Main Draft PR link -> https://github.com/Expensify/App/pull/40548 Reanimated Draft PR link -> https://github.com/Expensify/App/pull/40775
Hey! I have been working on aligning failing libraries to work with new rules of codegen, need to align react-native-airship
and I will check if android build is working fine, I have been also validating changes from main as there were some changes in patches for @onfido/react-native-sdk
and other libraries. In meantime I focused on rnmapbox/maps
issue with a bad privacy manifest file, but it seems rn upgrade is not blocking that topic, as upgrading library to 10.1.20
and manually adjusting privacy manifest resolves the blocker for iOS deploy.
CC: @mallenexpensify @roryabraham @mountiny @AndrewGable
Update 08.05:
Main Draft PR link -> https://github.com/Expensify/App/pull/40548 Reanimated Draft PR link -> https://github.com/Expensify/App/pull/40775
Hey! I have just pushed changes from main and align them with current state of the rn 0.74 to build for iOS, for android Im still resolving codegen issues, talking with rn-cli maintainers and looking for the proper resolution of the issues.
Is seems like there is a problem with libraries that are using old syntax for codegen
field in package.json
as some of the codegen
errors are pointing to the change of the config as follows:
BEFORE:
{
// ...
"codegenConfig": {
"libraries": [
{
"name": "libName1",
"type": "all|components|modules",
"jsSrcsRoot": "libName1/js"
},
{
"name": "libName2",
"type": "all|components|modules",
"jsSrcsRoot": "libName2/src"
}
]
}
}
AFTER:
{
"codegenConfig": {
"name": "libraries",
"type": "all",
"jsSrcsRoot": "."
}
}
Thats what we are working on in react-native-pager-view
as its failing with same error as above.
CC: @mallenexpensify @roryabraham @mountiny
Update 09.05:
Main Draft PR link -> https://github.com/Expensify/App/pull/40548 Reanimated Draft PR link -> https://github.com/Expensify/App/pull/40775
Hey! Not much changed from yesterday, still resolving codegen
issues, also working on react-native-pager-view
issue.
CC: @mallenexpensify @roryabraham @mountiny
Update 10.05:
Main Draft PR link -> https://github.com/Expensify/App/pull/40548 Reanimated Draft PR link -> https://github.com/Expensify/App/pull/40775
Hey hey, today Ive been working together with @kbieganowski on dividing the work related to RN upgrade, also continued on resolving codegen
issues. We have also put attention to react-native-reanimated
upgrade PR, It should be ready to be tested on monday.
Also @kbieganowski is actively working on splitting this PR into smaller pieces containing only lib upgrades - in some of the cases its impossible due to the fact those are using rn0.74 changes.
CC: @mallenexpensify @roryabraham @mountiny
I believe @MrRefactor will share bigger update tomorrow based on Slack
Update 14.05:
Main Draft PR link -> https://github.com/Expensify/App/pull/40548 Reanimated Draft PR link -> https://github.com/Expensify/App/pull/40775
Hey!
Today together with @kbieganowski we have been working on resolving android build issues, upgrading more libraries to the newer versions and adjusting patches in the project. After merging the latest main, iOS builds are working fine, app is building and starting. On the other hand, on android we keep struggling with build issues connected to codegen
part of build process. After upgrading react-native-vision-camera
to the lates version and applying patches for rn 0.74, now we are facing react-native-webview
error, which sadly is project specific - I couldnt reproduce it on fresh 0.74 project with new arch.
CMake Error at /App/android/app/build/generated/source/codegen/jni/CMakeLists.txt:11 (add_library): add_library cannot create target "react_codegen_RNCWebViewSpec" because another target with the same name already exists. The existing target is a shared library created in source directory "/App/node_modules/react-native-webview/android/build/generated/source/codegen/jni".
Tomorrow I will try complete reinstall of the package as I can see, there are some most likely merge conflict issues in android files such as multiplication of react-native-webview
include statement in settings.gradle
Unfortunately process of resolving android build issues takes time as it takes around 17-20min to run each build in order to check if changes made any difference.
@kbieganowski also tried extracting more libraries to standalone PR's but most of them require rn 0.74 changes so we cannot merge them before the main PR itself.
CC: @mallenexpensify @roryabraham @mountiny
now we are facing react-native-webview error, which sadly is project specific
Maybe it's a bad cache from the patches we have for react-native-webview with RN 0.73?
@kbieganowski also tried extracting more libraries to standalone PR's but most of them require rn 0.74 changes so we cannot merge them before the main PR itself
Got it, thanks for checking this. It's very helpful
Update 15.05:
Main Draft PR link -> https://github.com/Expensify/App/pull/40548 Reanimated Draft PR link -> https://github.com/Expensify/App/pull/40775
Hey! Not much changed from tomorrow's update:
react-native-webview
and checking codegen issues with other libs.CC: @mallenexpensify @roryabraham @mountiny
Update 16.05:
Main Draft PR link -> https://github.com/Expensify/App/pull/40548 Reanimated Draft PR link -> https://github.com/Expensify/App/pull/40775
Hey! Not much changed from tomorrow's update:
@kbieganowski is still checking iOS build for potential regressions/issues, Im fixing android build issues, aligning libraries and testing builds for rn 0.74.1
CC: @mallenexpensify @roryabraham @mountiny
Update 20.05:
Main Draft PR link -> https://github.com/Expensify/App/pull/40548 Reanimated PR link -> https://github.com/Expensify/App/pull/40775
Hey hey, we validated react-native-reanimated changes and builds so PR is ready to be reviewed by @shubham1206agra
So far we didnt spot any major issues on iOS - I can see that adhoc build is crashing on iOS due to cache in Pod's - we need to clear the pod's caches and hopefully adhoc build will be ready to be tested.
As for android - we are still resolving build issues, seems like there are few libraries left that we need to go through and check why those are causing builds to crash, I've also cleared up some setup code related to react-native-webview
and will push it to the PR as well.
CC: @mallenexpensify @roryabraham @mountiny
Update 21.05:
Main Draft PR link -> https://github.com/Expensify/App/pull/40548 Reanimated PR link -> https://github.com/Expensify/App/pull/40775
Hey! I have updated Reanimated PR based on no longer necessary patches, also still resolving issues connected to android build for main upgrade PR.
CC: @mallenexpensify @roryabraham @mountiny
Update 22.05:
Main Draft PR link -> https://github.com/Expensify/App/pull/40548 Reanimated PR link -> https://github.com/Expensify/App/pull/40775
Hey!
We are working on resolving crash in Reanimated upgrade PR related to clicking on Emoji button on composer that crashes the app, also actively working resolving android build issues on main upgrade PR. I will also update the version of react-native-pager-view
as soon as we will create new release version containing fixes for codegen on rn 0.74.
CC: @mallenexpensify @roryabraham @mountiny
Update 23.05:
Main Draft PR link -> https://github.com/Expensify/App/pull/40548 Reanimated PR link -> https://github.com/Expensify/App/pull/40775
Hey! Today we have found issue causing crash on android/iOS in Reanimated upgrade PR. Unfortunately even though the app is building for both iOS and Android, there is a part of the lib that can be only working with react-native 0.74. We have checked reanimated issue on rn upgrade iOS build and we cannot reproduce it there. In that case we should close reanimated PR and dont split that react-native upgrade PR into smaller pieces as libraries are aligned only to rn version >= 0.74. As for android builds in the main PR, we made some progress but still not there with the build.
CC: @mallenexpensify @roryabraham @mountiny
Update 24.05:
Main Draft PR link -> https://github.com/Expensify/App/pull/40548
Hey!
More progress towards fixing android builds, we spotted next issue connected with react-native-live-markdown
which we were able to reproduce with the example app in library as well. Link to the issue -> link.
CC: @mallenexpensify @roryabraham @mountiny @tomekzaw @j-piasecki @kbieganowski
Update 27.05:
Main Draft PR link -> https://github.com/Expensify/App/pull/40548
Hey!
Thanks to @tomekzaw we fixed issues connected to react-native-live-markdown
I have also applied 0.74 patch for react-native-device-info
for android, and I keep working on aligning other libraries failing.
I will push changes to the PR first thing tomorrow morning.
CC: @mallenexpensify @roryabraham @mountiny
Update 28.05:
Main Draft PR link -> https://github.com/Expensify/App/pull/40548
Hey!
Working on aligning react-native-net-info
, spotted additional issue with react-native-device-info
and already patched it. Also patched react-native-document-picker
, working on other libraries fixing android builds. Aiming for mid next week for android builds to be working.
CC: @mallenexpensify @roryabraham @mountiny
Update 29.05:
Main Draft PR link -> https://github.com/Expensify/App/pull/40548
Hey! I keep working on fixing android builds & aligning libraries for 0.74 new arch. Also another developer will be joining me in the upgrade effort starting on Friday. Im OOO tomorrow due to bank holiday, next update will be posted on Friday.
CC: @mallenexpensify @roryabraham @mountiny
Update 31.05:
Main Draft PR link -> https://github.com/Expensify/App/pull/40548
Hey! Today @kubabutkiewicz joined me with upgrade efforts. I have pushed latest main to the PR with all of the changes made to the patches/libraries. We divided the list of libraries that may be crashing between both of us and we are validating if those are working fine on fresh rn project with 0.74 and new arch enabled. There is an error that we are trying to resolve along with the list of libs:
C++ build system [build] failed while executing:
/Users/jakubsys/Library/Android/sdk/cmake/3.22.1/bin/ninja
-C \
/Users/jakubsys/App/android/app/.cxx/Debug/4r2x36fq/arm64-v8a
appmodules \
react_codegen_Airship \
react_codegen_AndroidLocationEnabler \
react_codegen_KeyCommand \
react_codegen_RNCConfigSpec \
react_codegen_RNCGeolocation \
react_codegen_RNCNetInfoSpec \
react_codegen_RNCViewPager \
react_codegen_RNCWebViewSpec \
react_codegen_RNHapticFeedbackSpec \
react_codegen_RNImagePickerSpec \
react_codegen_RNLiveMarkdownSpec \
react_codegen_RNPerformanceSpec \
react_codegen_RNShareSpec \
react_codegen_ReactNativeBlobUtilSpec \
react_codegen_lottiereactnative \
react_codegen_rnasyncstorage \
react_codegen_rncameraroll \
react_codegen_rnclipboard \
react_codegen_rndeviceinfomodule \
react_codegen_rndocumentpicker \
react_codegen_rnflashlist \
react_codegen_rngesturehandler_codegen \
react_codegen_rnimagesize \
react_codegen_rnmapbox_maps_specs \
react_codegen_rnpdf \
react_codegen_rnpermissions \
react_codegen_rnpicker \
react_codegen_rnplaidlink \
react_codegen_rnreanimated \
react_codegen_rnscreens \
react_codegen_rnsvg \
react_codegen_safeareacontext
from /Users/jakubsys/App/android/app
It also seems that even after applying fix for react-native-live-markdown
there is still an issue with that library, @kubabutkiewicz will post logs in the next comment.
CC: @mallenexpensify @roryabraham @mountiny
Hi, putting a log which @MrRefactor mentioned android-log.txt
CC: @tomekzaw
Thanks for posting the logs. I was able to successfully build react-native-live-markdown
on 0.74.1, maybe something changed in the meantime? I will take a look on it on Monday.
Update 03.06:
Main Draft PR link -> https://github.com/Expensify/App/pull/40548
Hey hey,
Together with @kubabutkiewicz, @kbieganowski and @tomekzaw we are trying to validate/resolve android build issues.
We are going library by library testing those on fresh react-native application with new arch enabled to check if there are any issues with building/codegen. @szymonrybczak is also supporting me with potential rn-cli
errors.
build log file - > link
CC: @mallenexpensify @roryabraham @mountiny
We are going library by library testing those on fresh react-native application with new arch enabled to check if there are any issues with building/codegen.
I tested it and Live Markdown library (from this PR: https://github.com/Expensify/react-native-live-markdown/pull/358) builds successfully in a fresh RN 0.74.1 app (with this PR applied as a patch: https://github.com/facebook/react-native/pull/44684).
I was helping @tomekzaw investigate the Android build issues today. It is caused by the wrong version of rn-cli
being used - the version installed in the apps node_modules
is 12.x
instead of 13.x
. After adding
"@react-native-community/cli": "13.6.4",
"@react-native-community/cli-platform-android": "13.6.4",
"@react-native-community/cli-platform-ios": "13.6.4"
to the overrides
field in package.json
and re-installing node_modules, the correct version is installed.
Then minSdkVersion
needs to be changed to 23 in build.gradle
files in the following libraries:
react-native-plaid-link-sdk
react-native-image-picker
react-native-quick-sqlite
As 23 is the minimum since RN 0.74 and they depend on artifacts provided by the RN.
I'm also not sure if that's necessary, but I've removed react-native-release-profiler
.
After that, the app built and ran (the patch for @react-native-community/cli-platform-android
didn't apply correctly, but I'm not sure if it's required when using the newer version).
Now, the reason for the wrong versions of cli being used is twofold (I think):
react-native-macos
and react-native-windows
are installed as peer dependencies of a few packages, and the installed version is 0.73, which relies on the older version of the clireact-native-release-profiler
has a direct dependency on cli 12.2.1
Update 04.06:
Main Draft PR link -> https://github.com/Expensify/App/pull/40548
Hey hey, @j-piasecki was able to run android app, I will apply changes tomorrow morning, cleanup the PR and remaining patches. If everything will work as expected we will be able to run ad-hoc builds.
CC: @mallenexpensify @roryabraham @mountiny @tomekzaw @kbieganowski @kubabutkiewicz
Update 05.06
Main Draft PR link -> https://github.com/Expensify/App/pull/40548 PR is ready to be tested/reviewed by C+
Hey, I have pushed all the changes related to Android build working, we also have ad hoc builds ready to be tested here Now we are fixing CI issues, and tomorrow we will be going through the in-app issues caused by the upgrade.
CC: @mallenexpensify @roryabraham @mountiny @kbieganowski @kubabutkiewicz
Update 06.06
Main Draft PR link -> https://github.com/Expensify/App/pull/40548 PR is ready to be tested/reviewed by C+
Hey! Working on resolving issues:
I have also fixed patches for react-native
, and working on a patch for netinfo
Opened PR's for
react-native-image-picker
,
react-native-image-picker
for minSdkVersion
change to 23 so we could remove patches for those.
Resolved apk size for android build, apk from next build should be way smaller.
CC: @mallenexpensify @roryabraham @mountiny @kbieganowski @kubabutkiewicz
@roryabraham @mountiny I'm a tad concerned pushing through a RN upgrade like this is pretty risky before Xerocon. It might be better to hold the merge of the PR until after the conference (which is Wednesday & Thursday next week).
Update 07.06
Main Draft PR link -> https://github.com/Expensify/App/pull/40548 PR is ready to be tested/reviewed by C+
Hey hey, We are working on resolving app issues on android and CI
-> Android - modal issue reported in the PR, -> CI -> Storybook issue
CC: @mallenexpensify @roryabraham @mountiny @kbieganowski @kubabutkiewicz
Update 10.06
Main Draft PR link -> https://github.com/Expensify/App/pull/40548 PR is ready to be tested/reviewed by C+
Hey hey, Trying to find out why adhoc build for Android is doubling previous size, working on modal issue & CI issues. Also upgraded to rn 0.74.2.
CC: @mallenexpensify @roryabraham @mountiny @kbieganowski @kubabutkiewicz
Update 11.06
Main Draft PR link -> https://github.com/Expensify/App/pull/40548 PR is ready to be tested/reviewed by C+
Hey hey, Pushed changes for: -> Upgrade to rn 0.74.2 -> CI storybook fix -> Modal issue (useNativeDriver issue on android)
And also explained apk size for ad hoc builds here
New ad hoc builds are available here
Checking useNativeDriver
issues on android, and working on resolving CI issue Verify Podfile - @roryabraham could you take a look at this error?
CC: @mallenexpensify @roryabraham @mountiny @koko57 @kubabutkiewicz
Update 12.06
Main Draft PR link -> https://github.com/Expensify/App/pull/40548 PR is ready to be tested/reviewed by C+
Hey hey,
Working on:
-> useNativeDriver
issues on android,
-> mapbox
issues on android
-> Ci Verify Podfile issue
CC: @mallenexpensify @roryabraham @mountiny @koko57 @kubabutkiewicz
Update 13.06
Main Draft PR link -> https://github.com/Expensify/App/pull/40548 PR is ready to be tested/reviewed by C+
Hey hey,
Working on:
-> useNativeDriver issues on android,(going through libs responsible for displaying modal, all other usages of useNativeDriver
are working fine) - @koko57 &me
-> mapbox issues on android - link to the issue - @kubabutkiewicz &me
-> Ci Verify Podfile issue - @kubabutkiewicz
CC: @mallenexpensify @roryabraham @mountiny @koko57 @kubabutkiewicz
Update 14.06
Main Draft PR link -> https://github.com/Expensify/App/pull/40548 PR is ready to be tested/reviewed by C+
Hey hey, Fixed: -> mapbox issues on android - link to the https://github.com/rnmapbox/maps/issues/3522 - I applied a workaround for maps to work, we will work on the main issue in the library itself - @kubabutkiewicz &me -> Ci Verify Podfile issue - @kubabutkiewicz
Working on: -> useNativeDriver issues on android,(going through libs responsible for displaying modal, all other usages of useNativeDriver are working fine) - @koko57 @kubabutkiewicz
CC: @mallenexpensify @roryabraham @mountiny @koko57 @kubabutkiewicz
Update 17.06
Main Draft PR link -> https://github.com/Expensify/App/pull/40548 PR is ready to be tested/reviewed by C+
Hey hey, Working on: -> useNativeDriver issues on android,(going through libs responsible for displaying modal, all other usages of useNativeDriver are working fine) - @koko57 @kubabutkiewicz -> Going through the app looking for issues
CC: @mallenexpensify @roryabraham @mountiny @koko57 @kubabutkiewicz
Update 18.06
PR link -> https://github.com/Expensify/App/pull/40548 PR is ready to be tested/reviewed by C+
Hey hey, Working on: -> useNativeDriver issues on android,(going through libs responsible for displaying modal, all other usages of useNativeDriver are working fine) - @koko57 @kubabutkiewicz -> Working on issues reported by C+ @MrRefactor
CC: @mallenexpensify @roryabraham @mountiny @koko57 @kubabutkiewicz
Update 19.06
PR link -> https://github.com/Expensify/App/pull/40548 PR is ready to be tested/reviewed by C+
Hey hey,
Working on:
-> useNativeDriver issues on android,(working on a fix for react-native-animatable which breaks useNativeDriver
) - @koko57 @MrRefactor
-> Working on track expense modal - issue with gesture handler - @kubabutkiewicz @MrRefactor
CC: @mallenexpensify @roryabraham @mountiny @koko57 @kubabutkiewicz
Update 20.06
PR link -> https://github.com/Expensify/App/pull/40548 PR is ready to be tested/reviewed by C+
Builds link -> here
Hey hey, Fixed: -> Working on track expense modal - issue with gesture handler - @kubabutkiewicz
Working on: -> useNativeDriver issues on android,(working on a fix for react-native-animatable which breaks useNativeDriver) - @MrRefactor -> weird background flashing while selecting emoji @kubabutkiewicz @koko57
After @shubham1206agra final review, we will be ready to assign Testers to validate builds, hopefully soon!
CC: @mallenexpensify @roryabraham @mountiny @koko57 @kubabutkiewicz
Update 21.06
PR link -> #40548 PR is ready to be tested/reviewed by C+ PR is under regression testing from QA team
Builds link -> here
Hey hey,
Working on: -> useNativeDriver issues on android,(working on a fix for react-native-animatable which breaks useNativeDriver) - @MrRefactor -> weird background flashing while selecting emoji @kubabutkiewicz @koko57
CC: @mallenexpensify @roryabraham @mountiny @koko57 @kubabutkiewicz
Update 24.06
PR link -> https://github.com/Expensify/App/pull/40548 PR is ready to be tested/reviewed by C+ PR is under regression testing from QA team
Builds link -> here
Hey hey,
Added patch for useNativeDriver
in react-native
-> it seems there are issues connected to animations on Android in 0.74.2 patch is a temporary fix for modals/animations on Android builds.
I have also validated 15.2.0 version of pods with rn 0.74.2 -> build are passing, working fine
Working on: -> weird background flashing while selecting emoji/animation glitches on android @kubabutkiewicz -> CI jest pipeline crashing( There is one failure on Jest test, working on reproducing it locally -> for me all the tests are passing) @MrRefactor
CC: @mallenexpensify @roryabraham @mountiny @koko57 @kubabutkiewicz
@MrRefactor is there an upstream issue for the animation problem on Android for RN 0.74.2 ?
Update 25.06
PR link -> https://github.com/Expensify/App/pull/40548 PR is ready to be tested/reviewed by C+ PR is under regression testing from QA team
Builds link -> here
Hey hey,
Working on: -> weird background flashing while selecting emoji/animation glitches on android @MrRefactor -> iOS images issue @kubabutkiewicz -> CI jest pipeline crashing @MrRefactor
@MrRefactor is there an upstream issue for the animation problem on Android for RN 0.74.2 ?
Patch I applied has been merged to react-native
and is a part of 0.75
branch. I didnt find the exact issue related to modal backdrop, but there are multiple issues connected with Animated
on Android.
I'm still validating react-native-modal
and react-native-animatable
(which is a dependency of react-native-modal
)
And also I have a question - couldn't we use modal from react-native
itself instead of using react-native-modal
? @roryabraham @mountiny
CC: @mallenexpensify @roryabraham @mountiny @koko57 @kubabutkiewicz
And also I have a question - couldn't we use modal from react-native itself instead of using react-native-modal?
I think in order to make such a change, we would need to clearly state what the problem is with react-native-modal
and why we cannot use it. Also explore what would be the consequence of using other modal
@mountiny The upgrade to RN 0.74 is blocking some of our tasks. It also seems to be quite a lot of work needed to make it happen - is there anything we could help with?
We are currently working on releasing a new version of react-native-release-profiler which was one blocker for the upgrade.
I am not sure if there is an efficient way you could help @MrRefactor @kubabutkiewicz to push this forward. Maybe they could highlight some issues they are facing that could be handled by someone else in parallel.
@MrRefactor How can we speed things up on this project in your opinion?
hey @mountiny @hannojg as for now we are fixing issues created by C+, in that case the only one that is missing at the moment is flashing while closing modals. Apart of that we are waiting for regression results
Also release of react-native-release-profiler
would allow us to remove some of the workarounds that we are using atm.
Seems like @shubham1206agra just has one issue to confirm that is fixed and we can hand it off to Applause
Seems like @shubham1206agra just has one issue to confirm that is fixed and we can hand it off to Applause
should already be fixed with expo-image
version upgrade
slack context: https://expensify.slack.com/archives/C02NK2DQWUX/p1709024519896479
Problem
There are some new arch problems that should be fixed in RN 0.74+. So far that's the only thing I'm aware of in 0.74+ that we'll need, but it takes a long time to upgrade. It's not necessarily a blocker but unless we upgrade we'll have to use patches.
Solution
Let's get the ball rolling on the RN 0.74 upgrade. If there are issues in the RC we should report them to Meta.