Skip to content

Merge develop into feature/continuous-profiling#3618

Merged
ambushwork merged 40 commits into
feature/continuous-profilingfrom
yl/merge-develop-into-feature-profiling
Jul 8, 2026
Merged

Merge develop into feature/continuous-profiling#3618
ambushwork merged 40 commits into
feature/continuous-profilingfrom
yl/merge-develop-into-feature-profiling

Conversation

@ambushwork

Copy link
Copy Markdown
Member

What does this PR do?

Merge develop into feature/continuous-profiling

Review checklist (to be filled by reviewers)

  • Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
  • Make sure you discussed the feature or bugfix with the maintaining team in an Issue
  • Make sure each commit and the PR mention the Issue number (cf the CONTRIBUTING doc)

leoromanovsky and others added 30 commits June 11, 2026 00:03
…iewscope

Fix issue with RumViewScope caused by merge
…eaking

RUM-16470: Cleanup ahead of the API 37 support
Add FFE SDK owners to flag module

Co-authored-by: leoromanovsky <[email protected]>
Since we have a limited size of Mac runners, kill off pipeline jobs for PRs if a newer commit is pushed
RUM-14050: Cancel stale PR pipeline runs in Gitlab
RUM-15483: Fix clock mismatch in DefaultAppStartTimeProvider app start time computation
- Add setup-gradle snippet that centralizes all Gradle config by appending to gradle.properties at job setup time, replacing per-job GRADLE_OPTS boilerplate across all jobs
- Unify JVM memory to -Xmx4096m for all jobs (was inconsistently 3072m or 4096m per-job)
- Remove get_secret gradle.properties injection from publishing/sample jobs
- Remove --build-cache flags (redundant with org.gradle.caching=true in gradle.properties)
- Remove rm -rf ~/.gradle/daemon/ from all jobs since jobs get a new container and we don't cache it
- Fix cache cleanup to only run on test:kover (the only cache-push job) via GRADLE_CACHE_CLEANUP variable, disabled on all pull-only jobs
- Fix unzipAarForDetekt task to declare its dependency on bundleReleaseAar using provider-based wiring instead of a hardcoded output path
- Drop `kotlin.incremental=true` due to it is already the default
- Enable parallel mode, disable it for jobs that invoke tasks that can't run in parallel mode
…ions

RUM-14050: Improve Gradle usage in Gitlab
…t-patterns

RUM-16634: Add wildcard host pattern matching to `WebViewTracking`
Co-authored-by: Héctor Abraham Morillo Prieto <[email protected]>
When dd-java-agent is attached to the Gradle daemon (introduced in
#3583 via setup-gradle), it instruments classes at load time for source
code profiling, injecting references to datadog.compiler.annotations.
SourceLines and datadog.compiler.annotations.SourcePath into bytecode.
R8 then sees these references but can't find the annotation class
definitions in the build classpath, causing a hard failure in every
publish-benchmark-synthetics (and potentially other synthetics) CI job
since that PR merged.

Add -dontwarn rules for datadog.compiler.annotations.** in the
benchmark and kotlin sample proguard files so R8 ignores these
agent-injected annotation references.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
…nt-annotations

RUM-14050: Fix R8 missing class error caused by dd-javac-plugin annotations
abrooksv and others added 9 commits July 2, 2026 13:55
…elop

RUM-14050: Disable auto-cancel on develop and feature branches
* Events created in RumActionScopeTest were using the real time so they were failing under high CPU
* Also fix the missing resource key test setup not making sense since the key.toString for the resource key had no relation to the key so the null-ing was irrelevant and the assert statement at the end impossible to fail
…eTest

Fix RumActionScopeTest tests failing under high CPU load
…er-session-expired

Fix TTFD report during warm start after session expiration
RUM-17158: Add telemetry attributes for TTFD/TTID too large
…wners

chore(codeowners): fix stale FFE team handle for flags module
@ambushwork
ambushwork force-pushed the yl/merge-develop-into-feature-profiling branch from 6b4a5a8 to 7fa64c3 Compare July 8, 2026 13:35
@ambushwork
ambushwork marked this pull request as ready for review July 8, 2026 13:41
@ambushwork
ambushwork requested review from a team as code owners July 8, 2026 13:41
kikoveiga
kikoveiga previously approved these changes Jul 8, 2026
@ambushwork
ambushwork force-pushed the yl/merge-develop-into-feature-profiling branch 2 times, most recently from f8e287e to a8d04af Compare July 8, 2026 13:56

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7fa64c35cf

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

- docker buildx build --tag $CI_IMAGE_DOCKER -f ./ci/Dockerfile.gitlab --push .
- METADATA_FILE=$(mktemp)
- docker buildx build --tag $CI_IMAGE_DOCKER -f ./ci/Dockerfile.gitlab --push --metadata-file ${METADATA_FILE} .
- ddsign sign $CI_IMAGE_DOCKER --docker-metadata-file ${METADATA_FILE}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Install ddsign in the CI-image job environment

In the ci-image workflow I checked, the job runs in 486234852809.dkr.ecr.us-east-1.amazonaws.com/docker:24.0.4-jammy, while the new Dockerfile change only copies ddsign into the image being built. This command executes outside that newly built image, so on the manual CI image build it will fail with ddsign: command not found after the push unless the job image itself provides the binary or the signing step runs from an image that contains it.

Useful? React with 👍 / 👎.

Comment on lines +31 to +32
if (subModuleTaskName in subProject.tasks.names) {
dependsOn(subProject.tasks.named(subModuleTaskName))

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Preserve aggregate task dependencies

When the root build registers aggregate tasks such as unitTestDebugFeatures, unitTestDebugIntegrations, lintCheckAll, and assembleLibraries*, most subproject build scripts have not registered their variant tasks yet, so this membership check is false and no dependency is added. I checked the GitLab test:debug job and it invokes these root aggregate tasks directly, which means feature/integration tests can become no-op jobs instead of running the submodule test tasks; keep the lazy string dependency or add dependencies after subprojects are evaluated.

Useful? React with 👍 / 👎.

script:
- !reference [.snippets, set-publishing-credentials]
- ./gradlew publishToSonatype closeSonatypeStagingRepository --stacktrace --no-daemon
- !reference [.snippets, setup-gradle]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Don’t publish artifacts under the CI javaagent

On develop and tag publishes, this now runs the Sonatype publication with setup-gradle, which injects the Datadog Java agent into every Gradle JVM. The same commit had to add -dontwarn datadog.compiler.annotations.** to sample ProGuard files because that agent injects annotation references that are not on the classpath, but no SDK consumer ProGuard rule was added; if the published AARs are built under this agent, downstream apps that shrink with R8 can fail on those missing datadog.compiler.annotations classes. Keep the agent out of the publish build or ship the suppression as a consumer rule.

Useful? React with 👍 / 👎.

@ambushwork
ambushwork requested a review from kikoveiga July 8, 2026 14:07
kikoveiga
kikoveiga previously approved these changes Jul 8, 2026
@ambushwork
ambushwork force-pushed the yl/merge-develop-into-feature-profiling branch from a8d04af to 4713719 Compare July 8, 2026 14:35

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 471371907c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines 618 to +621
System.gc()
assertThat(keyRef.get())
.describedAs("resource key should have been garbage collected by now")
.isNull()

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Avoid relying on immediate GC in this test

On CI JVMs where explicit GC is disabled or simply does not collect this object immediately, System.gc() is only a hint, so the new keyRef.get() assertion can fail even though the resource-key weak-reference behavior is correct. This makes the unit test nondeterministic; use a bounded polling/await helper or assert the scope behavior without requiring a particular GC cycle.

Useful? React with 👍 / 👎.

@codecov-commenter

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 95.71429% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 73.14%. Comparing base (289555a) to head (4713719).

Files with missing lines Patch % Lines
...android/core/configuration/HostPatternSanitizer.kt 96.67% 0 Missing and 1 partial ⚠️
.../com/datadog/android/internal/time/TimeProvider.kt 0.00% 1 Missing ⚠️
...oid/profiling/internal/time/MutableTimeProvider.kt 0.00% 1 Missing ⚠️
Additional details and impacted files
@@                       Coverage Diff                        @@
##           feature/continuous-profiling    #3618      +/-   ##
================================================================
+ Coverage                         72.91%   73.14%   +0.23%     
================================================================
  Files                               999      996       -3     
  Lines                             37112    36301     -811     
  Branches                           6195     6130      -65     
================================================================
- Hits                              27059    26552     -507     
+ Misses                             8343     8036     -307     
- Partials                           1710     1713       +3     
Files with missing lines Coverage Δ
...src/main/kotlin/com/datadog/android/DatadogSite.kt 100.00% <100.00%> (ø)
.../core/internal/time/DefaultAppStartTimeProvider.kt 100.00% <100.00%> (+5.00%) ⬆️
...og/android/flags/internal/DatadogSiteExtensions.kt 100.00% <100.00%> (ø)
...droid/rum/internal/domain/scope/RumSessionScope.kt 91.72% <100.00%> (+0.05%) ⬆️
.../android/rum/internal/domain/scope/RumViewScope.kt 95.02% <100.00%> (+1.22%) ⬆️
...rnal/startup/RumAppStartupTelemetryReporterImpl.kt 100.00% <100.00%> (ø)
.../internal/startup/RumSessionScopeStartupManager.kt 95.33% <100.00%> (+0.13%) ⬆️
...lin/com/datadog/android/webview/WebViewTracking.kt 85.04% <100.00%> (+0.61%) ⬆️
...dog/android/webview/internal/DatadogEventBridge.kt 100.00% <100.00%> (ø)
.../compose/internal/ComposeActionTrackingStrategy.kt 48.39% <100.00%> (-0.10%) ⬇️
... and 3 more

... and 355 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ambushwork
ambushwork merged commit fa13d7f into feature/continuous-profiling Jul 8, 2026
26 checks passed
@ambushwork
ambushwork deleted the yl/merge-develop-into-feature-profiling branch July 8, 2026 16:10
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.

9 participants