Migrate ReactNativeVersion Android template to Kotlin (#49758)

Summary:
Added a new template `ReactNativeVersion.kt-template.js` to be used to generate the Kotlin template for Android. Updating also the set-rn-artifacts-version script to use this template instead of the Java one.

## Changelog:

[INTERNAL] - Migrate ReactNativeVersion Android template to Kotlin

Pull Request resolved: https://github.com/facebook/react-native/pull/49758

Test Plan:
```bash
yarn test-android
yarn android
node ./scripts/releases/set-version.js 1000.0.0
```

Reviewed By: huntie, rshest

Differential Revision: D70486775

Pulled By: cortinico

fbshipit-source-id: 5dd1e0e2ecf4d848dc24e6c47df243a1259ab559
This commit is contained in:
Mateo Guzmán
2025-03-04 07:38:18 -08:00
committed by Facebook GitHub Bot
parent e85079219f
commit 71fbf51979
7 changed files with 58 additions and 66 deletions
@@ -3345,9 +3345,9 @@ public final class com/facebook/react/modules/systeminfo/AndroidInfoModule : com
public fun invalidate ()V
}
public class com/facebook/react/modules/systeminfo/ReactNativeVersion {
public final class com/facebook/react/modules/systeminfo/ReactNativeVersion {
public static final field INSTANCE Lcom/facebook/react/modules/systeminfo/ReactNativeVersion;
public static final field VERSION Ljava/util/Map;
public fun <init> ()V
}
public final class com/facebook/react/modules/toast/ToastModule : com/facebook/fbreact/specs/NativeToastAndroidSpec {
@@ -1,22 +0,0 @@
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated by scripts/releases/set-version.js
*/
package com.facebook.react.modules.systeminfo;
import com.facebook.react.common.MapBuilder;
import java.util.Map;
public class ReactNativeVersion {
public static final Map<String, Object> VERSION = MapBuilder.<String, Object>of(
"major", 1000,
"minor", 0,
"patch", 0,
"prerelease", null);
}
@@ -0,0 +1,20 @@
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated by scripts/releases/set-version.js
*/
package com.facebook.react.modules.systeminfo
public object ReactNativeVersion {
@JvmField
public val VERSION: Map<String, Any?> = mapOf(
"major" to 1000,
"minor" to 0,
"patch" to 0,
"prerelease" to null
)
}
@@ -65,7 +65,7 @@ exports[`updateReactNativeArtifacts should set nightly version: packages/react-n
"
`;
exports[`updateReactNativeArtifacts should set nightly version: packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java 1`] = `
exports[`updateReactNativeArtifacts should set nightly version: packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt 1`] = `
"/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
@@ -75,18 +75,16 @@ exports[`updateReactNativeArtifacts should set nightly version: packages/react-n
* << GENERATED >>
*/
package com.facebook.react.modules.systeminfo;
package com.facebook.react.modules.systeminfo
import com.facebook.react.common.MapBuilder;
import java.util.Map;
public class ReactNativeVersion {
public static final Map<String, Object> VERSION = MapBuilder.<String, Object>of(
\\"major\\", 0,
\\"minor\\", 81,
\\"patch\\", 0,
\\"prerelease\\", \\"nightly-29282302-abcd1234\\");
public object ReactNativeVersion {
@JvmField
public val VERSION: Map<String, Any?> = mapOf(
\\"major\\" to 0,
\\"minor\\" to 81,
\\"patch\\" to 0,
\\"prerelease\\" to \\"nightly-29282302-abcd1234\\"
)
}
"
`;
@@ -188,7 +186,7 @@ exports[`updateReactNativeArtifacts should set release version: packages/react-n
"
`;
exports[`updateReactNativeArtifacts should set release version: packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java 1`] = `
exports[`updateReactNativeArtifacts should set release version: packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt 1`] = `
"/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
@@ -198,18 +196,16 @@ exports[`updateReactNativeArtifacts should set release version: packages/react-n
* << GENERATED >>
*/
package com.facebook.react.modules.systeminfo;
package com.facebook.react.modules.systeminfo
import com.facebook.react.common.MapBuilder;
import java.util.Map;
public class ReactNativeVersion {
public static final Map<String, Object> VERSION = MapBuilder.<String, Object>of(
\\"major\\", 0,
\\"minor\\", 81,
\\"patch\\", 0,
\\"prerelease\\", null);
public object ReactNativeVersion {
@JvmField
public val VERSION: Map<String, Any?> = mapOf(
\\"major\\" to 0,
\\"minor\\" to 81,
\\"patch\\" to 0,
\\"prerelease\\" to null
)
}
"
`;
@@ -61,7 +61,7 @@ exports[`setVersion updates monorepo for nightly: set-version/packages/react-nat
exports[`setVersion updates monorepo for nightly: set-version/packages/react-native/ReactAndroid/gradle.properties 1`] = `"[omitted]"`;
exports[`setVersion updates monorepo for nightly: set-version/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java 1`] = `"[omitted]"`;
exports[`setVersion updates monorepo for nightly: set-version/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt 1`] = `"[omitted]"`;
exports[`setVersion updates monorepo for nightly: set-version/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h 1`] = `"[omitted]"`;
@@ -142,7 +142,7 @@ exports[`setVersion updates monorepo for release-candidate: set-version/packages
exports[`setVersion updates monorepo for release-candidate: set-version/packages/react-native/ReactAndroid/gradle.properties 1`] = `"[omitted]"`;
exports[`setVersion updates monorepo for release-candidate: set-version/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java 1`] = `"[omitted]"`;
exports[`setVersion updates monorepo for release-candidate: set-version/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt 1`] = `"[omitted]"`;
exports[`setVersion updates monorepo for release-candidate: set-version/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h 1`] = `"[omitted]"`;
@@ -223,7 +223,7 @@ exports[`setVersion updates monorepo for stable version: set-version/packages/re
exports[`setVersion updates monorepo for stable version: set-version/packages/react-native/ReactAndroid/gradle.properties 1`] = `"[omitted]"`;
exports[`setVersion updates monorepo for stable version: set-version/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java 1`] = `"[omitted]"`;
exports[`setVersion updates monorepo for stable version: set-version/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt 1`] = `"[omitted]"`;
exports[`setVersion updates monorepo for stable version: set-version/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h 1`] = `"[omitted]"`;
+2 -2
View File
@@ -91,9 +91,9 @@ function updateSourceFiles(
fs.writeFile(
path.join(
REPO_ROOT,
'packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java',
'packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt',
),
require('./templates/ReactNativeVersion.java-template')(templateData),
require('./templates/ReactNativeVersion.kt-template')(templateData),
),
fs.writeFile(
path.join(REPO_ROOT, 'packages/react-native/React/Base/RCTVersion.m'),
@@ -22,19 +22,17 @@ module.exports = ({version} /*: {version: Version} */) /*: string */ => `/**
* ${'@'}generated by scripts/releases/set-version.js
*/
package com.facebook.react.modules.systeminfo;
package com.facebook.react.modules.systeminfo
import com.facebook.react.common.MapBuilder;
import java.util.Map;
public class ReactNativeVersion {
public static final Map<String, Object> VERSION = MapBuilder.<String, Object>of(
"major", ${version.major},
"minor", ${version.minor},
"patch", ${version.patch},
"prerelease", ${
version.prerelease != null ? `"${version.prerelease}"` : 'null'
});
public object ReactNativeVersion {
@JvmField
public val VERSION: Map<String, Any?> = mapOf(
"major" to ${version.major},
"minor" to ${version.minor},
"patch" to ${version.patch},
"prerelease" to ${
version.prerelease != null ? `"${version.prerelease}"` : 'null'
}
)
}
`;