Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
596 commits
Select commit Hold shift + click to select a range
22d3275
Fix deadlock in AnimationBackendChoreographer
Apr 1, 2026
2bcb3e1
Add unstable_fastRefreshComplete CDP event (#56273)
huntie Apr 1, 2026
0e65df9
move ViewTransition APIs not for react reconciler to its own TurboMod…
zeyap Apr 1, 2026
8915341
migrate ProgressBarAndroid from Jest to Fantom (#56302)
emily8rown Apr 2, 2026
e681736
Fix Android accessibility descendant race in ReactViewGroup (#56182)
erickreutz Apr 2, 2026
fbc072e
Deploy 0.308.0 to xplat (#56318)
panagosg7 Apr 3, 2026
b3c653e
Remove check_is_status=true from .flowconfig files (#56337)
panagosg7 Apr 6, 2026
a0175d4
Remove JavaMethodWrapper and decouple JavaModuleWrapper from legacy i…
mdvacca Apr 6, 2026
23f7dc4
Fix MissingOverrideAnnotation: Add @Override to YogaNodeJNIBase metho…
mdvacca Apr 6, 2026
114504b
translation auto-update for Apps/Wilde/scripts/intl-config.json on ma…
Apr 7, 2026
a937ad4
Fully roll out antialiased clipping (#55480)
Abbondanzo Apr 7, 2026
fdd6ca5
Fix nougat blank rendering with antialiased border radius clipping (#…
Abbondanzo Apr 7, 2026
37a1841
Add instrumentation tests for FabricMountingManager view lifecycle (#…
javache Apr 7, 2026
5eb1ca1
Fix data race on PerformanceObserver entry buffer (#56352)
huntie Apr 7, 2026
9172bfe
Fixing unreachable-code-return in react-native-github (#56338)
ingridwang Apr 7, 2026
3a4a1a8
Merge v0.85.0-rc.* entries into v0.85.0 (#56353)
alanleedev Apr 7, 2026
8bac1df
Optimize style value resolution with handle-based approach (#56306)
paradowstack Apr 8, 2026
3d8e181
Bump minimum whatwg-fetch 3.0.0 -> 3.6.20 (#56357)
robhogan Apr 8, 2026
ada3922
Preserve Expo-generated modulemap in replace-rncore-version.js (#56335)
Insik-Han Apr 8, 2026
77332d2
Add Page.captureScreenshot CDP support (#56307)
huntie Apr 8, 2026
4a59f90
fix(ios): devsupport IPv6 host parsing for packager and inspector (#5…
hannojg Apr 8, 2026
7ee893d
Don't update mounted flag on React revision (#56371)
j-piasecki Apr 8, 2026
e7df8fa
Vendor whatwg-fetch@3.6.20 (#56370)
robhogan Apr 8, 2026
dd0290f
Correclty promote flags to experimental for 0.85 release (#56374)
cortinico Apr 8, 2026
b1d12f5
Allow RCTScrollViewComponentView to be subclass-able (#56319)
joevilches Apr 8, 2026
ca4ee56
fix(iOS): gate canBecomeFirstResponder behind enableImperativeFocus f…
hknakn Apr 9, 2026
b20d7fc
Migrate BlobModule to TurboModuleWithJSIBindings for safe JSI access …
javache Apr 9, 2026
05ea94c
Fix BlobProvider not working in newarch (#56369)
javache Apr 9, 2026
fd4fee0
migrate SafeAreaView from Jest to Fantom (#56310)
emily8rown Apr 9, 2026
fdbe0d0
Fix incorrect changelog entry for StyleSheet.absoluteFillObject remov…
jingjing2222 Apr 9, 2026
5dc27af
Add missing debugger define for React-RuntimeApple (#56397)
huntie Apr 9, 2026
a7b64e6
Deploy 0.309.0 to xplat (#56392)
SamChou19815 Apr 9, 2026
8bf151f
Remove members that reference excluded symbols (#56341)
coado Apr 9, 2026
4a88cfb
Exclude symbols with `DO_NOT_USE` from the public C++ API snapshot (#…
coado Apr 9, 2026
450d750
Exclude symbols marked as `deprecated` from the C++ public API snapsh…
coado Apr 9, 2026
f5326c9
Exclude deprecated and internal categories from the ReactApple C++ sn…
coado Apr 9, 2026
b60f0c9
Change parser config to accept regex in exclude symbols field. (#56367)
coado Apr 9, 2026
0cb9c1b
Allowlist yoga dimension/position if useSharedAnimatedBackend feature…
zeyap Apr 9, 2026
5f861ce
Fix typos in doc comment and benchmark runner (#56396)
J8118 Apr 9, 2026
81c9968
Fix crash in PerformanceEntrySorter comparator (#56388)
Abbondanzo Apr 9, 2026
64002fb
Handle missing viewState gracefully in SurfaceMountingManager.addView…
Apr 10, 2026
50768cb
Update hermes-parser and related packages in fbsource to 0.35.0 (#56408)
marcoww6 Apr 10, 2026
abd6173
Roll out `enableAndroidLinearText` entirely (#56409)
Abbondanzo Apr 10, 2026
8dede75
Simplify jsi::Function storage in UIManagerBinding::startViewTransiti…
javache Apr 10, 2026
0d1b70e
fix: formData upload broken in debug builds (#56406)
riteshshukla04 Apr 10, 2026
8629a34
Allow LogBox and RedBox overlay dismissal via Android back button (#5…
Abbondanzo Apr 10, 2026
24c5e93
Revert: Vendor whatwg-fetch@3.6.20 (#56414)
bherila Apr 12, 2026
c29ef97
Revert: Bump minimum whatwg-fetch 3.0.0 -> 3.6.20 (#56415)
bherila Apr 12, 2026
2e508b9
fbsource//xplat/js/react-native-github/packages/react-native/ReactAnd…
fabriziocucci Apr 13, 2026
f0f6240
Expose Event, EventTarget and CustomEvent as globals (#56416)
rubennorte Apr 13, 2026
64d4d7c
Expose dispatchTrustedEvent and setEventInitTimeStamp in ReactNativeP…
rubennorte Apr 13, 2026
a8b39a2
Fix typo and missing space in AnimatedInterpolation error messages (#…
Nedunchezhiyan-M Apr 13, 2026
4bdfaf2
Fix stateful regex bug in benchmark detection (#56423)
rubennorte Apr 13, 2026
7efb4b5
Run benchmarks in test mode by default instead of excluding them (#56…
rubennorte Apr 13, 2026
7d51201
Retry only failed Fantom tests instead of full suite on CI (#56425)
andrewdacenko Apr 13, 2026
e4f0509
Add pushAnimationMutations to the AnimationBackend (#56401)
Apr 13, 2026
5087aa0
HWInput: Add Play/Pause Support (#56426)
Apr 13, 2026
36b3060
ISerialization methods should take in `const jsi::Value&` (#56410)
tsaichien Apr 13, 2026
179e0cd
Add changelog for v0.85.1 (#56428)
react-native-bot Apr 13, 2026
a9a0000
Prevent double calls to `setMounted` when merging a JS revision (#56424)
j-piasecki Apr 14, 2026
08f954f
Add changelog for v0.83.5 (#56431)
react-native-bot Apr 14, 2026
8550370
Fix typo in immediateShim JSDoc comment (#56381)
Nedunchezhiyan-M Apr 14, 2026
40c7d8f
Fix Yoga Style equality crash for size-typed dimensions (#56429)
sbuggay Apr 14, 2026
dfddcc9
Respect theme `enforceNavigationBarContrast` attribute (#56413)
zoontek Apr 14, 2026
0517fb5
Process event-driven animations synchronously on every event (#56439)
Apr 14, 2026
95e0b5e
Add Android 17 safety comment for JNI-written static field (#56442)
alanleedev Apr 14, 2026
7ac759d
Update prettier-plugin-hermes-parser in fbsource to 0.35.0 (#56444)
marcoww6 Apr 15, 2026
c482b93
Skip reporting benchmark results in test mode (#56435)
rubennorte Apr 15, 2026
4ff4836
Automatically set --runInBand when running benchmarks
rubennorte Apr 15, 2026
d823f5b
Fix incorrect package name and filename in scripts/js-api/README.md (…
Nedunchezhiyan-M Apr 15, 2026
fc331f3
Strip computed properties in build-types transform (#56450)
rubennorte Apr 15, 2026
4b954e1
Use relevant revision as base when updating mounted flag with branchi…
j-piasecki Apr 15, 2026
b63efbf
Schedule React revision merge to happen before dispatching events (#5…
j-piasecki Apr 15, 2026
e122c24
Fix stuck loading banner after a reload (#56452)
alanjhughes Apr 15, 2026
9b966d1
Improve VirtualizedList test for render area change with initialScrol…
chicio Apr 15, 2026
d16e95d
Add IRuntime interface (#54923)
tsaichien Apr 15, 2026
ce6a031
Add `Array.push` API (#53762)
tsaichien Apr 15, 2026
79843fc
Add `tryGetMutableBuffer` API (#56156)
tsaichien Apr 15, 2026
89e0df1
Add `ArrayBuffer::detached` method (#55944)
tsaichien Apr 15, 2026
572e661
Add `TypedArray`, `UInt8Array` in JSI (#56158)
tsaichien Apr 15, 2026
82984b4
Add Error creation APIs for all standard JS error types (#56159)
tsaichien Apr 15, 2026
a52596e
Add `String::length` API (#56160)
tsaichien Apr 15, 2026
07c00f4
Add `isInteger` to `jsi::Value` (#56161)
tsaichien Apr 15, 2026
467af1e
Move TransformHelper from jni-common to jni (#56454)
javache Apr 16, 2026
d1a8a1f
EventTarget-based event dispatching (#56427)
rubennorte Apr 16, 2026
def621f
Move CI validation for debugCpp and profileCpp to EnvironmentOptions …
rubennorte Apr 16, 2026
7171302
Remove legacy arch fallback from LayoutConformance (#56440)
javache Apr 16, 2026
a9d567c
Support pseudo-element shadow node creation for view transitions (#56…
zeyap Apr 16, 2026
a6f2697
Append pseudo-element shadow nodes to root at commit (#56457)
zeyap Apr 16, 2026
a6df56e
don't include duplicate RCTDefines.h
rmaz Apr 16, 2026
986be4c
Allow pseudo-element shadow node lookup in JS (#56455)
zeyap Apr 16, 2026
39ac654
Add bitmap snapshot capture/display delegate plumbing (#56458)
zeyap Apr 16, 2026
2247778
Android bitmap snapshot capture and display (#56460)
zeyap Apr 16, 2026
fd0bc69
Suspend overlapping view transitions (#56462)
zeyap Apr 16, 2026
3cf4024
Add startViewTransitionReadyFinished callback (#56461)
zeyap Apr 16, 2026
a4f78b3
Allow waiting for user land Animated animations before firing transit…
zeyap Apr 16, 2026
c2280e3
Handle edge-to-edge when it's not enabled by gradle property (#56055)
zoontek Apr 16, 2026
f8fa76f
fix: forward style prop to Modal inner container View (#56181)
AnuMessi10 Apr 16, 2026
58fec1f
Add ExtraWindowEventListener interface (#55721)
zoontek Apr 16, 2026
a8d44bc
unbreak ViewTransition fantom tests
zeyap Apr 17, 2026
4a6c933
Fix Keyboard events and KeyboardAvoidingView on Android (edge-to-edge…
zoontek Apr 17, 2026
77d3df8
Avoid moving RawProps during animation backend commit when retries ar…
Apr 17, 2026
f0c62da
Remove reference to type that will not be generated (#56482)
rubennorte Apr 17, 2026
2979663
Remove legacy Paper renderer shim cleanup from artifact commit workfl…
rubennorte Apr 17, 2026
370606d
support multiple old pseudo elements for same name but different sour…
zeyap Apr 17, 2026
6530092
Add BackHandler to dismiss LogBox toasts on back press (#56474)
Abbondanzo Apr 17, 2026
56129fe
Respect enum values for TurboModule c++ codegen (#56478)
akawrykow Apr 17, 2026
d2af787
Downgrade image timeout in test environment from RCTLogError to RCTLo…
Apr 18, 2026
5620b1b
Fix unused parameter warnings in conversions.h (#56472)
christophpurrer Apr 18, 2026
68debb2
Fix event timestamp injection to check both casing variants (#56495)
fkgozali Apr 19, 2026
6779f6c
Fix -Wreorder-init-list in RCTTextInputComponentView for xcodestaging…
fkgozali Apr 20, 2026
0223364
Validate NPM token before creating a release (#56501)
cipolleschi Apr 20, 2026
8043a6d
Validate NPM token before nightly publish (#56502)
cipolleschi Apr 20, 2026
46c0177
Change failing C++ api validation signal to blocking (#56503)
j-piasecki Apr 20, 2026
1433e43
Clear AnimatedPropsRegistry on surface stop (#56485)
zeyap Apr 20, 2026
e8feade
fix react-native-cxx-stable-api-snapshot-validation test (#56511)
zeyap Apr 20, 2026
8944bb3
Fix unused parameter warnings in IMountingManager.h (#56488)
christophpurrer Apr 20, 2026
65c561e
PerformanceObserver: default durationThreshold to 104ms (#56506)
rubennorte Apr 20, 2026
3fb1fea
Evict Metro bundle graphs after each Fantom test to prevent OOM (#56514)
javache Apr 20, 2026
786ebf0
Guard Tracing.end handler against missing Tracing.start in jsinspecto…
fkgozali Apr 20, 2026
acb85ce
Fix unused parameters in EventQueueProcessorTest.cpp (#56493)
christophpurrer Apr 20, 2026
aa5a78c
Fix unused parameter warnings in TimerManager (#56516)
christophpurrer Apr 20, 2026
c533369
Remove invalid float enum example from RN Codegen (#56489)
christophpurrer Apr 20, 2026
b2aa694
Fix -Wnullable-to-nonnull-conversion for Xcode 26.4 (#56518)
fkgozali Apr 21, 2026
2902df0
Add changelog for v0.85.2 (#56515)
react-native-bot Apr 21, 2026
b111c0e
MapBufferBuilder: fix size_t→int32 partial-write in putString/putMapB…
meta-yaohway Apr 21, 2026
f2f9209
Fix node ownership when `display: contents` is used (#56422)
j-piasecki Apr 21, 2026
fd082b9
Re-throw errors from tasks and microtasks synchronously (#56513)
rubennorte Apr 21, 2026
70281d6
Skip use-hermes-nightly when hermes-compiler is already pinned (#56505)
alanjhughes Apr 21, 2026
cf1975f
Remove lowercase `timestamp` fallback in event timestamp injection (#…
rubennorte Apr 21, 2026
bedf33f
Deprecate ViewUtil.getUIManagerType and inline UIManagerType.Fabric (…
javache Apr 21, 2026
11a5432
Support light/dark mode toggling via Emulation.setEmulatedMedia (#56510)
huntie Apr 21, 2026
b1a8913
Fix remaining test failures after error re-throw landing (#56532)
rubennorte Apr 21, 2026
0f9b8e4
Cap maxWorkers and bump heap to bound Fantom Metro memory (#56529)
rubennorte Apr 21, 2026
c1ffe9f
Harden Metro bundle retry against file-watcher races (#56530)
rubennorte Apr 21, 2026
5f69a91
Document FANTOM_FORCE_CI_MODE for full local runs (#56531)
rubennorte Apr 21, 2026
dbd3255
Build both coverage and non-coverage tester binaries in CI (#56538)
rubennorte Apr 21, 2026
90017b5
Remove no-op MaintainVisibleScrollPositionHelper#updateScrollPosition…
javache Apr 21, 2026
5c55a61
Set hermes_build_mode constraint when building tester with coverage (…
rubennorte Apr 21, 2026
5042e58
Fix parentTagForUpdate in unflatten-unflatten branch (#56542)
fkgozali Apr 21, 2026
fed907b
Add Buck CLI override for feature flag defaults
motiz88 Apr 21, 2026
d6ed561
Add per-platform redBoxV2 feature flags
motiz88 Apr 21, 2026
084456e
Extract RCTRedBoxController from RCTRedBox.mm (#56509)
motiz88 Apr 21, 2026
5b9cefc
Remove double-conversion dependency and also DoubleConversions.cpp an…
christophpurrer Apr 21, 2026
cb99ee8
Deploy 0.310.0 to xplat (#56543)
mvitousek Apr 21, 2026
d655114
Fix unused parameter warning in propsConversions.h (#56500)
christophpurrer Apr 22, 2026
19a23e7
Fix unused parameter warnings in ShadowNode.h (#56519)
christophpurrer Apr 22, 2026
16edd89
Fix unused parameter warnings in graphicsConversions.h (#56520)
christophpurrer Apr 22, 2026
eed1e34
Fix unused parameter warnings in HostPlatformViewTraitsInitializer.h …
christophpurrer Apr 22, 2026
089276a
Fix unused parameter warnings in NativeFantomTestSpecificMethods.cpp …
christophpurrer Apr 22, 2026
45ceacc
Use Hermes V1 by default (#56476)
cipolleschi Apr 22, 2026
e2a0746
Add changelog for v0.83.6 (#56473)
react-native-bot Apr 22, 2026
cdfed83
Flatten ReactCxxPlatform timer registry directory structure (#56536)
javache Apr 22, 2026
ea38382
Fix REACT_NATIVE_PATH resolution when Pods/ is a symlink (#56453)
huntie Apr 22, 2026
cf94430
Make fabric parameter always true in renderApplication (#56517)
rubennorte Apr 22, 2026
78190b4
Revert D100830088: Fix REACT_NATIVE_PATH resolution when Pods/ is a s…
Apr 22, 2026
f81c991
Add LogBox-styled error overlay (#56550)
motiz88 Apr 22, 2026
54b4f46
Add shared C++ error parser and ANSI renderer (#56553)
motiz88 Apr 22, 2026
ad71deb
Show syntax-highlighted code frames (#56551)
motiz88 Apr 22, 2026
4ff8655
Mark all errors as retryable (#56552)
motiz88 Apr 22, 2026
da3d3a0
Auto-reload on retryable errors (#56549)
motiz88 Apr 22, 2026
301543c
Attempt to clear RedBox by automatically reloading on Metro file chan…
motiz88 Apr 22, 2026
d83d856
Fix truncated filenames in call stack frames (#56565)
motiz88 Apr 22, 2026
f437b2c
Fix debug build memory leak from fabric marker in updatePropsSynchron…
zeyap Apr 22, 2026
e01a329
Guard tvOS-unavailable APIs in RCTRedBox2Controller (#56568)
kastopia Apr 22, 2026
a78d6f4
Exclude metainternal from C++ API snapshots (#56545)
lavenzg Apr 22, 2026
f41364d
Fix unused parameter warnings in StubWebSocketClient.h (#56527)
christophpurrer Apr 22, 2026
54ced39
Add missing @Deprecated annotations to match @deprecated Javadoc tags…
cortinico Apr 22, 2026
98df9b1
Fix RCTTextLayoutManager nullable conversion (#56547)
fkgozali Apr 22, 2026
5182d4f
Fix C++ syntax in Objective-C header breaking React module build (#56…
motiz88 Apr 22, 2026
3982315
fbsource//xplat/js/react-native-github:RCTNetworkApple (#56560)
Apr 23, 2026
6614fe7
Fix StatusBar modifications not applying to Modal windows on Android …
zoontek Apr 23, 2026
9140ff9
Use tree-sitter for feature flag default rewriting (#56555)
motiz88 Apr 23, 2026
e67dba1
Add Buck CLI override for Kotlin feature flag defaults (#56558)
motiz88 Apr 23, 2026
f69a566
Port TextInput-test.js to Fantom and remove the legacy Jest test (#56…
rubennorte Apr 23, 2026
1a623a8
Simplify RendererProxy and RendererImplementation to Fabric-only (#56…
rubennorte Apr 23, 2026
2cb5a9d
Remove Paper (ReactNativeRenderer) files (#56557)
rubennorte Apr 23, 2026
53e6ce2
Daily `arc lint --take CLANGFORMAT` (#56576)
Apr 23, 2026
4aa375b
Fix REACT_NATIVE_PATH resolution when Pods/ is a symlink (#56577)
huntie Apr 23, 2026
9d18367
Fix measureInWindow on Android edge-to-edge (#56056)
zoontek Apr 23, 2026
24b51db
fix(android): WebSocketModule stripping caller-supplied Cookie header…
psjostrom Apr 23, 2026
d11aedd
Deploy 0.311.0 to xplat (#56589)
gkz Apr 24, 2026
c0adcea
Remove syncAndroidClipToPaddingWithOverflow feature flag (#56467)
fabriziocucci Apr 24, 2026
f4f4b95
Migrate RCTBlobManager to RCTTurboModuleWithJSIBindings (#56575)
javache Apr 24, 2026
fb0d28c
Fix React-CoreModules missing React-featureflags header path under us…
radko93 Apr 24, 2026
e37bba5
Make useConcurrentRoot always true in renderElement (#56562)
rubennorte Apr 24, 2026
68a6be9
Import ReactFabric methods directly in renderer implementation module…
rubennorte Apr 24, 2026
ea3b825
Move unstable_batchedUpdates out of the renderer implementation API (…
rubennorte Apr 24, 2026
6411611
Hoist `PerformanceLogger` primitives out of `react-native` (#56580)
rubennorte Apr 24, 2026
a5d7ab1
Revert D102166537: Hoist `PerformanceLogger` primitives out of `react…
Apr 24, 2026
ee1d067
Re-emit keyboardDidShow on IME height change (#56486)
alanleedev Apr 24, 2026
c9774c1
keep old snapshot node position updated at applyViewTransitionName (#…
zeyap Apr 24, 2026
3d2d14d
Remove unused ivars from React Native (RCTAnimation, RCTBlob, RCTNetw…
ingridwang Apr 24, 2026
11d894d
Upgrade lodash 4.17.21 → 4.18.1 (CVE-2026-4800) (#56603)
sandeep3028 Apr 24, 2026
ccff70b
EventQueueProcessor/EventTarget: SCOPE_EXIT-guard release on throwing…
meta-yaohway Apr 25, 2026
3c64581
Add changelog for v0.83.8 (#56596)
react-native-bot Apr 27, 2026
0518d72
Add E2E test retry jobs for PRs to handle flakiness (#56581)
cipolleschi Apr 27, 2026
8fc503d
AccessibilityInfo: added missing tests for Promise based methods, ali…
chicio Apr 27, 2026
ce696df
Fix toJSON return types in bom.js.flow (#56623)
rubennorte Apr 27, 2026
9ac9edc
Add MutationObserver and IntersectionObserver types in bom.js.flow (#…
rubennorte Apr 27, 2026
b396df7
Create example for MutationObserver in RNTester (disabled by feature …
rubennorte Apr 27, 2026
497d9c1
Add syncAndroidClipBoundsWithOverflow feature flag
fabriziocucci Apr 27, 2026
2c208f8
Override getClipBounds to expose overflow clipping to the framework (…
fabriziocucci Apr 27, 2026
0f58e5e
Back out "Revert D102166537: [RN] Hoist `PerformanceLogger` primitive…
rubennorte Apr 27, 2026
610564c
Fix PixelCopy snapshot for partially off-screen views (#56608)
zeyap Apr 27, 2026
e0a453c
Dispatch FPS events from ACTION_SCROLL events (#56601)
Abbondanzo Apr 27, 2026
44a4b1b
Fix Dimensions window values on Android < 15 (#53254)
zoontek Apr 27, 2026
c20a58a
make sure view width and height are non 0 before calling createBitmap…
zeyap Apr 27, 2026
0c153e2
Handle OutOfMemoryError in NetworkingModule response processing (#56630)
shubhamksavita Apr 28, 2026
1e8e182
fix(hit-testing): ignore views with non-invertible transforms (scale …
qflen Apr 28, 2026
6a59fc9
Add tests for event dispatching bubbling to document and documentElem…
rubennorte Apr 28, 2026
2a5c4b3
Improve typing of `renderApplication` (#56636)
rubennorte Apr 28, 2026
6a17c21
Delete obsolete MountingIntermediateCommits-itest.js (#56628)
fkgozali Apr 28, 2026
59ac1db
Mark FPS listener in ScrollViews as final, avoid reset in initView (#…
Abbondanzo Apr 28, 2026
78a740d
Add redbox subspec to React-debug pod (#56585)
motiz88 Apr 28, 2026
7128482
Bump Metro to ^0.84.3 (#56638)
motiz88 Apr 29, 2026
ef598d9
Add tests for DeviceInfoModule.getWindowDisplayMetrics edge-to-edge b…
zoontek Apr 29, 2026
795d902
Fix unreachable-code-break (#56648)
ingridwang Apr 29, 2026
32d3eaf
Add exponential backoff to InspectorPackagerConnection reconnect and …
shubhamksavita Apr 30, 2026
1181985
Update prettier-plugin-hermes-parser in fbsource to 0.36.0
marcoww6 Apr 30, 2026
29d8405
Improve Fantom documentation in __docs__/README.md (#56660)
rubennorte Apr 30, 2026
a3906b6
Expand globals test coverage in setUpDefaultReactNativeEnvironment-Gl…
rubennorte Apr 30, 2026
6ec4597
Fix LayoutAnimation crash from mutation sort ordering (#56629)
fkgozali Apr 30, 2026
eba0bfb
Enable `overrideBySynchronousMountPropsAtMountingAndroid` by default …
jingjing2222 Apr 30, 2026
90c2c59
Fix text wrapping in absolutely positioned elements on Android (#56651)
clocksarestupid Apr 30, 2026
0b3df3f
Update hermes-parser and related packages in fbsource to 0.36.0 (#56662)
marcoww6 Apr 30, 2026
5ae948e
Deploy 0.312.0 to xplat (#56664)
marcoww6 May 1, 2026
3446958
Honor skipBubbling in the new EventTarget-based event dispatch (#56666)
rubennorte May 1, 2026
06b23b8
Use MutableIntObjectMap for SurfaceMountingManager view registry (#56…
javache May 1, 2026
86dbb3b
Fix TSAN data races in InspectorFlags and InspectorPackagerConnection…
javache May 1, 2026
52d87f9
Consolidate image prefetch flags into enableImagePrefetchingAndroid (…
christophpurrer May 2, 2026
a25e0fd
Add test for synchronous mount props override behavior (#56663)
zeyap May 4, 2026
52ff392
folly::dynamic::push_back (dynamic.h) (#56676)
May 4, 2026
d0672fb
Add enableSchedulerDelegateInvalidation feature flag (#56678)
fkgozali May 5, 2026
aadbe96
Guard Scheduler deferred lambdas against delegate teardown (#56680)
fkgozali May 5, 2026
d1cdce2
Manually fix references to registry.facebook.net -> registry.yarnpkg.…
robhogan May 5, 2026
4014f77
feat: merge React Native 0.86 fork point
Saadnajmi Jul 17, 2026
279148b
feat(macos): port React Native 0.86 platform changes
Saadnajmi Jul 17, 2026
6d613d3
fix(hermes): align 0.86 compiler artifacts
Saadnajmi Jul 17, 2026
01e4c1a
chore: regenerate 0.86 derived artifacts
Saadnajmi Jul 17, 2026
5db7b73
chore: audit 0.86 macOS diff tags
Saadnajmi Jul 17, 2026
04900d7
fix(workspaces): align 0.86 parser tooling
Saadnajmi Jul 17, 2026
083d805
fix(macos): port 0.86 native ownership
Saadnajmi Jul 17, 2026
c007388
fix(codegen): transpile absolute source paths
Saadnajmi Jul 17, 2026
0d5c74f
chore: audit 0.86 follow-up diff tags
Saadnajmi Jul 17, 2026
bcf6084
fix(swiftpm): single host source ownership for 0.86 Fabric
Saadnajmi Jul 17, 2026
958d452
fix(macos): guard 0.86 frame timings observer
Saadnajmi Jul 17, 2026
45a553e
fix(macos): hide 0.86 loading window with AppKit
Saadnajmi Jul 17, 2026
c5a4a2e
fix(hermes): default production resolver to Hermes V1
Saadnajmi Jul 17, 2026
db92dc8
chore: regenerate 0.86 pod artifacts
Saadnajmi Jul 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .flowconfig
Original file line number Diff line number Diff line change
Expand Up @@ -100,4 +100,4 @@ untyped-import
untyped-type-import

[version]
^0.303.0
^0.312.0
84 changes: 84 additions & 0 deletions .github/actions/build-fantom-runner/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
name: Build Fantom Runner
inputs:
release-type:
required: true
description: The type of release we are building. It could be nightly, release or dry-run
gradle-cache-encryption-key:
description: "The encryption key needed to store the Gradle Configuration cache"

runs:
using: composite
steps:
- name: Install dependencies
shell: bash
run: |
sudo apt update
sudo apt install -y git cmake openssl libssl-dev clang
- name: Setup git safe folders
shell: bash
run: git config --global --add safe.directory '*'
- name: Setup node.js
uses: ./.github/actions/setup-node
- name: Install node dependencies
uses: ./.github/actions/yarn-install
- name: Setup gradle
uses: ./.github/actions/setup-gradle
with:
cache-read-only: "false"
cache-encryption-key: ${{ inputs.gradle-cache-encryption-key }}
- name: Restore Fantom ccache
uses: actions/cache/restore@v5
with:
path: /github/home/.cache/ccache
key: v2-ccache-fantom-${{ github.job }}-${{ github.ref }}-${{ hashFiles(
'packages/react-native/ReactAndroid/**/*.cpp',
'packages/react-native/ReactAndroid/**/*.h',
'packages/react-native/ReactAndroid/**/CMakeLists.txt',
'packages/react-native/ReactCommon/**/*.cpp',
'packages/react-native/ReactCommon/**/*.h',
'packages/react-native/ReactCommon/**/CMakeLists.txt',
'private/react-native-fantom/tester/**/*.cpp',
'private/react-native-fantom/tester/**/*.h',
'private/react-native-fantom/tester/**/CMakeLists.txt'
) }}
restore-keys: |
v2-ccache-fantom-${{ github.job }}-${{ github.ref }}-
v2-ccache-fantom-${{ github.job }}-
v2-ccache-fantom-
- name: Show ccache stats (before)
shell: bash
run: ccache -s -v
- name: Build Fantom Runner
shell: bash
run: yarn workspace @react-native/fantom build
env:
CC: clang
CXX: clang++
- name: Save Fantom ccache
if: ${{ github.ref == 'refs/heads/main' || contains(github.ref, '-stable') }}
uses: actions/cache/save@v5
with:
path: /github/home/.cache/ccache
key: v2-ccache-fantom-${{ github.job }}-${{ github.ref }}-${{ hashFiles(
'packages/react-native/ReactAndroid/**/*.cpp',
'packages/react-native/ReactAndroid/**/*.h',
'packages/react-native/ReactAndroid/**/CMakeLists.txt',
'packages/react-native/ReactCommon/**/*.cpp',
'packages/react-native/ReactCommon/**/*.h',
'packages/react-native/ReactCommon/**/CMakeLists.txt',
'private/react-native-fantom/tester/**/*.cpp',
'private/react-native-fantom/tester/**/*.h',
'private/react-native-fantom/tester/**/CMakeLists.txt'
) }}
- name: Show ccache stats (after)
shell: bash
run: ccache -s -v
- name: Copy shared libraries
shell: bash
run: cp packages/react-native/ReactAndroid/hermes-engine/build/hermes/lib/libhermesvm.so private/react-native-fantom/build/tester/
- name: Upload Fantom Runner binary
uses: actions/upload-artifact@v6
with:
name: fantom-runner-binary
compression-level: 1
path: private/react-native-fantom/build/tester/
2 changes: 2 additions & 0 deletions .github/actions/maestro-android/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ runs:
if: always()
with:
name: e2e_android_${{ steps.normalize-app-id.outputs.app-id }}_report_${{ inputs.flavor }}_${{ inputs.emulator-arch }}_NewArch
overwrite: true
path: |
report.xml
screen.mp4
Expand All @@ -85,4 +86,5 @@ runs:
uses: actions/upload-artifact@v6
with:
name: maestro-logs-android-${{ steps.normalize-app-id.outputs.app-id }}-${{ inputs.flavor }}-${{ inputs.emulator-arch }}-NewArch
overwrite: true
path: /tmp/MaestroLogs
2 changes: 2 additions & 0 deletions .github/actions/maestro-ios/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ runs:
uses: actions/upload-artifact@v6
with:
name: e2e_ios_${{ inputs.app-id }}_report_${{ inputs.flavor }}_NewArch
overwrite: true
path: |
video_record_1.mov
video_record_2.mov
Expand All @@ -81,4 +82,5 @@ runs:
uses: actions/upload-artifact@v6
with:
name: maestro-logs-${{ inputs.app-id }}-${{ inputs.flavor }}-NewArch
overwrite: true
path: /tmp/MaestroLogs
83 changes: 27 additions & 56 deletions .github/actions/run-fantom-tests/action.yml
Original file line number Diff line number Diff line change
@@ -1,78 +1,49 @@
name: Run Fantom Tests
inputs:
release-type:
required: true
description: The type of release we are building. It could be nightly, release or dry-run
gradle-cache-encryption-key:
description: "The encryption key needed to store the Gradle Configuration cache"

runs:
using: composite
steps:
- name: Install dependencies
- name: Install runtime dependencies
shell: bash
run: |
sudo apt update
sudo apt install -y git cmake openssl libssl-dev clang
sudo apt install -y openssl libssl-dev
- name: Setup git safe folders
shell: bash
run: git config --global --add safe.directory '*'
- name: Setup node.js
uses: ./.github/actions/setup-node
- name: Install node dependencies
uses: ./.github/actions/yarn-install
- name: Setup gradle
uses: ./.github/actions/setup-gradle
- name: Download Fantom Runner binary
uses: actions/download-artifact@v7
with:
cache-read-only: "false"
cache-encryption-key: ${{ inputs.gradle-cache-encryption-key }}
- name: Restore Fantom ccache
uses: actions/cache/restore@v5
with:
path: /github/home/.cache/ccache
key: v2-ccache-fantom-${{ github.job }}-${{ github.ref }}-${{ hashFiles(
'packages/react-native/ReactAndroid/**/*.cpp',
'packages/react-native/ReactAndroid/**/*.h',
'packages/react-native/ReactAndroid/**/CMakeLists.txt',
'packages/react-native/ReactCommon/**/*.cpp',
'packages/react-native/ReactCommon/**/*.h',
'packages/react-native/ReactCommon/**/CMakeLists.txt',
'private/react-native-fantom/tester/**/*.cpp',
'private/react-native-fantom/tester/**/*.h',
'private/react-native-fantom/tester/**/CMakeLists.txt'
) }}
restore-keys: |
v2-ccache-fantom-${{ github.job }}-${{ github.ref }}-
v2-ccache-fantom-${{ github.job }}-
v2-ccache-fantom-
- name: Show ccache stats
name: fantom-runner-binary
path: private/react-native-fantom/build/tester
- name: Make binary executable
shell: bash
run: ccache -s -v
run: chmod +x private/react-native-fantom/build/tester/fantom_tester
- name: Run Fantom Tests
shell: bash
run: yarn fantom
run: |
for attempt in 1 2 3; do
echo "Attempt $attempt of 3"
if [ "$attempt" -eq 1 ]; then
if yarn fantom; then
exit 0
fi
else
if yarn fantom --onlyFailures; then
exit 0
fi
fi
if [ "$attempt" -lt 3 ]; then
echo "Attempt $attempt failed. Retrying only failed tests..."
fi
done
echo "All 3 attempts failed."
exit 1
env:
CC: clang
CXX: clang++
- name: Save Fantom ccache
if: ${{ github.ref == 'refs/heads/main' || contains(github.ref, '-stable') }}
uses: actions/cache/save@v5
with:
path: /github/home/.cache/ccache
key: v2-ccache-fantom-${{ github.job }}-${{ github.ref }}-${{ hashFiles(
'packages/react-native/ReactAndroid/**/*.cpp',
'packages/react-native/ReactAndroid/**/*.h',
'packages/react-native/ReactAndroid/**/CMakeLists.txt',
'packages/react-native/ReactCommon/**/*.cpp',
'packages/react-native/ReactCommon/**/*.h',
'packages/react-native/ReactCommon/**/CMakeLists.txt',
'private/react-native-fantom/tester/**/*.cpp',
'private/react-native-fantom/tester/**/*.h',
'private/react-native-fantom/tester/**/CMakeLists.txt'
) }}
- name: Show ccache stats
shell: bash
run: ccache -s -v
LD_LIBRARY_PATH: ${{ github.workspace }}/private/react-native-fantom/build/tester
- name: Upload test results
if: ${{ always() }}
uses: actions/upload-artifact@v6
Expand Down
8 changes: 4 additions & 4 deletions .github/scripts/resolve-hermes.mts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ function setActionOutput(key: string, value: string) {
* Reads the Hermes artifact version from
* packages/react-native/sdks/hermes-engine/version.properties.
*
* Returns HERMES_V1_VERSION_NAME when RCT_HERMES_V1_ENABLED=1, otherwise
* [macOS] Returns HERMES_V1_VERSION_NAME unless RCT_HERMES_V1_ENABLED=0, otherwise
* HERMES_VERSION_NAME. Returns null if the file or the key is missing.
*/
function resolveHermesArtifactVersion(): string | null {
Expand All @@ -48,7 +48,7 @@ function resolveHermesArtifactVersion(): string | null {
}
}
const key =
process.env.RCT_HERMES_V1_ENABLED === '1'
process.env.RCT_HERMES_V1_ENABLED !== '0' // [macOS]
? 'HERMES_V1_VERSION_NAME'
: 'HERMES_VERSION_NAME';
const version = props[key];
Expand All @@ -60,12 +60,12 @@ function resolveHermesArtifactVersion(): string | null {

/**
* Reads the pinned Hermes tag from packages/react-native/sdks/.hermesversion
* (or .hermesv1version when RCT_HERMES_V1_ENABLED=1). The value is a git tag in
* [macOS] Uses .hermesv1version unless RCT_HERMES_V1_ENABLED=0. The value is a git tag in
* facebook/hermes. Returns null if the file is missing or empty.
*/
function resolveHermesTag(): string | null {
const tagFile =
process.env.RCT_HERMES_V1_ENABLED === '1'
process.env.RCT_HERMES_V1_ENABLED !== '0' // [macOS]
? '.hermesv1version'
: '.hermesversion';
const tagPath = path.resolve(
Expand Down
15 changes: 15 additions & 0 deletions .github/workflows/create-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,21 @@ jobs:
token: ${{ secrets.REACT_NATIVE_BOT_GITHUB_TOKEN }}
fetch-depth: 0
fetch-tags: 'true'
- name: Verify NPM token
run: |
if [[ -z "$GHA_NPM_TOKEN" ]]; then
echo "⚠️ No NPM token found. Skipping validation."
exit 0
fi
echo "//registry.npmjs.org/:_authToken=$GHA_NPM_TOKEN" > ~/.npmrc
if ! npm whoami > /dev/null 2>&1; then
echo "❌ NPM token is invalid or expired. Aborting release."
exit 1
fi
echo "✅ NPM token is valid ($(npm whoami))"
rm -f ~/.npmrc
env:
GHA_NPM_TOKEN: ${{ secrets.GHA_NPM_TOKEN }}
- name: Check if on stable branch
id: check_stable_branch
run: |
Expand Down
71 changes: 71 additions & 0 deletions .github/workflows/e2e-android-rntester.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
name: E2E Android RNTester

permissions:
contents: read

on:
workflow_call:
inputs:
fail-on-error:
type: boolean
default: false
outputs:
status:
description: "The result of the E2E tests (success or failure)"
value: ${{ jobs.report.outputs.status }}

jobs:
test:
runs-on: 4-core-ubuntu
outputs:
status: ${{ steps.report-status.outputs.status }}
strategy:
fail-fast: false
matrix:
flavor: [debug, release]
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup node.js
uses: ./.github/actions/setup-node
- name: Install node dependencies
uses: ./.github/actions/yarn-install
- name: Download APK
uses: actions/download-artifact@v7
with:
name: rntester-${{ matrix.flavor }}
path: ./packages/rn-tester/android/app/build/outputs/apk/${{ matrix.flavor }}/
- name: Print folder structure
run: ls -lR ./packages/rn-tester/android/app/build/outputs/apk/${{ matrix.flavor }}/
- name: Run E2E Tests
id: run-tests
continue-on-error: true
uses: ./.github/actions/maestro-android
timeout-minutes: 60
with:
app-path: ./packages/rn-tester/android/app/build/outputs/apk/${{ matrix.flavor }}/app-x86-${{ matrix.flavor }}.apk
app-id: com.facebook.react.uiapp
maestro-flow: ./packages/rn-tester/.maestro
flavor: ${{ matrix.flavor }}
- name: Report status
id: report-status
if: ${{ always() && steps.run-tests.outcome == 'failure' }}
run: echo "status=failure" >> $GITHUB_OUTPUT

report:
needs: test
if: always()
runs-on: ubuntu-latest
outputs:
status: ${{ steps.check.outputs.status }}
steps:
- id: check
run: |
if [[ "${{ needs.test.outputs.status }}" == "failure" ]]; then
echo "status=failure" >> $GITHUB_OUTPUT
else
echo "status=success" >> $GITHUB_OUTPUT
fi
- name: Fail if needed
if: ${{ inputs.fail-on-error && steps.check.outputs.status == 'failure' }}
run: exit 1
Loading
Loading