Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
56ba306
Bump Hermes version
huntie Jan 5, 2026
1e34474
[LOCAL] Do not use hermesNightly on the release branch
cortinico Jan 6, 2026
0500cf8
[LOCAL] Set the release version also to test RC.0
cipolleschi Nov 4, 2025
4cac35f
[LOCAL] Simplify the jq command used to read version inside build_and…
cortinico Jan 6, 2026
a5a9bf1
Release 0.84.0-rc.0
react-native-bot Jan 7, 2026
8c4c732
[LOCAL] Fix set-version script
huntie Jan 7, 2026
549b9e7
Release 0.84.0-rc.0 (reattempt)
huntie Jan 7, 2026
29495d5
[LOCAL] Bump Podfile.lock
react-native-bot Jan 7, 2026
e4be8c4
Revert: Bump minimum Node.js version to v22.11 (prev LTS) (#55113)
robhogan Jan 11, 2026
bbe02de
Use Hermes V1 as default engine (#54989)
cipolleschi Jan 7, 2026
41221b8
fix(android): support `unstable_path` query param in asset URLs (#55072)
tido64 Jan 7, 2026
7d90103
[0.84] Correctly bump hermes-compiler to V1 version (#55144)
cortinico Jan 13, 2026
56733d3
[LOCAL] Update yarn.lock file
cortinico Jan 13, 2026
99191d9
[LOCAL][RN][iOS] Disable iOS tests, Bump Xcode to 16.4 and stop downl…
cipolleschi Jan 13, 2026
bdcd173
[LOCAL] Correctly apply substitution for HERMES_V1_VERSION_NAME
cortinico Jan 13, 2026
6d53299
[LOCAL][RN][IOS] Fix Template E2E tests (#55142)
cipolleschi Jan 13, 2026
079151e
fix(debugger-shell): add missing `debug` dependency (#55145)
tido64 Jan 13, 2026
d289264
[LOCAL] Bump Hermes version
cipolleschi Jan 14, 2026
c576087
[LOCAL] Bump yarn.lock file
cipolleschi Jan 14, 2026
240dba8
Release 0.84.0-rc.1
react-native-bot Jan 14, 2026
4884218
[LOCAL] Bump podfile.lock
cipolleschi Jan 15, 2026
3586fbd
feat:- fix compilation issue with objcxx interop (#55117)
riteshshukla04 Jan 12, 2026
c1ff074
[0.84] Sync debugger-frontend (fix empty panels) (#55212)
huntie Jan 19, 2026
e8c26d4
Update Podfile.lock
fabriziocucci Jan 19, 2026
2d61709
Propagate Hermes V1 opt-in to Fantom (#55157)
j-piasecki Jan 16, 2026
ae15c9c
Explicitly enable debugger when building Hermes for Fantom (#55202)
j-piasecki Jan 16, 2026
baf7e4b
Release 0.84.0-rc.2
react-native-bot Jan 19, 2026
c2ba024
[LOCAL] Bump Podfile.lock
fabriziocucci Jan 19, 2026
4733593
Fix codegen for projects in hidden folders (#55259)
dinisnunes1 Jan 21, 2026
99be06b
Add support for other flex props to the Animation Backend (#54946)
coado Jan 7, 2026
c802cb6
Add support for other view props to the Animation Backend (#54947)
coado Jan 7, 2026
aeed939
Add support for `backfaceVisibility` and add `flex` to `AnimatedProps…
coado Jan 20, 2026
0dd7aad
Add `transformOrigin` prop support to the `AnimationBackend`. (#55203)
coado Jan 20, 2026
af7f3de
Release 0.84.0-rc.3
react-native-bot Jan 26, 2026
bddbd40
[LOCAL] Bump Podfile.lock
fabriziocucci Jan 26, 2026
952340a
Fix bump of Podfile.lock after release (#55232)
fabriziocucci Jan 19, 2026
8206c12
fix(react-native): add prefabPublishing to hermes-engine for build-fr…
chrfalch Jan 27, 2026
8d561b0
Include final (redirected to) URL in response object. Fixes #55248. (…
MarkCSmith Jan 20, 2026
a24f1d8
fix(hermes-inspector-modern): Apply HERMES_V1_ENABLED define to all b…
chrfalch Jan 27, 2026
c5bb0b1
Release 0.84.0-rc.4
react-native-bot Feb 2, 2026
f1497ae
[LOCAL] Bump Podfile.lock
react-native-bot Feb 2, 2026
3552d65
[LOCAL] Bump Hermes version
huntie Feb 4, 2026
5c69e21
Release 0.84.0-rc.5
react-native-bot Feb 5, 2026
6099abf
[LOCAL] Bump Podfile.lock
react-native-bot Feb 5, 2026
5693f60
Release 0.84.0
react-native-bot Feb 11, 2026
9160f7c
[LOCAL] Bump Podfile.lock
react-native-bot Feb 11, 2026
9b79d39
[LOCAL] Fix misaligned Hermes version
huntie Feb 13, 2026
83a038d
fix: inability to disable hermesV1 on Android (#55399)
tjzel Feb 5, 2026
3c503a8
fix: missing symbols on prebuilt Android with hermesV1 disabled (#55400)
tjzel Feb 12, 2026
d965609
fix(react-native): resolve included-build gradle.properties from pare…
Titozzz Feb 17, 2026
3483f16
[LOCAL] Bump hermes v1 version
cipolleschi Feb 27, 2026
19582bf
[LOCAL] Pin react-native-android Docker image to v20.0
cortinico Feb 27, 2026
938a338
Attempt to reduce flakyness on Modal-itest "MessageQueue is not empty…
cortinico Feb 11, 2026
2c65dd7
Fix flaky Modal-itest by adding proper root cleanup (#55712)
sammy-SC Feb 24, 2026
6064933
Release 0.84.1
react-native-bot Feb 27, 2026
4df7f7c
[LOCAL] Bump Podfile.lock
react-native-bot Feb 27, 2026
80a9564
Update GH Actions references from facebook/react-native to react/reac…
fabriziocucci Jun 16, 2026
5d4505c
Unbreak android CI by moving to ubuntu-latest (#57216)
fabriziocucci Jun 16, 2026
7664e96
Merge React Native 0.84.1 stable updates
sanajmi Jul 16, 2026
822f450
fix(0.84): support Hermes V1 defaults on macOS
sanajmi Jul 16, 2026
5f8d15d
fix(0.84): transpile codegen sources from absolute paths
sanajmi Jul 16, 2026
1756348
chore(0.84): prepare React Native 0.84.1 release
sanajmi Jul 16, 2026
886c536
chore(0.84): regenerate CocoaPods artifacts
sanajmi Jul 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .changeset/sync-react-native-084.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
"react-native-macos": patch
"@react-native-macos/virtualized-lists": patch
---

Sync to upstream React Native 0.84.x release.
9 changes: 8 additions & 1 deletion .github/actions/build-android/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,17 @@ runs:
uses: ./.github/actions/setup-node
- name: Install node dependencies
uses: ./.github/actions/yarn-install
- name: Read current RNVersion
shell: bash
id: read-rn-version
run: |
echo "rn-version=$(jq -r '.version' packages/react-native/package.json)" >> $GITHUB_OUTPUT
- name: Set React Native Version
# We don't want to set the version for stable branches, because this has been
# already set from the 'create release' commits on the release branch.
if: ${{ !endsWith(github.ref_name, '-stable') }}
# For testing RC.0, though, the version has not been set yet. In that case, we are on Stable branch and
# it is the only case when the version is still 1000.0.0
if: ${{ !endsWith(github.ref_name, '-stable') || endsWith(github.ref_name, '-stable') && steps.read-rn-version.outputs.rn-version == '1000.0.0' }}
shell: bash
run: node ./scripts/releases/set-rn-artifacts-version.js --build-type ${{ inputs.release-type }}
- name: Setup gradle
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/setup-node/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ inputs:
node-version:
description: 'The node.js version to use'
required: false
default: '22.11.0'
default: '22.14.0'
runs:
using: "composite"
steps:
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/test-ios-rntester/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ inputs:
default: 2.6.10
run-unit-tests:
description: whether unit tests should run or not.
default: "true"
default: false
flavor:
description: The flavor of the build. Must be one of "Debug", "Release".
default: Debug
Expand Down
20 changes: 10 additions & 10 deletions .github/scripts/resolve-hermes.mts
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ 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
* HERMES_VERSION_NAME. Returns null if the file or the key is missing.
* Returns HERMES_VERSION_NAME only when V1 is explicitly disabled, matching
* React Native 0.84's default-V1 behavior.
*/
function resolveHermesArtifactVersion(): string | null {
const propsPath = path.resolve(
Expand All @@ -48,9 +48,9 @@ function resolveHermesArtifactVersion(): string | null {
}
}
const key =
process.env.RCT_HERMES_V1_ENABLED === '1'
? 'HERMES_V1_VERSION_NAME'
: 'HERMES_VERSION_NAME';
process.env.RCT_HERMES_V1_ENABLED === '0'
? 'HERMES_VERSION_NAME'
: 'HERMES_V1_VERSION_NAME';
const version = props[key];
return version != null && version.length > 0 ? version : null;
} catch {
Expand All @@ -60,14 +60,14 @@ 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
* facebook/hermes. Returns null if the file is missing or empty.
* (or .hermesv1version unless V1 is explicitly disabled). 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'
? '.hermesv1version'
: '.hermesversion';
process.env.RCT_HERMES_V1_ENABLED === '0'
? '.hermesversion'
: '.hermesv1version';
const tagPath = path.resolve(
import.meta.dirname!, '..', '..',
'packages', 'react-native', 'sdks', tagFile,
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/bump-podfile-lock.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,9 @@ jobs:
- name: Bump podfile.lock
run: |
cd packages/rn-tester
rm Podfile.lock
bundle install
bundle exec pod update hermes-engine --no-repo-update
bundle exec pod install
- name: Commit changes
run: |
git add packages/rn-tester/Podfile.lock
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/cache-reaper.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:

jobs:
cache-cleaner:
if: github.repository == 'facebook/react-native'
if: github.repository == 'react/react-native'
runs-on: ubuntu-latest
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/check-for-reproducer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:
check-for-reproducer:
runs-on: ubuntu-latest
if: |
github.repository == 'facebook/react-native' && github.event.issue.pull_request == null && github.event.issue.state == 'open' && !contains(github.event.issue.labels.*.name, ':open_umbrella: Umbrella')
github.repository == 'react/react-native' && github.event.issue.pull_request == null && github.event.issue.state == 'open' && !contains(github.event.issue.labels.*.name, ':open_umbrella: Umbrella')
steps:
- uses: actions/checkout@v6
- uses: actions/github-script@v8
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/close-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ permissions:
jobs:
comment-and-label:
runs-on: ubuntu-latest
if: github.repository == 'facebook/react-native'
if: github.repository == 'react/react-native'
steps:
- uses: actions/github-script@v8
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/create-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ on:

jobs:
create_release:
if: github.repository == 'facebook/react-native'
if: github.repository == 'react/react-native'
runs-on: ubuntu-latest
steps:
- name: Checkout
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/danger-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ permissions:
jobs:
danger:
runs-on: ubuntu-latest
if: github.repository == 'facebook/react-native'
if: github.repository == 'react/react-native'
steps:
- name: Check out PR branch
uses: actions/checkout@v6
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/monitor-new-issues.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ on:
jobs:
monitor-issues:
runs-on: ubuntu-latest
if: github.repository == 'facebook/react-native'
if: github.repository == 'react/react-native'
steps:
- name: Checkout
uses: actions/checkout@v6
Expand All @@ -34,7 +34,7 @@ jobs:
git_secret: ${{ secrets.GITHUB_TOKEN }}
notifier: "discord"
fetch_data_interval: 6
repo_owner: "facebook"
repo_owner: "react"
repo_name: "react-native"
discord_webhook_url: "${{ secrets.DISCORD_WEBHOOK_URL }}"
discord_id_type: "user"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/needs-attention.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
issues: write # for react-native-community/needs-attention to label issues
name: Apply Needs Attention Label
runs-on: ubuntu-latest
if: github.repository == 'facebook/react-native'
if: github.repository == 'react/react-native'
steps:
- uses: actions/checkout@v6
- name: Apply Needs Attention Label
Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:
jobs:
set_release_type:
runs-on: ubuntu-latest
if: github.repository == 'facebook/react-native'
if: github.repository == 'react/react-native'
outputs:
RELEASE_TYPE: ${{ steps.set_release_type.outputs.RELEASE_TYPE }}
env:
Expand All @@ -22,7 +22,7 @@ jobs:
echo "RELEASE_TYPE=nightly" >> $GITHUB_OUTPUT

prebuild_apple_dependencies:
if: github.repository == 'facebook/react-native'
if: github.repository == 'react/react-native'
uses: ./.github/workflows/prebuild-ios-dependencies.yml
secrets: inherit

Expand All @@ -35,11 +35,11 @@ jobs:
needs: [prebuild_apple_dependencies]

build_android:
runs-on: 8-core-ubuntu
if: github.repository == 'facebook/react-native'
runs-on: ubuntu-latest
if: github.repository == 'react/react-native'
needs: [set_release_type]
container:
image: reactnativecommunity/react-native-android:latest
image: reactnativecommunity/react-native-android:v20.0
env:
TERM: "dumb"
GRADLE_OPTS: "-Dorg.gradle.daemon=false"
Expand All @@ -57,7 +57,7 @@ jobs:
gradle-cache-encryption-key: ${{ secrets.GRADLE_CACHE_ENCRYPTION_KEY }}

build_npm_package:
runs-on: 8-core-ubuntu
runs-on: ubuntu-latest
needs:
[
set_release_type,
Expand All @@ -66,7 +66,7 @@ jobs:
prebuild_react_native_core,
]
container:
image: reactnativecommunity/react-native-android:latest
image: reactnativecommunity/react-native-android:v20.0
env:
TERM: "dumb"
GRADLE_OPTS: "-Dorg.gradle.daemon=false"
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/on-issue-labeled.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
# then invokes actOnLabel to react to any added labels
triage-issue:
runs-on: ubuntu-latest
if: "${{ github.repository == 'facebook/react-native' && contains(github.event.label.name, 'Needs: Triage :mag:') }}"
if: "${{ github.repository == 'react/react-native' && contains(github.event.label.name, 'Needs: Triage :mag:') }}"
steps:
- name: Checkout code
uses: actions/checkout@v6
Expand Down Expand Up @@ -49,7 +49,7 @@ jobs:
# Reacts to the label that triggered this workflow (added manually or via other workflows)
act-on-label:
runs-on: ubuntu-latest
if: github.repository == 'facebook/react-native'
if: github.repository == 'react/react-native'
steps:
- uses: actions/checkout@v6
- uses: actions/github-script@v8
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/prebuild-ios-core.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,11 @@ jobs:
shell: bash
run: |
if [ "${{ inputs.use-hermes-nightly }}" == "true" ]; then
HERMES_VERSION="nightly"
# We are not publishing nightly versions of Hermes V1 yet.
# For now, we can use the latest version of Hermes V1 published on maven and npm.
HERMES_VERSION="latest-v1"
else
HERMES_VERSION=$(sed -n 's/^HERMES_VERSION_NAME=//p' packages/react-native/sdks/hermes-engine/version.properties)
HERMES_VERSION=$(sed -n 's/^HERMES_V1_VERSION_NAME=//p' packages/react-native/sdks/hermes-engine/version.properties)
fi
echo "Using Hermes version: $HERMES_VERSION"
echo "HERMES_VERSION=$HERMES_VERSION" >> $GITHUB_ENV
Expand Down Expand Up @@ -144,8 +146,6 @@ jobs:
- name: Setup xcode
if: steps.restore-ios-xcframework.outputs.cache-hit != 'true'
uses: ./.github/actions/setup-xcode
with:
xcode-version: '16.2.0'
- name: Yarn Install
if: steps.restore-ios-xcframework.outputs.cache-hit != 'true'
uses: ./.github/actions/yarn-install
Expand Down
2 changes: 0 additions & 2 deletions .github/workflows/prebuild-ios-dependencies.yml
Original file line number Diff line number Diff line change
Expand Up @@ -124,8 +124,6 @@ jobs:
uses: ./.github/actions/setup-node
- name: Setup xcode
uses: ./.github/actions/setup-xcode
with:
xcode-version: '16.1'
- name: Restore XCFramework
id: restore-xcframework
uses: actions/cache/restore@v5
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish-bumped-packages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:
jobs:
publish_bumped_packages:
runs-on: ubuntu-latest
if: github.repository == 'facebook/react-native'
if: github.repository == 'react/react-native'
env:
GHA_NPM_TOKEN: ${{ secrets.GHA_NPM_TOKEN }}
steps:
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/publish-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:
jobs:
set_release_type:
runs-on: ubuntu-latest
if: github.repository == 'facebook/react-native'
if: github.repository == 'react/react-native'
outputs:
RELEASE_TYPE: ${{ steps.set_release_type.outputs.RELEASE_TYPE }}
env:
Expand All @@ -21,7 +21,7 @@ jobs:

set_hermes_versions:
runs-on: ubuntu-latest
if: github.repository == 'facebook/react-native'
if: github.repository == 'react/react-native'
outputs:
HERMES_VERSION: ${{ steps.set_hermes_versions.outputs.HERMES_VERSION }}
HERMES_V1_VERSION: ${{ steps.set_hermes_versions.outputs.HERMES_V1_VERSION }}
Expand All @@ -42,7 +42,7 @@ jobs:
echo "HERMES_V1_VERSION=${{ steps.set_hermes_versions.outputs.HERMES_V1_VERSION }}"

prebuild_apple_dependencies:
if: github.repository == 'facebook/react-native'
if: github.repository == 'react/react-native'
uses: ./.github/workflows/prebuild-ios-dependencies.yml
secrets: inherit

Expand All @@ -52,15 +52,15 @@ jobs:
needs: [prebuild_apple_dependencies]

build_npm_package:
runs-on: 8-core-ubuntu
runs-on: ubuntu-latest
needs:
[
set_release_type,
prebuild_apple_dependencies,
prebuild_react_native_core,
]
container:
image: reactnativecommunity/react-native-android:latest
image: reactnativecommunity/react-native-android:v20.0
env:
TERM: "dumb"
GRADLE_OPTS: "-Dorg.gradle.daemon=false"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/retry-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:
jobs:
rerun:
runs-on: ubuntu-latest
if: github.repository == 'facebook/react-native'
if: github.repository == 'react/react-native'
steps:
- name: rerun ${{ inputs.run_id }}
env:
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/stale-bot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:
jobs:
stale:
runs-on: ubuntu-latest
if: github.repository == 'facebook/react-native'
if: github.repository == 'react/react-native'
permissions:
issues: write
pull-requests: write
Expand All @@ -22,7 +22,7 @@ jobs:
exempt-pr-labels: 'Help Wanted :octocat:, Never gets stale'
stale-asc:
runs-on: ubuntu-latest
if: github.repository == 'facebook/react-native'
if: github.repository == 'react/react-native'
permissions:
issues: write
pull-requests: write
Expand All @@ -40,7 +40,7 @@ jobs:
exempt-pr-labels: 'Help Wanted :octocat:, Never gets stale'
stale-needs-author-feedback:
runs-on: ubuntu-latest
if: github.repository == 'facebook/react-native'
if: github.repository == 'react/react-native'
permissions:
issues: write
pull-requests: write
Expand All @@ -58,7 +58,7 @@ jobs:
exempt-pr-labels: "Help Wanted :octocat:, Never gets stale"
stale-needs-author-feedback-asc:
runs-on: ubuntu-latest
if: github.repository == 'facebook/react-native'
if: github.repository == 'react/react-native'
permissions:
issues: write
pull-requests: write
Expand Down
Loading
Loading