Skip to content

Conversation

troZee
Copy link
Contributor

@troZee troZee commented Sep 6, 2022

Summary

Close #238

Screenshot 2022-09-06 at 15 25 48

Test plan

  • Turbo module with backward compat (experimental)
  • Turbo module (experimental)
  • Native module
  • Native view
  • JavaScript library

@troZee troZee requested review from MateWW and satya164 September 6, 2022 13:27
type?: 'module-legacy' | 'module-turbo' | 'module-mixed' | 'view' | 'library';
type?:
| 'module-legacy'
| 'module-new-arch'
Copy link
Contributor Author

Choose a reason for hiding this comment

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

@satya164 , I changed 'xxx-turbo' => 'xxx-new-arch' to avoid any confusion.
Fabric will refer to view, turbomodule will refer to module. Since the fact fabric is a new renderer, I would like to use new-arch postfix for the new arch

@troZee troZee requested a review from atlj September 6, 2022 13:34
"@types/jest": "^28.1.2",
"@types/react": "~17.0.21",
"@types/react-native": "0.68.0",
"@types/react-native": <%-/* TODO: bump version of rn to 0.69.0 */ project.newArchitecture ? '"0.69.5"':'"0.68.0"'-%>,
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Will adjust this todo after merge #271

<% if (project.turbomodule) { -%>
libreact_codegen_<%- project.name -%> \
<% if (project.newArchitecture) { -%>
libreact_codegen_<%- project.view ? project.name+'View': project.name -%> \
Copy link
Contributor Author

Choose a reason for hiding this comment

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

It will not be needed in RN 70

…emplate

# Conflicts:
#	packages/create-react-native-library/templates/example-legacy/example/$.bundle/config
#	packages/create-react-native-library/templates/example-legacy/example/$.ruby-version
#	packages/create-react-native-library/templates/example-legacy/example/$package.json
#	packages/create-react-native-library/templates/example-legacy/example/$yarn.lock
#	packages/create-react-native-library/templates/example-legacy/example/Gemfile
#	packages/create-react-native-library/templates/example-legacy/example/Gemfile.lock
#	packages/create-react-native-library/templates/example-legacy/example/android/app/build.gradle
#	packages/create-react-native-library/templates/example-legacy/example/android/app/debug.keystore
#	packages/create-react-native-library/templates/example-legacy/example/android/app/proguard-rules.pro
#	packages/create-react-native-library/templates/example-legacy/example/android/app/src/debug/AndroidManifest.xml
#	packages/create-react-native-library/templates/example-legacy/example/android/app/src/debug/java/com/example/{%- project.package %}/ReactNativeFlipper.java
#	packages/create-react-native-library/templates/example-legacy/example/android/app/src/main/AndroidManifest.xml
#	packages/create-react-native-library/templates/example-legacy/example/android/app/src/main/java/com/example/{%- project.package %}/MainActivity.java
#	packages/create-react-native-library/templates/example-legacy/example/android/app/src/main/java/com/example/{%- project.package %}/MainApplication.java
#	packages/create-react-native-library/templates/example-legacy/example/android/app/src/main/java/com/example/{%- project.package %}/newarchitecture/MainApplicationReactNativeHost.java
#	packages/create-react-native-library/templates/example-legacy/example/android/app/src/main/java/com/example/{%- project.package %}/newarchitecture/components/MainComponentsRegistry.java
#	packages/create-react-native-library/templates/example-legacy/example/android/app/src/main/java/com/example/{%- project.package %}/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java
#	packages/create-react-native-library/templates/example-legacy/example/android/app/src/main/jni/Android.mk
#	packages/create-react-native-library/templates/example-legacy/example/android/app/src/main/jni/MainApplicationModuleProvider.cpp
#	packages/create-react-native-library/templates/example-legacy/example/android/app/src/main/jni/MainApplicationModuleProvider.h
#	packages/create-react-native-library/templates/example-legacy/example/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp
#	packages/create-react-native-library/templates/example-legacy/example/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h
#	packages/create-react-native-library/templates/example-legacy/example/android/app/src/main/jni/MainComponentsRegistry.cpp
#	packages/create-react-native-library/templates/example-legacy/example/android/app/src/main/jni/MainComponentsRegistry.h
#	packages/create-react-native-library/templates/example-legacy/example/android/app/src/main/jni/OnLoad.cpp
#	packages/create-react-native-library/templates/example-legacy/example/android/app/src/main/res/drawable/rn_edit_text_material.xml
#	packages/create-react-native-library/templates/example-legacy/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
#	packages/create-react-native-library/templates/example-legacy/example/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
#	packages/create-react-native-library/templates/example-legacy/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
#	packages/create-react-native-library/templates/example-legacy/example/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
#	packages/create-react-native-library/templates/example-legacy/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
#	packages/create-react-native-library/templates/example-legacy/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
#	packages/create-react-native-library/templates/example-legacy/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
#	packages/create-react-native-library/templates/example-legacy/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
#	packages/create-react-native-library/templates/example-legacy/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
#	packages/create-react-native-library/templates/example-legacy/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
#	packages/create-react-native-library/templates/example-legacy/example/android/app/src/main/res/values/strings.xml
#	packages/create-react-native-library/templates/example-legacy/example/android/app/src/main/res/values/styles.xml
#	packages/create-react-native-library/templates/example-legacy/example/android/build.gradle
#	packages/create-react-native-library/templates/example-legacy/example/android/gradle.properties
#	packages/create-react-native-library/templates/example-legacy/example/android/gradle/wrapper/gradle-wrapper.jar
#	packages/create-react-native-library/templates/example-legacy/example/android/gradle/wrapper/gradle-wrapper.properties
#	packages/create-react-native-library/templates/example-legacy/example/android/gradlew
#	packages/create-react-native-library/templates/example-legacy/example/android/gradlew.bat
#	packages/create-react-native-library/templates/example-legacy/example/android/settings.gradle
#	packages/create-react-native-library/templates/example-legacy/example/index.ts
#	packages/create-react-native-library/templates/example-legacy/example/index.tsx
#	packages/create-react-native-library/templates/example-legacy/example/ios/Podfile
#	packages/create-react-native-library/templates/example-legacy/example/ios/{%- project.name %}Example.xcodeproj/project.pbxproj
#	packages/create-react-native-library/templates/example-legacy/example/ios/{%- project.name %}Example.xcodeproj/xcshareddata/xcschemes/{%- project.name %}Example.xcscheme
#	packages/create-react-native-library/templates/example-legacy/example/ios/{%- project.name %}Example.xcworkspace/contents.xcworkspacedata
#	packages/create-react-native-library/templates/example-legacy/example/ios/{%- project.name %}Example.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
#	packages/create-react-native-library/templates/example-legacy/example/ios/{%- project.name %}Example/AppDelegate.h
#	packages/create-react-native-library/templates/example-legacy/example/ios/{%- project.name %}Example/AppDelegate.mm
#	packages/create-react-native-library/templates/example-legacy/example/ios/{%- project.name %}Example/Images.xcassets/AppIcon.appiconset/Contents.json
#	packages/create-react-native-library/templates/example-legacy/example/ios/{%- project.name %}Example/Images.xcassets/Contents.json
#	packages/create-react-native-library/templates/example-legacy/example/ios/{%- project.name %}Example/Info.plist
#	packages/create-react-native-library/templates/example-legacy/example/ios/{%- project.name %}Example/LaunchScreen.storyboard
#	packages/create-react-native-library/templates/example-legacy/example/ios/{%- project.name %}Example/main.m
#	packages/create-react-native-library/templates/example-new/example/patches/react-native+0.68.2.patch
#	packages/create-react-native-library/templates/example-new/example/patches/react-native+0.70.0.patch
@troZee troZee marked this pull request as ready for review September 8, 2022 15:39
@atlj
Copy link
Collaborator

atlj commented Sep 9, 2022

There is an issue

Issue

 ./create-react-native-library test      ✘ PIPE 5s
✔ What is the name of the npm package? … react-native-test
✔ What is the description for the package? … sdf
✔ What is the name of package author? … Burak
✔ What is the email address for the package author? … burak.guner@callstack.com
✔ What is the URL for the package author? … https://
✔ What is the URL for the repository? … https://
✔ What type of library do you want to develop? › Native fabric view with backward compat (experimental)
create-react-native-library <name>

create a react native library

Options:
  --help          Show help                                            [boolean]
  --version       Show version number                                  [boolean]
  --slug          Name of the npm package                               [string]
  --description   Description of the npm package                        [string]
  --author-name   Name of the package author                            [string]
  --author-email  Email address of the package author                   [string]
  --author-url    URL for the package author                            [string]
  --repo-url      URL for the repository                                [string]
  --languages     Languages you want to use
      [choices: "java-objc", "java-swift", "kotlin-objc", "kotlin-swift", "cpp",
                                                                           "js"]
  --type          Type of library you want to develop[choices: "module", "view"]
  --example       Type of example app                [choices: "expo", "native"]

[Error: ENOENT: no such file or directory, scandir '/Users/burakguner/kod/react-native-builder-bob/packages/create-react-native-library/templates/java-view-mixed-library'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'scandir',
  path: '/Users/burakguner/kod/react-native-builder-bob/packages/create-react-native-library/templates/java-view-mixed-library'
}

Steps to reproduce

  1. run create-react-native-library
  2. choose Native fabric view with backward compat (experimental) for What type of library do you want to develop?

Piotr Trocki added 2 commits October 24, 2022 14:35
# Conflicts:
#	packages/create-react-native-library/src/index.ts
#	packages/create-react-native-library/templates/common/$package.json
#	packages/create-react-native-library/templates/example-legacy/example/index.js
#	packages/create-react-native-library/templates/example-legacy/example/react-native.config.js
#	packages/create-react-native-library/templates/example/example/react-native.config.js
#	packages/create-react-native-library/templates/java-library-new/android/src/main/java/com/{%- project.package %}/{%- project.name %}Module.java
#	packages/create-react-native-library/templates/java-library-new/android/src/main/java/com/{%- project.package %}/{%- project.name %}Package.java
#	packages/create-react-native-library/templates/java-library-new/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}Module.java
#	packages/create-react-native-library/templates/java-library-new/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}Package.java
#	packages/create-react-native-library/templates/java-library-turbo/android/src/main/java/com/{%- project.package %}/{%- project.name %}Package.java
#	packages/create-react-native-library/templates/java-view-legacy/android/src/main/java/com/{%- project.package %}/{%- project.name %}Package.java
#	packages/create-react-native-library/templates/java-view-legacy/android/src/main/java/com/{%- project.package %}/{%- project.name %}ViewManager.java
#	packages/create-react-native-library/templates/java-view-legacy/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}Package.java
#	packages/create-react-native-library/templates/java-view-legacy/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}ViewManager.java
#	packages/create-react-native-library/templates/java-view-library/android/src/main/java/com/{%- project.package %}/{%- project.name %}Package.java
#	packages/create-react-native-library/templates/kotlin-view-legacy/android/src/main/java/com/{%- project.package %}/{%- project.name %}Package.kt
#	packages/create-react-native-library/templates/kotlin-view-legacy/android/src/main/java/com/{%- project.package %}/{%- project.name %}ViewManager.kt
#	packages/create-react-native-library/templates/kotlin-view-legacy/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}Package.kt
#	packages/create-react-native-library/templates/kotlin-view-legacy/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}ViewManager.kt
#	packages/create-react-native-library/templates/kotlin-view-library/android/src/main/java/com/{%- project.package %}/{%- project.name %}ViewManager.kt
#	packages/create-react-native-library/templates/native-common/example/react-native.config.js
@troZee
Copy link
Contributor Author

troZee commented Oct 24, 2022

@satya164 @atlj @MateWW
PR is ready for testing

@troZee troZee requested review from MateWW and atlj October 24, 2022 13:57
const result = await multiply(3, 7);
```

<% } -%>
Copy link
Member

Choose a reason for hiding this comment

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

Avoid adding new lines here

- Fix eslint issues
- move hexStringColor to Utils
@troZee troZee requested a review from satya164 October 25, 2022 10:24
@satya164 satya164 merged commit c43878f into main Oct 27, 2022
@satya164 satya164 deleted the MateWW/fabric-template branch October 27, 2022 15:35
@migueldaipre
Copy link

@satya164 Any news when this will be released?

@thymikee
Copy link
Member

🔜

okwasniewski pushed a commit that referenced this pull request Nov 4, 2022
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.

New architecture support?

6 participants