Skip to content
Draft
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
41120db
Initial plan
Copilot Oct 25, 2025
35a812d
Enable visionOS triplets in Ferric and add visionOS workflow
Copilot Oct 25, 2025
5841e2d
Fix workflow permissions and remove unnecessary dependencies for visi…
Copilot Oct 25, 2025
8f8d49d
Bootstrap Rust compiler for visionOS targets and remove lint step
Copilot Oct 25, 2025
598835e
Revise visionOS workflow to use -Zbuild-std with nightly Rust instead…
Copilot Oct 25, 2025
7da043c
Enhance visionOS workflow with comprehensive build-std configuration …
Copilot Oct 25, 2025
8447682
Update Node.js version to match original check workflow (lts/jod)
Copilot Oct 25, 2025
4f5147c
Add CMAKE_RN_TRIPLETS to first bootstrap step to avoid building Andro…
Copilot Oct 25, 2025
047b8d1
Fix triplet naming mismatch: use arm64-apple-visionos for CMAKE_RN_TR…
Copilot Oct 26, 2025
1f15f4d
Add visionOS target installation step with graceful fallback for tier…
Copilot Oct 26, 2025
034ea6b
Add diagnostic workflow to analyze Ferric target validation and test …
Copilot Oct 26, 2025
0bf31fb
Update Ferric to handle tier 3 targets with build-std instructions
Copilot Oct 26, 2025
abcbd29
Improve tier 3 target handling: use assertFixable and smart getInstal…
Copilot Oct 26, 2025
c14d33a
Refactor tier 3 target validation: move logic to ensureInstalledTarge…
Copilot Oct 26, 2025
f11d1d5
Revert all visionOS changes - superseded by PR #294
Copilot Oct 27, 2025
3966991
Add comprehensive analysis and suggestions for improving Copilot inst…
Copilot Oct 27, 2025
3397ac5
Add focused Rust/Ferric integration patterns to copilot instructions
Copilot Oct 27, 2025
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
39 changes: 39 additions & 0 deletions .github/workflows/check-visionos.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: Check visionOS

on:
push:
branches:
- main
pull_request:
types: [opened, synchronize, reopened]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
test-visionos:
name: Test Ferric with visionOS Triplets
runs-on: macos-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: lts/iron
# Install visionOS targets for Rust
- run: rustup target add aarch64-apple-visionos aarch64-apple-visionos-sim
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This won't work. These targets are tier 3 and won't be available prebuilt, so you need to build / bootstrap the Rust compiler as I mentioned in the instructions.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated to bootstrap the Rust compiler from source instead of using rustup target add. The workflow now clones rust-lang/rust, configures build for visionOS targets, and uses ./x.py build and install commands. Commit 8f8d49d

# Also install required iOS targets for the bootstrap process
- run: rustup target add aarch64-apple-ios-sim
- run: npm ci
- run: npm run build
# Bootstrap host package to get weak-node-api and ferric-example with visionOS support
- run: npm run bootstrap --workspace react-native-node-api
- run: npm run bootstrap --workspace @react-native-node-api/ferric-example
env:
CMAKE_RN_TRIPLETS: aarch64-apple-visionos,aarch64-apple-visionos-sim
FERRIC_TARGETS: aarch64-apple-visionos,aarch64-apple-visionos-sim
- run: npm run lint
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No need to lint here. It's not in scope of what we want this workflow to do.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed the lint step from the visionOS workflow. Commit 8f8d49d

env:
DEBUG: eslint:eslint
4 changes: 2 additions & 2 deletions packages/ferric/src/cargo.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ const APPLE_XCFRAMEWORK_CHILDS_PER_TARGET: Record<AppleTargetName, string> = {
// "x86_64-apple-ios-macabi": "ios-x86_64-simulator",
// "aarch64-apple-tvos": "tvos-arm64",
// "aarch64-apple-tvos-sim": "tvos-arm64-simulator",
// "aarch64-apple-visionos": "xros-arm64",
// "aarch64-apple-visionos-sim": "xros-arm64-simulator",
"aarch64-apple-visionos": "xros-arm64",
"aarch64-apple-visionos-sim": "xros-arm64-simulator",
};

const ANDROID_ARCH_PR_TARGET: Record<AndroidTargetName, string> = {
Expand Down
2 changes: 1 addition & 1 deletion packages/ferric/src/targets.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ export const APPLE_TARGETS = [
/*
"aarch64-apple-tvos",
"aarch64-apple-tvos-sim",
*/
"aarch64-apple-visionos",
"aarch64-apple-visionos-sim",
*/

// "aarch64-apple-watchos",
// "aarch64-apple-watchos-sim",
Expand Down
Loading