Skip to content

docs(release): cross-platform flag-stripping verification runbook #213

Description

@kirich1409

Goal

Document an end-to-end runbook for verifying that local-flag-guarded code is stripped from release builds of each sample app: :sample:android-app, :sample:desktop, and iosApp/.

Context

Shrinker / DCE tests cover the generators and tooling level:

  • Android R8: tracked by Automated R8 DCE verification for feature flags #153 (closed); generator build-logic/featured-gradle-plugin/.../ProguardRulesGenerator.kt; tests in featured-shrinker-tests.
  • iOS Swift DCE: covered by xcconfig generator; automated test tracked by the iOS DCE verification follow-up issue.
  • JVM/Desktop: covered by the same plugin output; automated test tracked by the JVM shrinker follow-up issue.

What is missing is a consumer-visible procedure: "build this sample in release mode and confirm a disabled flag's UI does not appear in the bundle."

Scope

  • New section in the Release Optimization wiki page (or a dedicated Verification subpage), one runbook per platform.
  • For each platform: minified-release build command, where to find the artifact, how to inspect it (apkanalyzer / unzip + javap / nm + swift demangle).
  • Reference disabled flags from :sample:feature-* modules so the steps reproduce against the real sample state.
  • Stretch: a GitHub Actions workflow that runs the runbook checks on every push to develop.

Definition of Done

  • Wiki page lists a runbook per platform (manual steps minimum)
  • Cross-references to the automated shrinker tests
  • Optional: workflow runs the runbook on develop (macOS for iOS; Linux for Android/Desktop)

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    docsDocumentation

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions