diff --git a/.github/workflows/build-templates.yml b/.github/workflows/build-templates.yml index c767ffc0c..a991f561d 100644 --- a/.github/workflows/build-templates.yml +++ b/.github/workflows/build-templates.yml @@ -21,6 +21,7 @@ jobs: XCODE_VERSION: 16.3 TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} TURBO_TEAM: ${{ secrets.TURBO_TEAM }} + RCT_REMOVE_LEGACY_ARCH: 1 RCT_USE_RN_DEP: 1 RCT_USE_PREBUILT_RNCORE: 1 @@ -145,20 +146,20 @@ jobs: run: | # Build Android for only some matrices to skip redundant builds if [[ ${{ matrix.os }} =~ ubuntu ]]; then - if [[ ${{ matrix.type.name }} == *-view && ${{ matrix.type.language }} == *-objc ]] || [[ ${{ matrix.type.name }} == *-module && ${{ matrix.type.language }} == *-objc ]]; then + if [[ ${{ matrix.type.name }} == *-view && ${{ matrix.type.language }} == *-objc ]] || [[ ${{ matrix.type.name }} == *-module && ${{ matrix.type.language }} == *-objc ]] || [[ ${{ matrix.type.name }} == nitro-* ]]; then echo "android_build=1" >> $GITHUB_ENV fi fi # Build iOS for only some matrices to skip redundant builds if [[ ${{ matrix.os }} =~ macos ]]; then - if [[ ${{ matrix.type.name }} == *-view && ${{ matrix.type.language }} == kotlin-* ]] || [[ ${{ matrix.type.name }} == *-module && ${{ matrix.type.language }} == kotlin-* ]]; then + if [[ ${{ matrix.type.name }} == *-view && ${{ matrix.type.language }} == kotlin-* ]] || [[ ${{ matrix.type.name }} == *-module && ${{ matrix.type.language }} == kotlin-* ]] || [[ ${{ matrix.type.name }} == nitro-* ]]; then echo "ios_build=1" >> $GITHUB_ENV fi fi - name: Generate nitrogen code - if: matrix.type == 'nitro-view' || matrix.type == 'nitro-module' + if: matrix.type.name == 'nitro-view' || matrix.type.name == 'nitro-module' working-directory: ${{ env.work_dir }} run: yarn nitrogen diff --git a/packages/create-react-native-library/src/constants.ts b/packages/create-react-native-library/src/constants.ts index f4aa6f28e..073d779a4 100644 --- a/packages/create-react-native-library/src/constants.ts +++ b/packages/create-react-native-library/src/constants.ts @@ -1,3 +1,3 @@ export const FALLBACK_BOB_VERSION = '0.40.13'; export const FALLBACK_NITRO_MODULES_VERSION = '0.29.8'; -export const SUPPORTED_REACT_NATIVE_VERSION = '0.81.1'; +export const SUPPORTED_REACT_NATIVE_VERSION = '0.83.0'; diff --git a/packages/create-react-native-library/src/index.ts b/packages/create-react-native-library/src/index.ts index 3c41a42cd..e77168c7f 100644 --- a/packages/create-react-native-library/src/index.ts +++ b/packages/create-react-native-library/src/index.ts @@ -101,7 +101,7 @@ async function create() { await alignDependencyVersionsWithExampleApp(rootPackageJson, folder); } - if (!answers.local && answers.tools.length > 0) { + if (!answers.local) { spinner.text = 'Configuring tools'; await configureTools({ diff --git a/packages/create-react-native-library/src/utils/configureTools.ts b/packages/create-react-native-library/src/utils/configureTools.ts index e83ebe619..595271471 100644 --- a/packages/create-react-native-library/src/utils/configureTools.ts +++ b/packages/create-react-native-library/src/utils/configureTools.ts @@ -2,6 +2,7 @@ import fs from 'fs-extra'; import path from 'node:path'; import { applyTemplate, type TemplateConfiguration } from '../template'; import sortObjectKeys from './sortObjectKeys'; +import { SUPPORTED_REACT_NATIVE_VERSION } from '../constants'; type Tool = { name: string; @@ -35,7 +36,7 @@ const ESLINT = { '@eslint/compat': '^1.3.2', '@eslint/eslintrc': '^3.3.1', '@eslint/js': '^9.35.0', - '@react-native/eslint-config': '^0.81.1', + '@react-native/eslint-config': SUPPORTED_REACT_NATIVE_VERSION, 'eslint-config-prettier': '^10.1.8', 'eslint-plugin-prettier': '^5.5.4', 'eslint': '^9.35.0', @@ -134,7 +135,7 @@ export const AVAILABLE_TOOLS = { } as const satisfies Record; const REQUIRED_TOOLS = { - turbo: TURBOREPO, + turborepo: TURBOREPO, } as const satisfies Record; const ALL_TOOLS = { diff --git a/packages/create-react-native-library/templates/common/$package.json b/packages/create-react-native-library/templates/common/$package.json index 0ed8a61a8..8c19b54a2 100644 --- a/packages/create-react-native-library/templates/common/$package.json +++ b/packages/create-react-native-library/templates/common/$package.json @@ -69,17 +69,14 @@ "registry": "https://registry.npmjs.org/" }, "devDependencies": { -<% if (example === 'vanilla' && (project.moduleConfig === 'turbo-modules' || project.viewConfig === 'fabric-view')) { -%> - "@react-native-community/cli": "20.0.1", -<% } -%> - "@react-native/babel-preset": "0.81.1", + "@react-native/babel-preset": "0.83.0", "@types/react": "^19.1.12", "del-cli": "^6.0.0", <% if (project.moduleConfig === 'nitro-modules' || project.viewConfig === 'nitro-view') { -%> "nitrogen": "^<%- versions.nitro %>", <% } -%> "react": "19.1.0", - "react-native": "0.81.1", + "react-native": "0.83.0", "react-native-builder-bob": "^<%- versions.bob %>", <% if (project.moduleConfig === 'nitro-modules' || project.viewConfig === 'nitro-view') { -%> "react-native-nitro-modules": "^<%- versions.nitro %>", diff --git a/packages/create-react-native-library/templates/native-common-example/turbo.json b/packages/create-react-native-library/templates/native-common-example/turbo.json deleted file mode 100644 index cc663f26a..000000000 --- a/packages/create-react-native-library/templates/native-common-example/turbo.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "$schema": "https://turbo.build/schema.json", - "globalDependencies": [".nvmrc", ".yarnrc.yml"], - "globalEnv": ["NODE_ENV"], - "tasks": { -<% if (example !== 'expo') { -%> - "build:android": { - "env": ["ANDROID_HOME", "ORG_GRADLE_PROJECT_newArchEnabled"], - "inputs": [ - "package.json", - "android", - "!android/build", - "src/*.ts", - "src/*.tsx", - "example/package.json", - "example/android", - "!example/android/.gradle", - "!example/android/build", - "!example/android/app/build" - ], - "outputs": [] - }, - "build:ios": { - "env": [ - "RCT_NEW_ARCH_ENABLED", - "RCT_USE_RN_DEP", - "RCT_USE_PREBUILT_RNCORE" - ], - "inputs": [ - "package.json", - "*.podspec", - "ios", - "src/*.ts", - "src/*.tsx", - "example/package.json", - "example/ios", - "!example/ios/build", - "!example/ios/Pods" - ], - "outputs": [] - } -<% } -%> - } -} diff --git a/packages/create-react-native-library/templates/nitro-view/android/src/main/java/com/margelo/nitro/{%- project.package_dir %}/{%- project.name %}Package.kt b/packages/create-react-native-library/templates/nitro-view/android/src/main/java/com/margelo/nitro/{%- project.package_dir %}/{%- project.name %}Package.kt index 624cb8480..998b2c8f4 100644 --- a/packages/create-react-native-library/templates/nitro-view/android/src/main/java/com/margelo/nitro/{%- project.package_dir %}/{%- project.name %}Package.kt +++ b/packages/create-react-native-library/templates/nitro-view/android/src/main/java/com/margelo/nitro/{%- project.package_dir %}/{%- project.name %}Package.kt @@ -1,14 +1,14 @@ package com.margelo.nitro.<%- project.package %> -import com.facebook.react.TurboReactPackage +import com.facebook.react.BaseReactPackage import com.facebook.react.bridge.NativeModule import com.facebook.react.bridge.ReactApplicationContext import com.facebook.react.module.model.ReactModuleInfoProvider import com.facebook.react.uimanager.ViewManager -import <%- project.package_cpp -%>.views.Hybrid<%- project.name -%>Manager +import com.margelo.nitro.<%- project.package %>.views.Hybrid<%- project.name -%>Manager -class <%- project.name -%>Package : TurboReactPackage() { +class <%- project.name -%>Package : BaseReactPackage() { override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? { return null } diff --git a/packages/create-react-native-library/templates/tools/turborepo/turbo.json b/packages/create-react-native-library/templates/tools/turborepo/turbo.json index c4d78c496..8b2bf0876 100644 --- a/packages/create-react-native-library/templates/tools/turborepo/turbo.json +++ b/packages/create-react-native-library/templates/tools/turborepo/turbo.json @@ -22,6 +22,7 @@ "build:ios": { "env": [ "RCT_NEW_ARCH_ENABLED", + "RCT_REMOVE_LEGACY_ARCH", "RCT_USE_RN_DEP", "RCT_USE_PREBUILT_RNCORE" ],