Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
8407fbb
migrate from yarn to bun
natew Jan 12, 2026
4cab02d
fix: update yarn refs to bun in test scripts, add turbo tasks
natew Jan 12, 2026
b340998
fix: replace yarn with bun in package.json scripts
natew Jan 12, 2026
2819cf9
fix: use bunx turbo instead of bare turbo in CI
natew Jan 12, 2026
95ee670
fix: add jsx loader for .js files in esbuild optimizeDeps
natew Jan 12, 2026
b2a5a22
fix: regenerate bun.lock with fresh install
natew Jan 12, 2026
589df73
fix: remove projectRoot from createDevMiddleware (removed in newer ve…
natew Jan 12, 2026
05e3077
fix: allow vite 7.x in vite-plugin-metro peerDependencies
natew Jan 12, 2026
9fcfc57
fix: always do full bun install to get all devDependencies
natew Jan 12, 2026
8c3c06d
fix: add passThroughEnv for iOS test env vars in turbo
natew Jan 12, 2026
306e3ce
fix: use @take-out/scripts for iOS tests to pass env vars
natew Jan 12, 2026
e46bc97
fix: use bun tko run for iOS tests
natew Jan 12, 2026
808eca0
feat: add up-dep and run scripts using bun tko
natew Jan 12, 2026
3d22b18
feat: add up-dep script using tko
natew Jan 12, 2026
1c543a2
fix: use --no-root flag for tko run iOS tests
natew Jan 12, 2026
7380e91
fix: replace yarn with bun in iOS test setup
natew Jan 12, 2026
988a6e0
fix: pin babel-dead-code-elimination to 1.0.10
natew Jan 12, 2026
ea2ba73
fix: make react-native-prebuilt patterns more flexible for bun
natew Jan 13, 2026
e3dcdeb
fix: use regex for esbuild commonJS pattern matching
natew Jan 13, 2026
4c3883e
fix: use exact string match for esbuild commonJS pattern
natew Jan 13, 2026
d50cd23
fix: add numbers to React pattern regex for esbuild compatibility
natew Jan 13, 2026
ca49f64
fix: add lock to prevent race conditions in parallel prebuilds
natew Jan 13, 2026
592aac0
fix: pin deps to exact versions from yarn.lock
natew Jan 13, 2026
01e7c2a
fix: use production mode in fillOptions during builds
natew Jan 13, 2026
ee852bc
fix: add lock to prevent race conditions in parallel prebuilds
natew Jan 13, 2026
e606702
fix: run iOS dev tests sequentially to avoid port conflicts
natew Jan 13, 2026
9c57bb2
remove loop
natew Jan 13, 2026
d014e2a
canary1.2.57-1768260645007
natew Jan 12, 2026
72428bb
fix: SPA circular dependency deadlock and missing body tag
natew Jan 13, 2026
7b411e2
canary1.2.57-1768289299952
natew Jan 13, 2026
87340f5
cleanup more
natew Jan 13, 2026
653448e
fix security vulnerabilities in dependencies
natew Jan 13, 2026
487be6d
remove ip package, use node:os instead
natew Jan 13, 2026
278e418
fix: avoid dynamic import in router.ts to prevent circular deps
natew Jan 13, 2026
649eee6
fix: use static import
natew Jan 13, 2026
0d7c4dd
v1.2.58
natew Jan 13, 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
62 changes: 18 additions & 44 deletions .github/actions/install/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,23 +8,16 @@ inputs:
runs:
using: composite
steps:
- name: Setup Node.js 20.x
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.node-version'
registry-url: 'https://registry.npmjs.org'

# - name: install yarn
# shell: bash
# run: npm i yarn -g

# - name: Install npm
# shell: bash
# run: npm i -g npm@10.8.2

- name: Install corepack
shell: bash
run: corepack enable
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version-file: 'package.json'

# Expo prebuild runs a command like `npm view expo-template-bare-minimum@sdk-53 dist --json`
# under the hood, which may fail with older npm versions (see https://github.com/npm/cli/issues/7834).
Expand All @@ -41,48 +34,29 @@ runs:
echo "Home dir path: $HOME"
echo "path=$HOME" >> $GITHUB_OUTPUT

# - name: Cache Yarn Cache
# uses: cirruslabs/cache@v4
# env:
# cache-name: yarn_cache
# with:
# path: ${{ steps.get-home-dir-path.outputs.path }}/.yarn/berry
# key: ${{ runner.os }}-${{ env.cache-name }}${{ inputs.workspace-focus && format('-{0}', inputs.workspace-focus) || '' }}-${{ hashFiles('yarn.lock') }}
# restore-keys: |
# ${{ runner.os }}-${{ env.cache-name }}${{ inputs.workspace-focus && format('-{0}', inputs.workspace-focus) || '' }}-

# - name: Cache node_modules
# uses: cirruslabs/cache@v4
# env:
# cache-name: node_modules
# with:
# path: '**/node_modules'
# key: ${{ runner.os }}-${{ env.cache-name }}${{ inputs.workspace-focus && format('-{0}', inputs.workspace-focus) || '' }}-${{ hashFiles('packages/vxrn/src/utils/depPatches.ts') }}-${{ hashFiles('yarn.lock') }}
# restore-keys: |
# ${{ runner.os }}-${{ env.cache-name }}${{ inputs.workspace-focus && format('-{0}', inputs.workspace-focus) || '' }}-${{ hashFiles('packages/vxrn/src/utils/depPatches.ts') }}-

# - name: Cache Playwright
# uses: cirruslabs/cache@v4
# env:
# cache-name: playwright_cache
# with:
# path: ${{ steps.get-home-dir-path.outputs.path }}/.cache/ms-playwright
# key: ${{ runner.os }}-${{ env.cache-name }}${{ inputs.workspace-focus && format('-{0}', inputs.workspace-focus) || '' }}-${{ hashFiles('yarn.lock') }}
# restore-keys: |
# ${{ runner.os }}-${{ env.cache-name }}${{ inputs.workspace-focus && format('-{0}', inputs.workspace-focus) || '' }}-
- name: Cache Bun
uses: actions/cache@v4
env:
cache-name: bun_cache
with:
path: ~/.bun/install/cache
key: ${{ runner.os }}-${{ env.cache-name }}${{ inputs.workspace-focus && format('-{0}', inputs.workspace-focus) || '' }}-${{ hashFiles('bun.lock') }}
restore-keys: |
${{ runner.os }}-${{ env.cache-name }}${{ inputs.workspace-focus && format('-{0}', inputs.workspace-focus) || '' }}-

- name: Install Dependencies
shell: bash
run: ${{ inputs.workspace-focus && format('yarn workspaces focus vxrn-monorepo {0}', inputs.workspace-focus) || 'yarn install'}}
# Always do full install to ensure devDependencies of workspace packages are available for builds
run: bun install

- name: Install Playwright
shell: bash
run: npx playwright install

- name: Clean Build
shell: bash
run: ${{ inputs.workspace-focus && format('yarn workspaces foreach -Rpt --from "{0}" run clean:build', inputs.workspace-focus) || 'yarn clean:build'}}
run: ${{ inputs.workspace-focus && format('bunx turbo run clean:build --filter={0}...', inputs.workspace-focus) || 'bun run clean:build'}}

- name: Build
shell: bash
run: ${{ inputs.workspace-focus && format('yarn workspaces foreach -Rpt --from "{0}" run build', inputs.workspace-focus) || 'yarn build'}}
run: ${{ inputs.workspace-focus && format('bunx turbo run build --filter={0}...', inputs.workspace-focus) || 'bun run build'}}
8 changes: 4 additions & 4 deletions .github/workflows/build-ios-test-container-app.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ env:
# A unique ID to identify the app on GitHub Actions, this is used as part of cache keys and artifact names, must be unique among all workflows
app_id: ios-rn-test-container-app
# The command used to prebuild the app
prebuild_command: yarn prebuild:native --platform ios --no-install # --no-install is used to skip installing dependencies, specifically `pod install` as we want to do it after the Cache Pods step
prebuild_command: bun run prebuild:native --platform ios --no-install # --no-install is used to skip installing dependencies, specifically `pod install` as we want to do it after the Cache Pods step

# These should be set in the repository secrets
# Redis database used for caching and remembering things between runs, such as the last build number
Expand Down Expand Up @@ -68,12 +68,12 @@ jobs:
env:
# A hash that can save us more time if we can already know that the build hash will not change.
#
# Calculating the build_hash relies on generated files, for example, `Podfile.lock`, and itll take some time to run `yarn install`, `expo prebuild` and `pod install` in order to get that. But if `yarn.lock` didnt change, theres no likely that `Podfile.lock` will change - we can leverage that and skip some installation steps.
# Calculating the build_hash relies on generated files, for example, `Podfile.lock`, and it'll take some time to run `bun install`, `expo prebuild` and `pod install` in order to get that. But if `bun.lock` didn't change, there's no likely that `Podfile.lock` will change - we can leverage that and skip some installation steps.
#
# This hash MUST be different if the build_hash will be different.
#
# This hash can be different if the build_hash remains the same. For example, if `yarn.lock` changes, `Podfile.lock` may not change if the updated package contains no native code.
PRE_BUILD_HASH: ${{ hashFiles('yarn.lock', format('{0}/app.json', env.test_container_app_path), 'packages/vxrn/expo-plugin.cjs') }}
# This hash can be different if the build_hash remains the same. For example, if `bun.lock` changes, `Podfile.lock` may not change if the updated package contains no native code.
PRE_BUILD_HASH: ${{ hashFiles('bun.lock', format('{0}/app.json', env.test_container_app_path), 'packages/vxrn/expo-plugin.cjs') }}
run: |
if [ -z "$PRE_BUILD_HASH" ]; then
echo '[ERROR] Failed to calculate pre-build hash.'
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,16 @@ jobs:
# workspace-focus: ${{ env.test_app_package_name }}

- name: Security Audit
run: yarn npm audit --severity high
run: bun audit --audit-level high

- name: Check
run: yarn check
run: bun run check

# workaround of node_modules/.bin/biome not being executable
- run: chmod +x node_modules/@biomejs/biome/bin/biome

- name: Lint
run: yarn lint
run: bun run lint

typecheck:
runs-on: ubuntu-latest
Expand All @@ -46,7 +46,7 @@ jobs:
# workspace-focus: ${{ env.test_app_package_name }}

- name: Typecheck
run: yarn typecheck
run: bun run typecheck

tests:
# runs-on: ubuntu-latest
Expand All @@ -62,4 +62,4 @@ jobs:
# workspace-focus: ${{ env.test_app_package_name }}

- name: Test
run: yarn test
run: bun run test
2 changes: 1 addition & 1 deletion .github/workflows/test-macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@ jobs:

- name: Test
run: |
yarn test-macos
bun run test-macos
4 changes: 2 additions & 2 deletions .github/workflows/test-native-ios.yml
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ jobs:
SIMULATOR_UDID: ${{ steps.get-simulator-udid.outputs.simulator_udid }}
IOS_TEST_CONTAINER_PATH_DEV: ${{ github.workspace }}/${{ needs.build-ios-test-container-dev.outputs.built-app-path }}
run: |
yarn workspaces foreach -v -v --exclude vxrn-monorepo -A run test-ios:dev
bun run --filter test-test test-ios:dev && bun run --filter test-hmr test-ios:dev

- name: Upload Appium Logs
uses: actions/upload-artifact@v4.3.1
Expand Down Expand Up @@ -239,7 +239,7 @@ jobs:
SIMULATOR_UDID: ${{ steps.get-simulator-udid.outputs.simulator_udid }}
IOS_TEST_CONTAINER_PATH_PROD: ${{ github.workspace }}/${{ needs.build-ios-test-container-prod.outputs.built-app-path }}
run: |
yarn workspaces foreach -v -v --exclude vxrn-monorepo -A run test-ios:prod
bun run --filter test-test test-ios:prod && bun run --filter test-hmr test-ios:prod

- name: Upload Appium Logs
uses: actions/upload-artifact@v4.3.1
Expand Down
7 changes: 0 additions & 7 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,6 @@ apps/*/android/**

docs/.vitepress/cache

.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions

# temporary packed packages for release, created by scripts/release.ts
package.tmp.tgz

Expand Down
75 changes: 0 additions & 75 deletions .yarn/plugins/correct-yarn-formatting.cjs

This file was deleted.

Loading
Loading