Skip to content

Migrate android module layout discovery to the variant API - #12120

Draft
daniel-mohedano wants to merge 3 commits into
masterfrom
daniel.mohedano/migrate-android-gradle-utils-to-new-variant-api
Draft

Migrate android module layout discovery to the variant API#12120
daniel-mohedano wants to merge 3 commits into
masterfrom
daniel.mohedano/migrate-android-gradle-utils-to-new-variant-api

Conversation

@daniel-mohedano

@daniel-mohedano daniel-mohedano commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

What Does This Do

  • Replaces the legacy applicationVariants and libraryVariants APIs with Android Components callbacks registered before project evaluation.
  • Binds each Android test component to its exact Gradle Test task through configureTestTask.
  • Gets production classes from the active variant's ScopedArtifact.CLASSES using Scope.PROJECT.
  • Supports the AGP 8.X Kotlin Multiplatform onVariant(Action) API and obtains source roots from the matching main compilation.
  • Applies the existing generated-class exclusions to directory and JAR outputs, and restricts destinations to .class files.
  • Adds unit tests and a Gradle smoke fixture for the new lifecycle and artifact wiring.

Motivation

AGP 9 disables the legacy variant APIs by default, and AGP 10 is expected to remove them. The existing discovery logic would therefore stop finding Android module layouts on newer AGP versions.

The previous implementation also inferred the production variant from test-task names and hard-coded compiler output locations. This could miss valid production outputs or include test fixtures and project-local dependency artifacts in coverage.

Using the relationship exposed by AGP gives us the direct flow from production variant, to test component, to the exact Gradle test task.

Additional Notes

Older AGP versions that do not expose configureTestTask fall back to the generic Gradle module layout.

Contributor Checklist

Jira ticket: SDTEST-3803

@daniel-mohedano daniel-mohedano added type: feature Enhancements and improvements comp: ci visibility Continuous Integration Visibility tag: ai generated Largely based on code generated by an AI or LLM labels Jul 31, 2026
@datadog-datadog-prod-us1-2

datadog-datadog-prod-us1-2 Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Bits has a CI fix ready

🟢 Investigated · 🟢 Fix prepared · ⚪ Validation skipped · 🟠 Ready

AndroidGradleUtilsTest uses Gradle’s ProjectBuilder, which is compiled for Java 17 in the Gradle API added by this change. The Gradle instrumentation tests are now constrained to Java 17+ so Java 8 and 11 jobs skip this incompatible suite.

Commit fix to this PR


View in Datadog | Reviewed commit 3a95df2 · Any feedback? Reach out in #deveng-pr-agent

@cit-pr-commenter-54b7da

cit-pr-commenter-54b7da Bot commented Jul 31, 2026

Copy link
Copy Markdown

Test Environment - sbt-scalatest

Job Status: 🟢 success

Scenario This PR (%) 7d median Δ 7d 30d median Δ 30d runs (7d/30d)
agent 54.94 55.43 $\color{green}{\blacktriangledown}$ -0.49 55.43 $\color{green}{\blacktriangledown}$ -0.49 46/254
agentEvpProxy 54.54 n/a n/a n/a n/a -

Baseline: median of @test.tracer_overhead on main (gitlab) over the last 7/30 days, per OSS project & scenario. Δ = this PR − baseline median; red ▲ = more overhead, green ▽ = less overhead than baseline.

@datadog-datadog-prod-us1-2

datadog-datadog-prod-us1-2 Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

🎯 Code Coverage (details)
Patch Coverage: 100.00%
Overall Coverage: 69.73% (+11.94%)

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 3a95df2 | Docs | Datadog PR Page | Give us feedback!

@cit-pr-commenter-54b7da

cit-pr-commenter-54b7da Bot commented Jul 31, 2026

Copy link
Copy Markdown

Test Environment - nebula-release-plugin

Job Status: 🔴 failed

Scenario This PR (%) 7d median Δ 7d 30d median Δ 30d runs (7d/30d)
agent 37.63 37.15 $\color{red}{\blacktriangle}$ +0.48 36.42 $\color{red}{\blacktriangle}$ +1.21 29/134
agentless 36.46 36.42 $\color{red}{\blacktriangle}$ +0.04 36.42 $\color{red}{\blacktriangle}$ +0.04 21/126
agentlessCodeCoverage 44.71 44.48 $\color{red}{\blacktriangle}$ +0.23 44.48 $\color{red}{\blacktriangle}$ +0.23 21/126
agentlessLineCoverage 54.21 55.43 $\color{green}{\blacktriangledown}$ -1.22 74.82 $\color{green}{\blacktriangledown}$ -20.61 21/127

Baseline: median of @test.tracer_overhead on main (gitlab) over the last 7/30 days, per OSS project & scenario. Δ = this PR − baseline median; red ▲ = more overhead, green ▽ = less overhead than baseline.

@cit-pr-commenter-54b7da

cit-pr-commenter-54b7da Bot commented Jul 31, 2026

Copy link
Copy Markdown

Test Environment - pass4s

Job Status: 🟢 success

Scenario This PR (%) 7d median Δ 7d 30d median Δ 30d runs (7d/30d)
agent 11.58 9.54 $\color{red}{\blacktriangle}$ +2.04 9.73 $\color{red}{\blacktriangle}$ +1.85 25/124
agentless 6.04 8.29 $\color{green}{\blacktriangledown}$ -2.25 9.73 $\color{green}{\blacktriangledown}$ -3.69 25/124
agentlessCodeCoverage 17.58 16.04 $\color{red}{\blacktriangle}$ +1.54 16.69 $\color{red}{\blacktriangle}$ +0.89 23/122

Baseline: median of @test.tracer_overhead on main (gitlab) over the last 7/30 days, per OSS project & scenario. Δ = this PR − baseline median; red ▲ = more overhead, green ▽ = less overhead than baseline.

@cit-pr-commenter-54b7da

cit-pr-commenter-54b7da Bot commented Jul 31, 2026

Copy link
Copy Markdown

Test Environment - netflix-zuul

Job Status: 🔴 failed

Scenario This PR (%) 7d median Δ 7d 30d median Δ 30d runs (7d/30d)
agent 83.55 87.80 $\color{green}{\blacktriangledown}$ -4.25 87.80 $\color{green}{\blacktriangledown}$ -4.25 34/144
agentless 80.24 81.05 $\color{green}{\blacktriangledown}$ -0.81 81.05 $\color{green}{\blacktriangledown}$ -0.81 25/132
agentlessCodeCoverage 96.60 97.04 $\color{green}{\blacktriangledown}$ -0.44 97.04 $\color{green}{\blacktriangledown}$ -0.44 24/130
agentlessLineCoverage 112.15 111.62 $\color{red}{\blacktriangle}$ +0.53 111.62 $\color{red}{\blacktriangle}$ +0.53 23/129

Baseline: median of @test.tracer_overhead on main (gitlab) over the last 7/30 days, per OSS project & scenario. Δ = this PR − baseline median; red ▲ = more overhead, green ▽ = less overhead than baseline.

@cit-pr-commenter-54b7da

cit-pr-commenter-54b7da Bot commented Jul 31, 2026

Copy link
Copy Markdown

Test Environment - heliboard

Job Status: 🟢 success

Scenario This PR (%) 7d median Δ 7d 30d median Δ 30d runs (7d/30d)
agent 10.28 10.54 $\color{green}{\blacktriangledown}$ -0.26 9.73 $\color{red}{\blacktriangle}$ +0.55 25/109

Baseline: median of @test.tracer_overhead on main (gitlab) over the last 7/30 days, per OSS project & scenario. Δ = this PR − baseline median; red ▲ = more overhead, green ▽ = less overhead than baseline.

@dd-octo-sts

dd-octo-sts Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

🟢 Java Benchmark SLOs — All performance SLOs passed

Suite Status
Startup 🟢 pass

SLO thresholds are defined here based on automatically generated metrics. A warning is raised when results are within 5% of the threshold.

PR vs. master results
Scenario Candidate master Δ (95% CI of mean)
startup:insecure-bank:iast:Agent 14.09 s 13.95 s [+0.2%; +1.8%] (maybe worse)
startup:insecure-bank:tracing:Agent 12.96 s 13.03 s [-1.3%; +0.2%] (no difference)
startup:petclinic:appsec:Agent 16.92 s 16.75 s [+0.1%; +2.0%] (maybe worse)
startup:petclinic:iast:Agent 16.98 s 16.98 s [-0.8%; +0.8%] (no difference)
startup:petclinic:profiling:Agent 16.80 s 16.92 s [-2.2%; +0.8%] (no difference)
startup:petclinic:sca:Agent 16.74 s 16.72 s [-0.8%; +1.0%] (no difference)
startup:petclinic:tracing:Agent 16.14 s 16.05 s [-0.4%; +1.5%] (no difference)

Commit: 3a95df2d · CI Pipeline · Benchmarking Platform UI


Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion.

@cit-pr-commenter-54b7da

cit-pr-commenter-54b7da Bot commented Jul 31, 2026

Copy link
Copy Markdown

Test Environment - reactive-streams-jvm

Job Status: 🔴 failed

Scenario This PR (%) 7d median Δ 7d 30d median Δ 30d runs (7d/30d)
agent 17.22 21.65 $\color{green}{\blacktriangledown}$ -4.43 21.65 $\color{green}{\blacktriangledown}$ -4.43 35/150
agentless 17.92 19.20 $\color{green}{\blacktriangledown}$ -1.28 18.82 $\color{green}{\blacktriangledown}$ -0.90 24/133
agentlessCodeCoverage 19.46 19.99 $\color{green}{\blacktriangledown}$ -0.53 19.99 $\color{green}{\blacktriangledown}$ -0.53 24/129
agentlessLineCoverage 24.88 26.98 $\color{green}{\blacktriangledown}$ -2.10 29.23 $\color{green}{\blacktriangledown}$ -4.35 21/127

Baseline: median of @test.tracer_overhead on main (gitlab) over the last 7/30 days, per OSS project & scenario. Δ = this PR − baseline median; red ▲ = more overhead, green ▽ = less overhead than baseline.

@cit-pr-commenter-54b7da

cit-pr-commenter-54b7da Bot commented Jul 31, 2026

Copy link
Copy Markdown

Test Environment - sonar-kotlin

Job Status: 🔴 failed

Scenario This PR (%) 7d median Δ 7d 30d median Δ 30d runs (7d/30d)
agent 12.25 12.87 $\color{green}{\blacktriangledown}$ -0.62 12.87 $\color{green}{\blacktriangledown}$ -0.62 32/134
agentless 12.73 12.37 $\color{red}{\blacktriangle}$ +0.36 12.12 $\color{red}{\blacktriangle}$ +0.61 22/120
agentlessCodeCoverage 15.26 15.11 $\color{red}{\blacktriangle}$ +0.15 15.11 $\color{red}{\blacktriangle}$ +0.15 22/120
agentlessLineCoverage 18.03 17.38 $\color{red}{\blacktriangle}$ +0.65 18.45 $\color{green}{\blacktriangledown}$ -0.42 21/121

Baseline: median of @test.tracer_overhead on main (gitlab) over the last 7/30 days, per OSS project & scenario. Δ = this PR − baseline median; red ▲ = more overhead, green ▽ = less overhead than baseline.

@cit-pr-commenter-54b7da

cit-pr-commenter-54b7da Bot commented Jul 31, 2026

Copy link
Copy Markdown

Test Environment - jolokia

Job Status: 🔴 failed

Scenario This PR (%) 7d median Δ 7d 30d median Δ 30d runs (7d/30d)
agent 93.33 95.12 $\color{green}{\blacktriangledown}$ -1.79 93.23 $\color{red}{\blacktriangle}$ +0.10 32/145
agentless 88.52 89.58 $\color{green}{\blacktriangledown}$ -1.06 89.58 $\color{green}{\blacktriangledown}$ -1.06 23/135
agentlessCodeCoverage 97.86 99.00 $\color{green}{\blacktriangledown}$ -1.14 99.00 $\color{green}{\blacktriangledown}$ -1.14 22/132
agentlessLineCoverage 98.79 99.00 $\color{green}{\blacktriangledown}$ -0.21 99.00 $\color{green}{\blacktriangledown}$ -0.21 21/129

Baseline: median of @test.tracer_overhead on main (gitlab) over the last 7/30 days, per OSS project & scenario. Δ = this PR − baseline median; red ▲ = more overhead, green ▽ = less overhead than baseline.

@cit-pr-commenter-54b7da

cit-pr-commenter-54b7da Bot commented Jul 31, 2026

Copy link
Copy Markdown

Test Environment - okhttp

Job Status: 🔴 failed

Scenario This PR (%) 7d median Δ 7d 30d median Δ 30d runs (7d/30d)
agent 16.84 19.59 $\color{green}{\blacktriangledown}$ -2.75 19.20 $\color{green}{\blacktriangledown}$ -2.36 37/140
agentless 15.20 19.59 $\color{green}{\blacktriangledown}$ -4.39 19.20 $\color{green}{\blacktriangledown}$ -4.00 26/127
agentlessCodeCoverage 18.41 22.09 $\color{green}{\blacktriangledown}$ -3.68 22.54 $\color{green}{\blacktriangledown}$ -4.13 27/128
agentlessLineCoverage 33.99 38.67 $\color{green}{\blacktriangledown}$ -4.68 43.60 $\color{green}{\blacktriangledown}$ -9.61 25/129

Baseline: median of @test.tracer_overhead on main (gitlab) over the last 7/30 days, per OSS project & scenario. Δ = this PR − baseline median; red ▲ = more overhead, green ▽ = less overhead than baseline.

@cit-pr-commenter-54b7da

cit-pr-commenter-54b7da Bot commented Jul 31, 2026

Copy link
Copy Markdown

Test Environment - spring_boot

Job Status: 🔴 failed

Scenario This PR (%) 7d median Δ 7d 30d median Δ 30d runs (7d/30d)
agent 9.51 16.04 $\color{green}{\blacktriangledown}$ -6.53 16.36 $\color{green}{\blacktriangledown}$ -6.85 35/140
agentless 9.96 9.73 $\color{red}{\blacktriangle}$ +0.23 9.73 $\color{red}{\blacktriangle}$ +0.23 25/130
agentlessCodeCoverage 13.28 13.40 $\color{green}{\blacktriangledown}$ -0.12 13.40 $\color{green}{\blacktriangledown}$ -0.12 25/130
agentlessLineCoverage 22.05 22.09 $\color{green}{\blacktriangledown}$ -0.04 32.30 $\color{green}{\blacktriangledown}$ -10.25 24/129

Baseline: median of @test.tracer_overhead on main (gitlab) over the last 7/30 days, per OSS project & scenario. Δ = this PR − baseline median; red ▲ = more overhead, green ▽ = less overhead than baseline.

@cit-pr-commenter-54b7da

cit-pr-commenter-54b7da Bot commented Jul 31, 2026

Copy link
Copy Markdown

Test Environment - sonar-java

Job Status: 🔴 failed

Scenario This PR (%) 7d median Δ 7d 30d median Δ 30d runs (7d/30d)
agent 41.52 13.67 $\color{red}{\blacktriangle}$ +27.85 12.12 $\color{red}{\blacktriangle}$ +29.40 31/137
agentless 17.84 21.22 $\color{green}{\blacktriangledown}$ -3.38 15.72 $\color{red}{\blacktriangle}$ +2.12 21/127
agentlessCodeCoverage 111.57 84.36 $\color{red}{\blacktriangle}$ +27.21 82.69 $\color{red}{\blacktriangle}$ +28.88 21/127
agentlessLineCoverage 146.91 107.25 $\color{red}{\blacktriangle}$ +39.66 133.64 $\color{red}{\blacktriangle}$ +13.27 20/126

Baseline: median of @test.tracer_overhead on main (gitlab) over the last 7/30 days, per OSS project & scenario. Δ = this PR − baseline median; red ▲ = more overhead, green ▽ = less overhead than baseline.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp: ci visibility Continuous Integration Visibility tag: ai generated Largely based on code generated by an AI or LLM type: feature Enhancements and improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant