Remove wasabi, jalapeno, and the buildType flavor dimension#22651
Remove wasabi, jalapeno, and the buildType flavor dimension#22651
Conversation
The three buildType flavors (vanilla, wasabi, jalapeno) existed only for cosmetic differences (app name, icon) and side-by-side installation via applicationIdSuffix. They caused Gradle cache fragmentation across CI jobs since each job compiled a different variant independently. This removes the entire buildType flavor dimension, simplifying variant names from e.g. wordpressVanillaDebug to wordpressDebug. All CI jobs now share the same variant, maximizing Gradle remote cache reuse. - Remove vanilla, wasabi, jalapeno flavor definitions from build.gradle - Remove the buildType flavor dimension (keep only app dimension) - Move ENABLE_DEBUG_SETTINGS to release buildType (false) vs default (true) - Delete wasabi, jalapeno, jetpackWasabi, jetpackJalapeno source sets - Simplify WordPressPublicData and JetpackPublicData - Update all CI scripts, Fastlane lanes, and documentation Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Generated by 🚫 Danger |
The diff tools compare against the base branch (trunk), which still uses the old variant names (wordpressVanillaRelease). Until this PR merges, these jobs will fail when checking out trunk. soft_fail prevents them from blocking the build. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Prototype builds upload to Firebase App Distribution, which expects the .prealpha package suffix (from the old jalapeno flavor). Adding applicationIdSuffix ".prealpha" to the debug buildType preserves this and also maintains side-by-side installation with production apps. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
|
|
FLAVOR_app only exists with multi-dimension flavors. With the buildType dimension removed, use BuildConfig.FLAVOR instead (which now contains "wordpress" or "jetpack" directly). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## trunk #22651 +/- ##
=======================================
Coverage 38.12% 38.12%
=======================================
Files 2263 2263
Lines 115827 115816 -11
Branches 16090 16084 -6
=======================================
Hits 44157 44157
+ Misses 68045 68034 -11
Partials 3625 3625 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
@jkmassel All four test steps pass and CI is clear, so this looks good to me. I'll wait for others to take a look before approving. |
| } | ||
|
|
||
| debug { | ||
| applicationIdSuffix ".prealpha" |
There was a problem hiding this comment.
❓ Any special reason why debug variant is adding prealpha now? Is it just a preference, or maybe to avoid CI conflicts, since it seems to be using that in jalapeño?
Just a nitpick, but we don't really have alpha or beta. So, it looks a bit strange.
There was a problem hiding this comment.
That's a good question @adalpari , and I'll try to answer for @jkmassel (if I might, and until he adds his answer)... 😊 🙏
- Ideally we would have that
applicationIdSuffixset to.debug, this is the default way of doing that, so that we have two apps installed on the same device side-by-side, both, thedebugandreleaseapps. - With Jetpack/WordPress, this
debugversion of the app was either the.beta(forWasabi) or the.prealpha(forJalapeno), so we could have chosen either one or the other, same result. - Choosing
.prealpha(or.beta) instead of going for a new.debugsuffix is (IMHO) the right call as it will prevent us from (possibly) breaking something Firebase related (seegoogle-services.json). This is because otherwise, we would need to add such new.debugFirebase project(s), for both Jetpack and WordPress, and then go through the hoops-and-loops of this process, possibly breaking things in-between (of course, until we then fix them). For example, see theJetpackconfiguration in Firebase:
As such, and having said that, I think Jeremy make the right call here, doing what he did. 💯 🤞
There was a problem hiding this comment.
Choosing .prealpha (or .beta) instead of going for a new .debug suffix is (IMHO) the right call as it will prevent us from (possibly) breaking something Firebase related
This was the reasoning – I wanted to be able to continue to upload to Firebase for PR builds without needing to modify remote configuration.
If we want to squash this down too I'm good with it, but maybe a subsequent PR?
adalpari
left a comment
There was a problem hiding this comment.
Changes look good to me, and testing steps work as expected, so I'm approving it.
(Just left a minor question)
ParaskP7
left a comment
There was a problem hiding this comment.
👋 @jkmassel and thanks for this change, this is awesome and I am excited for you on this change, long overdue! 🥇 ❤️ 🙇
FYI: I've identified a couple of changes that you might want to apply before merging this, thus I am requesting changes, bear with me for just that bit, please... 🙏 (nothing too serious)
gradle.properties
Outdated
|
|
||
| # Dependency Analysis Plugin | ||
| dependency.analysis.android.ignored.variants=release,wordpressVanillaDebug,wordpressVanillaRelease,wordpressWasabiDebug,wordpressWasabiRelease,wordpressJalapenoRelease,jetpackVanillaDebug,jetpackVanillaRelease,jetpackWasabiDebug,jetpackWasabiRelease,jetpackJalapenoRelease | ||
| dependency.analysis.android.ignored.variants=release,wordpressDebug,wordpressRelease,jetpackDebug,jetpackRelease |
There was a problem hiding this comment.
Warning (Dependency Analysis process, please update it to:
dependency.analysis.android.ignored.variants=release,wordpressRelease,jetpackRelease
This change will effectively allow the wordpressDebug and jetpackDebug variants to be scanned. Otherwise, nothing will be scanned and this process with just build successfully in a few seconds, but without doing anything. 😊
FYI: Note that the previous version of the configuration was ignoring all of them variants, except those two below:
wordpressJalapenoDebugjetpackJalapenoDebug
There was a problem hiding this comment.
I'm pretty sure that change goes with #22651 (comment) – after this PR lands, I'll fix up the dependency analysis job in a subsequent PR?
LMK if I'm wrong!
There was a problem hiding this comment.
Actually no @jkmassel , this change and Dependency Analysis are two different things, and don't relate with each other. With this change, if merged this as is, it will affect this scheduled build, and this Sunday (if this gets merged, and not fixed by then), it will alter (or break) this Grafana view for JP/WPAndroid and those stats (plus Slack reporting, etc).
There was a problem hiding this comment.
Btw, the change is pretty simple and (very) low effort, just this replace L14 with this, that's all:
dependency.analysis.android.ignored.variants=release,wordpressRelease,jetpackRelease
There was a problem hiding this comment.
Applied your suggestion in c97d937, thanks!!
Move the jalapeno/jetpackJalapeno debug icon resources into debug and jetpackDebug source sets so debug builds retain a visually distinct app icon and "Pre-Alpha" app name. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|





Description
Removes the three buildType flavors (vanilla, wasabi, jalapeno) and the entire
buildTypeflavor dimension from the project. These flavors existed only for cosmetic differences (app name, icon) and side-by-side installation viaapplicationIdSuffix, but caused Gradle cache fragmentation across CI jobs since each job compiled a different variant independently.Variant names simplify from e.g.
wordpressVanillaDebugtowordpressDebug. All CI jobs now share the same variant, maximizing Gradle remote cache reuse.What changed
vanilla,wasabi,jalapenoflavor definitions and thebuildTypedimension fromWordPress/build.gradleENABLE_DEBUG_SETTINGSfrom vanilla flavor toreleasebuildTypewasabi/,jalapeno/,jetpackWasabi/,jetpackJalapeno/WordPressPublicDataandJetpackPublicData(removed flavor-specific package name logic).beta/.prealphapermission declarations from Jetpack manifestgoogle-services.json-exampleTesting instructions
Build verification:
./gradlew assembleWordpressDebug./gradlew assembleJetpackDebug./gradlew lintWordpressRelease./gradlew testWordpressDebugUnitTest🤖 Generated with Claude Code