From e6de79ef54517be08ff4150040874b1b86e0bd1d Mon Sep 17 00:00:00 2001 From: artus9033 Date: Tue, 17 Mar 2026 14:23:23 +0100 Subject: [PATCH 1/6] fix: invoke RNSourceSets.configure after Gradle evaluation to properly read GP extension values --- .../com/callstack/react/brownfield/plugin/RNBrownfieldPlugin.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle-plugins/react/brownfield/src/main/kotlin/com/callstack/react/brownfield/plugin/RNBrownfieldPlugin.kt b/gradle-plugins/react/brownfield/src/main/kotlin/com/callstack/react/brownfield/plugin/RNBrownfieldPlugin.kt index 250ee11c..ac899c44 100644 --- a/gradle-plugins/react/brownfield/src/main/kotlin/com/callstack/react/brownfield/plugin/RNBrownfieldPlugin.kt +++ b/gradle-plugins/react/brownfield/src/main/kotlin/com/callstack/react/brownfield/plugin/RNBrownfieldPlugin.kt @@ -45,11 +45,11 @@ class RNBrownfieldPlugin project.evaluationDependsOn(EXPO_PROJECT_LOCATOR) } - RNSourceSets.configure(project, extension) projectConfigurations.setup() registerRClassTransformer() project.afterEvaluate { + RNSourceSets.configure(project, extension) afterEvaluate() if (this.isExpoProject) { From 4864e959c599b8b0b51f1474790c56cc88395a2f Mon Sep 17 00:00:00 2001 From: artus9033 Date: Tue, 17 Mar 2026 14:23:56 +0100 Subject: [PATCH 2/6] fix: make VariantProcessor use GP extension's appProjectName for resolving app project --- .../react/brownfield/processors/VariantProcessor.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gradle-plugins/react/brownfield/src/main/kotlin/com/callstack/react/brownfield/processors/VariantProcessor.kt b/gradle-plugins/react/brownfield/src/main/kotlin/com/callstack/react/brownfield/processors/VariantProcessor.kt index bfbe9249..801d1f81 100644 --- a/gradle-plugins/react/brownfield/src/main/kotlin/com/callstack/react/brownfield/processors/VariantProcessor.kt +++ b/gradle-plugins/react/brownfield/src/main/kotlin/com/callstack/react/brownfield/processors/VariantProcessor.kt @@ -5,7 +5,7 @@ * We can't use the new `com.android.build.gradle.api.LibraryVariant` * as of now. * - * We may want to re-visit this in future. + * We may want to re-visit this in the future. */ package com.callstack.react.brownfield.processors @@ -17,6 +17,7 @@ import com.callstack.react.brownfield.artifacts.ArtifactsResolver.Companion.ARTI import com.callstack.react.brownfield.exceptions.TaskNotFound import com.callstack.react.brownfield.shared.BaseProject import com.callstack.react.brownfield.utils.AndroidArchiveLibrary +import com.callstack.react.brownfield.utils.Extension import com.callstack.react.brownfield.utils.capitalized import org.gradle.api.Task import org.gradle.api.artifacts.ResolvedArtifact @@ -57,7 +58,8 @@ class VariantProcessor(private val variant: LibraryVariant) : BaseProject() { } if (capitalizedVariantName.contains("Release")) { - prepareTask.dependsOn(":app:createBundle${capitalizedVariantName}JsAndAssets") + val projectExt = project.extensions.getByType(Extension::class.java) + prepareTask.dependsOn(":${projectExt.appProjectName}:createBundle${capitalizedVariantName}JsAndAssets") } val bundleTask = variantTaskProvider.bundleTaskProvider(project, variant.name) From 04fcb01dca4eace972937da1234b33ed940c8f5a Mon Sep 17 00:00:00 2001 From: artus9033 Date: Tue, 17 Mar 2026 14:25:53 +0100 Subject: [PATCH 3/6] chore: add changeset --- .changeset/crisp-animals-drive.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changeset/crisp-animals-drive.md diff --git a/.changeset/crisp-animals-drive.md b/.changeset/crisp-animals-drive.md new file mode 100644 index 00000000..b3c2b576 --- /dev/null +++ b/.changeset/crisp-animals-drive.md @@ -0,0 +1,6 @@ +--- +'brownfield': patch +'@callstack/react-native-brownfield': patch +--- + +fix: support custom app project name in Gradle plugin via extension's appProjectName config field From 1e9d179cd0276f9dcf094ccffacb090ef8d38c0f Mon Sep 17 00:00:00 2001 From: artus9033 Date: Tue, 17 Mar 2026 14:37:48 +0100 Subject: [PATCH 4/6] fix: resolve project using Gradle APIs in VariantProcessor to support project paths --- .../callstack/react/brownfield/processors/VariantProcessor.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gradle-plugins/react/brownfield/src/main/kotlin/com/callstack/react/brownfield/processors/VariantProcessor.kt b/gradle-plugins/react/brownfield/src/main/kotlin/com/callstack/react/brownfield/processors/VariantProcessor.kt index 801d1f81..4dc27a54 100644 --- a/gradle-plugins/react/brownfield/src/main/kotlin/com/callstack/react/brownfield/processors/VariantProcessor.kt +++ b/gradle-plugins/react/brownfield/src/main/kotlin/com/callstack/react/brownfield/processors/VariantProcessor.kt @@ -59,7 +59,8 @@ class VariantProcessor(private val variant: LibraryVariant) : BaseProject() { if (capitalizedVariantName.contains("Release")) { val projectExt = project.extensions.getByType(Extension::class.java) - prepareTask.dependsOn(":${projectExt.appProjectName}:createBundle${capitalizedVariantName}JsAndAssets") + val appProject = project.rootProject.project(projectExt.appProjectName) + prepareTask.dependsOn("${appProject.path}:createBundle${capitalizedVariantName}JsAndAssets") } val bundleTask = variantTaskProvider.bundleTaskProvider(project, variant.name) From da338a6c4e2031d099e2d9ace1397bfeb0415e74 Mon Sep 17 00:00:00 2001 From: artus9033 Date: Tue, 17 Mar 2026 14:40:03 +0100 Subject: [PATCH 5/6] chore: bump up Gradle plugin version --- apps/RNApp/android/build.gradle | 2 +- apps/scripts/prepare-android-build-gradle-for-ci.ts | 2 +- gradle-plugins/react/README.md | 4 ++-- gradle-plugins/react/brownfield/gradle.properties | 2 +- .../src/expo-config-plugin/android/utils/constants.ts | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/RNApp/android/build.gradle b/apps/RNApp/android/build.gradle index 85b67ac3..2493601a 100644 --- a/apps/RNApp/android/build.gradle +++ b/apps/RNApp/android/build.gradle @@ -16,7 +16,7 @@ buildscript { classpath("com.android.tools.build:gradle") classpath("com.facebook.react:react-native-gradle-plugin") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin") - classpath("com.callstack.react:brownfield-gradle-plugin:1.0.1-SNAPSHOT") + classpath("com.callstack.react:brownfield-gradle-plugin:1.0.2-SNAPSHOT") } } diff --git a/apps/scripts/prepare-android-build-gradle-for-ci.ts b/apps/scripts/prepare-android-build-gradle-for-ci.ts index b5add2f2..a5603e36 100644 --- a/apps/scripts/prepare-android-build-gradle-for-ci.ts +++ b/apps/scripts/prepare-android-build-gradle-for-ci.ts @@ -9,7 +9,7 @@ if (!projectDirName) { const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); -const SNAPSHOT_VERSION = '1.0.1-SNAPSHOT'; +const SNAPSHOT_VERSION = '1.0.2-SNAPSHOT'; const targetPath = path.resolve( __dirname, '..', diff --git a/gradle-plugins/react/README.md b/gradle-plugins/react/README.md index 0d27ea52..1a03db42 100644 --- a/gradle-plugins/react/README.md +++ b/gradle-plugins/react/README.md @@ -20,7 +20,7 @@ buildscript { classpath("com.android.tools.build:gradle") classpath("com.facebook.react:react-native-gradle-plugin") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin") -+ classpath("com.callstack.react:brownfield-gradle-plugin:1.0.1") ++ classpath("com.callstack.react:brownfield-gradle-plugin:1.0.2") } } ``` @@ -59,7 +59,7 @@ buildscript { classpath("com.android.tools.build:gradle") classpath("com.facebook.react:react-native-gradle-plugin") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin") -+ classpath("com.callstack.react:brownfield-gradle-plugin:1.0.1-SNAPSHOT") ++ classpath("com.callstack.react:brownfield-gradle-plugin:1.0.2-SNAPSHOT") } } ``` diff --git a/gradle-plugins/react/brownfield/gradle.properties b/gradle-plugins/react/brownfield/gradle.properties index 833afc2f..4ade5110 100644 --- a/gradle-plugins/react/brownfield/gradle.properties +++ b/gradle-plugins/react/brownfield/gradle.properties @@ -1,6 +1,6 @@ PROJECT_ID=com.callstack.react.brownfield ARTIFACT_ID=brownfield-gradle-plugin -VERSION=1.0.1 +VERSION=1.0.2 GROUP=com.callstack.react IMPLEMENTATION_CLASS=com.callstack.react.brownfield.plugin.RNBrownfieldPlugin diff --git a/packages/react-native-brownfield/src/expo-config-plugin/android/utils/constants.ts b/packages/react-native-brownfield/src/expo-config-plugin/android/utils/constants.ts index 8dfeee20..aa4c69e6 100644 --- a/packages/react-native-brownfield/src/expo-config-plugin/android/utils/constants.ts +++ b/packages/react-native-brownfield/src/expo-config-plugin/android/utils/constants.ts @@ -1,2 +1,2 @@ -export const BROWNFIELD_PLUGIN_VERSION = '1.0.1'; +export const BROWNFIELD_PLUGIN_VERSION = '1.0.2'; export const brownfieldGradlePluginDependency = `classpath("com.callstack.react:brownfield-gradle-plugin:${BROWNFIELD_PLUGIN_VERSION}")`; From 9c68769fee0f2c7c1ead3b6ae134bb462e70bb98 Mon Sep 17 00:00:00 2001 From: artus9033 Date: Tue, 17 Mar 2026 14:43:01 +0100 Subject: [PATCH 6/6] chore: add changeset --- .changeset/seven-tables-dress.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .changeset/seven-tables-dress.md diff --git a/.changeset/seven-tables-dress.md b/.changeset/seven-tables-dress.md new file mode 100644 index 00000000..949d2060 --- /dev/null +++ b/.changeset/seven-tables-dress.md @@ -0,0 +1,7 @@ +--- +'@callstack/react-native-brownfield': patch +'brownfield': patch +'@callstack/brownfield-cli': patch +--- + +chore: bump up Gradle plugin version