Repository navigation
fix(release): preserve runtime contracts and verify optimized artifacts - #1106
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (25)
💤 Files with no reviewable changes (1)
Included review availability: This review used your included allowance. Your plan provides up to 2 included reviews per hour; 0 remain after this review. 📝 SummarySummary by CodeRabbit
WalkthroughThe PR enables narrower release optimization, adds checks for class, DEX, and resource contracts in optimized APK/AAB artifacts, and integrates those checks into pull-request and publication workflows. It also updates merge guidance for a maintainer-authorized required-check bypass. ChangesOptimized release contracts
Required-check bypass guidance
Priority: ⬆️ High Estimated code review effort: 4 (Complex) | ~60 minutes Change: Bug fix Sequence Diagram(s)sequenceDiagram
participant ReleaseContractsWorkflow
participant GradleReleaseBuild
participant verify_release_contracts.py
participant APK_AAB
participant DiagnosticsArtifact
ReleaseContractsWorkflow->>GradleReleaseBuild: build optimized APK and AAB
GradleReleaseBuild->>APK_AAB: produce release artifacts
ReleaseContractsWorkflow->>verify_release_contracts.py: verify artifacts and write report
verify_release_contracts.py->>APK_AAB: inspect packaged contracts
verify_release_contracts.py->>ReleaseContractsWorkflow: return validation result
ReleaseContractsWorkflow->>DiagnosticsArtifact: upload report and mapping diagnostics
Merge Risk: ⚪ Minimal · up to No confirmed issue currently prevents merging after the usual release checks. Pre-merge checks |
|
|



Summary
Optimized releases could post a new-episode alert but fail before WorkManager started its download or artwork-hydration job because an input-merger constructor was removed. Preserve runtime reflection contracts explicitly and check the actual optimized APK and app bundle before publication.
Motivation
Debug and JVM release tests use classes before R8 optimization, so they cannot detect missing runtime constructors, erased reflection metadata or removed resources in the shipped app.
What changed
Behavior & compatibility
Impact
user-impact-criticaluser-impact-highuser-impact-mediumuser-impact-lowno-user-impactbackend-changeListener impact
Fixes a release-build issue that could prevent automatic and Smart downloads from starting. The optimized app package is smaller while retaining its artwork, fonts and notification sounds.
Release copy
CHANGELOG.md
Fixed
Changed
Added
README What's New / Upcoming
Critical
Improvements
Test plan
Notes