Skip to content

Commit a71b73b

Browse files
committed
Merge branch 'main' into accessibility_missing_tests
2 parents 27a1489 + a78d6f4 commit a71b73b

462 files changed

Lines changed: 98148 additions & 4976 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.flowconfig

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,6 @@ experimental.pattern_matching=true
4848
casting_syntax=both
4949
component_syntax=true
5050

51-
check_is_status=true
52-
5351
emoji=true
5452

5553
exact_by_default=true
@@ -97,4 +95,4 @@ untyped-import
9795
untyped-type-import
9896

9997
[version]
100-
^0.307.0
98+
^0.310.0

.github/actions/run-fantom-tests/action.yml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,17 @@ runs:
2727
run: |
2828
for attempt in 1 2 3; do
2929
echo "Attempt $attempt of 3"
30-
if yarn fantom; then
31-
exit 0
30+
if [ "$attempt" -eq 1 ]; then
31+
if yarn fantom; then
32+
exit 0
33+
fi
34+
else
35+
if yarn fantom --onlyFailures; then
36+
exit 0
37+
fi
3238
fi
3339
if [ "$attempt" -lt 3 ]; then
34-
echo "Attempt $attempt failed. Retrying..."
40+
echo "Attempt $attempt failed. Retrying only failed tests..."
3541
fi
3642
done
3743
echo "All 3 attempts failed."

.github/workflows/create-release.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,21 @@ jobs:
2828
token: ${{ secrets.REACT_NATIVE_BOT_GITHUB_TOKEN }}
2929
fetch-depth: 0
3030
fetch-tags: 'true'
31+
- name: Verify NPM token
32+
run: |
33+
if [[ -z "$GHA_NPM_TOKEN" ]]; then
34+
echo "⚠️ No NPM token found. Skipping validation."
35+
exit 0
36+
fi
37+
echo "//registry.npmjs.org/:_authToken=$GHA_NPM_TOKEN" > ~/.npmrc
38+
if ! npm whoami > /dev/null 2>&1; then
39+
echo "❌ NPM token is invalid or expired. Aborting release."
40+
exit 1
41+
fi
42+
echo "✅ NPM token is valid ($(npm whoami))"
43+
rm -f ~/.npmrc
44+
env:
45+
GHA_NPM_TOKEN: ${{ secrets.GHA_NPM_TOKEN }}
3146
- name: Check if on stable branch
3247
id: check_stable_branch
3348
run: |

.github/workflows/nightly.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,19 @@ jobs:
8989
steps:
9090
- name: Checkout
9191
uses: actions/checkout@v6
92+
- name: Verify NPM token
93+
run: |
94+
if [[ -z "$GHA_NPM_TOKEN" ]]; then
95+
echo "⚠️ No NPM token found. Skipping validation."
96+
exit 0
97+
fi
98+
echo "//registry.npmjs.org/:_authToken=$GHA_NPM_TOKEN" > ~/.npmrc
99+
if ! npm whoami > /dev/null 2>&1; then
100+
echo "❌ NPM token is invalid or expired. Aborting release."
101+
exit 1
102+
fi
103+
echo "✅ NPM token is valid ($(npm whoami))"
104+
rm -f ~/.npmrc
92105
- name: Build and Publish NPM Package
93106
uses: ./.github/actions/build-npm-package
94107
with:
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
name: Validate C++ API Snapshots
2+
3+
on:
4+
workflow_dispatch:
5+
pull_request:
6+
paths:
7+
- "packages/react-native/ReactCommon/**"
8+
- "packages/react-native/ReactAndroid/**"
9+
- "packages/react-native/React/**"
10+
- "packages/react-native/ReactApple/**"
11+
- "packages/react-native/Libraries/**"
12+
- "scripts/cxx-api/**"
13+
push:
14+
branches:
15+
- main
16+
- "*-stable"
17+
paths:
18+
- "packages/react-native/ReactCommon/**"
19+
- "packages/react-native/ReactAndroid/**"
20+
- "packages/react-native/React/**"
21+
- "packages/react-native/ReactApple/**"
22+
- "packages/react-native/Libraries/**"
23+
- "scripts/cxx-api/**"
24+
25+
env:
26+
DOXYGEN_VERSION: "1.16.1"
27+
28+
jobs:
29+
validate_cxx_api_snapshots:
30+
runs-on: ubuntu-latest
31+
if: github.repository == 'facebook/react-native'
32+
steps:
33+
- name: Checkout
34+
uses: actions/checkout@v6
35+
- name: Setup node.js
36+
uses: ./.github/actions/setup-node
37+
- name: Run yarn
38+
uses: ./.github/actions/yarn-install
39+
- name: Restore Doxygen cache
40+
id: cache-doxygen
41+
uses: actions/cache@v4
42+
with:
43+
path: /tmp/doxygen-${{ env.DOXYGEN_VERSION }}
44+
key: doxygen-${{ env.DOXYGEN_VERSION }}
45+
- name: Install Doxygen
46+
if: steps.cache-doxygen.outputs.cache-hit != 'true'
47+
shell: bash
48+
run: |
49+
DOXYGEN_URL="https://github.com/doxygen/doxygen/releases/download/Release_${DOXYGEN_VERSION//./_}/doxygen-${DOXYGEN_VERSION}.linux.bin.tar.gz"
50+
MAX_RETRIES=3
51+
for i in $(seq 1 $MAX_RETRIES); do
52+
echo "Attempt $i of $MAX_RETRIES: Installing Doxygen ${DOXYGEN_VERSION}..."
53+
curl -fsSL "$DOXYGEN_URL" -o /tmp/doxygen.tar.gz && \
54+
tar -xzf /tmp/doxygen.tar.gz -C /tmp && \
55+
echo "Doxygen installed successfully." && \
56+
break
57+
echo "Attempt $i failed."
58+
if [ $i -eq $MAX_RETRIES ]; then
59+
echo "All $MAX_RETRIES attempts failed."
60+
exit 1
61+
fi
62+
sleep 5
63+
done
64+
- name: Set DOXYGEN_BIN
65+
shell: bash
66+
run: echo "DOXYGEN_BIN=/tmp/doxygen-${DOXYGEN_VERSION}/bin/doxygen" >> "$GITHUB_ENV"
67+
- name: Set up Python
68+
uses: actions/setup-python@v5
69+
with:
70+
python-version: "3.12"
71+
- name: Install Python dependencies
72+
shell: bash
73+
run: pip install doxmlparser natsort pyyaml
74+
- name: Validate C++ API snapshots
75+
shell: bash
76+
run: yarn cxx-api-validate --output-dir /tmp/cxx-api-snapshots
77+
- name: Upload C++ API snapshots
78+
if: always()
79+
uses: actions/upload-artifact@v6
80+
with:
81+
name: cxx-api-snapshots
82+
path: /tmp/cxx-api-snapshots/

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,5 +183,5 @@ __pycache__/
183183
# Doxygen XML output used for C++ API tracking
184184
/packages/react-native/**/api/xml
185185
/packages/react-native/**/api/codegen
186-
/packages/react-native/**/.doxygen.config.generated
186+
/packages/react-native/**/.doxygen.config.*.generated
187187
/scripts/cxx-api/codegen

CHANGELOG.md

Lines changed: 43 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,37 @@
11
# Changelog
22

3-
## v0.85.0-rc.6
3+
## v0.85.2
44

5-
### Changed
6-
7-
#### iOS specific
8-
9-
- **Build**: Bump fmt to 12.1.0 to fix Xcode 26.4 ([faeef2b90a](https://github.com/facebook/react-native/commit/faeef2b90a56633ad44289b994d31e7ce590b145) by [@leotm](https://github.com/leotm))
5+
### Added
106

7+
- **Animated**: Add pushAnimationMutations to AnimationBackend for targeted event-driven animation updates ([e4f0509973](https://github.com/facebook/react-native/commit/e4f0509973241d43f969401f81e85f0cd25ccc94) by Bartlomiej Bloniarz)
118

129
### Fixed
1310

14-
#### iOS specific
15-
16-
- **Build**: Fixed duplicate symbol error when using React.XCFramework ([d21ffc9e32](https://github.com/facebook/react-native/commit/d21ffc9e322060c354b78da84d590cfc337c1de8) by [@chrfalch](https://github.com/chrfalch))
17-
18-
19-
## v0.85.0-rc.5
20-
21-
### Fixed
11+
- **Animated**: Fix potential data corruption in animation backend when ShadowTree commits are retried by copying RawProps instead of moving them ([77d3df8cab](https://github.com/facebook/react-native/commit/77d3df8cab3dccfd4fefad6a80603fadcfc45106) by Bartlomiej Bloniarz)
2212

2313
#### iOS specific
2414

25-
- **Animated**: Revert RCTAnimatedModuleProvider change from [# 55729](https://github.com/facebook/react-native/pull/55729) ([85696fe](https://github.com/facebook/react-native/commit/85696fe1169d737c42cc9b4f85472dda23e99ed7) by [@zeyap](https://github.com/zeyap))
15+
- **Dev Server**: Fix "Loading from Metro..." banner getting stuck after reloads in quick succession ([e122c24c27](https://github.com/facebook/react-native/commit/e122c24c273f5fb6e0a2d6b1c961d75ac9bc90b7) by [@alanjhughes](https://github.com/alanjhughes))
2616

27-
## v0.85.0-rc.1
17+
## v0.85.1
2818

29-
### Breaking
19+
### Fixed
3020

31-
- **Animated**: Fix unsafe rawPointer access in cloneMultiple. ([1d47693230](https://github.com/facebook/react-native/commit/1d476932305f2563d773eb04f0f78a9bdd2525e1) by [@coado](https://github.com/coado))
21+
- **Animated**: Share animation backend enabled as experimental([401b1620dc](https://github.com/facebook/react-native/commit/401b1620dc674b3f7b9e88a783baca68a2f94ebc) by [@cortinico](https://github.com/cortinico))
3222

33-
### Added
23+
#### Android specific
3424

35-
- **Animated**: Add c++ AnimatedModule to DefaultTurboModules ([15e52e3f71](https://github.com/facebook/react-native/commit/15e52e3f71e7199808686e2b86ea54dcb2495b71) by [@zeyap](https://github.com/zeyap))
25+
- **Networking**: FormData uploads broken in debug builds ([0d1b70ee22](https://github.com/facebook/react-native/commit/0d1b70ee225a2e9970364ddda323071aa0a7e485) by [@riteshshukla04](https://github.com/riteshshukla04))
3626

37-
## v0.85.0-rc.0
27+
## v0.85.0
3828

3929
### Breaking
4030

31+
- **Animated**: Fix unsafe rawPointer access in cloneMultiple. ([1d47693230](https://github.com/facebook/react-native/commit/1d476932305f2563d773eb04f0f78a9bdd2525e1) by [@coado](https://github.com/coado))
4132
- **Build**: Drop support for EOL Node.js lines and old minors. ([c9c601d61a](https://github.com/facebook/react-native/commit/c9c601d61af836d26ab628c2c8a30bae713ef010) by [@robhogan](https://github.com/robhogan))
4233
- **Jest**: Move Jest preset to new `react-native/jest-preset` package ([c4ae05534a](https://github.com/facebook/react-native/commit/c4ae05534ad5b6e6def35e736764f64b1f145a2b) by [@kitten](https://github.com/kitten))
43-
- **StyleSheet**: Remove deprecated `StyleSheet.absoluteFill` API ([5681db09b8](https://github.com/facebook/react-native/commit/5681db09b875e8c2b59b14df2300bad2b68d8a17) by [@huntie](https://github.com/huntie))
34+
- **StyleSheet**: Remove deprecated `StyleSheet.absoluteFillObject` API ([5681db09b8](https://github.com/facebook/react-native/commit/5681db09b875e8c2b59b14df2300bad2b68d8a17) by [@huntie](https://github.com/huntie))
4435
- **TypeScript**: Removing deprecated type aliases. Use the type directly. ([1813df743d](https://github.com/facebook/react-native/commit/1813df743db3852f3b667e36c31d564867c257fc) by [@sammy-SC](https://github.com/sammy-SC))
4536
- **TypeScript**: Removing deprecated type aliases. Use the type directly. ([796a9a8922](https://github.com/facebook/react-native/commit/796a9a892283feeb01e9ded21c40dc91409c1499) by [@sammy-SC](https://github.com/sammy-SC))
4637

@@ -55,6 +46,7 @@
5546

5647
- **Animated**: `RCTAnimationChoreographer` to `RCTScheduler` ([019c9a7d8f](https://github.com/facebook/react-native/commit/019c9a7d8f56fe895253de8487b4c6d0d76f85be) by Bartlomiej Bloniarz)
5748
- **Animated**: `std::mutex` to `AnimationBackend` to protect `start`, `stop` and `callbacks`. ([4064b89867](https://github.com/facebook/react-native/commit/4064b89867cb7424fd02433c6d597e534bfc8cbc) by Bartlomiej Bloniarz)
49+
- **Animated**: Add c++ AnimatedModule to DefaultTurboModules ([15e52e3f71](https://github.com/facebook/react-native/commit/15e52e3f71e7199808686e2b86ea54dcb2495b71) by [@zeyap](https://github.com/zeyap))
5850
- **Animated**: Added support for transform operations. ([58b7b052c0](https://github.com/facebook/react-native/commit/58b7b052c092e79277ab026ea6dd4f78021ed6c5) by [@coado](https://github.com/coado))
5951
- **Animated**: Animated calls `AnimationBackend::trigger` to push updates from. events to the mounting layer ([ac06f3bdc7](https://github.com/facebook/react-native/commit/ac06f3bdc76a9fd7c65ab899e82bff5cad9b94b6) by Bartlomiej Bloniarz)
6052
- **Animated**: Animated can now prompt the backend to push changes to the shadowTree on the JS thread, making RSNRU update the ShadowNode references held by the react renderer. ([f9e94c0502](https://github.com/facebook/react-native/commit/f9e94c050251c67bf0d2c806738b8c6e59bb59d5) by Bartlomiej Bloniarz)
@@ -144,6 +136,7 @@
144136

145137
#### iOS specific
146138

139+
- **Build**: Bump fmt to 12.1.0 to fix Xcode 26.4 ([faeef2b90a](https://github.com/facebook/react-native/commit/faeef2b90a56633ad44289b994d31e7ce590b145) by [@leotm](https://github.com/leotm))
147140
- **Build**: Changed umbrella header template to use angled import syntax ([2b66a9a622](https://github.com/facebook/react-native/commit/2b66a9a622ada3b540e1466d1dea61f2404d34ab) by [@chrfalch](https://github.com/chrfalch))
148141

149142
### Deprecated
@@ -216,13 +209,16 @@
216209

217210
- **Accessibility**: Ensure accessibilityElementsHidden prop is respected in recursive accessibility label aggregation ([b60f533acc](https://github.com/facebook/react-native/commit/b60f533accc589ddff7fde8fbdaa65606b2cad85) by Max Polevy)
218211
- **Animated**: Fixed edge-case with animating non-layout props through the `commitUpdates` path. ([31f215a421](https://github.com/facebook/react-native/commit/31f215a42183fa815204c8d730cc41437b077534) by [@coado](https://github.com/coado))
212+
- **Animated**: Revert RCTAnimatedModuleProvider change from [# 55729](https://github.com/facebook/react-native/pull/55729) ([85696fe](https://github.com/facebook/react-native/commit/85696fe1169d737c42cc9b4f85472dda23e99ed7) by [@zeyap](https://github.com/zeyap))
219213
- **Build**: Fix unused exception parameter compile error in RCTUIManager catch block in certain build mode ([58bc6c3e38](https://github.com/facebook/react-native/commit/58bc6c3e38d45398ebec01a5399eac8d72f83adc) by Yannick Loriot)
214+
- **Build**: Fixed duplicate symbol error when using React.XCFramework ([d21ffc9e32](https://github.com/facebook/react-native/commit/d21ffc9e322060c354b78da84d590cfc337c1de8) by [@chrfalch](https://github.com/chrfalch))
220215
- **Build**: Fixed replace script deleting the react-vfs.yaml file on iOS ([11e257cec0](https://github.com/facebook/react-native/commit/11e257cec09d1e69e7261fd769ad0f0e4007e09e) by [@chrfalch](https://github.com/chrfalch))
221216
- **CocoaPods**: Add `nkf` and `base64` as ruby dependencies ([51c965883f](https://github.com/facebook/react-native/commit/51c965883f609b93b47c99b18ab260633a57346a) by [@kimchi-developer](https://github.com/kimchi-developer))
222217
- **CocoaPods**: Allow absolute react-native paths to be passed to `use_react_native!` in project podfiles ([33641f09fa](https://github.com/facebook/react-native/commit/33641f09fa91e93bc5780c2d6999515f9761a17f) by [@kitten](https://github.com/kitten))
223218
- **CocoaPods**: Regression from https://github.com/facebook/react-native/issues/54948 preventing `pod install --project-directory` from working properly ([9f686f2014](https://github.com/facebook/react-native/commit/9f686f2014aefd2ad6ee3b5843718d5d7d72d13a) by [@kitten](https://github.com/kitten))
224219
- **Dev Server**: Not crashing on network issues with connecting to DevServer ([ec29c292e0](https://github.com/facebook/react-native/commit/ec29c292e0417ef2c02fefe08f904117c3d5972e) by [@vzaidman](https://github.com/vzaidman))
225220
- **Dev Server**: Sync bundling progress between Metro cli and app hints ([e112934f2e](https://github.com/facebook/react-native/commit/e112934f2e1c74732e2fcf828299d8afab648d8e) by [@vzaidman](https://github.com/vzaidman))
221+
- **Hermes**: Fix Hermes crash when async void TurboModule method throws NSException by re-throwing instead of converting to JSError on wrong thread ([4083a6ff92](https://github.com/facebook/react-native/commit/4083a6ff92b0ffd4f71166848f3d7ce36172fac8) by [@fabriziocucci](https://github.com/fabriziocucci))
226222
- **Image**: Fix expo-image-manipulator cropped image orientation ([978d5a2d4f](https://github.com/facebook/react-native/commit/978d5a2d4f4eede9cd6ba4786cae2dcc99ce3a37) by [@mlazari](https://github.com/mlazari))
227223
- **Image**: Resolves a rare race-condition that can trigger in RCTImageComponentView. ([3b46755b3b](https://github.com/facebook/react-native/commit/3b46755b3b2f4a53b79d0828ef4c0cfe319a34ac) by Ryan Frawley)
228224
- **Prebuild**: Refactored header files generator for prebuilt React framework ([3fad7dc13d](https://github.com/facebook/react-native/commit/3fad7dc13dc6a7e4a2e9f5e877561526f990e90d) by [@chrfalch](https://github.com/chrfalch))
@@ -425,6 +421,31 @@
425421
- **Touch Handling**: Respect `cancelsTouchesInView` when canceling touches in `RCTSurfaceTouchHandler` ([5634e8a601](https://github.com/facebook/react-native/commit/5634e8a601caf0faa174bac3511929de767609ac) by [@intmain](https://github.com/intmain))
426422
- **View**: Fix duplicate shadow bug during component recycling by cleaning up visual layers in prepareForRecycle ([7dcedf1def](https://github.com/facebook/react-native/commit/7dcedf1def880163ab7ca07b2575a8153029a925) by Atharv Soni)
427423

424+
## v0.83.6
425+
426+
### Fixed
427+
428+
- Provide symbol fallbacks for `inspector-modern/chrome/Registration.h` when `HERMES_V1_ENABLED` is set ([efc4cf4ea9](https://github.com/facebook/react-native/commit/efc4cf4ea963894ef6c5ed57bab16e46c4d6e5ca) by [@huntie](https://github.com/huntie))
429+
430+
#### iOS specific
431+
432+
- Fix "Loading from Metro..." banner getting stuck after reloads in quick succession. ([e122c24c27](https://github.com/facebook/react-native/commit/e122c24c273f5fb6e0a2d6b1c961d75ac9bc90b7) by [@alanjhughes](https://github.com/alanjhughes))
433+
434+
## v0.83.5
435+
436+
### Fixed
437+
438+
- **Appearance**: Fix color scheme in appearance state after setting it to unspecified ([c338d19](https://github.com/facebook/react-native/commit/c338d19a1d4dfeb06ca796176a23f6b07457ac50) by [@ismarbesic](https://github.com/ismarbesic))
439+
440+
#### Android specific
441+
442+
- **Networking**: File:// URIs passed to fetch() or XMLHttpRequest no longer fail (https://github.com/facebook/react-native/issues/54626) ([3cf6bff](https://github.com/facebook/react-native/commit/3cf6bff25d106c2f25b6c7cfce6295bd812013bf) by [@bhamiltoncx](https://github.com/bhamiltoncx))
443+
444+
#### iOS specific
445+
446+
- **Build**: Bump fmt to 12.1.0 to fix Xcode 26.4 ([faeef2b90a](https://github.com/facebook/react-native/commit/faeef2b90a56633ad44289b994d31e7ce590b145) by [@leotm](https://github.com/leotm))
447+
- **Hermes**: Fix Hermes crash when async void TurboModule method throws NSException by re-throwing instead of converting to JSError on wrong thread ([a9a976a](https://github.com/facebook/react-native/commit/a9a976af89c3cd52e7f742109e24dbc6ebf09aa9) by [@fabriziocucci](https://github.com/fabriziocucci))
448+
428449
## v0.83.4
429450

430451
### Fixed

build.gradle.kts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,15 @@ if (project.findProperty("react.internal.useHermesStable")?.toString()?.toBoolea
137137
)
138138
}
139139

140-
hermesSubstitution = "$hermesCompilerVersion-SNAPSHOT" to "Users opted to use hermes nightly"
140+
val hermesV1Enabled = project.findProperty("hermesV1Enabled")?.toString()?.toBoolean() ?: true
141+
// Hermes V1 stable releases are published without the -SNAPSHOT suffix.
142+
// Legacy nightly builds use -SNAPSHOT.
143+
val resolvedVersion =
144+
if (hermesV1Enabled) hermesCompilerVersion else "$hermesCompilerVersion-SNAPSHOT"
145+
val reason =
146+
if (hermesV1Enabled) "Users opted to use hermes V1 stable"
147+
else "Users opted to use hermes nightly"
148+
hermesSubstitution = resolvedVersion to reason
141149
} else {
142150
logger.warn(
143151
"""

jest.config.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ module.exports = {
4343
'<rootDir>/packages/react-native/Libraries/Renderer',
4444
'<rootDir>/packages/react-native/sdks/hermes/',
4545
...PODS_LOCATIONS,
46-
] /*:: as $ReadOnlyArray<string> */,
46+
] /*:: as ReadonlyArray<string> */,
4747
transformIgnorePatterns: ['node_modules/(?!@react-native/)'],
4848
haste: {
4949
defaultPlatform: 'ios',
@@ -52,12 +52,12 @@ module.exports = {
5252
moduleFileExtensions: [
5353
'fb.js',
5454
...defaults.moduleFileExtensions,
55-
] /*:: as $ReadOnlyArray<string> */,
55+
] /*:: as ReadonlyArray<string> */,
5656
modulePathIgnorePatterns: [
5757
'scripts/.*/__fixtures__/',
5858
'<rootDir>/packages/react-native/sdks/hermes/',
5959
...PODS_LOCATIONS,
60-
] /*:: as $ReadOnlyArray<string> */,
60+
] /*:: as ReadonlyArray<string> */,
6161
unmockedModulePathPatterns: [
6262
'node_modules/react/',
6363
'packages/react-native/Libraries/Renderer',

0 commit comments

Comments
 (0)