Skip to content

Commit d2a784a

Browse files
dkurepadotnet-maestro[bot]premunCopilotpavel-purma
authored
[Production rollout] Rollout 2025 06 20 (#4989)
<!-- Link the GitHub or AzDO issue this pull request is associated with. Please copy and paste the full URL rather than using the dotnet/arcade-services# syntax --> #4988 --------- Co-authored-by: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Přemek Vysoký <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: Pavel Purma <[email protected]> Co-authored-by: Adam <[email protected]>
2 parents ae710fa + c7ea37b commit d2a784a

File tree

27 files changed

+454
-152
lines changed

27 files changed

+454
-152
lines changed

.config/dotnet-tools.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"isRoot": true,
44
"tools": {
55
"microsoft.dnceng.secretmanager": {
6-
"version": "1.1.0-beta.25230.4",
6+
"version": "1.1.0-beta.25316.1",
77
"commands": [
88
"secret-manager"
99
]
@@ -15,7 +15,7 @@
1515
]
1616
},
1717
"microsoft.dnceng.configuration.bootstrap": {
18-
"version": "1.1.0-beta.25230.4",
18+
"version": "1.1.0-beta.25316.1",
1919
"commands": [
2020
"bootstrap-dnceng-configuration"
2121
]

eng/Create-CodeflowGraphVizGraph.ps1

Lines changed: 85 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ param(
1616
[string]$OutputPath = "",
1717
[Parameter(Mandatory=$false, HelpMessage="Enable verbose output")]
1818
[Alias("v")]
19-
[switch]$VerboseScript
19+
[switch]$VerboseScript,
20+
[Parameter(Mandatory=$false, HelpMessage="SHA(s) to force display and highlight (comma-separated or array)")]
21+
[string[]]$HighlightedCommits = @()
2022
)
2123

2224
# This script loads Git commits from a specified repository and a VMR and generates a GraphViz diagram.
@@ -26,6 +28,9 @@ param(
2628
#
2729
# Example usage:
2830
# .\Create-CodeflowGraphVizGraph.ps1 -RepoPath "C:\path\to\repo" -VmrPath "C:\path\to\vmr" -OpenInBrowser -Depth 50
31+
#
32+
# To highlight specific commits (force display and visual highlighting):
33+
# .\Create-CodeflowGraphVizGraph.ps1 -RepoPath "C:\path\to\repo" -VmrPath "C:\path\to\vmr" -HighlightedCommits "abc1234","def5678" -OpenInBrowser
2934

3035
function Create-GraphVizDiagram {
3136
param (
@@ -38,6 +43,7 @@ function Create-GraphVizDiagram {
3843
[switch]$NoCollapse, # Disable collapsing feature entirely
3944
[string]$vmrRepoUrl = "", # Repository URL for VMR for clickable links
4045
[string]$repoUrl = "", # Repository URL for source repo for clickable links
46+
[string[]]$highlightedCommits = @(), # Array of SHA(s) to force display and highlight
4147
[switch]$Verbose
4248
)
4349

@@ -50,20 +56,31 @@ function Create-GraphVizDiagram {
5056
$diagram += "// Total Commits: $($vmrCommits.Count) vmr commits, $($repoCommits.Count) repo commits`n"
5157
$diagram += "// Cross-Repository Connections: $($crossRepoConnections.Count) connections found`n"
5258
$diagram += "// Collapse Threshold: $CollapseThreshold (NoCollapse: $NoCollapse)`n"
53-
$diagram += "// Note: Commit nodes are clickable and link to the repository`n`n" # Use a consistent prefix with the GraphViz diagram
59+
$diagram += "// Highlighted Commits: $($highlightedCommits.Count) commits forced to display and highlighted in orange`n"
60+
$diagram += "// Note: Commit nodes are clickable and link to the repository`n`n"
61+
# Use a consistent prefix with the GraphViz diagram
5462
$diagram += "digraph G {`n"
5563
$diagram += " rankdir=TB; // top to bottom flow overall`n"
5664
$diagram += " splines=false; // Straight arrows`n"
5765
$diagram += " outputorder=edgesfirst; // Nodes on top (covering arrows)`n"
5866
$diagram += " node [shape=box, style=filled, fillcolor=white, fontcolor=blue, fontname=`"Arial`", fontsize=10];`n`n"
59-
67+
6068
# First identify all commits involved in cross-repo references
6169
# It's important to mark both source and target commits in both repos as referenced
6270
# This ensures they won't be collapsed, which could break cross-repo connections
6371
$referencedVmrCommits = @{}
6472
$referencedRepoCommits = @{}
6573

66-
# First pass: identify all commits involved in any type of cross-repo connection
74+
# Create a set of highlighted commit SHAs (normalized for lookup)
75+
$highlightedCommitSHAs = @{}
76+
foreach ($sha in $highlightedCommits) {
77+
if ([string]::IsNullOrWhiteSpace($sha)) { continue }
78+
$normalizedSHA = $sha.Trim()
79+
$highlightedCommitSHAs[$normalizedSHA] = $true
80+
if ($Verbose) {
81+
Write-Host " Will highlight and force display of commit: $normalizedSHA" -ForegroundColor Magenta
82+
}
83+
} # First pass: identify all commits involved in any type of cross-repo connection
6784
foreach ($connection in $crossRepoConnections) {
6885
$referencedVmrCommits[$connection.VMRCommitSHA] = $true # Mark VMR commit as referenced
6986
$referencedRepoCommits[$connection.RepoCommitSHA] = $true # Mark repo commit as referenced
@@ -74,6 +91,27 @@ function Create-GraphVizDiagram {
7491
}
7592
}
7693

94+
# Second pass: mark highlighted commits as referenced to prevent them from being collapsed
95+
foreach ($vmrCommit in $vmrCommits) {
96+
if ($highlightedCommitSHAs.ContainsKey($vmrCommit.CommitSHA) -or
97+
$highlightedCommitSHAs.ContainsKey($vmrCommit.ShortSHA)) {
98+
$referencedVmrCommits[$vmrCommit.CommitSHA] = $true
99+
if ($Verbose) {
100+
Write-Host " Marking highlighted VMR commit $($vmrCommit.CommitSHA) as referenced (forced display)" -ForegroundColor Magenta
101+
}
102+
}
103+
}
104+
105+
foreach ($repoCommit in $repoCommits) {
106+
if ($highlightedCommitSHAs.ContainsKey($repoCommit.CommitSHA) -or
107+
$highlightedCommitSHAs.ContainsKey($repoCommit.ShortSHA)) {
108+
$referencedRepoCommits[$repoCommit.CommitSHA] = $true
109+
if ($Verbose) {
110+
Write-Host " Marking highlighted repo commit $($repoCommit.CommitSHA) as referenced (forced display)" -ForegroundColor Magenta
111+
}
112+
}
113+
}
114+
77115
# Process VMR commits - identify collapsible ranges
78116
$vmrCollapsibleRanges = @()
79117
$currentRange = @()
@@ -233,14 +271,28 @@ function Create-GraphVizDiagram {
233271
$nodeId = "repo___$shortSHA" # Prefix with repo___ to ensure valid GraphViz identifier
234272
$repoNodeIds += $nodeId
235273
if ($Verbose) { Write-Host " Repo Nodes: Added individual node ID '$nodeId' to `$repoNodeIds." -ForegroundColor DarkMagenta }
236-
237274
$diagram += " $nodeId [label=`"$shortSHA`""
238275

276+
# Check if this commit should be highlighted
277+
$isHighlighted = $highlightedCommitSHAs.ContainsKey($commit.CommitSHA) -or
278+
$highlightedCommitSHAs.ContainsKey($commit.ShortSHA)
279+
239280
# Create single commit link if repo URL is provided
240281
if ($repoUrl) {
241282
$commitUrl = "$repoUrl/commit/$($commit.CommitSHA)"
242-
$diagram += ", URL=`"$commitUrl`", target=`"_blank`", fontcolor=`"blue`", style=`"filled, bold`""
283+
$diagram += ", URL=`"$commitUrl`", target=`"_blank`""
243284
}
285+
286+
# Apply highlighting styles if this commit is highlighted
287+
if ($isHighlighted) {
288+
$diagram += ", fillcolor=`"orange`", fontcolor=`"black`", style=`"filled, bold`", penwidth=3"
289+
if ($Verbose) {
290+
Write-Host " Applied highlighting to repo commit $($commit.ShortSHA)" -ForegroundColor Magenta
291+
}
292+
} else {
293+
$diagram += ", fontcolor=`"blue`", style=`"filled, bold`""
294+
}
295+
244296
$diagram += "];`n"
245297
}
246298
}
@@ -318,15 +370,31 @@ function Create-GraphVizDiagram {
318370
$shortSHA = $commit.ShortSHA
319371
$nodeId = "vmr___$shortSHA" # Prefix with vmr___ to ensure valid GraphViz identifier
320372
$vmrNodeIds += $nodeId # Add ID of the individual node
321-
if ($Verbose) { Write-Host " VMR Nodes: Added individual node ID '$nodeId' to `$vmrNodeIds." -ForegroundColor DarkMagenta }
322-
373+
if ($Verbose) {
374+
Write-Host " VMR Nodes: Added individual node ID '$nodeId' to `$vmrNodeIds." -ForegroundColor DarkMagenta
375+
}
323376
$diagram += " $nodeId [label=`"$shortSHA`""
324377

378+
# Check if this commit should be highlighted
379+
$isHighlighted = $highlightedCommitSHAs.ContainsKey($commit.CommitSHA) -or
380+
$highlightedCommitSHAs.ContainsKey($commit.ShortSHA)
381+
325382
# Create single commit link if repo URL is provided
326383
if ($vmrRepoUrl) {
327384
$commitUrl = "$vmrRepoUrl/commit/$($commit.CommitSHA)"
328-
$diagram += ", URL=`"$commitUrl`", target=`"_blank`", fontcolor=`"blue`", style=`"filled, bold`""
385+
$diagram += ", URL=`"$commitUrl`", target=`"_blank`""
329386
}
387+
388+
# Apply highlighting styles if this commit is highlighted
389+
if ($isHighlighted) {
390+
$diagram += ", fillcolor=`"orange`", fontcolor=`"black`", style=`"filled, bold`", penwidth=3"
391+
if ($Verbose) {
392+
Write-Host " Applied highlighting to VMR commit $($commit.ShortSHA)" -ForegroundColor Magenta
393+
}
394+
} else {
395+
$diagram += ", fontcolor=`"blue`", style=`"filled, bold`""
396+
}
397+
330398
$diagram += "];`n"
331399
}
332400
}
@@ -476,9 +544,11 @@ function Create-GraphVizDiagram {
476544
if ($Verbose) { Write-Host " Skipping duplicate connection from '$finalSourceNodeId' to '$finalTargetNodeId'" -ForegroundColor DarkGray }
477545
}
478546
} else {
479-
Write-Host " Skipping $($connection.ConnectionType) connection: Source '$finalSourceNodeId' (from SHA $actualSourceCommitSHA) or Target '$finalTargetNodeId' (from SHA $actualTargetCommitSHA) not found in generated graph node ID lists." -ForegroundColor Red
480-
if (-not $sourceNodeExists) { Write-Host " Source Node ID '$finalSourceNodeId' (for SHA $actualSourceCommitSHA) NOT found in its respective graph node list." }
481-
if (-not $targetNodeExists) { Write-Host " Target Node ID '$finalTargetNodeId' (for SHA $actualTargetCommitSHA) NOT found in its respective graph node list." }
547+
if ($Verbose) {
548+
Write-Host " Skipping $($connection.ConnectionType) connection: Source '$finalSourceNodeId' (from SHA $actualSourceCommitSHA) or Target '$finalTargetNodeId' (from SHA $actualTargetCommitSHA) not found in generated graph node ID lists." -ForegroundColor DarkYellow
549+
if (-not $sourceNodeExists) { Write-Host " Source Node ID '$finalSourceNodeId' (for SHA $actualSourceCommitSHA) NOT found in its respective graph node list." }
550+
if (-not $targetNodeExists) { Write-Host " Target Node ID '$finalTargetNodeId' (for SHA $actualTargetCommitSHA) NOT found in its respective graph node list." }
551+
}
482552
}
483553
$crossRepoLinkIndex++
484554
}
@@ -836,7 +906,7 @@ function Get-MaxVmrDepth {
836906
Write-Host " Could not analyze VMR commit $($sourceSha.ShortSourceSHA): $_" -ForegroundColor Red
837907
}
838908

839-
Write-Error " Could not find matching VMR commit range. Make sure to check out the right branches and pull" -ForegroundColor Red
909+
Write-Host " Could not find matching VMR commit range. Make sure to check out the right branches and pull" -ForegroundColor Red
840910
return 100
841911
}
842912

@@ -1389,9 +1459,7 @@ try {
13891459
Write-Host "Source repository URL: $sourceRepoUrl" -ForegroundColor Green
13901460
} else {
13911461
Write-Host "Could not determine source repository URL" -ForegroundColor Yellow
1392-
}
1393-
1394-
# Create Mermaid diagram with cross-repository connections
1462+
} # Create Mermaid diagram with cross-repository connections
13951463
$diagramParams = @{
13961464
vmrCommits = $vmrCommits
13971465
repoCommits = $repoCommits
@@ -1401,6 +1469,7 @@ try {
14011469
collapseThreshold = $CollapseThreshold
14021470
vmrRepoUrl = $vmrRepoUrl
14031471
repoUrl = $sourceRepoUrl
1472+
highlightedCommits = $HighlightedCommits
14041473
}
14051474

14061475
# Add the NoCollapse parameter if it was provided

eng/Version.Details.xml

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -59,37 +59,37 @@
5959
</Dependency>
6060
</ProductDependencies>
6161
<ToolsetDependencies>
62-
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="8.0.0-beta.25264.2">
62+
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="8.0.0-beta.25310.3">
6363
<Uri>https://github.com/dotnet/arcade</Uri>
64-
<Sha>983d15077d88cfed26837e40e8f984fdee5d1715</Sha>
64+
<Sha>2ce3f8c7b2614c2b19985b669ffcd934bc39ffd1</Sha>
6565
</Dependency>
66-
<Dependency Name="Microsoft.DotNet.SignTool" Version="8.0.0-beta.25264.2">
66+
<Dependency Name="Microsoft.DotNet.SignTool" Version="8.0.0-beta.25310.3">
6767
<Uri>https://github.com/dotnet/arcade</Uri>
68-
<Sha>983d15077d88cfed26837e40e8f984fdee5d1715</Sha>
68+
<Sha>2ce3f8c7b2614c2b19985b669ffcd934bc39ffd1</Sha>
6969
</Dependency>
70-
<Dependency Name="Microsoft.DotNet.Build.Tasks.Feed" Version="8.0.0-beta.25264.2">
70+
<Dependency Name="Microsoft.DotNet.Build.Tasks.Feed" Version="8.0.0-beta.25310.3">
7171
<Uri>https://github.com/dotnet/arcade</Uri>
72-
<Sha>983d15077d88cfed26837e40e8f984fdee5d1715</Sha>
72+
<Sha>2ce3f8c7b2614c2b19985b669ffcd934bc39ffd1</Sha>
7373
</Dependency>
74-
<Dependency Name="Microsoft.DotNet.SwaggerGenerator.MSBuild" Version="8.0.0-beta.25264.2">
74+
<Dependency Name="Microsoft.DotNet.SwaggerGenerator.MSBuild" Version="8.0.0-beta.25310.3">
7575
<Uri>https://github.com/dotnet/arcade</Uri>
76-
<Sha>983d15077d88cfed26837e40e8f984fdee5d1715</Sha>
76+
<Sha>2ce3f8c7b2614c2b19985b669ffcd934bc39ffd1</Sha>
7777
</Dependency>
78-
<Dependency Name="Microsoft.DotNet.Git.IssueManager" Version="8.0.0-beta.25264.2">
78+
<Dependency Name="Microsoft.DotNet.Git.IssueManager" Version="8.0.0-beta.25310.3">
7979
<Uri>https://github.com/dotnet/arcade</Uri>
80-
<Sha>983d15077d88cfed26837e40e8f984fdee5d1715</Sha>
80+
<Sha>2ce3f8c7b2614c2b19985b669ffcd934bc39ffd1</Sha>
8181
</Dependency>
82-
<Dependency Name="Microsoft.DotNet.VersionTools" Version="8.0.0-beta.25264.2">
82+
<Dependency Name="Microsoft.DotNet.VersionTools" Version="8.0.0-beta.25310.3">
8383
<Uri>https://github.com/dotnet/arcade</Uri>
84-
<Sha>983d15077d88cfed26837e40e8f984fdee5d1715</Sha>
84+
<Sha>2ce3f8c7b2614c2b19985b669ffcd934bc39ffd1</Sha>
8585
</Dependency>
86-
<Dependency Name="Microsoft.DncEng.SecretManager" Version="1.1.0-beta.25230.4">
86+
<Dependency Name="Microsoft.DncEng.SecretManager" Version="1.1.0-beta.25316.1">
8787
<Uri>https://github.com/dotnet/dnceng</Uri>
88-
<Sha>ed2558e32b8c7b92615a37c02369e88b27933738</Sha>
88+
<Sha>afee574fc3670abbbfdb9d32ffbd5a334cc2a412</Sha>
8989
</Dependency>
90-
<Dependency Name="Microsoft.DncEng.Configuration.Bootstrap" Version="1.1.0-beta.25230.4">
90+
<Dependency Name="Microsoft.DncEng.Configuration.Bootstrap" Version="1.1.0-beta.25316.1">
9191
<Uri>https://github.com/dotnet/dnceng</Uri>
92-
<Sha>ed2558e32b8c7b92615a37c02369e88b27933738</Sha>
92+
<Sha>afee574fc3670abbbfdb9d32ffbd5a334cc2a412</Sha>
9393
</Dependency>
9494
</ToolsetDependencies>
9595
</Dependencies>

eng/Versions.props

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@
99
<UsingToolNetFrameworkReferenceAssemblies>true</UsingToolNetFrameworkReferenceAssemblies>
1010
<MicrosoftNetFrameworkReferenceAssembliesVersion>1.0.0-preview.1</MicrosoftNetFrameworkReferenceAssembliesVersion>
1111
<!-- Libs -->
12-
<MicrosoftDotNetSignToolVersion>8.0.0-beta.25264.2</MicrosoftDotNetSignToolVersion>
13-
<MicrosoftDotNetBuildTasksFeedVersion>8.0.0-beta.25264.2</MicrosoftDotNetBuildTasksFeedVersion>
14-
<MicrosoftDotNetSwaggerGeneratorMSBuildVersion>8.0.0-beta.25264.2</MicrosoftDotNetSwaggerGeneratorMSBuildVersion>
15-
<MicrosoftDotNetGitIssueManagerVersion>8.0.0-beta.25264.2</MicrosoftDotNetGitIssueManagerVersion>
16-
<MicrosoftDotNetVersionToolsVersion>8.0.0-beta.25264.2</MicrosoftDotNetVersionToolsVersion>
12+
<MicrosoftDotNetSignToolVersion>8.0.0-beta.25310.3</MicrosoftDotNetSignToolVersion>
13+
<MicrosoftDotNetBuildTasksFeedVersion>8.0.0-beta.25310.3</MicrosoftDotNetBuildTasksFeedVersion>
14+
<MicrosoftDotNetSwaggerGeneratorMSBuildVersion>8.0.0-beta.25310.3</MicrosoftDotNetSwaggerGeneratorMSBuildVersion>
15+
<MicrosoftDotNetGitIssueManagerVersion>8.0.0-beta.25310.3</MicrosoftDotNetGitIssueManagerVersion>
16+
<MicrosoftDotNetVersionToolsVersion>8.0.0-beta.25310.3</MicrosoftDotNetVersionToolsVersion>
1717
<MicrosoftNetTestSdkVersion>17.4.1</MicrosoftNetTestSdkVersion>
1818
<MicrosoftDotNetInternalLoggingVersion>1.1.0-beta.25215.1</MicrosoftDotNetInternalLoggingVersion>
1919
<MicrosoftAspNetCoreApiPaginationVersion>1.1.0-beta.25215.1</MicrosoftAspNetCoreApiPaginationVersion>
@@ -32,8 +32,8 @@
3232
<MicrosoftDotNetMetricsVersion>1.1.0-beta.25052.1</MicrosoftDotNetMetricsVersion>
3333
<MicrosoftDotNetServicesUtilityVersion>1.1.0-beta.25215.1</MicrosoftDotNetServicesUtilityVersion>
3434
<MicrosoftDotNetWebAuthenticationVersion>1.1.0-beta.25053.1</MicrosoftDotNetWebAuthenticationVersion>
35-
<MicrosoftDncEngSecretManagerVersion>1.1.0-beta.25230.4</MicrosoftDncEngSecretManagerVersion>
36-
<MicrosoftDncEngConfigurationBootstrapVersion>1.1.0-beta.25230.4</MicrosoftDncEngConfigurationBootstrapVersion>
35+
<MicrosoftDncEngSecretManagerVersion>1.1.0-beta.25316.1</MicrosoftDncEngSecretManagerVersion>
36+
<MicrosoftDncEngConfigurationBootstrapVersion>1.1.0-beta.25316.1</MicrosoftDncEngConfigurationBootstrapVersion>
3737
</PropertyGroup>
3838
<!--Package names-->
3939
<PropertyGroup>

global.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@
1515
}
1616
},
1717
"msbuild-sdks": {
18-
"Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25264.2"
18+
"Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25310.3"
1919
}
2020
}

src/Maestro/Maestro.MergePolicies/DependencyUpdateSummary.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public class DependencyUpdateSummary
2626

2727
public DependencyUpdateSummary(DependencyUpdate du)
2828
{
29-
DependencyName = du.To?.Name;
29+
DependencyName = du.DependencyName;
3030
FromVersion = du.From?.Version;
3131
ToVersion = du.To?.Version;
3232
FromCommitSha = du.From?.Commit;

src/Maestro/Maestro.MergePolicyEvaluation/MergePolicyEvaluationResult.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,5 @@ public MergePolicyEvaluationResult(MergePolicyEvaluationStatus status, string ti
2121
public string Message { get; }
2222
public string MergePolicyName { get; }
2323
public string MergePolicyDisplayName { get; }
24+
public bool IsCachedResult { get; set; } = false;
2425
}

src/Microsoft.DotNet.Darc/DarcLib/GitHubClient.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -492,6 +492,12 @@ public async Task CreateOrUpdatePullRequestMergeStatusInfoAsync(string pullReque
492492
foreach (var updatedCheckRun in toBeUpdated)
493493
{
494494
MergePolicyEvaluationResult eval = evaluations.Last(e => updatedCheckRun.ExternalId == CheckRunId(e, prSha));
495+
if (eval.IsCachedResult)
496+
{
497+
_logger.LogInformation("Not updating check run {checkRunId} for PR {pullRequestUrl} because the merge policy was not re-evaluated.",
498+
updatedCheckRun.ExternalId, pullRequestUrl);
499+
continue;
500+
}
495501
CheckRunUpdate newCheckRunUpdateValidation = CheckRunForUpdate(eval);
496502
await client.Check.Run.Update(owner, repo, updatedCheckRun.Id, newCheckRunUpdateValidation);
497503
}

0 commit comments

Comments
 (0)