Skip to content

chore: Bump React Native to 0.85 and Reanimated to 4.4#563

Merged
MatiPl01 merged 12 commits into
mainfrom
deps/bump-rn-0.85-reanimated-4.4
Jun 8, 2026
Merged

chore: Bump React Native to 0.85 and Reanimated to 4.4#563
MatiPl01 merged 12 commits into
mainfrom
deps/bump-rn-0.85-reanimated-4.4

Conversation

@MatiPl01
Copy link
Copy Markdown
Owner

@MatiPl01 MatiPl01 commented Jun 8, 2026

Summary

Bumps the library and the web / fabric / expo example apps to React Native 0.85.3 + Reanimated 4.4.1 (Expo SDK 56).

  • Library — type and jest-config updates for the Reanimated 4.4 / RN 0.85 changes (moduleResolution: bundler, DerivedValue, StyleSheet.absoluteFillObject removal).
  • expo example uses the Expo Go-compatible Reanimated/Worklets (SDK 56 pins); fabric uses the latest.
  • paper stays on the old architecture (RN 0.81.4 + Reanimated 3.19.5); its native build now resolves from its own node_modules.

Replaces #554 (auto-closed when its branch was renamed from fix/… to deps/…).

MatiPl01 added 5 commits June 7, 2026 14:02
The dependency bump moved the root react-native to 0.85.3 (new-arch only),
but the paper example's Android native files resolved react-native and the
gradle plugin from the ROOT node_modules. The old-architecture paper app was
therefore compiled against react-android 0.85.3 and failed
(com.facebook.react.uimanager.layoutanimation is gone in the new-arch-only
build).

Point the paper Android build (settings.gradle, app/build.gradle) at the
example's own node_modules (RN 0.81.4 — the last version supporting the old
architecture) and add hoistingLimits so its dependencies stay local. The iOS
Podfile already resolves react-native via require.resolve, so pod install
picks up the local version. Verified with a clean Android build (APK built).
Expo Go ships the native Reanimated/Worklets pinned by the SDK, so the
example must match them. The bump pushed it to 4.4.1 / 0.9.1, which crashed
in Expo Go ("undefined is not a function" in NativeWorklets/installUnpackers).
Pin to the SDK 56 versions (Reanimated 4.3.1, Worklets 0.8.3); the fabric
example keeps the latest since it's a real build.
@vercel
Copy link
Copy Markdown

vercel Bot commented Jun 8, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
react-native-sortables-docs Ignored Ignored Preview Jun 8, 2026 9:25am

@github-actions github-actions Bot added chore dependencies Pull requests that update a dependency file example labels Jun 8, 2026
MatiPl01 added 7 commits June 8, 2026 05:59
Xcode 16+/26 ship a stricter Clang that rejects fmt's consteval format-string
checks ("call to consteval function ... is not a constant expression" in
fmt/format-inl.h). RN 0.81's vendored fmt hits this on iOS. Compile only the
fmt pod as C++17 in the Podfile post_install hook so the consteval path is
skipped and fmt uses runtime validation.
Lowering the fmt pod to C++17 dodged the consteval error but broke the iOS 26
SDK's <atomic> (incompatible with <stdatomic.h> before C++23). Keep the C++
standard and instead define FMT_USE_CONSTEVAL=0 so fmt skips its consteval
format-string checks and falls back to runtime validation.
fmt 11's base.h sets FMT_USE_CONSTEVAL=1 unconditionally for Apple Clang
>=14, so neither a -D define nor a build setting can override it, and Xcode
16+ Clang rejects the consteval format-string checks. Patch base.h in
post_install to force FMT_USE_CONSTEVAL=0 (runtime validation), keeping the
C++ standard intact so <atomic> still compiles.
The fmt consteval patch cleared one wall, but RN 0.81 + Xcode 26.5 then fails
on React-Fabric header resolution (and more). Old-arch RN 0.81 isn't
compatible with the iOS 26.5 SDK; paper is built/CI-tested on Xcode 16.x,
which has no fmt issue. Keep the Podfile clean.
- Use StyleSheet.absoluteFill instead of inlined absolute-fill keys
  (absoluteFillObject was dropped from RN 0.85 types).
- Restore example/app @shopify/flash-list to latest (2.3.1); the bump had
  accidentally pinned it down to 2.0.2.
- Trim the DeepReadonly comment to a single line.
The SharedValue -> ReadonlySharedValue tweak (and its comment) aren't needed:
the library typechecks fine against Reanimated 4.4 with the original DeepReadonly.
Keeping the bump minimal.
@MatiPl01 MatiPl01 merged commit d54d28a into main Jun 8, 2026
11 checks passed
@MatiPl01 MatiPl01 deleted the deps/bump-rn-0.85-reanimated-4.4 branch June 8, 2026 09:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore dependencies Pull requests that update a dependency file example

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant