Skip to content

Commit 51cf0b2

Browse files
chore(mobile): resolve react-native to 0.79.5 in lockfile + pods (#14365)
## Summary The previous RN upgrade ([#14303](#14303)) bumped `packages/mobile/package.json` to `react-native@0.79.5` but the lockfile and `ios/Podfile.lock` stayed pinned at `0.78.3` — a plain `npm install` under `legacy-peer-deps=true` would not bump them. This PR resolves the iOS/Android package versions to actually match the declared `0.79.5`: - **`package-lock.json`** — regenerated so `react-native` and `@react-native/*` (gradle-plugin, codegen, community-cli-plugin, virtualized-lists, etc.) resolve to `0.79.5`. The deps now hoist to the monorepo root `node_modules/` instead of living under `packages/mobile/node_modules/`. - **`packages/mobile/ios/Podfile.lock`** — regenerated via `pod install`; `React-Core`, `hermes-engine`, `RCTDeprecation`, `FBLazyVector`, `React-Fabric`, etc. are now `0.79.5`. `React-hermes`, `React-jsi`, and `React-renderercss` are now declared as explicit dependencies of `React` (new in 0.79). - **`packages/mobile/ios/AudiusReactNative.xcodeproj/project.pbxproj`** — `pod install` retargeted `REACT_NATIVE_PATH` to the hoisted `node_modules/react-native` location (`${PODS_ROOT}/../../../../node_modules/react-native`). - **`packages/mobile/android/app/build.gradle`** — set `root`, `reactNativeDir`, and `cliFile` in the `react { }` block so the React Native Gradle plugin can find `ReactAndroid/gradle.properties` at the hoisted top-level `node_modules/react-native`. Without this, `:app:downloadAar` (and any other Gradle task) failed because the plugin's default convention looks under `packages/mobile/node_modules/react-native`. ## How I verified - `npm install` completes without warnings; `node_modules/react-native/package.json` shows `"version": "0.79.5"`. - `cd packages/mobile/android && ./gradlew :app:downloadAar` → `BUILD SUCCESSFUL`. - `bundle exec pod install` (run automatically by `postinstall`) regenerates `Podfile.lock` cleanly; all `React-Core (= 0.79.5)`. ## Test plan - [x] CI green - [ ] `npm run ios:dev` boots and launches the app - [ ] `npm run android:dev` boots and launches the app - [ ] Hermes JS still loads (release + debug) - [ ] CodePush release pipeline still bundles the iOS / Android JS 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
1 parent a6e8c2e commit 51cf0b2

12 files changed

Lines changed: 1448 additions & 2612 deletions

File tree

package-lock.json

Lines changed: 808 additions & 2174 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@
8181
},
8282
"devDependencies": {
8383
"@emotion/eslint-plugin": "11.12.0",
84+
"@react-native/metro-babel-transformer": "0.79.5",
8485
"@tsconfig/strictest": "2.0.2",
8586
"@types/keyv": "4.2.0",
8687
"@types/react": "19.0.0",

packages/harmony/src/components/scrollbar/Scrollbar.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export const Scrollbar = forwardRef(
4343
// useMeasure ref is required for infinite scrolling to work
4444
const [ref] = useMeasure({ polyfill: ResizeObserver })
4545
const containerRef = useRef<HTMLElement | null>(null)
46-
const timerRef = useRef<NodeJS.Timeout | null>(null)
46+
const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null)
4747
const reactId = useId()
4848
const elementId = id || reactId
4949

packages/harmony/src/components/tooltip/Tooltip.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,8 +156,8 @@ export const Tooltip = ({
156156

157157
const triggerRef = useRef<HTMLElement>(null)
158158
const tooltipRef = useRef<HTMLDivElement>(null)
159-
const enterDelayTimerRef = useRef<NodeJS.Timeout | null>(null)
160-
const leaveDelayTimerRef = useRef<NodeJS.Timeout | null>(null)
159+
const enterDelayTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null)
160+
const leaveDelayTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null)
161161
const mousedOverRef = useRef(false)
162162

163163
// Handle mouse enter with delay

packages/harmony/src/hooks/useHoverDelay.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export const useHoverDelay = (
1515
) => {
1616
const [isHovered, setIsHovered] = useState(false)
1717
const [isClicked, setIsClicked] = useState(false)
18-
const timerRef = useRef<NodeJS.Timeout | null>(null)
18+
const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null)
1919

2020
// Clean up the timer when component unmounts
2121
useEffect(() => {

packages/mobile/android/app/build.gradle

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@ apply plugin: "com.facebook.react"
1111
react {
1212
/* Folders */
1313
// The root of your project, i.e. where "package.json" lives. Default is '../..'
14-
// root = file("../../")
14+
// In monorepo setup, react-native and @react-native/* are hoisted to the root node_modules
15+
root = file("../../../../")
1516
// The folder where the react-native NPM package is. Default is ../../node_modules/react-native
16-
// reactNativeDir = file("../../node_modules/react-native")
17+
reactNativeDir = file("../../../../node_modules/react-native")
1718
// The folder where the react-native Codegen package is. Default is ../../node_modules/@react-native/codegen
18-
// In monorepo setup, codegen is hoisted to root node_modules
1919
codegenDir = file("../../../../node_modules/@react-native/codegen")
2020
// The cli.js file which is the React Native CLI entrypoint. Default is ../../node_modules/react-native/cli.js
21-
// cliFile = file("../../node_modules/react-native/cli.js")
21+
cliFile = file("../../../../node_modules/react-native/cli.js")
2222
/* Variants */
2323
// The list of variants to that are debuggable. For those we're going to
2424
// skip the bundling of the JS bundle and the assets. By default is just 'debug'.
@@ -128,7 +128,7 @@ android {
128128
// versionCode is automatically incremented in CI
129129
versionCode 1
130130
// Make sure this is above the currently released Android version in the play store if your changes touch native code:
131-
versionName "1.1.528"
131+
versionName "1.1.529"
132132
resValue "string", "build_config_package", "co.audius.app"
133133
resConfigs "en"
134134
}

packages/mobile/ios/AudiusReactNative.xcodeproj/project.pbxproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -409,7 +409,7 @@
409409
);
410410
runOnlyForDeploymentPostprocessing = 0;
411411
shellPath = /bin/sh;
412-
shellScript = "export NODE_BINARY=node\nWITH_ENVIRONMENT=\"${SRCROOT}/../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"${SRCROOT}/../node_modules/react-native/scripts/react-native-xcode.sh\"\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n";
412+
shellScript = "export NODE_BINARY=node\nset -e\nWITH_ENVIRONMENT=\"$REACT_NATIVE_PATH/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"$REACT_NATIVE_PATH/scripts/react-native-xcode.sh\"\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n";
413413
showEnvVarsInLog = 0;
414414
};
415415
B73C21C532E1201FEFBAECDA /* [CP] Copy Pods Resources */ = {
@@ -746,7 +746,7 @@
746746
OTHER_CFLAGS = "$(inherited)";
747747
OTHER_CPLUSPLUSFLAGS = "$(inherited)";
748748
OTHER_LDFLAGS = "$(inherited)";
749-
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
749+
REACT_NATIVE_PATH = "${PODS_ROOT}/../../../../node_modules/react-native";
750750
SDKROOT = iphoneos;
751751
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG";
752752
USE_HERMES = true;
@@ -804,7 +804,7 @@
804804
OTHER_CFLAGS = "$(inherited)";
805805
OTHER_CPLUSPLUSFLAGS = "$(inherited)";
806806
OTHER_LDFLAGS = "$(inherited)";
807-
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
807+
REACT_NATIVE_PATH = "${PODS_ROOT}/../../../../node_modules/react-native";
808808
SDKROOT = iphoneos;
809809
USE_HERMES = true;
810810
VALIDATE_PRODUCT = YES;
@@ -862,7 +862,7 @@
862862
OTHER_CFLAGS = "$(inherited)";
863863
OTHER_CPLUSPLUSFLAGS = "$(inherited)";
864864
OTHER_LDFLAGS = "$(inherited)";
865-
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
865+
REACT_NATIVE_PATH = "${PODS_ROOT}/../../../../node_modules/react-native";
866866
SDKROOT = iphoneos;
867867
USE_HERMES = true;
868868
VALIDATE_PRODUCT = YES;

packages/mobile/ios/AudiusReactNative/Info.plist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<key>CFBundlePackageType</key>
1818
<string>APPL</string>
1919
<key>CFBundleShortVersionString</key>
20-
<string>1.1.192</string>
20+
<string>1.1.193</string>
2121
<key>CFBundleSignature</key>
2222
<string>????</string>
2323
<key>CFBundleURLTypes</key>

0 commit comments

Comments
 (0)