Skip to content

Integrate Babylon React Native into the Babylon Native monorepo - #1949

Draft
CedricGuillemet wants to merge 331 commits into
BabylonJS:masterfrom
CedricGuillemet:cedricguillemet-brn-monorepo
Draft

CedricGuillemet wants to merge 331 commits into
BabylonJS:masterfrom
CedricGuillemet:cedricguillemet-brn-monorepo

Conversation

@CedricGuillemet

@CedricGuillemet CedricGuillemet commented Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Bring Babylon React Native into the Babylon Native monorepo at Embedding/ReactNative, preserving the Playground name and BRN's rewritten Git history.

  • Import BabylonJS/BabylonReactNative master at 721b33ff6303fad3757a9c645abd8f13e2a3fcba, excluding .github and .vscode. Keep its README and original license/security information; reuse the root contribution policy. No BRN tags are pushed.
  • Use the current checkout for development. The shared CMake wrapper finds the enclosing checkout from source and npm-installed local modules; npm consumers retain the disconnected Repo/deps layout and existing binary library paths. Android no longer forces disconnected mode for developer builds; packaged builds still enable it in the shared wrapper.
  • Replace the pinned Babylon Native ZIP download with a curated source copy into Package/Assembled, excluding apps, documentation, install scripts, CI, and Embedding/ReactNative itself. Preserve CMake dependency staging/pruning and remove ZIP/rename dependencies.
  • Port Android, iOS, Windows, assembly, packaging, and package-consumer GitHub Actions. All 11 workflows are flat .github/workflows/reactnative-*.yml files with React Native display names; GitHub does not discover workflows in subdirectories. Update reusable-workflow references, documentation links, and the PR path filter accordingly.
  • Extend Azure nightly with BabylonNative and ReactNative stages, preserving existing native jobs and mirroring the reactnative-*.yml assembly, tarball, platform-build, and package-consumer workflows. Merge current upstream changes while preserving its Hermes nightly jobs and native publication gating inside the BabylonNative stage.
  • Publish releases tagged react-native/vX.Y.Z as npm version X.Y.Z through reactnative-publish.yml; provide manual preview publishing through reactnative-publish-preview.yml.
  • Exclude generated Build, nested _deps, and packaged native source/dependency trees from module TypeScript compilation.

Temporary CI wiring -- remove before merge

.github/workflows/ci.yml unconditionally calls ./.github/workflows/reactnative-pr.yml for this draft. This is marked # TEMPORARY: remove before merge and included in the aggregate check. Remove the temporary wiring before merging. The separate path-filtered entry avoids duplicate builds while this call exists and automatically resumes direct execution when it is removed.

Validation and CI fixes

  • Full npx gulp buildAssembled and validateAssembled passed. npm pack passed; verified required native/dependency/license files and absence of recursive React Native copies or Git metadata.
  • Configured the assembled wrapper offline and built Graphics in Release. Confirmed the packaged iOS entry selects its bundled toolchain without downloads.
  • Configured source and npm-installed developer wrappers and built Graphics. Root native CMake files are unchanged and do not include React Native.
  • Playground Jest suite: 3 tests passed. Nested Playground npm-root resolution was checked. No regression test was added, as requested.
  • Actionlint, all 11 flat workflow names, reusable-workflow references, job IDs, path filter, Azure YAML, and whitespace checks passed after the rename. After merging upstream, verified that the BabylonNative stage's jobs exactly match upstream and the ReactNative stage is unchanged.
  • gulp setupDev passed with physically populated iOS Build, Android .cxx/_deps, and packaged Repo/deps trees; their TypeScript files were excluded. Temporary verification files were removed.
  • All React Native jobs passed on 7efcb661 in CI run 38886973160: Android, iOS, and Windows source builds; assembly; packaging; and all three packaged-consumer builds. This confirms both the generated-TypeScript exclusions and the Android developer FetchContent fix.
  • Local Android Gradle configuration accepts the follow-up and reaches normal dependency fetching; a full local Android configure is blocked by the SDK Ninja Windows 260-character path limit. Packaged offline configuration was rechecked successfully; hosted Android source and packaged-consumer builds passed.
  • Azure nightly cannot be executed from this environment.

Repository setup and follow-ups

Publishing requires a BabylonNative repository secret named NPM_TOKEN with permission to publish @babylonjs/react-native.

Not included: npm trusted publishing, the future of the old BabylonReactNative repository, or switching BRN to consume Babylon::Embedding.

ryantrem and others added 30 commits January 13, 2021 10:03
* setup react windows project

* start on cmake definition for babylon react native for uwp

* cache some helper logic

* change setup to x64 for local testing

* add source files

* add some needed files

* working winrt plugin initialization

* more windows work

* failing during linker

* add options to vcxproj to try and unblock debug builds

* move to use jsi

* fix modules

* add react-native-windows dependency

* working compilation

* current state

* current proto changes

* working native input compilation

* fix playground solution

* close to working

* working windows logic

* hacked app setup to support working windows logic

* working vr

* move BabylonNative dll definition and add arm64 support

* fix babylonnative to build in module folder

* fix submodule declarations

* remove unneeded build scripts

* add clean solution

* working build

* working build

* typescript content needs cleaned up

* things need cleaned up but we will try a clean repo

* fix package.json definition

* remove debug logic

* get metro to play nice with new exclusion list

* add x86, arm build support

* revert files

* packages working

* add reset function and allow babylonnative to build from modules folder

* fix package path resolution for react native windows

* prepare for draft review

* comment out slider, needs work to fix

* move to newest babylonnative and fix gitmodule repo

* remove unneeded package-lock

* remove untrue comments

* remove unneeded comments

* fix namespace comment names

* avoid checking in bin log

* revert unneeded metro.config.js changes

* get npm install working vs using yarn

* get project to work with npm install

* add readme tips

* fix permissions and slider initialization issues

* add step value to fix windows slider usage

* rename babylon native component to avoid lib collisions

* rename to BabylonReactNative

* ready for review

* update build steps

* cleanup some unneeded changes

* avoid moving to new commit

* add event revokers

* add uwp build logic

* revert settings file

* remove files and update documentation

* address review comments

* address more review comments

* Update Modules/@babylonjs/react-native/EngineHook.ts

Co-authored-by: Ryan Tremblay <ryantrem@msn.com>

* address review comments

* move hmd render behaviors to enginehook

* remove unneeded dev dependencies

* move engine logic into engineview

* Update Modules/@babylonjs/react-native/EngineHook.ts

Co-authored-by: Ryan Tremblay <ryantrem@msn.com>

* address review comments

* remove unneeded reference

* Update Apps/Playground/App.tsx

Co-authored-by: Ryan Tremblay <ryantrem@msn.com>

Co-authored-by: Ryan Tremblay <ryantrem@msn.com>
* setup react windows project

* start on cmake definition for babylon react native for uwp

* cache some helper logic

* change setup to x64 for local testing

* add source files

* add some needed files

* working winrt plugin initialization

* more windows work

* failing during linker

* add options to vcxproj to try and unblock debug builds

* move to use jsi

* fix modules

* add react-native-windows dependency

* working compilation

* current state

* current proto changes

* working native input compilation

* fix playground solution

* close to working

* working windows logic

* hacked app setup to support working windows logic

* working vr

* move BabylonNative dll definition and add arm64 support

* fix babylonnative to build in module folder

* fix submodule declarations

* remove unneeded build scripts

* add clean solution

* working build

* working build

* typescript content needs cleaned up

* things need cleaned up but we will try a clean repo

* fix package.json definition

* remove debug logic

* get metro to play nice with new exclusion list

* add x86, arm build support

* revert files

* packages working

* add reset function and allow babylonnative to build from modules folder

* fix package path resolution for react native windows

* prepare for draft review

* comment out slider, needs work to fix

* move to newest babylonnative and fix gitmodule repo

* remove unneeded package-lock

* remove untrue comments

* remove unneeded comments

* fix namespace comment names

* avoid checking in bin log

* revert unneeded metro.config.js changes

* get npm install working vs using yarn

* get project to work with npm install

* add readme tips

* fix permissions and slider initialization issues

* add step value to fix windows slider usage

* rename babylon native component to avoid lib collisions

* rename to BabylonReactNative

* ready for review

* update build steps

* cleanup some unneeded changes

* avoid moving to new commit

* add event revokers

* add uwp build logic

* revert settings file

* remove files and update documentation

* address review comments

* address more review comments

* Update Modules/@babylonjs/react-native/EngineHook.ts

Co-authored-by: Ryan Tremblay <ryantrem@msn.com>

* address review comments

* move hmd render behaviors to enginehook

* remove unneeded dev dependencies

* move engine logic into engineview

* Update Modules/@babylonjs/react-native/EngineHook.ts

Co-authored-by: Ryan Tremblay <ryantrem@msn.com>

* working windows packaging

* avoid combining gulp files

* address review comments

* remove unneeded reference

* update vcxproj and package choices

* remove additional solution to prevent react-native-windows version conflicts

* remove unneeded solution and update module

* packages appear ready for usage

* clean up things for review

* execute file copies in parallel

* revert unneeded changes

* revert settings file

Co-authored-by: Ryan Tremblay <ryantrem@msn.com>
* attempt changes

* fix workflows

* address review comments

* avoid specifying number of processors

* reduce powershell usage in favor of gulp tasks
* move to newer versions of react-native and fix android

* add pc android build support

* avoid updating ndk

* Fix Podfiles

* Add lost comment

* Fix SafeAreaView background color for iOS

* fix android packaged so files

* Fixes for gulpfile.js

* Split PackageTest into two apps - one for testing with RN 0.63.1, and one for testing with RN 0.64.0-rc.0

Change packages Android min api level back to 18

* final review comments

Co-authored-by: Ryan Tremblay <ryan.tremblay@microsoft.com>
* fix native input usage for uwp

* branch ready for native input

* get app working with mouse input events

* move to different submodule commits

* avoid exposing device type

* update content to reflect BabylonNative pr

* work with babylon native changes

* move to correct commit

* update package references and validate uwp build

* Update Modules/@babylonjs/react-native/ios/BabylonNativeInterop.mm

Co-authored-by: Ryan Tremblay <ryantrem@msn.com>

* Update Modules/@babylonjs/react-native/ios/BabylonNativeInterop.mm

Co-authored-by: Ryan Tremblay <ryantrem@msn.com>

* address review comments

* try fix pr ci

* move to master backslash fix

Co-authored-by: Ryan Tremblay <ryantrem@msn.com>
…abylonJS#154)

* move react-native-windows content

* working react-native-windows builds

* rearrange git status

* avoid uploading for new windows package publishing

* change publish directory for windows

* working windows build?

* remove unused packages

* add bundle step to build pr

* remove unneeded bundle step

* test publish

* add back @babylonjs/react-native packaging

* avoid checking in an installed package-lock.json for @babylonjs/react-native

* confirm packaging works

* add peer dependency on @babylonjs/react-native

* update package lock
…ylonJS#157)

* fix webxrsessionmanager propagation

* address review comments
* fix webxrsessionmanager propagation

* address review comments

* remove unnecessary promise
…lonJS#164)

* change project reference structure

* update react-native-windows dependencies

* make vcxproj file more legible
* complete merge

* enable all UWP build flavors for pr validation and build playground

* convert tasks to matrix

* fix x86 directories
…bylonJS#163)

* add additional items

* try and decrease precompiled header size for BabylonReactNative

* update pch.h definition

* include header files for extension

* include newer commits

* fix napi-jsi build break

* move openxr header into babylonreactnative repo

* move back to main repo

* move to newer commit

* Update Package/gulpfile.js

Co-authored-by: rgerd <rgerd@users.noreply.github.com>

* reduce number of gulp tasks

Co-authored-by: rgerd <rgerd@users.noreply.github.com>
* Update Babylon Native and update CaptureSession accordingly
…ylonJS#181)

* update packages

* rename folder and move off of release candidates

* working playground

* update peer dependencies

* update packages
… tooling (BabylonJS#188)

* move to most recent master

* move to most recent master and rebuild cmake solutions

* add conditional step for building babylonnative static libs
CedricGuillemet and others added 30 commits September 2, 2026 14:13
* Update BN commitid

* related updates

* sse for bx

* up BN

* use macos15

* metal-cpp

* Update BabylonNative and Babylon.js

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 15954b52-b707-4d01-8f9e-2272ec2fdfac

* Update BabylonNative commit

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 15954b52-b707-4d01-8f9e-2272ec2fdfac

* Restore Babylon.js 9.0 compatibility

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 15954b52-b707-4d01-8f9e-2272ec2fdfac

---------

Copilot-Session: 15954b52-b707-4d01-8f9e-2272ec2fdfac
Bumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.2 to 3.1.6.
- [Release notes](https://github.com/fastify/fast-uri/releases)
- [Commits](fastify/fast-uri@v3.1.2...v3.1.6)

---
updated-dependencies:
- dependency-name: fast-uri
  dependency-version: 3.1.6
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com>
…#740)

Bumps [body-parser](https://github.com/expressjs/body-parser) from 1.20.5 to 1.20.6.
- [Release notes](https://github.com/expressjs/body-parser/releases)
- [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md)
- [Commits](expressjs/body-parser@1.20.5...1.20.6)

---
updated-dependencies:
- dependency-name: body-parser
  dependency-version: 1.20.6
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com>
BabylonJS#738)

Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.14.2 to 3.15.2.
- [Changelog](https://github.com/nodeca/js-yaml/blob/3.15.2/CHANGELOG.md)
- [Commits](nodeca/js-yaml@3.14.2...3.15.2)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 3.15.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com>
Co-authored-by: Gary Hsu <bghgary@users.noreply.github.com>
…S#743)

Bumps [browserslist](https://github.com/browserslist/browserslist) from 4.28.2 to 4.28.8.
- [Release notes](https://github.com/browserslist/browserslist/releases)
- [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md)
- [Commits](browserslist/browserslist@4.28.2...4.28.8)

---
updated-dependencies:
- dependency-name: browserslist
  dependency-version: 4.28.8
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com>
…ylonJS#744)

Bumps [@xmldom/xmldom](https://github.com/xmldom/xmldom) to 0.8.15 and updates ancestor dependency [react-native-windows](https://github.com/microsoft/react-native-windows/tree/HEAD/vnext). These dependencies need to be updated together.


Updates `@xmldom/xmldom` from 0.7.13 to 0.8.15
- [Release notes](https://github.com/xmldom/xmldom/releases)
- [Changelog](https://github.com/xmldom/xmldom/blob/master/CHANGELOG.md)
- [Commits](xmldom/xmldom@0.7.13...0.8.15)

Updates `react-native-windows` from 0.81.21 to 0.81.35
- [Release notes](https://github.com/microsoft/react-native-windows/releases)
- [Changelog](https://github.com/microsoft/react-native-windows/blob/react-native-windows_v0.81.35/vnext/CHANGELOG.md)
- [Commits](https://github.com/microsoft/react-native-windows/commits/react-native-windows_v0.81.35/vnext)

---
updated-dependencies:
- dependency-name: "@xmldom/xmldom"
  dependency-version: 0.8.15
  dependency-type: indirect
- dependency-name: react-native-windows
  dependency-version: 0.81.35
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com>
…bylonJS#746)

Bumps [baseline-browser-mapping](https://github.com/web-platform-dx/baseline-browser-mapping) from 2.10.30 to 2.11.21.
- [Release notes](https://github.com/web-platform-dx/baseline-browser-mapping/releases)
- [Commits](web-platform-dx/baseline-browser-mapping@v2.10.30...v2.11.21)

---
updated-dependencies:
- dependency-name: baseline-browser-mapping
  dependency-version: 2.11.21
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [joi](https://github.com/hapijs/joi) from 17.13.3 to 17.13.7.
- [Commits](hapijs/joi@v17.13.3...v17.13.7)

---
updated-dependencies:
- dependency-name: joi
  dependency-version: 17.13.7
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com>
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.14.2 to 3.15.2.
- [Changelog](https://github.com/nodeca/js-yaml/blob/3.15.2/CHANGELOG.md)
- [Commits](nodeca/js-yaml@3.14.2...3.15.2)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 3.15.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com>
…in extension (BabylonJS#745)

AGP 9 ships built-in Kotlin support and registers the kotlin extension
itself. Applying the Kotlin plugin again fails configuration with
"Cannot add extension with name 'kotlin'". Check for the extension
directly, which needs no AGP version table and covers AGP 10, where the
android.builtInKotlin opt-out is removed.

Co-authored-by: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com>
Bumps [shell-quote](https://github.com/ljharb/shell-quote) from 1.8.3 to 1.10.0.
- [Changelog](https://github.com/ljharb/shell-quote/blob/main/CHANGELOG.md)
- [Commits](ljharb/shell-quote@v1.8.3...v1.10.0)

---
updated-dependencies:
- dependency-name: shell-quote
  dependency-version: 1.10.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com>
…onJS#737)

Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 1.1.14 to 1.1.18.
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](juliangruber/brace-expansion@v1.1.14...v1.1.18)

---
updated-dependencies:
- dependency-name: brace-expansion
  dependency-version: 1.1.18
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com>
Co-authored-by: Gary Hsu <bghgary@users.noreply.github.com>
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.29.0 to 7.29.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.29.7/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-version: 7.29.7
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…nJS#751)

Removes [tar](https://github.com/isaacs/node-tar). It's no longer used after updating ancestor dependency [just-scripts](https://github.com/microsoft/just). These dependencies need to be updated together.


Removes `tar`

Updates `just-scripts` from 0.44.8 to 2.6.2
- [Commits](https://github.com/microsoft/just/commits/just-scripts_v2.6.2)

---
updated-dependencies:
- dependency-name: tar
  dependency-version:
  dependency-type: indirect
- dependency-name: just-scripts
  dependency-version: 2.6.2
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com>
Combine the safe lockfile-only updates from BabylonJS#750, BabylonJS#753, BabylonJS#756, and BabylonJS#757 so they share one CI run.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Bumps  and [ws](https://github.com/websockets/ws). These dependencies needed to be updated together.

Updates `ws` from 6.2.3 to 6.2.6
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](websockets/ws@6.2.3...6.2.6)

Updates `ws` from 7.5.10 to 7.5.13
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](websockets/ws@6.2.3...6.2.6)

---
updated-dependencies:
- dependency-name: ws
  dependency-version: 6.2.6
  dependency-type: indirect
- dependency-name: ws
  dependency-version: 7.5.13
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [braces](https://github.com/micromatch/braces) to 3.0.3 and updates ancestor dependency [gulp](https://github.com/gulpjs/gulp). These dependencies need to be updated together.


Updates `braces` from 2.3.2 to 3.0.3
- [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/braces/commits/3.0.3)

Updates `gulp` from 4.0.2 to 5.0.1
- [Release notes](https://github.com/gulpjs/gulp/releases)
- [Changelog](https://github.com/gulpjs/gulp/blob/master/CHANGELOG.md)
- [Commits](gulpjs/gulp@v4.0.2...v5.0.1)

---
updated-dependencies:
- dependency-name: braces
  dependency-version: 3.0.3
  dependency-type: indirect
- dependency-name: gulp
  dependency-version: 5.0.1
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Fix Windows embedded source build

Use the React Native Windows generated C++/WinRT projections for the CMake build and add blocking source and package CI coverage.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Pin Windows CI to Visual Studio 2022

The windows-latest image now uses Visual Studio 2026 and no longer contains the requested 10.0.22621 SDK. Use the runner matching the v143 CMake generator and project toolset.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Support RNW new architecture on Windows

Use RNW's architecture-aware C++ project integration and disable Windows App SDK transitive verification for the Playground's native module build.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Update Windows test dependencies

Use the RNW patch containing the corrected Windows App SDK package and skip schema codegen for BRN's hand-written native module.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Build Windows tests against RNW NuGet

Generate the Playground with explicit Fabric and NuGet settings, and protect the CMake projection path from trailing-backslash quote parsing.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Isolate Windows package build test

Build the autolinked BRN project directly, keep RNW dependencies on NuGet, and avoid executable packaging during CMake compiler probes.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Provide solution context to Windows tests

Pass the generated solution metadata required by RNW while building only the BRN project.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Shorten Windows native build paths

Place generated CMake projects under the consumer solution build directory so deeply nested MSBuild tracking files remain below MAX_PATH.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Compact Windows native build identity

Keep CMake outputs below legacy MSBuild path limits while preserving platform, configuration, toolset, and generator isolation.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Remove obsolete device update calls

Babylon Native now performs frame synchronization in the rendering-frame methods; its DeviceUpdate compatibility shim is intentionally a no-op and deprecated.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Test Windows package with legacy architecture

Generate the Windows test app through the react-native-test-app API so Fabric can be explicitly disabled while retaining the RNW NuGet dependency path.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Align Windows native C++ ABI

Compile the CMake bridge as C++20, matching React Native Windows and the embedded Babylon Native dependency graph so C++/WinRT selects the same coroutine and source-location ABI.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Add XR controls regression coverage

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Fix cross-platform Playground XR controls

Keep controls visible and interactive above native engine surfaces, surface XR startup failures, and declare ARCore as an optional Android capability.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Bump braces and gulp in /Package (BabylonJS#760)

Bumps [braces](https://github.com/micromatch/braces) to 3.0.3 and updates ancestor dependency [gulp](https://github.com/gulpjs/gulp). These dependencies need to be updated together.


Updates `braces` from 2.3.2 to 3.0.3
- [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/braces/commits/3.0.3)

Updates `gulp` from 4.0.2 to 5.0.1
- [Release notes](https://github.com/gulpjs/gulp/releases)
- [Changelog](https://github.com/gulpjs/gulp/blob/master/CHANGELOG.md)
- [Commits](gulpjs/gulp@v4.0.2...v5.0.1)

---
updated-dependencies:
- dependency-name: braces
  dependency-version: 3.0.3
  dependency-type: indirect
- dependency-name: gulp
  dependency-version: 5.0.1
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Address PR review feedback

Preserve legacy RNW imports, validate complete Windows consumers, honor the packaged dependency lockfile, and report XR stop failures accurately.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Build Windows consumers with C++20

The full RNW solution compiles coroutine-based Hermes sources that require the same C++20 standard as the native bridge.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Fix Windows consumer project graph

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Build generated Windows app target

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Keep Windows native modules on RNW NuGet

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Configure RNW NuGet for Windows projects

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Isolate Windows consumer project builds

Restore and build each autolinked project independently so MSBuild cannot traverse into React Native Windows source projects.\n\nCo-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Force RNW NuGet mode in Windows CI

Import the generated consumer setting before each C++ project evaluates its RNW references, ensuring native modules consume the matching NuGet projections and binaries.\n\nCo-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Enforce RNW NuGet environment in CI

Set the RNW NuGet properties in the MSBuild process environment and assert each native project evaluates the expected mode before restore and build.\n\nCo-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Make RNW NuGet mode a global property

Pass UseExperimentalNuget directly to every MSBuild root and reject projects that still evaluate an RNW source reference before restore.\n\nCo-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Normalize RNW NuGet metadata references

Replace resolved Microsoft.ReactNative WinMD inputs with the consumer-selected NuGet package path before C++/WinRT generates MIDL references.\n\nCo-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Normalize final CppWinRT MIDL inputs

Remove stale Microsoft.ReactNative metadata from every C++/WinRT reference collection immediately before generating MIDL inputs.\n\nCo-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Remove legacy RNW source imports in CI

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Complete RNW NuGet consumer build

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Enforce C++20 on generated Windows app

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Disable legacy coroutines for Windows app

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Work around RNTA IAsyncAction await

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Make RNTA coroutine workaround robust

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Normalize RNW runtime package payload

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Normalize RNW PRI input snapshot

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Limit Windows CI to linked app build

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [shelljs](https://github.com/shelljs/shelljs) from 0.8.4 to 0.8.5.
- [Release notes](https://github.com/shelljs/shelljs/releases)
- [Changelog](https://github.com/shelljs/shelljs/blob/main/CHANGELOG.md)
- [Commits](shelljs/shelljs@v0.8.4...v0.8.5)

---
updated-dependencies:
- dependency-name: shelljs
  dependency-version: 0.8.5
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com>
* Update BabylonNative pin with NativeXR JSI compatibility fix

Pin CedricGuillemet/BabylonNative commit ebb8a00 from draft PR #17, based on upstream 628986b.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 00e98a65-803d-48bb-8d36-da55ab233dfe

* Update Playground ARCore SDK to 1.56.0

Override the module default only in the Android test app and document the version. Validated the ARM64 release build and XR tracking on Pixel 9a.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 00e98a65-803d-48bb-8d36-da55ab233dfe

* Pin merged upstream NativeXR JSI fix

Update BabylonNative to feb0227 and restore the BabylonJS archive URL after the JSI fix merged. Revalidated source preparation, TypeScript compilation, Android release build, device rendering, manually confirmed XR tracking, and suspend/resume with Playground ARCore 1.56.0.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 00e98a65-803d-48bb-8d36-da55ab233dfe

* Pin Playground RNW to match published NuGet packages

Keep react-native-windows at the already-locked 0.81.35 so installing the packaged BabylonReactNative artifact cannot float to npm-only 0.81.37 and restore incompatible 0.82.0 NuGet binaries. Synchronize both Playground manifests and lockfiles.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 00e98a65-803d-48bb-8d36-da55ab233dfe

---------

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 00e98a65-803d-48bb-8d36-da55ab233dfe
* Update BabylonNative to f4d9efb

Pin the latest BabylonNative master revision, including the JsRuntimeHost dependency update.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 74d06f45-92ac-4835-acc2-8ed89229b9eb

* Remove obsolete minz links for updated BabylonNative

Update iOS and Windows consumers after BabylonNative stopped producing the minz library; refresh the iOS podspec checksum.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 74d06f45-92ac-4835-acc2-8ed89229b9eb

---------

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 74d06f45-92ac-4835-acc2-8ed89229b9eb
* docs: synchronize READMEs with 2.0.6 and current build setup

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 8d68c500-a3eb-4b2e-8726-17b7f4073d8f

* docs: use Babylon Native workspace for iOS Playground

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 8d68c500-a3eb-4b2e-8726-17b7f4073d8f

* docs: record resolved Playground version baselines

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 8d68c500-a3eb-4b2e-8726-17b7f4073d8f

* docs: update READMEs for 2.0.7

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 8d68c500-a3eb-4b2e-8726-17b7f4073d8f

---------

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 8d68c500-a3eb-4b2e-8726-17b7f4073d8f
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: baba94fb-c4c7-4db1-b40e-0f96acd08f31
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: baba94fb-c4c7-4db1-b40e-0f96acd08f31
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: baba94fb-c4c7-4db1-b40e-0f96acd08f31
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: baba94fb-c4c7-4db1-b40e-0f96acd08f31
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: baba94fb-c4c7-4db1-b40e-0f96acd08f31
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: baba94fb-c4c7-4db1-b40e-0f96acd08f31
Packaged builds remain disconnected through the shared native wrapper. Local Gradle configuration accepts the change and reaches dependency fetching; full local Android configuration is blocked by the SDK Ninja Windows path limit.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: baba94fb-c4c7-4db1-b40e-0f96acd08f31
Keep upstream Hermes nightly jobs and publication gating inside the BabylonNative stage, retaining the ReactNative stage unchanged.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: baba94fb-c4c7-4db1-b40e-0f96acd08f31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.