Skip to content

Conversation

@jamesarich
Copy link
Collaborator

This commit enables and configures Compose Compiler metrics and reports to help analyze and debug composition performance. The configuration logic is centralized into a new configureComposeCompiler extension function.

Key Changes:

  • Enable Reports: Set enableComposeCompilerMetrics and enableComposeCompilerReports to true in gradle.properties.
  • Centralized Configuration:
    • A new file, ComposeCompilerConfiguration.kt, is introduced, containing an internal configureComposeCompiler extension function.
    • This function reads the new properties and sets the output directories for metrics and reports relative to each project's build folder.
    • It also configures the stability configuration file (compose_compiler_config.conf).
  • Build Logic Refactoring:
    • The AndroidCompose.kt and KmpLibraryComposeConventionPlugin.kt files are updated to call the new configureComposeCompiler function, removing duplicated configuration code.
  • Dependency Cleanup:
    • Removed toolchainVendor=JETBRAINS from gradle/gradle-daemon-jvm.properties as it is redundant.
    • Removed an unused android.lint plugin from build-logic/convention/build.gradle.kts.

as suggested in #4286 - but done with a bit more care.

This commit enables and configures Compose Compiler metrics and reports to help analyze and debug composition performance. The configuration logic is centralized into a new `configureComposeCompiler` extension function.

### Key Changes:

-   **Enable Reports:** Set `enableComposeCompilerMetrics` and `enableComposeCompilerReports` to `true` in `gradle.properties`.
-   **Centralized Configuration:**
    -   A new file, `ComposeCompilerConfiguration.kt`, is introduced, containing an internal `configureComposeCompiler` extension function.
    -   This function reads the new properties and sets the output directories for metrics and reports relative to each project's build folder.
    -   It also configures the stability configuration file (`compose_compiler_config.conf`).
-   **Build Logic Refactoring:**
    -   The `AndroidCompose.kt` and `KmpLibraryComposeConventionPlugin.kt` files are updated to call the new `configureComposeCompiler` function, removing duplicated configuration code.
-   **Dependency Cleanup:**
    -   Removed `toolchainVendor=JETBRAINS` from `gradle/gradle-daemon-jvm.properties` as it is redundant.
    -   Removed an unused `android.lint` plugin from `build-logic/convention/build.gradle.kts`.

Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
@jamesarich jamesarich enabled auto-merge January 22, 2026 16:02
@codecov
Copy link

codecov bot commented Jan 22, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 0.00%. Comparing base (9266caa) to head (4456439).
⚠️ Report is 1 commits behind head on main.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@          Coverage Diff          @@
##            main   #4289   +/-   ##
=====================================
  Coverage   0.00%   0.00%           
=====================================
  Files          3       3           
  Lines         23      23           
  Branches       7       7           
=====================================
  Misses        23      23           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@jamesarich jamesarich added this pull request to the merge queue Jan 22, 2026
Merged via the queue into main with commit 833f1ca Jan 22, 2026
11 checks passed
@jamesarich jamesarich deleted the chore/compose-compiler branch January 22, 2026 16:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants