You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/plugin.md
+72Lines changed: 72 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -231,14 +231,76 @@ appSizer {
231
231
<imgsrc="../images/task-graph.png"width="80%">
232
232
</p>
233
233
234
+
## Known Limitations
235
+
236
+
### Variant Matching and Module Skipping
237
+
238
+
The App Sizer plugin uses sophisticated variant matching to analyze dependencies across different project types. However, some scenarios may result in modules being skipped during analysis, which can impact the accuracy of the final results.
239
+
240
+
#### When Modules Are Skipped
241
+
242
+
The plugin may skip modules in the following scenarios:
243
+
244
+
1.**Unsupported Project Types**: Projects that don't match any supported type (Android app/library, Java/Kotlin JVM, Kotlin Multiplatform)
245
+
2.**Missing Build Variants**: Android library modules that lack variants matching the main app's flavor/buildType configuration
246
+
4.**Custom Build Logic**: Modules using non-standard build configurations that the plugin cannot interpret
247
+
248
+
249
+
#### Error Handling Behavior
250
+
251
+
The plugin uses defensive error handling to maintain build stability while logging informative warnings:
AppSize: Skipping dependency project library-name - unsupported type: Project type not supported: library-name
256
+
AppSize: Could not find matching variant for Android library project module-name: Cannot find matching variant for module-name
257
+
AppSize: Unsupported project type for Android library project module-name: Project type not supported: module-name
258
+
```
259
+
260
+
When debug logging is enabled (`--debug` flag), full stack traces are available for detailed troubleshooting:
261
+
262
+
```
263
+
AppSize: Full stack trace for variant extraction failure:
264
+
java.lang.IllegalStateException: Cannot find matching variant for module-name
265
+
at com.grab.plugin.sizer.dependencies.DefaultVariantExtractor.extractVariant(VariantExtractor.kt:284)
266
+
at com.grab.plugin.sizer.dependencies.DefaultVariantExtractor.defaultFindMatchVariant(VariantExtractor.kt:132)
267
+
[... full stack trace ...]
268
+
```
269
+
270
+
#### Impact on Analysis Results
271
+
272
+
All classes and resources belonging to skipped modules will be automatically attributed to the app module during analysis, which may impact the accuracy of module-wise and team-based size breakdowns.
273
+
274
+
234
275
## Troubleshooting
235
276
277
+
### Common Variant Matching Issues
278
+
279
+
1.**"Cannot find matching variant for [module-name]"**
280
+
-**Cause**: Library module lacks a variant matching the app's configuration
281
+
-**Solution**: Add `matchingFallbacks` to the library module or ensure consistent flavor/buildType naming
282
+
283
+
2.**"Unsupported project type: [project-name]"**
284
+
-**Cause**: Project doesn't use a supported plugin type
285
+
-**Solution**: Verify the project applies Android, Java, or Kotlin plugin correctly
0 commit comments