Skip to content

Conversation

tido64
Copy link
Member

@tido64 tido64 commented Oct 19, 2021

Description

Add support for react-native 0.67

Discussion: reactwg/react-native-releases#1

Platforms affected

  • Android
  • iOS
  • macOS
  • Windows

Test plan

  1. Set react-native version: npm run set-react-version 0.67
  2. Run yarn
  3. Ensure that the test apps build and run
    • Android
    • iOS (Hermes)
    • iOS (JSC)
    • Windows
Platform Home App
Android Screenshot_1634754984 Screenshot_1634754989
iOS (Hermes) Simulator Screen Shot - iPhone 12 Pro - 2021-10-19 at 13 06 04 Simulator Screen Shot - iPhone 12 Pro - 2021-10-19 at 13 06 06
iOS (JSC) Simulator Screen Shot - iPhone 12 Pro - 2021-10-19 at 13 00 11 Simulator Screen Shot - iPhone 12 Pro - 2021-10-19 at 13 00 12
Windows n/a image

@tido64 tido64 added platform: Android This affects Android platform: iOS This affects iOS platform: Windows This affects Windows labels Oct 19, 2021
@github-actions github-actions bot removed platform: Android This affects Android platform: iOS This affects iOS platform: Windows This affects Windows labels Oct 19, 2021
@tido64
Copy link
Member Author

tido64 commented Oct 19, 2021

Android build fails:

Error: Command failed: ./gradlew installDebug -PreactNativeDevServerPort=8081
w: Runtime JAR files in the classpath should have the same version. These files were found in the classpath:
    /~/.gradle/caches/transforms-3/5124617d1ddf91cc93fc6a31dff02f7e/transformed/jetified-kotlin-stdlib-jdk8-1.4.10.jar (version 1.4)
    /~/.gradle/caches/transforms-3/4c60554dec6a1e41e228dda600ed4226/transformed/jetified-kotlin-stdlib-jdk7-1.5.31.jar (version 1.5)
    /~/.gradle/caches/transforms-3/b50f79cfa342cda80725cbbd9a11dc6c/transformed/jetified-kotlin-reflect-1.5.31.jar (version 1.5)
    /~/.gradle/caches/transforms-3/46bb811c6535b7abbf989788fb375eb0/transformed/jetified-kotlin-stdlib-1.5.31.jar (version 1.5)
    /~/.gradle/caches/transforms-3/6969468c8c2205847081e929b5586f42/transformed/jetified-kotlin-stdlib-common-1.5.31.jar (version 1.5)
w: Some runtime JAR files in the classpath have an incompatible version. Consider removing them from the classpath
e: warnings found and -Werror specified

@arazabishov
Copy link
Member

arazabishov commented Oct 20, 2021

@tido64 react-native depends on 1.4.x, while RNTA on 1.5.x. The stdlib-jdk8 mismatch is introduced because RNTA is not opinionated on which version to use. A quick fix would be to add a dev on stdlib-jdk8 to RNTA:

diff --git a/android/dependencies.gradle b/android/dependencies.gradle
index 0987003..d5e416d 100644
--- a/android/dependencies.gradle
+++ b/android/dependencies.gradle
@@ -31,11 +31,12 @@ ext {
         junit                      : "junit:junit:4.13.2",
         kotlinReflect              : "org.jetbrains.kotlin:kotlin-reflect:1.5.31",
         kotlinStdlibJdk7           : "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.5.31",
+        kotlinStdlibJdk8           : "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.31",
         materialComponents         : "com.google.android.material:material:1.4.0",
         moshiKotlin                : "com.squareup.moshi:moshi-kotlin:1.12.0",
         moshiKotlinCodegen         : "com.squareup.moshi:moshi-kotlin-codegen:1.12.0",
     ]
 
     androidPluginVersion = "4.2.2"
     kotlinVersion = versionOf(libraries.kotlinStdlibJdk7)
 }
diff --git a/android/app/build.gradle b/android/app/build.gradle
index 7580451..57c9d96 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -67,6 +67,11 @@ android {
         ndkVersion ANDROID_NDK_VERSION
     }

     // TODO: Remove this block when minSdkVersion >= 24. See
     // https://stackoverflow.com/q/53402639 for details.
     compileOptions {
@@ -128,6 +133,7 @@ dependencies {
     }
 
     implementation libraries.kotlinStdlibJdk7
+    implementation libraries.kotlinStdlibJdk8
     implementation libraries.kotlinReflect
     implementation libraries.androidAppCompat
     implementation libraries.androidCoreKotlinExtensions

@tido64
Copy link
Member Author

tido64 commented Oct 20, 2021

@arazabishov Thanks, I'll make the appropriate changes. One question: Is removing androidPluginVersion necessary? We use in several places:

classpath "com.android.tools.build:gradle:$androidPluginVersion"

classpath "com.android.tools.build:gradle:$androidPluginVersion"

classpath "com.android.tools.build:gradle:$androidPluginVersion"

@github-actions github-actions bot added the platform: Android This affects Android label Oct 20, 2021
@arazabishov
Copy link
Member

arazabishov commented Oct 22, 2021

@tido64 nope, we need to keep it. That's just an unwanted bit of diff.

@tido64 tido64 force-pushed the tido/support-0.67 branch from 0b2fb5e to f547bbf Compare October 25, 2021 08:34
@github-actions github-actions bot removed the platform: Android This affects Android label Oct 25, 2021
@tido64 tido64 force-pushed the tido/support-0.67 branch from ed9198d to 92f9839 Compare October 29, 2021 09:19
@tido64 tido64 force-pushed the tido/support-0.67 branch 2 times, most recently from 1fd101f to ef33a9d Compare November 12, 2021 11:59
@tido64 tido64 marked this pull request as ready for review November 19, 2021 07:17
@tido64 tido64 requested a review from kelset November 19, 2021 07:17
@tido64 tido64 mentioned this pull request Nov 30, 2021
31 tasks
@tido64
Copy link
Member Author

tido64 commented Dec 1, 2021

react-native 0.67.0-rc.4:

Android iOS
Screenshot_1638362512 image

@tido64 tido64 force-pushed the tido/support-0.67 branch 2 times, most recently from 8073199 to 6daa975 Compare December 7, 2021 08:19
@tido64 tido64 force-pushed the tido/support-0.67 branch from 6daa975 to c637da7 Compare January 5, 2022 13:06
@tido64 tido64 force-pushed the tido/support-0.67 branch from c637da7 to 24470aa Compare January 18, 2022 18:18
@github-actions github-actions bot added platform: iOS This affects iOS platform: macOS This affects macOS labels Jan 18, 2022
"react-native": "^0.0.0-0 || ^0.60 || ^0.61 || ^0.62 || ^0.63 || ^0.64 || ^0.65 || ^0.66 || 1000.0.0",
"react-native-macos": "^0.0.0-0 || ^0.60 || ^0.61 || ^0.62 || ^0.63 || ^0.64",
"react-native-windows": "^0.0.0-0 || ^0.62 || ^0.63 || ^0.64 || ^0.65 || ^0.66"
"react-native": "^0.0.0-0 || 0.60 - 0.67 || 1000.0.0",
Copy link
Contributor

Choose a reason for hiding this comment

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

TIL I learned you can use - for a range 🤣

Copy link
Member Author

Choose a reason for hiding this comment

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

The string was getting really long so I played around with https://semver.npmjs.com/ to see if there's anything I can do to fix it. Then I saw the boxes at the bottom…

@tido64 tido64 merged commit a41aac6 into trunk Jan 19, 2022
@tido64 tido64 deleted the tido/support-0.67 branch January 19, 2022 10:28
@tido64 tido64 added this to the 1.0 milestone Jan 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

platform: iOS This affects iOS platform: macOS This affects macOS

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants