Skip to content

Commit c4bff6f

Browse files
Merge branch 'master' into sezen.leblay/apm-metrics-tag
2 parents 5ff30b6 + bd0c1fb commit c4bff6f

File tree

1,675 files changed

+17037
-3577
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,675 files changed

+17037
-3577
lines changed

.github/CODEOWNERS

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -12,24 +12,26 @@
1212
/.gitlab/ @DataDog/apm-release-platform
1313
/.gitlab-ci.yml @DataDog/apm-release-platform
1414

15-
# @DataDog/apm-sdk-api-java
16-
/dd-java-agent/agent-otel @DataDog/apm-sdk-api-java
17-
/dd-smoke-tests/sample-trace @DataDog/apm-sdk-api-java
18-
/dd-trace-core/src/main/java/datadog/trace/core/baggage @DataDog/apm-sdk-api-java
19-
/dd-trace-core/src/test/groovy/datadog/trace/core/baggage @DataDog/apm-sdk-api-java
20-
/dd-trace-core/src/main/java/datadog/trace/core/propagation @DataDog/apm-sdk-api-java
21-
/dd-trace-core/src/test/groovy/datadog/trace/core/propagation @DataDog/apm-sdk-api-java
22-
/dd-trace-core/src/main/java/datadog/trace/core/scopemanager @DataDog/apm-sdk-api-java
23-
/dd-trace-core/src/test/groovy/datadog/trace/core/scopemanager @DataDog/apm-sdk-api-java
24-
/dd-trace-ot/ @DataDog/apm-sdk-api-java
25-
/internal-api/src/main/java/datadog/trace/bootstrap @DataDog/apm-sdk-api-java
26-
/internal-api/src/test/groovy/datadog/trace/bootstrap @DataDog/apm-sdk-api-java
27-
/internal-api/src/main/java/datadog/trace/api/sampling @DataDog/apm-sdk-api-java
28-
/internal-api/src/test/groovy/datadog/trace/api/sampling @DataDog/apm-sdk-api-java
15+
# @DataDog/apm-sdk-capabilities-java
16+
/dd-java-agent/agent-otel @DataDog/apm-sdk-capabilities-java
17+
/dd-smoke-tests/sample-trace @DataDog/apm-sdk-capabilities-java
18+
/dd-trace-core/src/main/java/datadog/trace/core/baggage @DataDog/apm-sdk-capabilities-java
19+
/dd-trace-core/src/test/groovy/datadog/trace/core/baggage @DataDog/apm-sdk-capabilities-java
20+
/dd-trace-core/src/main/java/datadog/trace/core/propagation @DataDog/apm-sdk-capabilities-java
21+
/dd-trace-core/src/test/groovy/datadog/trace/core/propagation @DataDog/apm-sdk-capabilities-java
22+
/dd-trace-core/src/main/java/datadog/trace/core/scopemanager @DataDog/apm-sdk-capabilities-java
23+
/dd-trace-core/src/test/groovy/datadog/trace/core/scopemanager @DataDog/apm-sdk-capabilities-java
24+
/dd-trace-ot/ @DataDog/apm-sdk-capabilities-java
25+
/internal-api/src/main/java/datadog/trace/bootstrap @DataDog/apm-sdk-capabilities-java
26+
/internal-api/src/test/groovy/datadog/trace/bootstrap @DataDog/apm-sdk-capabilities-java
27+
/internal-api/src/main/java/datadog/trace/api/sampling @DataDog/apm-sdk-capabilities-java
28+
/internal-api/src/test/groovy/datadog/trace/api/sampling @DataDog/apm-sdk-capabilities-java
2929

3030
# @DataDog/apm-serverless
31-
/dd-trace-core/src/main/java/datadog/trace/lambda/ @DataDog/apm-serverless
32-
/dd-trace-core/src/test/groovy/datadog/trace/lambda/ @DataDog/apm-serverless
31+
/dd-trace-core/src/main/java/datadog/trace/lambda/ @DataDog/apm-serverless
32+
/dd-trace-core/src/test/groovy/datadog/trace/lambda/ @DataDog/apm-serverless
33+
**/InferredProxy*.java @DataDog/apm-serverless
34+
**/InferredProxy*.groovy @DataDog/apm-serverless
3335

3436
# @DataDog/apm-lang-platform-java
3537
/.circleci/ @DataDog/apm-lang-platform-java
@@ -75,16 +77,14 @@
7577
/dd-java-agent/agent-ci-visibility/ @DataDog/ci-app-libraries-java
7678
/dd-java-agent/instrumentation/cucumber/ @DataDog/ci-app-libraries-java
7779
/dd-java-agent/instrumentation/jacoco/ @DataDog/ci-app-libraries-java
78-
/dd-java-agent/instrumentation/junit-4.10/ @DataDog/ci-app-libraries-java
79-
/dd-java-agent/instrumentation/junit-5.3/ @DataDog/ci-app-libraries-java
80+
/dd-java-agent/instrumentation/junit @DataDog/ci-app-libraries-java
8081
/dd-java-agent/instrumentation/karate/ @DataDog/ci-app-libraries-java
8182
/dd-java-agent/instrumentation/scalatest/ @DataDog/ci-app-libraries-java
8283
/dd-java-agent/instrumentation/selenium/ @DataDog/ci-app-libraries-java
8384
/dd-java-agent/instrumentation/testng/ @DataDog/ci-app-libraries-java
84-
/dd-java-agent/instrumentation/gradle-3.0/ @DataDog/ci-app-libraries-java
85-
/dd-java-agent/instrumentation/gradle-8.3/ @DataDog/ci-app-libraries-java
85+
/dd-java-agent/instrumentation/gradle/ @DataDog/ci-app-libraries-java
8686
/dd-java-agent/instrumentation/gradle-testing/ @DataDog/ci-app-libraries-java
87-
/dd-java-agent/instrumentation/maven-3.2.1/ @DataDog/ci-app-libraries-java
87+
/dd-java-agent/instrumentation/maven @DataDog/ci-app-libraries-java
8888
/dd-java-agent/instrumentation/maven-surefire/ @DataDog/ci-app-libraries-java
8989
/dd-java-agent/instrumentation/weaver/ @DataDog/ci-app-libraries-java
9090
/dd-smoke-tests/gradle/ @DataDog/ci-app-libraries-java

.github/pull_request_template.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
# Contributor Checklist
88

99
- Format the title [according the contribution guidelines](https://github.com/DataDog/dd-trace-java/blob/master/CONTRIBUTING.md#title-format)
10-
- Assign the `type:` and (`comp:` or `inst:`) labels in addition to [any usefull labels](https://github.com/DataDog/dd-trace-java/blob/master/CONTRIBUTING.md#labels)
10+
- Assign the `type:` and (`comp:` or `inst:`) labels in addition to [any useful labels](https://github.com/DataDog/dd-trace-java/blob/master/CONTRIBUTING.md#labels)
1111
- Don't use `close`, `fix` or any [linking keywords](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword) when referencing an issue.
1212
Use `solves` instead, and assign the PR [milestone](https://github.com/DataDog/dd-trace-java/milestones) to the issue
1313
- Update the [CODEOWNERS](https://github.com/DataDog/dd-trace-java/blob/master/.github/CODEOWNERS) file on source file addition, move, or deletion

.github/workflows/README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,14 @@ _Action:_ Check the pull request complies with [the contribution guidelines](htt
2828

2929
_Recovery:_ Manually verify the guideline compliance.
3030

31+
### check-pull-request-labels [🔗](check-pull-request-labels.yaml)
32+
33+
_Trigger:_ When creating or updating a pull request.
34+
35+
_Action:_ Check the pull request did not introduce unexpected label.
36+
37+
_Recovery:_ Update the pull request or add a comment to trigger the action again.
38+
3139
### draft-release-notes-on-tag [🔗](draft-release-notes-on-tag.yaml)
3240

3341
_Trigger:_ When creating a tag, or manually (providing a tag)
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
name: Validate PR Label Format
2+
on:
3+
pull_request:
4+
types: [opened, edited, ready_for_review, labeled]
5+
6+
concurrency:
7+
group: ${{ github.workflow }}-${{ github.ref }}
8+
cancel-in-progress: true
9+
10+
jobs:
11+
check_pr_labels:
12+
name: Check pull request labels
13+
permissions:
14+
issues: write
15+
pull-requests: write
16+
runs-on: ubuntu-latest
17+
steps:
18+
- name: Check pull request labels
19+
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # 8.0.0
20+
with:
21+
github-token: ${{ secrets.GITHUB_TOKEN }}
22+
script: |
23+
// Skip draft pull requests
24+
if (context.payload.pull_request.draft) {
25+
return
26+
}
27+
// Define valid label categories
28+
const validCategories = [
29+
'type:',
30+
'comp:',
31+
'inst:',
32+
'tag:',
33+
'performance:', // To refactor to 'ci: ' in the future
34+
'run-tests:' // Unused since GitLab migration
35+
]
36+
// Look for invalid labels
37+
const invalidLabels = context.payload.pull_request.labels
38+
.map(label => label.name)
39+
.filter(label => validCategories.every(prefix => !label.startsWith(prefix)))
40+
const hasInvalidLabels = invalidLabels.length > 0
41+
// Get existing comments to check for blocking comment
42+
const comments = await github.rest.issues.listComments({
43+
issue_number: context.payload.pull_request.number,
44+
owner: context.repo.owner,
45+
repo: context.repo.repo
46+
})
47+
const commentMarker = '<!-- dd-trace-java-check-pr-labels-workflow -->'
48+
const blockingComment = comments.data.find(comment => comment.body.includes(commentMarker))
49+
// Create or update blocking comment if there are invalid labels
50+
if (hasInvalidLabels) {
51+
const commentBody = '**PR Blocked - Invalid Label**\n\n' +
52+
`The pull request introduced unexpected labels:\n\n` +
53+
invalidLabels.map(label => `* \`${label}\``).join('\n') + '\n\n' +
54+
'**This PR is blocked until:**\n' +
55+
'1. The invalid labels are deleted, and\n' +
56+
'2. A maintainer deletes this comment to unblock the PR\n\n' +
57+
'**Note:** Simply removing labels from the pull request is not enough - a maintainer must remove the label and delete this comment to remove the block.\n\n' +
58+
commentMarker
59+
60+
if (blockingComment) {
61+
// Update existing blocking comment
62+
await github.rest.issues.updateComment({
63+
comment_id: blockingComment.id,
64+
owner: context.repo.owner,
65+
repo: context.repo.repo,
66+
body: commentBody
67+
})
68+
} else {
69+
// Create new blocking comment
70+
await github.rest.issues.createComment({
71+
issue_number: context.payload.pull_request.number,
72+
owner: context.repo.owner,
73+
repo: context.repo.repo,
74+
body: commentBody
75+
})
76+
}
77+
blockingComment = true
78+
}
79+
if (blockingComment) {
80+
// Block the PR by failing the workflow
81+
core.setFailed(`PR blocked: Invalid labels detected: (${invalidLabels.join(', ')}). A maintainer must delete the blocking comment after fixing the labels to allow merging.`)
82+
}

.github/workflows/update-gradle-dependencies.yaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,10 @@ jobs:
3333
git checkout -b $BRANCH_NAME
3434
git push -u origin $BRANCH_NAME --force
3535
- name: Update Gradle dependencies
36+
env:
37+
AKKA_REPO_TOKEN: ${{ secrets.AKKA_REPO_TOKEN }}
3638
run: |
37-
GRADLE_OPTS="-Dorg.gradle.jvmargs='-Xmx3G -Xms2G'" \
39+
GRADLE_OPTS="-DakkaRepositoryToken=$AKKA_REPO_TOKEN -Dorg.gradle.jvmargs='-Xmx3G -Xms2G'" \
3840
JAVA_HOME=$JAVA_HOME_8_X64 \
3941
JAVA_8_HOME=$JAVA_HOME_8_X64 \
4042
JAVA_11_HOME=$JAVA_HOME_11_X64 \
@@ -48,7 +50,7 @@ jobs:
4850
GH_ADD_ARGS=""
4951
COUNT=0
5052
BRANCH_HEAD=$(git rev-parse HEAD)
51-
for lockfile in $(git status --porcelain=v1 | awk '{ print $NF }'); do
53+
for lockfile in $(git status --porcelain=v1 -- ':(glob)**/gradle.lockfile' | awk '{ print $NF }'); do
5254
echo "Found lockfile: $lockfile"
5355
GH_ADD_ARGS="$GH_ADD_ARGS --add $lockfile"
5456
COUNT=$((COUNT+1))

.gitlab/macrobenchmarks.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,4 +142,4 @@ notify-slo-breaches:
142142
when: never
143143
- when: always
144144
variables:
145-
CHANNEL: "apm-release-platform"
145+
CHANNEL: "apm-java"

BUILDING.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,6 @@ Requirements to build the full project:
6363

6464
Download and install JDK versions 8, 11, 17, 21 and 25, and GraalVM 17 for your OS.
6565

66-
> [!NOTE]
67-
> While Temurin JDK 25 from [Eclipse Temurin releases](https://adoptium.net/temurin/releases/) has not been released, please download the OpenJDK EA version at [this link](https://jdk.java.net/25/). Add the required environment variable using an `export` command along the lines of `export JAVA_25_HOME=/Library/Java/JavaVirtualMachines/jdk-25.jdk/Contents/Home`. Then, confirm that this was set properly by executing `echo $JAVA_25_HOME`.
68-
6966
#### macOS
7067

7168
* Install the required JDKs using `brew`:

CONTRIBUTING.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ The default JVM to build and run tests from the command line should be Java 8.
5252
* `Project Structure` -> `Project` -> `SDK` -> `Download JDK...` -> `Version: 1.8` -> `Download`
5353
* Configure Java and Groovy import formatting:
5454
* `Settings...` ->`Editor` > `Code Style` > `Java` > `Imports`
55+
* `Use single class import`: checked
5556
* `Class count to use import with '*'`: `9999` (some number sufficiently large that is unlikely to matter)
5657
* `Names count to use static import with '*'`: `9999`
5758
* Use the following import layout to ensure consistency with google-java-format:

boolean-conversion-proposal.md

Lines changed: 0 additions & 139 deletions
This file was deleted.

build.gradle.kts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,16 @@ import com.diffplug.gradle.spotless.SpotlessExtension
33
plugins {
44
id("datadog.gradle-debug")
55
id("datadog.dependency-locking")
6+
id("datadog.tracer-version")
7+
id("datadog.dump-hanged-test")
68

79
id("com.diffplug.spotless") version "6.13.0"
810
id("com.github.spotbugs") version "5.0.14"
911
id("de.thetaphi.forbiddenapis") version "3.8"
10-
11-
id("tracer-version")
1212
id("io.github.gradle-nexus.publish-plugin") version "2.0.0"
13-
1413
id("com.gradleup.shadow") version "8.3.6" apply false
1514
id("me.champeau.jmh") version "0.7.3" apply false
1615
id("org.gradle.playframework") version "0.13" apply false
17-
id("info.solidsoft.pitest") version "1.9.11" apply false
1816
}
1917

2018
description = "dd-trace-java"

0 commit comments

Comments
 (0)