Skip to content

Add experimental upgrade-react-native skill#1

Merged
thymikee merged 2 commits intoreact-native-community:mainfrom
huntie:experimental-upgrade-rn-skill
Feb 11, 2026
Merged

Add experimental upgrade-react-native skill#1
thymikee merged 2 commits intoreact-native-community:mainfrom
huntie:experimental-upgrade-rn-skill

Conversation

@huntie
Copy link
Collaborator

@huntie huntie commented Feb 11, 2026

Summary

Introduces an experimental /upgrade-react-native skill, and documents this react-native-community/skills repo.

Upgrade React Native

/upgrade-react-native guides an AI agent through upgrading a React Native Community CLI project by:

  • Detecting the current react-native version from package.json.
  • Fetching the unified diff from rn-diff-purge (the same data source as the Upgrade Helper web UI).
  • Mapping template paths (RnDiffApp/) to the target project.
  • Categorizing changes and presenting a plan before applying.
  • Providing a post-upgrade checklist.

https://claude.ai/code/session_019uZymRV1PLDAHFYuHxAndc

Test Plan

1/ Install react-native-cli/skills (locally link)

npx skills add /Users/huntie/Development/forks/react-native-community/react-native-cli/skills
image

2/ Run skill

/upgrade-react-native 0.84.0-rc.5
image

✅ Checks Upgrade Helper

image

✅ Builds plan

image

✅ Applies changes

image
Generated diff
diff --git a/android/app/build.gradle b/android/app/build.gradle
index f15608c..22686b9 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -19,9 +19,9 @@ react {
 
     /* Variants */
     //   The list of variants to that are debuggable. For those we're going to
-    //   skip the bundling of the JS bundle and the assets. By default is just 'debug'.
+    //   skip the bundling of the JS bundle and the assets. Default is "debug", "debugOptimized".
     //   If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants.
-    // debuggableVariants = ["liteDebug", "prodDebug"]
+    // debuggableVariants = ["liteDebug", "liteDebugOptimized", "prodDebug", "prodDebugOptimized"]
 
     /* Bundling */
     //   A list containing the node command and its flags. Default is just 'node'.
diff --git a/ios/RN083.xcodeproj/project.pbxproj b/ios/RN083.xcodeproj/project.pbxproj
index f497d6e..ec15cfe 100644
--- a/ios/RN083.xcodeproj/project.pbxproj
+++ b/ios/RN083.xcodeproj/project.pbxproj
@@ -273,8 +273,10 @@
 				);
 				PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
 				PRODUCT_NAME = RN083;
+				SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
 				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
 				SWIFT_VERSION = 5.0;
+				TARGETED_DEVICE_FAMILY = "1,2";
 				VERSIONING_SYSTEM = "apple-generic";
 			};
 			name = Debug;
@@ -300,7 +302,9 @@
 				);
 				PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
 				PRODUCT_NAME = RN083;
+				SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
 				SWIFT_VERSION = 5.0;
+				TARGETED_DEVICE_FAMILY = "1,2";
 				VERSIONING_SYSTEM = "apple-generic";
 			};
 			name = Release;
diff --git a/ios/RN083/Info.plist b/ios/RN083/Info.plist
index d026797..7dea83a 100644
--- a/ios/RN083/Info.plist
+++ b/ios/RN083/Info.plist
@@ -45,8 +45,13 @@
 	<key>UISupportedInterfaceOrientations</key>
 	<array>
 		<string>UIInterfaceOrientationPortrait</string>
+	</array>
+	<key>UISupportedInterfaceOrientations~ipad</key>
+	<array>
 		<string>UIInterfaceOrientationLandscapeLeft</string>
 		<string>UIInterfaceOrientationLandscapeRight</string>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationPortraitUpsideDown</string>
 	</array>
 	<key>UIViewControllerBasedStatusBarAppearance</key>
 	<false/>
diff --git a/package.json b/package.json
index 2e7bcd7..dd7438a 100644
--- a/package.json
+++ b/package.json
@@ -10,32 +10,32 @@
     "test": "jest"
   },
   "dependencies": {
-    "react": "19.2.0",
-    "react-native": "0.83.1",
-    "@react-native/new-app-screen": "0.83.1",
+    "react": "19.2.3",
+    "react-native": "0.84.0-rc.5",
+    "@react-native/new-app-screen": "0.84.0-rc.5",
     "react-native-safe-area-context": "^5.5.2"
   },
   "devDependencies": {
     "@babel/core": "^7.25.2",
     "@babel/preset-env": "^7.25.3",
     "@babel/runtime": "^7.25.0",
-    "@react-native-community/cli": "20.0.0",
-    "@react-native-community/cli-platform-android": "20.0.0",
-    "@react-native-community/cli-platform-ios": "20.0.0",
-    "@react-native/babel-preset": "0.83.1",
-    "@react-native/eslint-config": "0.83.1",
-    "@react-native/metro-config": "0.83.1",
-    "@react-native/typescript-config": "0.83.1",
+    "@react-native-community/cli": "20.1.0",
+    "@react-native-community/cli-platform-android": "20.1.0",
+    "@react-native-community/cli-platform-ios": "20.1.0",
+    "@react-native/babel-preset": "0.84.0-rc.5",
+    "@react-native/eslint-config": "0.84.0-rc.5",
+    "@react-native/metro-config": "0.84.0-rc.5",
+    "@react-native/typescript-config": "0.84.0-rc.5",
     "@types/jest": "^29.5.13",
     "@types/react": "^19.2.0",
     "@types/react-test-renderer": "^19.1.0",
     "eslint": "^8.19.0",
     "jest": "^29.6.3",
     "prettier": "2.8.8",
-    "react-test-renderer": "19.2.0",
+    "react-test-renderer": "19.2.3",
     "typescript": "^5.8.3"
   },
   "engines": {
-    "node": ">=20"
+    "node": ">= 22.11.0"
   }
 }
\ No newline at end of file
diff --git a/tsconfig.json b/tsconfig.json
index 8a28ab3..266ba9c 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,7 +1,7 @@
 {
   "extends": "@react-native/typescript-config",
   "compilerOptions": {
-    "types": ["jest"],
+    "types": ["jest"]
   },
   "include": ["**/*.ts", "**/*.tsx"],
   "exclude": ["**/node_modules", "**/Pods"]

3/ Follow up on post-upgrade checklist

npm i
cd ios/
bundle exec pod install

Test upgraded app (iOS)

image

✅ Project is upgraded to 0.84 RC5 🎉

Copy link
Member

@thymikee thymikee left a comment

Choose a reason for hiding this comment

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

the instructions around dependencies are quite high-level and leave a lot of "creativity" for agents, so results will vary much between them. For the first run it should be good to go 👍🏼

@thymikee thymikee merged commit 7f2699d into react-native-community:main Feb 11, 2026
@huntie huntie deleted the experimental-upgrade-rn-skill branch February 11, 2026 17:46
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.

2 participants