Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
40 changes: 40 additions & 0 deletions .ai/context/current-state.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Upgrade State

sdk: 54
target_sdk: 55
target_expo: 55.0.14
target_react: 19.2.0
target_rn: 0.83.4
phase: step6_cli_updated

## Completed

- Step 0: Target version resolved (SDK 55 / 55.0.14)
- Step 1: Changelogs read (Expo SDK 55 + RN 0.83)
- Step 2: Template project package.json updated (all expo-* to 55.x.x exact versions)
- Step 2b: app.json updated (removed newArchEnabled)
- Step 3: Codegen root — no changes needed
- Step 4: Runtime package.json updated, builds pass (snapshot tests deferred)
- Step 4b: Codegen build passes
- Step 5: Template verification — deferred to user
- Step 6: CLI updated (expo-launcher.js, requirements.js, packageLock.json)

## Key Changes

- All expo-* packages now use major version 55 (new versioning scheme)
- expo-av removed (no expo-av@^55 exists, replaced by expo-video + expo-audio)
- Legacy Architecture dropped (newArchEnabled removed from app.json)
- RN 0.83 has zero breaking changes
- Node.js minimum bumped to 20.19.4
- CLI version checks now use semver.gte for forward compatibility

## Next

- Step 7: Breaking changes review
- Step 8: Final cross-repo validation

## Blocking Issues

- expo-av removal needs runtime source code review
- expo-navigation-bar deprecations need runtime review
- 157 snapshot test failures (expected, can update with npm test -- -u)
11 changes: 11 additions & 0 deletions .cursorignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
node_modules/
android/build/
ios/build/
.expo/
dist/
coverage/
*.log
*.apk
*.ipa
*.tgz
wm-projects/
1 change: 1 addition & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
engine-strict=true
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
22.13.0
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ export WM_REACTNATIVE_CLI="$HOME/cli/"
### Requirements

- Linux or MAC or Windows
- Node 22.11.0 ([https://nodejs.org/en/blog/release/v14.15.1/](https://nodejs.org/en/download/))
- Node 22.18.0 ([https://nodejs.org/en/blog/release/v14.15.1/](https://nodejs.org/en/download/))
- GIT ([https://git-scm.com/download](https://git-scm.com/download))
- Java 17 ([https://openjdk.org/install/](https://openjdk.org/install/))
- Yarn (npm install -g yarn)
Expand Down Expand Up @@ -107,7 +107,7 @@ wm-reactnative build android "/path/to/src" \
- MAC machine
- Latest XCODE
- CocoaPods ([https://guides.cocoapods.org/using/getting-started.html#toc_3](https://guides.cocoapods.org/using/getting-started.html#toc_3))
- Node 22.11.0 ([https://nodejs.org/en/blog/release/v12.22.0/](https://nodejs.org/en/download/))
- Node 22.18.0 ([https://nodejs.org/en/blog/release/v12.22.0/](https://nodejs.org/en/download/))
- GIT ([https://git-scm.com/download/mac](https://git-scm.com/download/mac))
- Yarn (npm install -g yarn)
- Apple developer or distribution P12 certificates
Expand Down Expand Up @@ -150,7 +150,7 @@ wm-reactnative build ios "/path/to/src" \
## Run web-preview

### Requirements
- Node 22.11.0
- Node 22.18.0
- GIT ([https://git-scm.com/download](https://git-scm.com/download))
- npm 10.9.x
- Yarn (npm install -g yarn)
Expand All @@ -170,7 +170,7 @@ wm-reactnative run web-preview <preview_url> [additional_arguments]
## Sync

### Requirements
- Node 22.11.0
- Node 22.18.0
- GIT ([https://git-scm.com/download](https://git-scm.com/download))
- npm 10.9.x
- Yarn (npm install -g yarn)
Expand Down
5 changes: 4 additions & 1 deletion index.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ const {
runExpo, runAndroid, runIos, sync, runESBuildWebPreview
} = require('./src/expo-launcher');
const { runWeb } = require('./src/web-preview-launcher');
const updateNotifier = require('update-notifier');
const updateNotifierModule = require('update-notifier');
const updateNotifier = updateNotifierModule.default || updateNotifierModule;
const pkg = require('./package.json');
const { canDoAndroidBuild, canDoIosBuild, showConfirmation } = require('./src/requirements');
updateNotifier({
Expand All @@ -28,6 +29,8 @@ global.rootDir = process.env.WM_REACTNATIVE_CLI || `${os.homedir()}/.wm-reactnat
global.localStorage = new LocalStorage(`${global.rootDir}/.store`);
// src is the web react native project zip

console.log('=== local cli running ===')

async function handleDeprecatedCommands(args) {
const syncCommand = `wm-reactnative sync ${args.previewUrl} ${args.clean ? '--clean' : ''} ${args.useProxy ? '--useProxy' : ''}`;
const response = await showConfirmation(
Expand Down
Loading