Update build conventions to 0.14.0 - #1767
Conversation
Rename coverage.sonarCoverageExclusions to coverage.sonarExclusions, following the rename in GetStream/stream-build-conventions-android#72. The patterns now apply to all Sonar analysis (coverage, duplication, issues) rather than coverage only.
PR checklist ✅All required conditions are satisfied:
🎉 Great job! This PR is ready for review. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
WalkthroughThe build configuration renames the Sonar coverage exclusion property and updates the Stream convention plugin from ChangesBuild configuration
Estimated code review effort: 1 (Trivial) | ~5 minutes Merge Risk: ⚪ Minimal · up to This PR updates the build conventions and broadens Sonar exclusions as intended; no actionable merge-blocking risk remains after normal checks and review. Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
SDK Size Comparison 📏
|
The committed snapshot predates #1721, which made CallLobby overlay DefaultMediaTrackFallbackContent until the first frame renders. Under Paparazzi no frame ever renders, so the loading spinner permanently covers the inspection-mode avatar placeholder the old snapshot captured. Conventions 0.14.0 makes the Paparazzi plugin check lazy, so verifyPaparazziDebug is now actually wired into :testCoverage (it was silently skipped before). Without this re-record, CI fails with "Images differ (by 23.258430%)". Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Re-recorded, not a regression from this bump.
The light avatar placeholder in the old image is the stream_video_call_sample vector, drawn by ParticipantVideoRenderer's LocalInspectionMode branch. The new image is DefaultMediaTrackFallbackContent: the baseSheetTertiary background plus a CircularProgressIndicator frozen at animation frame 0, which is the faint speck in the centre.
Cause is #1721, which made CallLobby pass fallbackContent = {} and overlay the loading content while !isVideoRendered. Under Paparazzi no frame ever renders, so onRendered never fires and the spinner permanently covers the placeholder. The old image was last recorded in #1534, well before that.
It surfaced here because conventions 0.14.0 makes the Paparazzi plugin check lazy, so verifyPaparazziDebug is finally wired into :testCoverage (previously hasPlugin ran before the module applied the plugin, so it was always false and verification was silently skipped). Re-recording on 0.13.1 yields a byte-identical image, so the drift predates this PR.
|




Goal
Bump
streamConventionsto 0.14.0, which renamescoverage.sonarCoverageExclusionstocoverage.sonarExclusionsand wires it tosonar.exclusionsinstead ofsonar.coverage.exclusions. Part of AND-1362.Implementation
streamConventions0.13.1 → 0.14.0.streamProject.coverageproperty tosonarExclusions.CallLobbyTestPaparazzi snapshot (see below).The listed paths are now excluded from all Sonar analysis (coverage, duplication, issues), not just coverage. That is the intent for the binaries and generated code; it also drops
core/modelfrom issue analysis, which is acceptable since those are plain model classes already excluded from coverage.Paparazzi verification was silently skipped
0.14.0 also contains conventions #59, which makes the Paparazzi plugin check lazy. Before,
pluginManager.hasPlugin("app.cash.paparazzi")was evaluated before the module applied the plugin, so it was always false andtestCoverageonly depended ontestDebugUnitTest. NowwithPluginwiresverifyPaparazziDebugin properly, and since CI runs./gradlew :testCoverage, snapshot verification actually runs for the first time.It immediately caught one stale snapshot:
CallLobbyTestdiffered by 23.26%. The committed image predates #1721, which madeCallLobbyoverlayDefaultMediaTrackFallbackContentuntil the first frame renders. Under Paparazzi no frame ever renders, so the loading spinner permanently covers the inspection-mode avatar placeholder the old image captured. The new snapshot is the correct output of current code, not a regression from this bump: re-recording on 0.13.1 produces a byte-identical image.Testing
recordPaparazziDebugon 0.13.1 and 0.14.0 produce identical output, confirming the snapshot drift is independent of this bump.verifyPaparazziDebugpasses with the re-recorded snapshot; 83 tests, only the stale one was failing before.testCoverage --dry-runshowsverifyPaparazziDebugpresent on 0.14.0 and absent on 0.13.1.☑️Contributor Checklist
General
developbranchCode & documentation