Skip to content

Commit f68a830

Browse files
Merge remote-tracking branch 'origin/main' into feat/graduate-background-size-position-repeat
Conflict was limited to the generated `ReactNativeApi.d.ts` (SignedSource and per-export content hashes). Resolved by regenerating with `yarn build-types` from the merged sources rather than hand-merging hashes.
2 parents 34dfcd6 + c1843c4 commit f68a830

431 files changed

Lines changed: 4405 additions & 1917 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.

.eslintrc.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ module.exports = {
1515

1616
extends: ['@react-native'],
1717

18-
plugins: ['@react-native/monorepo', '@react-native/specs'],
18+
plugins: ['@react-native/monorepo', '@react-native/specs', 'import'],
1919

2020
overrides: [
2121
// overriding the JS config from @react-native/eslint-config to ensure
@@ -44,6 +44,7 @@ module.exports = {
4444
files: ['*.js', '*.jsx', '*.ts', '*.tsx'],
4545
rules: {
4646
'@react-native/no-deep-imports': 'off',
47+
'import/enforce-node-protocol-usage': ['warn', 'always'],
4748
},
4849
},
4950
{
@@ -66,6 +67,9 @@ module.exports = {
6667
rules: {
6768
'@react-native/monorepo/valid-flow-typed-signature': 'error',
6869
'ft-flow/require-valid-file-annotation': 'off',
70+
// These libdefs are kept byte-identical across projects (see
71+
// flow-typed-sync-test), so they must not be migrated independently.
72+
'import/enforce-node-protocol-usage': 'off',
6973
'no-shadow': 'off',
7074
'no-unused-vars': 'off',
7175
quotes: 'off',

.flowconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,4 +89,4 @@ untyped-import
8989
untyped-type-import
9090

9191
[version]
92-
^0.322.0
92+
^0.324.0

.github/workflow-scripts/verifyArtifactsAreOnMaven.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ const ARTIFACT_CLASSIFIERS = [
3434
];
3535

3636
async function verifyArtifactsAreOnMaven(
37-
version: string,
38-
retries: number = MAX_RETRIES,
39-
): Promise<void> {
37+
version /*: string */,
38+
retries /*: number */ = MAX_RETRIES,
39+
) /*: Promise<void> */ {
4040
if (version.startsWith('v')) {
4141
version = version.substring(1);
4242
}

.github/workflows/bump-podfile-lock.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ on:
55

66
jobs:
77
bump-podfile-lock:
8-
runs-on: macos-latest
8+
runs-on: macos-15
99
steps:
1010
- name: Checkout
1111
uses: actions/checkout@v6

.github/workflows/prebuild-ios-core.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ jobs:
133133
uses: actions/cache/restore@v5
134134
with:
135135
path: packages/react-native/.build/output/xcframeworks
136-
key: v3-ios-core-xcframework-${{ matrix.flavor }}-${{ hashFiles('packages/react-native/Package.swift', 'packages/react-native/scripts/ios-prebuild/*.js', 'packages/react-native/scripts/ios-prebuild.js', 'packages/react-native/React/**/*', 'packages/react-native/ReactCommon/**/*', 'packages/react-native/Libraries/**/*') }}
136+
key: v4-ios-core-xcframework-${{ matrix.flavor }}-${{ hashFiles('packages/react-native/Package.swift', 'packages/react-native/scripts/ios-prebuild/*.js', 'packages/react-native/scripts/ios-prebuild.js', 'packages/react-native/React/**/*', 'packages/react-native/ReactCommon/**/*', 'packages/react-native/Libraries/**/*') }}
137137
- name: Setup node.js
138138
if: steps.restore-ios-xcframework.outputs.cache-hit != 'true'
139139
uses: ./.github/actions/setup-node
@@ -200,7 +200,7 @@ jobs:
200200
# privileged-consumer/Expo fixtures). Catches consumer-facing header
201201
# regressions here instead of in downstream builds.
202202
cd packages/react-native
203-
node scripts/ios-prebuild/headers-verify.js --flavor "${{ matrix.flavor }}"
203+
node scripts/ios-prebuild/headers-verify.js --flavor "${{ matrix.flavor }}" ${{ inputs.version-type != '' && '--require-stamped-version' || '' }}
204204
- name: Compress and Rename XCFramework
205205
if: steps.restore-ios-xcframework.outputs.cache-hit != 'true'
206206
run: |
@@ -246,4 +246,4 @@ jobs:
246246
packages/react-native/.build/output/xcframeworks/ReactCore${{matrix.flavor}}.xcframework.tar.gz
247247
packages/react-native/.build/output/xcframeworks/ReactCore${{matrix.flavor}}.framework.dSYM.tar.gz
248248
packages/react-native/.build/output/xcframeworks/ReactNativeHeaders${{matrix.flavor}}.xcframework.tar.gz
249-
key: v3-ios-core-xcframework-${{ matrix.flavor }}-${{ hashFiles('packages/react-native/Package.swift', 'packages/react-native/scripts/ios-prebuild/*.js', 'packages/react-native/scripts/ios-prebuild.js', 'packages/react-native/React/**/*', 'packages/react-native/ReactCommon/**/*', 'packages/react-native/Libraries/**/*') }}
249+
key: v4-ios-core-xcframework-${{ matrix.flavor }}-${{ hashFiles('packages/react-native/Package.swift', 'packages/react-native/scripts/ios-prebuild/*.js', 'packages/react-native/scripts/ios-prebuild.js', 'packages/react-native/React/**/*', 'packages/react-native/ReactCommon/**/*', 'packages/react-native/Libraries/**/*') }}

CHANGELOG.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,35 @@
11
# Changelog
22

3+
## v0.87.0-rc.2
4+
5+
### Breaking
6+
7+
- **Runtime**: Remove the `SceneTracker` module from `Libraries/Utilities`, stop setting the active scene from `AppRegistry.runApplication`, and pass the app key as an optional second argument to `WrapperComponentProvider` ([bbb5be9b41](https://github.com/react/react-native/commit/bbb5be9b416efc9b1c365b08a0bcf932c14562ca) by [@rubennorte](https://github.com/rubennorte))
8+
9+
#### iOS specific
10+
11+
- **Build**: [0.87] Pick SwiftPM support chain (#57442, #57332, #57564) ([486df8d410](https://github.com/react/react-native/commit/486df8d410d73d7a1be3600c93a6cf7888532843) by [@cipolleschi](https://github.com/cipolleschi))
12+
13+
### Changed
14+
15+
#### iOS specific
16+
17+
- **Build**: Prebuilt-deps mode: serve third-party headers from the ReactNativeDependencies pod itself and resolve community `s.dependency` on RCT-Folly/glog/boost/etc. via dependency-only facade pods ([a8156acf8b](https://github.com/react/react-native/commit/a8156acf8bbc9ee15901cf0d8935d73454768aa7) by [@chrfalch](https://github.com/chrfalch))
18+
- **Build**: Remove the Clang VFS overlay from prebuilt React Native Core; resolve headers via React.xcframework + a new headers-only ReactNativeHeaders.xcframework ([376bd0e464](https://github.com/react/react-native/commit/376bd0e464b7785b4bcf8673a96746ec8107f1eb) by [@chrfalch](https://github.com/chrfalch))
19+
20+
### Fixed
21+
22+
- **Runtime**: Fix app failing to initialize (`HMRClient.setup()` redbox) because the environment setup module was dropped from the bundle ([eb987ef550](https://github.com/react/react-native/commit/eb987ef5504d85ff862b5a679056157888c56960) by [@cipolleschi](https://github.com/cipolleschi))
23+
24+
#### iOS specific
25+
26+
- **Build**: Fix "redefinition of 'HighResDuration'" / "could not build module 'React'" when building Swift pods with C++ interop against the prebuilt React-Core artifact ([9847238e3f](https://github.com/react/react-native/commit/9847238e3fc2badce8eeea659c4990aba1366d9b) by [@chrfalch](https://github.com/chrfalch))
27+
- **Hermes**: Fix debug Hermes being silently embedded in Release builds after the hermes-engine pod is re-installed ([62a2b386c9](https://github.com/react/react-native/commit/62a2b386c91985a46ee048dfa6e2216ba42a7e89) by [@tjzel](https://github.com/tjzel))
28+
- **Build**: Fix "The project 'Pods' is damaged and cannot be opened" when a library uses `spm_dependency` and the generated UUID collides with an existing Pods project object ([1cdf784a06](https://github.com/react/react-native/commit/1cdf784a068e2ed16842b74c0b87b7ff7532fe03) by [@chrfalch](https://github.com/chrfalch))
29+
- **Build**: Ship React-Core's privacy manifest and localized strings (RCTI18nStrings) inside the prebuilt React.xcframework, so CocoaPods-prebuilt and SwiftPM apps include them ([77b75122ef](https://github.com/react/react-native/commit/77b75122ef9ed172012d7c6acb335f966d4ede79) by [@chrfalch](https://github.com/chrfalch))
30+
- **Build**: Fix "redefinition of module" build failure on Xcode 26.3 for pods using `spm_dependency` with prebuilt React Native core ([4a6620703c](https://github.com/react/react-native/commit/4a6620703c30b3f53917812720528684838d3bbf) by [@chrfalch](https://github.com/chrfalch))
31+
32+
333
## v0.87.0-rc.1
434

535
### Breaking

flow-typed/environment/node.js

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -753,6 +753,46 @@ declare module 'cluster' {
753753
declare module.exports: Cluster;
754754
}
755755

756+
declare module 'console' {
757+
declare function assert(value: any, ...message: any): void;
758+
declare function dir(
759+
obj: Object,
760+
options: {
761+
showHidden: boolean,
762+
depth: number,
763+
colors: boolean,
764+
...
765+
},
766+
): void;
767+
declare function error(...data: any): void;
768+
declare function info(...data: any): void;
769+
declare function log(...data: any): void;
770+
declare function time(label: any): void;
771+
declare function timeEnd(label: any): void;
772+
declare function trace(first: any, ...rest: any): void;
773+
declare function warn(...data: any): void;
774+
declare class Console {
775+
constructor(stdout: stream$Writable, stdin?: stream$Writable): void;
776+
assert(value: any, ...message: any): void;
777+
dir(
778+
obj: Object,
779+
options: {
780+
showHidden: boolean,
781+
depth: number,
782+
colors: boolean,
783+
...
784+
},
785+
): void;
786+
error(...data: any): void;
787+
info(...data: any): void;
788+
log(...data: any): void;
789+
time(label: any): void;
790+
timeEnd(label: any): void;
791+
trace(first: any, ...rest: any): void;
792+
warn(...data: any): void;
793+
}
794+
}
795+
756796
type crypto$createCredentialsDetails = any; // TODO
757797

758798
declare class crypto$Cipher extends stream$Duplex {
@@ -5874,6 +5914,11 @@ declare module 'node:assert/strict' {
58745914
declare module.exports: $Exports<'assert'>['strict'];
58755915
}
58765916

5917+
declare module 'node:buffer' {
5918+
export type * from 'buffer';
5919+
declare module.exports: $Exports<'buffer'>;
5920+
}
5921+
58775922
declare module 'node:child_process' {
58785923
export type * from 'child_process';
58795924
declare module.exports: $Exports<'child_process'>;
@@ -5884,16 +5929,31 @@ declare module 'node:cluster' {
58845929
declare module.exports: $Exports<'cluster'>;
58855930
}
58865931

5932+
declare module 'node:console' {
5933+
export type * from 'console';
5934+
declare module.exports: $Exports<'console'>;
5935+
}
5936+
58875937
declare module 'node:crypto' {
58885938
export type * from 'crypto';
58895939
declare module.exports: $Exports<'crypto'>;
58905940
}
58915941

5942+
declare module 'node:dgram' {
5943+
export type * from 'dgram';
5944+
declare module.exports: $Exports<'dgram'>;
5945+
}
5946+
58925947
declare module 'node:dns' {
58935948
export type * from 'dns';
58945949
declare module.exports: $Exports<'dns'>;
58955950
}
58965951

5952+
declare module 'node:domain' {
5953+
export type * from 'domain';
5954+
declare module.exports: $Exports<'domain'>;
5955+
}
5956+
58975957
declare module 'node:events' {
58985958
export type * from 'events';
58995959
declare module.exports: $Exports<'events'>;
@@ -5909,6 +5969,31 @@ declare module 'node:fs/promises' {
59095969
declare module.exports: $Exports<'fs'>['promises'];
59105970
}
59115971

5972+
declare module 'node:http' {
5973+
export type * from 'http';
5974+
declare module.exports: $Exports<'http'>;
5975+
}
5976+
5977+
declare module 'node:https' {
5978+
export type * from 'https';
5979+
declare module.exports: $Exports<'https'>;
5980+
}
5981+
5982+
declare module 'node:inspector' {
5983+
export type * from 'inspector';
5984+
declare module.exports: $Exports<'inspector'>;
5985+
}
5986+
5987+
declare module 'node:module' {
5988+
export type * from 'module';
5989+
declare module.exports: $Exports<'module'>;
5990+
}
5991+
5992+
declare module 'node:net' {
5993+
export type * from 'net';
5994+
declare module.exports: $Exports<'net'>;
5995+
}
5996+
59125997
declare module 'node:os' {
59135998
export type * from 'os';
59145999
declare module.exports: $Exports<'os'>;
@@ -5929,6 +6014,36 @@ declare module 'node:process' {
59296014
declare module.exports: $Exports<'process'>;
59306015
}
59316016

6017+
declare module 'node:punycode' {
6018+
export type * from 'punycode';
6019+
declare module.exports: $Exports<'punycode'>;
6020+
}
6021+
6022+
declare module 'node:querystring' {
6023+
export type * from 'querystring';
6024+
declare module.exports: $Exports<'querystring'>;
6025+
}
6026+
6027+
declare module 'node:readline' {
6028+
export type * from 'readline';
6029+
declare module.exports: $Exports<'readline'>;
6030+
}
6031+
6032+
declare module 'node:repl' {
6033+
export type * from 'repl';
6034+
declare module.exports: $Exports<'repl'>;
6035+
}
6036+
6037+
declare module 'node:stream' {
6038+
export type * from 'stream';
6039+
declare module.exports: $Exports<'stream'>;
6040+
}
6041+
6042+
declare module 'node:string_decoder' {
6043+
export type * from 'string_decoder';
6044+
declare module.exports: $Exports<'string_decoder'>;
6045+
}
6046+
59326047
declare module 'node:timers' {
59336048
export type * from 'timers';
59346049
declare module.exports: $Exports<'timers'>;
@@ -5939,6 +6054,16 @@ declare module 'node:timers/promises' {
59396054
declare module.exports: $Exports<'timers/promises'>;
59406055
}
59416056

6057+
declare module 'node:tls' {
6058+
export type * from 'tls';
6059+
declare module.exports: $Exports<'tls'>;
6060+
}
6061+
6062+
declare module 'node:tty' {
6063+
export type * from 'tty';
6064+
declare module.exports: $Exports<'tty'>;
6065+
}
6066+
59426067
declare module 'node:url' {
59436068
declare module.exports: $Exports<'url'>;
59446069
}
@@ -5953,7 +6078,17 @@ declare module 'node:v8' {
59536078
declare module.exports: $Exports<'v8'>;
59546079
}
59556080

6081+
declare module 'node:vm' {
6082+
export type * from 'vm';
6083+
declare module.exports: $Exports<'vm'>;
6084+
}
6085+
59566086
declare module 'node:worker_threads' {
59576087
export type * from 'worker_threads';
59586088
declare module.exports: $Exports<'worker_threads'>;
59596089
}
6090+
6091+
declare module 'node:zlib' {
6092+
export type * from 'zlib';
6093+
declare module.exports: $Exports<'zlib'>;
6094+
}

flow-typed/npm/@react-native-community/cli-server-api_v19.x.x.js

Lines changed: 0 additions & 44 deletions
This file was deleted.

0 commit comments

Comments
 (0)