From 704f07b98e66509948037ed2931e34ebdcfc51dc Mon Sep 17 00:00:00 2001 From: David Vacca Date: Tue, 5 Dec 2023 13:36:34 -0800 Subject: [PATCH] Extract binaryCompatibilityValidator into gradle.properties file (#41811) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/41811 In this diff I'm extracting binaryCompatibilityValidator configuration into gradle.properties file. The goal is to reuse these properties from BUCK changelog:[Internal] internal Reviewed By: cortinico Differential Revision: D51402033 fbshipit-source-id: 9b585dd07c5c00a39caadac47a2f0d605c5419f2 --- build.gradle.kts | 30 +++++++------------ .../ReactAndroid/gradle.properties | 19 ++++++++++++ 2 files changed, 29 insertions(+), 20 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 142687c413..3baf29f059 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -20,29 +20,19 @@ File("$rootDir/packages/react-native/ReactAndroid/gradle.properties").inputStrea reactAndroidProperties.load(it) } +fun getListReactAndroidProperty(name: String) = reactAndroidProperties.getProperty(name).split(",") + apiValidation { ignoredPackages.addAll( - listOf( - "com.facebook.fbreact", - "com.facebook.react.flipper", - "com.facebook.debug", - "com.facebook.hermes", - "com.facebook.perftest", - "com.facebook.proguard", - "com.facebook.react.module.processing", - "com.facebook.systrace", - "com.facebook.yoga", - "com.facebook.react.internal", - "com.facebook.react.bridgeless.internal")) - - ignoredClasses.addAll(listOf("com.facebook.react.BuildConfig")) - + getListReactAndroidProperty("react.internal.binaryCompatibilityValidator.ignoredPackages")) + ignoredClasses.addAll( + getListReactAndroidProperty("react.internal.binaryCompatibilityValidator.ignoredClasses")) nonPublicMarkers.addAll( - listOf( - "com.facebook.react.common.annotations.UnstableReactNativeAPI", - "com.facebook.react.common.annotations.VisibleForTesting")) - - validationDisabled = true + getListReactAndroidProperty("react.internal.binaryCompatibilityValidator.nonPublicMarkers")) + validationDisabled = + reactAndroidProperties + .getProperty("react.internal.binaryCompatibilityValidator.validationDisabled") + ?.toBoolean() == true } version = diff --git a/packages/react-native/ReactAndroid/gradle.properties b/packages/react-native/ReactAndroid/gradle.properties index 924f82a063..447d1963ee 100644 --- a/packages/react-native/ReactAndroid/gradle.properties +++ b/packages/react-native/ReactAndroid/gradle.properties @@ -7,3 +7,22 @@ android.enableJetifier=true # We want to have more fine grained control on the Java version for # ReactAndroid, therefore we disable RGNP Java version alignment mechanism react.internal.disableJavaVersionAlignment=true + +# Binary Compatibility Validator properties +react.internal.binaryCompatibilityValidator.ignoredClasses=com.facebook.react.BuildConfig +react.internal.binaryCompatibilityValidator.ignoredPackages=com.facebook.debug,\ + com.facebook.fbreact,\ + com.facebook.hermes,\ + com.facebook.perftest,\ + com.facebook.proguard,\ + com.facebook.react.bridgeless.internal,\ + com.facebook.react.flipper,\ + com.facebook.react.internal,\ + com.facebook.react.module.processing,\ + com.facebook.react.processing,\ + com.facebook.systrace,\ + com.facebook.yoga +react.internal.binaryCompatibilityValidator.nonPublicMarkers=com.facebook.react.common.annotations.VisibleForTesting,\ + com.facebook.react.common.annotations.UnstableReactNativeAPI +react.internal.binaryCompatibilityValidator.validationDisabled=true +react.internal.binaryCompatibilityValidator.outputApiFileName=ReactAndroid