Skip to content

Commit 3eed123

Browse files
authored
Merge branch 'master' into andrew/investigate-uri
2 parents 2e9024c + bd15745 commit 3eed123

File tree

61 files changed

+57366
-14312
lines changed

Some content is hidden

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

61 files changed

+57366
-14312
lines changed

.github/actions/publish-debug-symbols/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ runs:
3838

3939
# Use the same go version as in https://github.com/DataDog/profiling-backend/blob/prod/debug-symbol-upload/Dockerfile#L21
4040
- name: Install Go
41-
uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6.3.0
41+
uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
4242
with:
4343
go-version: '^1.22.3'
4444

.github/workflows/auto_bump_test_package_versions.yml.disabled renamed to .github/workflows/auto_bump_test_package_versions.yml

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
run: git config --system core.longpaths true
2323

2424
- name: Get dd-octo-sts token
25-
uses: DataDog/dd-octo-sts-action@acaa02eee7e3bb0839e4272dacb37b8f3b58ba80 # v1.0.3
25+
uses: DataDog/dd-octo-sts-action@96a25462dbcb10ebf0bfd6e2ccc917d2ab235b9a # v1.0.4
2626
id: octo-sts
2727
with:
2828
scope: DataDog/dd-trace-dotnet
@@ -33,12 +33,26 @@ jobs:
3333
with:
3434
ref: ${{ github.event.pull_request.base.sha }}
3535

36-
- uses: actions/setup-dotnet@baa11fbfe1d6520db94683bd5c7a3818018e4309 # v5.1.0
36+
- uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5.2.0
3737
with:
3838
global-json-file: global.json
3939

4040
- name: "Regenerating package versions"
41-
run: .\tracer\build.ps1 GeneratePackageVersions
41+
run: .\tracer\build.ps1 GeneratePackageVersions --PackageVersionCooldownDays 2
42+
43+
- name: Read cooldown report
44+
id: cooldown
45+
if: always()
46+
shell: pwsh
47+
run: |
48+
$report = ""
49+
$reportPath = ".nuke/temp/cooldown_report.md"
50+
if (Test-Path $reportPath) {
51+
$report = Get-Content $reportPath -Raw
52+
}
53+
"report<<EOF" >> $env:GITHUB_OUTPUT
54+
$report >> $env:GITHUB_OUTPUT
55+
"EOF" >> $env:GITHUB_OUTPUT
4256
4357
- name: Create Pull Request
4458
id: pr
@@ -55,9 +69,11 @@ jobs:
5569
body: |
5670
Updates the package versions for integration tests.
5771
72+
${{ steps.cooldown.outputs.report }}
73+
5874
- name: Send Slack notification about generating failure
5975
if: failure()
60-
uses: slackapi/slack-github-action@91efab103c0de0a537f72a35f6b8cda0ee76bf0a # v2.1.1
76+
uses: slackapi/slack-github-action@af78098f536edbc4de71162a307590698245be95 # v3.0.1
6177
with:
6278
# This data can be any valid JSON from a previous step in the GitHub Action
6379
payload: |

.github/workflows/codeql-analysis.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
3636
# Initializes the CodeQL tools for scanning.
3737
- name: Initialize CodeQL
38-
uses: github/codeql-action/init@38697555549f1db7851b81482ff19f1fa5c4fedc # v4.34.1
38+
uses: github/codeql-action/init@c10b8064de6f491fea524254123dbe5e09572f13 # v4.35.1
3939
with:
4040
languages: csharp, cpp
4141
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -56,7 +56,7 @@ jobs:
5656
./tracer/build.sh BuildProfilerHome BuildNativeLoader
5757
5858
- name: Perform CodeQL Analysis
59-
uses: github/codeql-action/analyze@38697555549f1db7851b81482ff19f1fa5c4fedc # v4.34.1
59+
uses: github/codeql-action/analyze@c10b8064de6f491fea524254123dbe5e09572f13 # v4.35.1
6060

6161
- name: filter-sarif cpp
6262
uses: advanced-security/filter-sarif@2da736ff05ef065cb2894ac6892e47b5eac2c3c0 # v1.1
@@ -113,7 +113,7 @@ jobs:
113113
114114
# Initializes the CodeQL tools for scanning.
115115
- name: Initialize CodeQL
116-
uses: github/codeql-action/init@38697555549f1db7851b81482ff19f1fa5c4fedc # v4.34.1
116+
uses: github/codeql-action/init@c10b8064de6f491fea524254123dbe5e09572f13 # v4.35.1
117117
with:
118118
languages: csharp, cpp
119119
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -134,7 +134,7 @@ jobs:
134134
./tracer/build.sh BuildTracerHome
135135
136136
- name: Perform CodeQL Analysis
137-
uses: github/codeql-action/analyze@38697555549f1db7851b81482ff19f1fa5c4fedc # v4.34.1
137+
uses: github/codeql-action/analyze@c10b8064de6f491fea524254123dbe5e09572f13 # v4.35.1
138138

139139
- name: filter-sarif cpp
140140
uses: advanced-security/filter-sarif@2da736ff05ef065cb2894ac6892e47b5eac2c3c0 # v1.1

.github/workflows/datadog-static-analysis.yml

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

.gitlab-ci.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ variables:
1515
REPO_NOTIFICATION_CHANNEL: "#apm-dotnet-bots"
1616
CI_IDENTITIES_CLIENT_URL: s3://binaries-ddbuild-io-prod/ci-identities/ci-identities-gitlab-job-client/versions/v0.2.0/ci-identities-gitlab-job-client-windows-amd64.exe
1717
SUPPORTED_CONFIG_PATH: "tracer/src/Datadog.Trace/Configuration/supported-configurations.yaml"
18+
OCI_PACKAGE_MAX_SIZE_BYTES: 40000000
19+
LIB_INJECTION_IMAGE_MAX_SIZE_BYTES: 40000000
1820

1921
build:
2022
except:

.gitlab/one-pipeline.locked.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# DO NOT EDIT THIS FILE MANUALLY
22
# This file is auto-generated by automation.
33
include:
4-
- remote: https://gitlab-templates.ddbuild.io/libdatadog/one-pipeline/ca/9cf7d7609ff62e4723c9cbc061ca2a25345ce5d6055b9acad9a13dbf736261f0/one-pipeline.yml
4+
- remote: https://gitlab-templates.ddbuild.io/libdatadog/one-pipeline/ca/4667b01c6ae983f92ecf106e110ced3dac798b229cf2a0539c58aa22e95a99d5/one-pipeline.yml
55

tracer/build/PackageVersionsLatestMinors.g.props

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10507,7 +10507,7 @@ NOTE: This code was generated by the GeneratePackageVersions tool. To safely
1050710507
<SampleName>Samples.GoogleProtobuf</SampleName>
1050810508
</PackageVersionSample>
1050910509
<PackageVersionSample Include="test\test-applications\integrations\Samples.GoogleProtobuf\Samples.GoogleProtobuf.csproj">
10510-
<Properties>ApiVersion=3.25.8;RestoreRecursive=false;BuildProjectReferences=false</Properties>
10510+
<Properties>ApiVersion=3.25.9;RestoreRecursive=false;BuildProjectReferences=false</Properties>
1051110511
<TargetFramework>net48</TargetFramework>
1051210512
<RequiresDockerDependency>None</RequiresDockerDependency>
1051310513
<SampleName>Samples.GoogleProtobuf</SampleName>
@@ -10717,7 +10717,7 @@ NOTE: This code was generated by the GeneratePackageVersions tool. To safely
1071710717
<SampleName>Samples.GoogleProtobuf</SampleName>
1071810718
</PackageVersionSample>
1071910719
<PackageVersionSample Include="test\test-applications\integrations\Samples.GoogleProtobuf\Samples.GoogleProtobuf.csproj">
10720-
<Properties>ApiVersion=3.25.8;RestoreRecursive=false;BuildProjectReferences=false</Properties>
10720+
<Properties>ApiVersion=3.25.9;RestoreRecursive=false;BuildProjectReferences=false</Properties>
1072110721
<TargetFramework>netcoreapp2.1</TargetFramework>
1072210722
<RequiresDockerDependency>None</RequiresDockerDependency>
1072310723
<SampleName>Samples.GoogleProtobuf</SampleName>
@@ -10927,7 +10927,7 @@ NOTE: This code was generated by the GeneratePackageVersions tool. To safely
1092710927
<SampleName>Samples.GoogleProtobuf</SampleName>
1092810928
</PackageVersionSample>
1092910929
<PackageVersionSample Include="test\test-applications\integrations\Samples.GoogleProtobuf\Samples.GoogleProtobuf.csproj">
10930-
<Properties>ApiVersion=3.25.8;RestoreRecursive=false;BuildProjectReferences=false</Properties>
10930+
<Properties>ApiVersion=3.25.9;RestoreRecursive=false;BuildProjectReferences=false</Properties>
1093110931
<TargetFramework>netcoreapp3.0</TargetFramework>
1093210932
<RequiresDockerDependency>None</RequiresDockerDependency>
1093310933
<SampleName>Samples.GoogleProtobuf</SampleName>
@@ -11137,7 +11137,7 @@ NOTE: This code was generated by the GeneratePackageVersions tool. To safely
1113711137
<SampleName>Samples.GoogleProtobuf</SampleName>
1113811138
</PackageVersionSample>
1113911139
<PackageVersionSample Include="test\test-applications\integrations\Samples.GoogleProtobuf\Samples.GoogleProtobuf.csproj">
11140-
<Properties>ApiVersion=3.25.8;RestoreRecursive=false;BuildProjectReferences=false</Properties>
11140+
<Properties>ApiVersion=3.25.9;RestoreRecursive=false;BuildProjectReferences=false</Properties>
1114111141
<TargetFramework>netcoreapp3.1</TargetFramework>
1114211142
<RequiresDockerDependency>None</RequiresDockerDependency>
1114311143
<SampleName>Samples.GoogleProtobuf</SampleName>
@@ -11347,7 +11347,7 @@ NOTE: This code was generated by the GeneratePackageVersions tool. To safely
1134711347
<SampleName>Samples.GoogleProtobuf</SampleName>
1134811348
</PackageVersionSample>
1134911349
<PackageVersionSample Include="test\test-applications\integrations\Samples.GoogleProtobuf\Samples.GoogleProtobuf.csproj">
11350-
<Properties>ApiVersion=3.25.8;RestoreRecursive=false;BuildProjectReferences=false</Properties>
11350+
<Properties>ApiVersion=3.25.9;RestoreRecursive=false;BuildProjectReferences=false</Properties>
1135111351
<TargetFramework>net5.0</TargetFramework>
1135211352
<RequiresDockerDependency>None</RequiresDockerDependency>
1135311353
<SampleName>Samples.GoogleProtobuf</SampleName>
@@ -11557,7 +11557,7 @@ NOTE: This code was generated by the GeneratePackageVersions tool. To safely
1155711557
<SampleName>Samples.GoogleProtobuf</SampleName>
1155811558
</PackageVersionSample>
1155911559
<PackageVersionSample Include="test\test-applications\integrations\Samples.GoogleProtobuf\Samples.GoogleProtobuf.csproj">
11560-
<Properties>ApiVersion=3.25.8;RestoreRecursive=false;BuildProjectReferences=false</Properties>
11560+
<Properties>ApiVersion=3.25.9;RestoreRecursive=false;BuildProjectReferences=false</Properties>
1156111561
<TargetFramework>net6.0</TargetFramework>
1156211562
<RequiresDockerDependency>None</RequiresDockerDependency>
1156311563
<SampleName>Samples.GoogleProtobuf</SampleName>
@@ -11767,7 +11767,7 @@ NOTE: This code was generated by the GeneratePackageVersions tool. To safely
1176711767
<SampleName>Samples.GoogleProtobuf</SampleName>
1176811768
</PackageVersionSample>
1176911769
<PackageVersionSample Include="test\test-applications\integrations\Samples.GoogleProtobuf\Samples.GoogleProtobuf.csproj">
11770-
<Properties>ApiVersion=3.25.8;RestoreRecursive=false;BuildProjectReferences=false</Properties>
11770+
<Properties>ApiVersion=3.25.9;RestoreRecursive=false;BuildProjectReferences=false</Properties>
1177111771
<TargetFramework>net7.0</TargetFramework>
1177211772
<RequiresDockerDependency>None</RequiresDockerDependency>
1177311773
<SampleName>Samples.GoogleProtobuf</SampleName>
@@ -11977,7 +11977,7 @@ NOTE: This code was generated by the GeneratePackageVersions tool. To safely
1197711977
<SampleName>Samples.GoogleProtobuf</SampleName>
1197811978
</PackageVersionSample>
1197911979
<PackageVersionSample Include="test\test-applications\integrations\Samples.GoogleProtobuf\Samples.GoogleProtobuf.csproj">
11980-
<Properties>ApiVersion=3.25.8;RestoreRecursive=false;BuildProjectReferences=false</Properties>
11980+
<Properties>ApiVersion=3.25.9;RestoreRecursive=false;BuildProjectReferences=false</Properties>
1198111981
<TargetFramework>net8.0</TargetFramework>
1198211982
<RequiresDockerDependency>None</RequiresDockerDependency>
1198311983
<SampleName>Samples.GoogleProtobuf</SampleName>
@@ -12187,7 +12187,7 @@ NOTE: This code was generated by the GeneratePackageVersions tool. To safely
1218712187
<SampleName>Samples.GoogleProtobuf</SampleName>
1218812188
</PackageVersionSample>
1218912189
<PackageVersionSample Include="test\test-applications\integrations\Samples.GoogleProtobuf\Samples.GoogleProtobuf.csproj">
12190-
<Properties>ApiVersion=3.25.8;RestoreRecursive=false;BuildProjectReferences=false</Properties>
12190+
<Properties>ApiVersion=3.25.9;RestoreRecursive=false;BuildProjectReferences=false</Properties>
1219112191
<TargetFramework>net9.0</TargetFramework>
1219212192
<RequiresDockerDependency>None</RequiresDockerDependency>
1219312193
<SampleName>Samples.GoogleProtobuf</SampleName>
@@ -12397,7 +12397,7 @@ NOTE: This code was generated by the GeneratePackageVersions tool. To safely
1239712397
<SampleName>Samples.GoogleProtobuf</SampleName>
1239812398
</PackageVersionSample>
1239912399
<PackageVersionSample Include="test\test-applications\integrations\Samples.GoogleProtobuf\Samples.GoogleProtobuf.csproj">
12400-
<Properties>ApiVersion=3.25.8;RestoreRecursive=false;BuildProjectReferences=false</Properties>
12400+
<Properties>ApiVersion=3.25.9;RestoreRecursive=false;BuildProjectReferences=false</Properties>
1240112401
<TargetFramework>net10.0</TargetFramework>
1240212402
<RequiresDockerDependency>None</RequiresDockerDependency>
1240312403
<SampleName>Samples.GoogleProtobuf</SampleName>

tracer/build/PackageVersionsLatestSpecific.g.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7051,13 +7051,13 @@ NOTE: This code was generated by the GeneratePackageVersions tool. To safely
70517051
<SampleName>Samples.CosmosDb.Vnext</SampleName>
70527052
</PackageVersionSample>
70537053
<PackageVersionSample Include="test\test-applications\integrations\LogsInjection.Serilog\LogsInjection.Serilog.csproj">
7054-
<Properties>ApiVersion=1.5.14;RestoreRecursive=false;BuildProjectReferences=false</Properties>
7054+
<Properties>ApiVersion=1.4.214;RestoreRecursive=false;BuildProjectReferences=false</Properties>
70557055
<TargetFramework>net48</TargetFramework>
70567056
<RequiresDockerDependency>None</RequiresDockerDependency>
70577057
<SampleName>LogsInjection.Serilog</SampleName>
70587058
</PackageVersionSample>
70597059
<PackageVersionSample Include="test\test-applications\integrations\LogsInjection.Serilog\LogsInjection.Serilog.csproj">
7060-
<Properties>ApiVersion=1.4.214;RestoreRecursive=false;BuildProjectReferences=false</Properties>
7060+
<Properties>ApiVersion=1.5.14;RestoreRecursive=false;BuildProjectReferences=false</Properties>
70617061
<TargetFramework>net48</TargetFramework>
70627062
<RequiresDockerDependency>None</RequiresDockerDependency>
70637063
<SampleName>LogsInjection.Serilog</SampleName>

tracer/build/_build/Build.Utilities.cs

Lines changed: 90 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,9 @@ partial class Build
5959
[Parameter("Only update package versions for packages with the following names")]
6060
readonly string[] IncludePackages;
6161

62+
[Parameter("Minimum age in days a NuGet package version must have been published before auto-including. Defaults to 2 days, or 0 when --IncludePackages is set")]
63+
readonly int? PackageVersionCooldownDays;
64+
6265
[LazyLocalExecutable(@"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\gacutil.exe")]
6366
readonly Lazy<Tool> GacUtil;
6467
[LazyLocalExecutable(@"C:\Program Files\IIS Express\iisexpress.exe")]
@@ -247,11 +250,95 @@ partial class Build
247250
var previousSupportedVersions = await GenerateSupportMatrix.LoadPreviousVersions(supportedVersionsPath);
248251
Logger.Information("Loaded previous supported versions with {Count} entries", previousSupportedVersions.Count);
249252

253+
// Derive baseline from supported_versions.json: the max tested version per package
254+
// acts as a floor to prevent cooldown filtering from downgrading previously accepted versions.
255+
// We collect all max tested versions per package (not just the global max) so that
256+
// split-range packages (e.g., GraphQL 4.x-6.x and 7.x-9.x) get a per-range baseline.
257+
var baseline = previousSupportedVersions
258+
.Where(kvp => kvp.Value.MaxVersionTestedInclusive is not null)
259+
.GroupBy(kvp => kvp.Key.PackageName)
260+
.ToDictionary(
261+
g => g.Key,
262+
g => g.Select(kvp => new Version(kvp.Value.MaxVersionTestedInclusive!)).ToList());
263+
Logger.Information("Derived version baseline with {Count} entries from supported_versions.json", baseline.Count);
264+
265+
// Resolve effective cooldown:
266+
// - Explicit --PackageVersionCooldownDays wins
267+
// - --IncludePackages without explicit cooldown defaults to 0
268+
var effectiveCooldownDays = PackageVersionCooldownDays ?? (IncludePackages is not null ? 0 : 2);
269+
250270
// Pipeline A: generate .g.props/.g.cs files
251-
var versionGenerator = new PackageVersionGenerator(TracerDirectory, testDir, shouldUpdatePackage, previousVersionCache);
271+
Logger.Information("Using package version cooldown of {Days} days", effectiveCooldownDays);
272+
var versionGenerator = new PackageVersionGenerator(TracerDirectory, testDir, shouldUpdatePackage, previousVersionCache, effectiveCooldownDays, baseline);
252273
var testedVersions = await versionGenerator.GenerateVersions(Solution);
253274
await NuGetVersionCache.Save(cacheFilePath, versionGenerator.VersionCache);
254275

276+
// Log version changes: bumps, unchanged, and overridden
277+
var versionCache = versionGenerator.VersionCache;
278+
var bumped = 0;
279+
var unchanged = 0;
280+
foreach (var tested in testedVersions)
281+
{
282+
var packageName = tested.NugetPackageSearchName;
283+
baseline.TryGetValue(packageName, out var previousMaxVersions);
284+
var previousMax = previousMaxVersions?
285+
.Where(v => v >= tested.MinVersion && v <= tested.MaxVersion)
286+
.OrderByDescending(v => v)
287+
.FirstOrDefault();
288+
289+
if (previousMax is null || tested.MaxVersion > previousMax)
290+
{
291+
bumped++;
292+
var publishedDate = "(unknown)";
293+
if (versionCache.TryGetValue(packageName, out var cachedVersions))
294+
{
295+
var match = cachedVersions.FirstOrDefault(v => v.Version == tested.MaxVersion.ToString());
296+
if (match?.Published is not null)
297+
{
298+
publishedDate = match.Published.Value.ToString("yyyy-MM-dd");
299+
}
300+
}
301+
302+
Logger.Information(
303+
" {Package} {Previous} -> {Current} (published {Date}, https://www.nuget.org/packages/{Package}/{Current})",
304+
packageName,
305+
previousMax?.ToString() ?? "(new)",
306+
tested.MaxVersion,
307+
publishedDate,
308+
packageName,
309+
tested.MaxVersion);
310+
}
311+
else
312+
{
313+
unchanged++;
314+
}
315+
}
316+
317+
Logger.Information("{Bumped} package(s) bumped, {Unchanged} unchanged", bumped, unchanged);
318+
319+
if (versionGenerator.CooldownReport.HasEntries)
320+
{
321+
Logger.Warning(
322+
"{Count} package version(s) were excluded due to the {Days}-day cooldown period",
323+
versionGenerator.CooldownReport.Entries.Count,
324+
effectiveCooldownDays);
325+
326+
foreach (var entry in versionGenerator.CooldownReport.Entries)
327+
{
328+
var resolvedText = entry.ResolvedVersion is not null ? $"using: {entry.ResolvedVersion}" : "skipped";
329+
Logger.Warning(
330+
" {Package} {Version} overridden (published {Date}, {Resolved})",
331+
entry.PackageName,
332+
entry.OverriddenVersion,
333+
entry.PublishedDate?.ToString("yyyy-MM-dd") ?? "unknown",
334+
resolvedText);
335+
}
336+
337+
var reportPath = TemporaryDirectory / "cooldown_report.md";
338+
await versionGenerator.CooldownReport.SaveToFile(reportPath);
339+
Logger.Information("Cooldown report saved to {Path}", reportPath);
340+
}
341+
255342
var assemblies = MonitoringHomeDirectory
256343
.GlobFiles("**/Datadog.Trace.dll")
257344
.Select(x => x.ToString())
@@ -260,6 +347,8 @@ partial class Build
260347
var integrations = GenerateIntegrationDefinitions.GetAllIntegrations(assemblies, definitionsFile);
261348

262349
// Pipeline B: generate dependabot files + supported_versions.json
350+
// TestedVersions are cooldown-filtered but the baseline prevents downgrades,
351+
// so they accurately reflect what we're testing.
263352
var distinctIntegrations = await DependabotFileManager.BuildDistinctIntegrationMaps(
264353
integrations, testedVersions, shouldUpdatePackage, previousSupportedVersions);
265354

0 commit comments

Comments
 (0)