Skip to content

Commit 0f43da6

Browse files
authored
Merge branch 'facebook:main' into main
2 parents 9ad279c + f1ac82c commit 0f43da6

132 files changed

Lines changed: 1632 additions & 433 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.
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
name: Build Fantom Runner
2+
inputs:
3+
release-type:
4+
required: true
5+
description: The type of release we are building. It could be nightly, release or dry-run
6+
gradle-cache-encryption-key:
7+
description: "The encryption key needed to store the Gradle Configuration cache"
8+
9+
runs:
10+
using: composite
11+
steps:
12+
- name: Install dependencies
13+
shell: bash
14+
run: |
15+
sudo apt update
16+
sudo apt install -y git cmake openssl libssl-dev clang
17+
- name: Setup git safe folders
18+
shell: bash
19+
run: git config --global --add safe.directory '*'
20+
- name: Setup node.js
21+
uses: ./.github/actions/setup-node
22+
- name: Install node dependencies
23+
uses: ./.github/actions/yarn-install
24+
- name: Setup gradle
25+
uses: ./.github/actions/setup-gradle
26+
with:
27+
cache-read-only: "false"
28+
cache-encryption-key: ${{ inputs.gradle-cache-encryption-key }}
29+
- name: Restore Fantom ccache
30+
uses: actions/cache/restore@v5
31+
with:
32+
path: /github/home/.cache/ccache
33+
key: v2-ccache-fantom-${{ github.job }}-${{ github.ref }}-${{ hashFiles(
34+
'packages/react-native/ReactAndroid/**/*.cpp',
35+
'packages/react-native/ReactAndroid/**/*.h',
36+
'packages/react-native/ReactAndroid/**/CMakeLists.txt',
37+
'packages/react-native/ReactCommon/**/*.cpp',
38+
'packages/react-native/ReactCommon/**/*.h',
39+
'packages/react-native/ReactCommon/**/CMakeLists.txt',
40+
'private/react-native-fantom/tester/**/*.cpp',
41+
'private/react-native-fantom/tester/**/*.h',
42+
'private/react-native-fantom/tester/**/CMakeLists.txt'
43+
) }}
44+
restore-keys: |
45+
v2-ccache-fantom-${{ github.job }}-${{ github.ref }}-
46+
v2-ccache-fantom-${{ github.job }}-
47+
v2-ccache-fantom-
48+
- name: Show ccache stats (before)
49+
shell: bash
50+
run: ccache -s -v
51+
- name: Build Fantom Runner
52+
shell: bash
53+
run: yarn workspace @react-native/fantom build
54+
env:
55+
CC: clang
56+
CXX: clang++
57+
- name: Save Fantom ccache
58+
if: ${{ github.ref == 'refs/heads/main' || contains(github.ref, '-stable') }}
59+
uses: actions/cache/save@v5
60+
with:
61+
path: /github/home/.cache/ccache
62+
key: v2-ccache-fantom-${{ github.job }}-${{ github.ref }}-${{ hashFiles(
63+
'packages/react-native/ReactAndroid/**/*.cpp',
64+
'packages/react-native/ReactAndroid/**/*.h',
65+
'packages/react-native/ReactAndroid/**/CMakeLists.txt',
66+
'packages/react-native/ReactCommon/**/*.cpp',
67+
'packages/react-native/ReactCommon/**/*.h',
68+
'packages/react-native/ReactCommon/**/CMakeLists.txt',
69+
'private/react-native-fantom/tester/**/*.cpp',
70+
'private/react-native-fantom/tester/**/*.h',
71+
'private/react-native-fantom/tester/**/CMakeLists.txt'
72+
) }}
73+
- name: Show ccache stats (after)
74+
shell: bash
75+
run: ccache -s -v
76+
- name: Copy shared libraries
77+
shell: bash
78+
run: cp packages/react-native/ReactAndroid/hermes-engine/build/hermes/lib/libhermesvm.so private/react-native-fantom/build/tester/
79+
- name: Upload Fantom Runner binary
80+
uses: actions/upload-artifact@v6
81+
with:
82+
name: fantom-runner-binary
83+
compression-level: 1
84+
path: private/react-native-fantom/build/tester/

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

Lines changed: 21 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,78 +1,43 @@
11
name: Run Fantom Tests
2-
inputs:
3-
release-type:
4-
required: true
5-
description: The type of release we are building. It could be nightly, release or dry-run
6-
gradle-cache-encryption-key:
7-
description: "The encryption key needed to store the Gradle Configuration cache"
8-
92
runs:
103
using: composite
114
steps:
12-
- name: Install dependencies
5+
- name: Install runtime dependencies
136
shell: bash
147
run: |
158
sudo apt update
16-
sudo apt install -y git cmake openssl libssl-dev clang
9+
sudo apt install -y openssl libssl-dev
1710
- name: Setup git safe folders
1811
shell: bash
1912
run: git config --global --add safe.directory '*'
2013
- name: Setup node.js
2114
uses: ./.github/actions/setup-node
2215
- name: Install node dependencies
2316
uses: ./.github/actions/yarn-install
24-
- name: Setup gradle
25-
uses: ./.github/actions/setup-gradle
17+
- name: Download Fantom Runner binary
18+
uses: actions/download-artifact@v7
2619
with:
27-
cache-read-only: "false"
28-
cache-encryption-key: ${{ inputs.gradle-cache-encryption-key }}
29-
- name: Restore Fantom ccache
30-
uses: actions/cache/restore@v5
31-
with:
32-
path: /github/home/.cache/ccache
33-
key: v2-ccache-fantom-${{ github.job }}-${{ github.ref }}-${{ hashFiles(
34-
'packages/react-native/ReactAndroid/**/*.cpp',
35-
'packages/react-native/ReactAndroid/**/*.h',
36-
'packages/react-native/ReactAndroid/**/CMakeLists.txt',
37-
'packages/react-native/ReactCommon/**/*.cpp',
38-
'packages/react-native/ReactCommon/**/*.h',
39-
'packages/react-native/ReactCommon/**/CMakeLists.txt',
40-
'private/react-native-fantom/tester/**/*.cpp',
41-
'private/react-native-fantom/tester/**/*.h',
42-
'private/react-native-fantom/tester/**/CMakeLists.txt'
43-
) }}
44-
restore-keys: |
45-
v2-ccache-fantom-${{ github.job }}-${{ github.ref }}-
46-
v2-ccache-fantom-${{ github.job }}-
47-
v2-ccache-fantom-
48-
- name: Show ccache stats
20+
name: fantom-runner-binary
21+
path: private/react-native-fantom/build/tester
22+
- name: Make binary executable
4923
shell: bash
50-
run: ccache -s -v
24+
run: chmod +x private/react-native-fantom/build/tester/fantom_tester
5125
- name: Run Fantom Tests
5226
shell: bash
53-
run: yarn fantom
27+
run: |
28+
for attempt in 1 2 3; do
29+
echo "Attempt $attempt of 3"
30+
if yarn fantom; then
31+
exit 0
32+
fi
33+
if [ "$attempt" -lt 3 ]; then
34+
echo "Attempt $attempt failed. Retrying..."
35+
fi
36+
done
37+
echo "All 3 attempts failed."
38+
exit 1
5439
env:
55-
CC: clang
56-
CXX: clang++
57-
- name: Save Fantom ccache
58-
if: ${{ github.ref == 'refs/heads/main' || contains(github.ref, '-stable') }}
59-
uses: actions/cache/save@v5
60-
with:
61-
path: /github/home/.cache/ccache
62-
key: v2-ccache-fantom-${{ github.job }}-${{ github.ref }}-${{ hashFiles(
63-
'packages/react-native/ReactAndroid/**/*.cpp',
64-
'packages/react-native/ReactAndroid/**/*.h',
65-
'packages/react-native/ReactAndroid/**/CMakeLists.txt',
66-
'packages/react-native/ReactCommon/**/*.cpp',
67-
'packages/react-native/ReactCommon/**/*.h',
68-
'packages/react-native/ReactCommon/**/CMakeLists.txt',
69-
'private/react-native-fantom/tester/**/*.cpp',
70-
'private/react-native-fantom/tester/**/*.h',
71-
'private/react-native-fantom/tester/**/CMakeLists.txt'
72-
) }}
73-
- name: Show ccache stats
74-
shell: bash
75-
run: ccache -s -v
40+
LD_LIBRARY_PATH: ${{ github.workspace }}/private/react-native-fantom/build/tester
7641
- name: Upload test results
7742
if: ${{ always() }}
7843
uses: actions/upload-artifact@v6

.github/workflows/test-all.yml

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,7 @@ jobs:
338338
flavor: ${{ matrix.flavor }}
339339
working-directory: /tmp/RNTestProject
340340

341-
run_fantom_tests:
341+
build_fantom_runner:
342342
runs-on: 8-core-ubuntu
343343
needs: [set_release_type, check_code_changes, lint]
344344
if: needs.check_code_changes.outputs.any_code_change == 'true'
@@ -356,12 +356,25 @@ jobs:
356356
steps:
357357
- name: Checkout
358358
uses: actions/checkout@v6
359-
- name: Build and Test Fantom
360-
uses: ./.github/actions/run-fantom-tests
359+
- name: Build Fantom Runner
360+
uses: ./.github/actions/build-fantom-runner
361361
with:
362362
release-type: ${{ needs.set_release_type.outputs.RELEASE_TYPE }}
363363
gradle-cache-encryption-key: ${{ secrets.GRADLE_CACHE_ENCRYPTION_KEY }}
364364

365+
run_fantom_tests:
366+
runs-on: 8-core-ubuntu
367+
needs: [build_fantom_runner]
368+
container:
369+
image: reactnativecommunity/react-native-android:latest
370+
env:
371+
TERM: "dumb"
372+
steps:
373+
- name: Checkout
374+
uses: actions/checkout@v6
375+
- name: Run Fantom Tests
376+
uses: ./.github/actions/run-fantom-tests
377+
365378
build_android:
366379
runs-on: 8-core-ubuntu
367380
needs: [set_release_type, check_code_changes]
@@ -623,7 +636,7 @@ jobs:
623636
uses: ./.github/actions/yarn-install
624637
- name: Build packages
625638
shell: bash
626-
run: yarn build
639+
run: yarn build --prepack
627640
- name: Verify debugger-shell build
628641
shell: bash
629642
run: node scripts/debugger-shell/build-binary.js

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,5 +179,6 @@ fix_*.patch
179179

180180
# Doxygen XML output used for C++ API tracking
181181
/packages/react-native/**/api/xml
182+
/packages/react-native/**/api/codegen
182183
/packages/react-native/**/.doxygen.config.generated
183184
/scripts/cxx-api/codegen

CHANGELOG.md

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
# Changelog
22

3-
## v0.83.4
3+
## v0.85.0-rc.1
44

5-
### Fixed
5+
### Breaking
66

7-
#### iOS specific
7+
- **Animated**: Fix unsafe rawPointer access in cloneMultiple. ([1d47693230](https://github.com/facebook/react-native/commit/1d476932305f2563d773eb04f0f78a9bdd2525e1) by [@coado](https://github.com/coado))
88

9-
- **Precompiled Binaries:** Add RCTDevSupportHeaders in React Umbrella ([cfb5328833](https://github.com/facebook/react-native/commit/cfb53288331885ce5d221783affe2f1fb9e18782) by [@cipolleschi](https://github.com/cipolleschi))
9+
### Added
10+
11+
- **Animated**: Add c++ AnimatedModule to DefaultTurboModules ([15e52e3f71](https://github.com/facebook/react-native/commit/15e52e3f71e7199808686e2b86ea54dcb2495b71) by [@zeyap](https://github.com/zeyap))
1012

1113
## v0.85.0-rc.0
1214

@@ -399,6 +401,14 @@
399401
- **Touch Handling**: Respect `cancelsTouchesInView` when canceling touches in `RCTSurfaceTouchHandler` ([5634e8a601](https://github.com/facebook/react-native/commit/5634e8a601caf0faa174bac3511929de767609ac) by [@intmain](https://github.com/intmain))
400402
- **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)
401403

404+
## v0.83.4
405+
406+
### Fixed
407+
408+
#### iOS specific
409+
410+
- **Precompiled Binaries:** Add RCTDevSupportHeaders in React Umbrella ([cfb5328833](https://github.com/facebook/react-native/commit/cfb53288331885ce5d221783affe2f1fb9e18782) by [@cipolleschi](https://github.com/cipolleschi))
411+
402412
## v0.83.3
403413

404414
### Added

build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,15 +116,15 @@ var hermesSubstitution: Pair<String, String>? = null
116116
if (project.findProperty("react.internal.useHermesStable")?.toString()?.toBoolean() == true) {
117117
val hermesVersions = java.util.Properties()
118118
val hermesVersionPropertiesFile =
119-
File("./packages/react-native/sdks/hermes-engine/version.properties")
119+
rootProject.file("./packages/react-native/sdks/hermes-engine/version.properties")
120120
hermesVersionPropertiesFile.inputStream().use { hermesVersions.load(it) }
121121
val selectedHermesVersion = hermesVersions["HERMES_V1_VERSION_NAME"] as String
122122

123123
hermesSubstitution = selectedHermesVersion to "Users opted to use stable hermes release"
124124
} else if (
125125
project.findProperty("react.internal.useHermesNightly")?.toString()?.toBoolean() == true
126126
) {
127-
val reactNativePackageJson = File("./packages/react-native/package.json")
127+
val reactNativePackageJson = rootProject.file("./packages/react-native/package.json")
128128
val reactNativePackageJsonContent = reactNativePackageJson.readText()
129129
val packageJson = groovy.json.JsonSlurper().parseText(reactNativePackageJsonContent) as Map<*, *>
130130

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@
5656
"@jest/create-cache-key-function": "^29.7.0",
5757
"@microsoft/api-extractor": "^7.52.2",
5858
"@octokit/rest": "^22.0.0",
59-
"@react-native/metro-babel-transformer": "0.85.0-main",
60-
"@react-native/metro-config": "0.85.0-main",
59+
"@react-native/metro-babel-transformer": "0.86.0-main",
60+
"@react-native/metro-config": "0.86.0-main",
6161
"@tsconfig/node22": "22.0.2",
6262
"@types/react": "^19.1.0",
6363
"@typescript-eslint/parser": "^8.36.0",

packages/assets/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@react-native/assets-registry",
3-
"version": "0.85.0-main",
3+
"version": "0.86.0-main",
44
"description": "Asset support code for React Native.",
55
"license": "MIT",
66
"repository": {

packages/babel-plugin-codegen/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@react-native/babel-plugin-codegen",
3-
"version": "0.85.0-main",
3+
"version": "0.86.0-main",
44
"description": "Babel plugin to generate native module and view manager code for React Native.",
55
"license": "MIT",
66
"repository": {
@@ -26,7 +26,7 @@
2626
],
2727
"dependencies": {
2828
"@babel/traverse": "^7.29.0",
29-
"@react-native/codegen": "0.85.0-main"
29+
"@react-native/codegen": "0.86.0-main"
3030
},
3131
"devDependencies": {
3232
"@babel/core": "^7.25.2"

packages/community-cli-plugin/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@react-native/community-cli-plugin",
3-
"version": "0.85.0-main",
3+
"version": "0.86.0-main",
44
"description": "Core CLI commands for React Native",
55
"keywords": [
66
"react-native",
@@ -31,7 +31,7 @@
3131
"prepack": "node ../../scripts/build/prepack.js"
3232
},
3333
"dependencies": {
34-
"@react-native/dev-middleware": "0.85.0-main",
34+
"@react-native/dev-middleware": "0.86.0-main",
3535
"debug": "^4.4.0",
3636
"invariant": "^2.2.4",
3737
"metro": "^0.84.2",
@@ -44,7 +44,7 @@
4444
},
4545
"peerDependencies": {
4646
"@react-native-community/cli": "*",
47-
"@react-native/metro-config": "*"
47+
"@react-native/metro-config": "0.86.0-main"
4848
},
4949
"peerDependenciesMeta": {
5050
"@react-native-community/cli": {

0 commit comments

Comments
 (0)