Skip to content

Commit fcf0bae

Browse files
dkurepapremundotnet-maestro[bot]meghnaveadamzip
authored
[rollout] Rollout issue 2025-05-06 (#4804)
<!-- 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 --> #4803 --------- Co-authored-by: Přemek Vysoký <[email protected]> Co-authored-by: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: meghnave <[email protected]> Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Adam <[email protected]>
2 parents c80027e + 06b5013 commit fcf0bae

File tree

46 files changed

+430
-317
lines changed

Some content is hidden

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

46 files changed

+430
-317
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.25210.1",
6+
"version": "1.1.0-beta.25230.4",
77
"commands": [
88
"secret-manager"
99
]
@@ -15,7 +15,7 @@
1515
]
1616
},
1717
"microsoft.dnceng.configuration.bootstrap": {
18-
"version": "1.1.0-beta.25210.1",
18+
"version": "1.1.0-beta.25230.4",
1919
"commands": [
2020
"bootstrap-dnceng-configuration"
2121
]

azure-pipeline-weekly.yml renamed to azure-pipelines-daily.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ appendCommitMessageToRunName: false
44
trigger: none
55

66
schedules:
7-
- cron: 0 6 * * 1,4
8-
displayName: Every Monday and Thursday morning
7+
- cron: 0 6 * * *
8+
displayName: Every morning
99
branches:
1010
include:
1111
- main

azure-pipelines.yml

Lines changed: 2 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -122,41 +122,15 @@ extends:
122122
configuration: $(_BuildConfig)
123123
buildArgs: $(_InternalBuildArgs)
124124

125-
- task: ComponentGovernanceComponentDetection@0
126-
displayName: Component Governance Detection
127-
inputs:
128-
# `.packages` directory is used by some tools running during build.
129-
# By default ComponentDetection scans this directory and sometimes reports
130-
# vulnerabilities for packages that are not part of the published product.
131-
# We can ignore this directory because actual vulnerabilities
132-
# that we are interested in will be found by the tool
133-
# when scanning .csproj and package.json files.
134-
ignoreDirectories: .packages
135-
136-
- task: CopyFiles@2
137-
displayName: Prepare E2E Tests
138-
inputs:
139-
sourceFolder: $(Build.SourcesDirectory)\artifacts\bin\ProductConstructionService.ScenarioTests\$(_BuildConfig)\net8.0\publish
140-
contents: '*'
141-
targetFolder: $(Build.ArtifactStagingDirectory)\ProductConstructionService.ScenarioTests
142-
143-
- task: CopyFiles@2
144-
displayName: Prepare PCS CLI
145-
inputs:
146-
sourceFolder: $(Build.SourcesDirectory)\artifacts\bin\ProductConstructionService.Cli\$(_BuildConfig)\net8.0
147-
contents: '*'
148-
targetFolder: $(Build.ArtifactStagingDirectory)\ProductConstructionService.Cli
149-
150125
templateContext:
151-
outputParentDirectory: $(Build.ArtifactStagingDirectory)
152126
outputs:
153127
- output: pipelineArtifact
154-
path: $(Build.ArtifactStagingDirectory)\ProductConstructionService.ScenarioTests
128+
path: $(Build.SourcesDirectory)\artifacts\bin\ProductConstructionService.ScenarioTests\$(_BuildConfig)\net8.0\publish
155129
artifact: ProductConstructionService.ScenarioTests
156130
displayName: Publish E2E Tests
157131

158132
- output: pipelineArtifact
159-
path: $(Build.ArtifactStagingDirectory)\ProductConstructionService.Cli
133+
path: $(Build.SourcesDirectory)\artifacts\bin\ProductConstructionService.Cli\$(_BuildConfig)\net8.0
160134
artifact: ProductConstructionService.Cli
161135
displayName: Publish PCS CLI
162136

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.25225.5">
62+
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="8.0.0-beta.25230.1">
6363
<Uri>https://github.com/dotnet/arcade</Uri>
64-
<Sha>d3c4c4644a5af855cd30944d9221886369ab375d</Sha>
64+
<Sha>4246a31e5de9de87f760218c4f588cebf4661f45</Sha>
6565
</Dependency>
66-
<Dependency Name="Microsoft.DotNet.SignTool" Version="8.0.0-beta.25225.5">
66+
<Dependency Name="Microsoft.DotNet.SignTool" Version="8.0.0-beta.25230.1">
6767
<Uri>https://github.com/dotnet/arcade</Uri>
68-
<Sha>d3c4c4644a5af855cd30944d9221886369ab375d</Sha>
68+
<Sha>4246a31e5de9de87f760218c4f588cebf4661f45</Sha>
6969
</Dependency>
70-
<Dependency Name="Microsoft.DotNet.Build.Tasks.Feed" Version="8.0.0-beta.25225.5">
70+
<Dependency Name="Microsoft.DotNet.Build.Tasks.Feed" Version="8.0.0-beta.25230.1">
7171
<Uri>https://github.com/dotnet/arcade</Uri>
72-
<Sha>d3c4c4644a5af855cd30944d9221886369ab375d</Sha>
72+
<Sha>4246a31e5de9de87f760218c4f588cebf4661f45</Sha>
7373
</Dependency>
74-
<Dependency Name="Microsoft.DotNet.SwaggerGenerator.MSBuild" Version="8.0.0-beta.25225.5">
74+
<Dependency Name="Microsoft.DotNet.SwaggerGenerator.MSBuild" Version="8.0.0-beta.25230.1">
7575
<Uri>https://github.com/dotnet/arcade</Uri>
76-
<Sha>d3c4c4644a5af855cd30944d9221886369ab375d</Sha>
76+
<Sha>4246a31e5de9de87f760218c4f588cebf4661f45</Sha>
7777
</Dependency>
78-
<Dependency Name="Microsoft.DotNet.Git.IssueManager" Version="8.0.0-beta.25225.5">
78+
<Dependency Name="Microsoft.DotNet.Git.IssueManager" Version="8.0.0-beta.25230.1">
7979
<Uri>https://github.com/dotnet/arcade</Uri>
80-
<Sha>d3c4c4644a5af855cd30944d9221886369ab375d</Sha>
80+
<Sha>4246a31e5de9de87f760218c4f588cebf4661f45</Sha>
8181
</Dependency>
82-
<Dependency Name="Microsoft.DotNet.VersionTools" Version="8.0.0-beta.25225.5">
82+
<Dependency Name="Microsoft.DotNet.VersionTools" Version="8.0.0-beta.25230.1">
8383
<Uri>https://github.com/dotnet/arcade</Uri>
84-
<Sha>d3c4c4644a5af855cd30944d9221886369ab375d</Sha>
84+
<Sha>4246a31e5de9de87f760218c4f588cebf4661f45</Sha>
8585
</Dependency>
86-
<Dependency Name="Microsoft.DncEng.SecretManager" Version="1.1.0-beta.25210.1">
86+
<Dependency Name="Microsoft.DncEng.SecretManager" Version="1.1.0-beta.25230.4">
8787
<Uri>https://github.com/dotnet/dnceng</Uri>
88-
<Sha>0739156bc104488929519bb9cf1873ba359fbdbf</Sha>
88+
<Sha>ed2558e32b8c7b92615a37c02369e88b27933738</Sha>
8989
</Dependency>
90-
<Dependency Name="Microsoft.DncEng.Configuration.Bootstrap" Version="1.1.0-beta.25210.1">
90+
<Dependency Name="Microsoft.DncEng.Configuration.Bootstrap" Version="1.1.0-beta.25230.4">
9191
<Uri>https://github.com/dotnet/dnceng</Uri>
92-
<Sha>0739156bc104488929519bb9cf1873ba359fbdbf</Sha>
92+
<Sha>ed2558e32b8c7b92615a37c02369e88b27933738</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.25225.5</MicrosoftDotNetSignToolVersion>
13-
<MicrosoftDotNetBuildTasksFeedVersion>8.0.0-beta.25225.5</MicrosoftDotNetBuildTasksFeedVersion>
14-
<MicrosoftDotNetSwaggerGeneratorMSBuildVersion>8.0.0-beta.25225.5</MicrosoftDotNetSwaggerGeneratorMSBuildVersion>
15-
<MicrosoftDotNetGitIssueManagerVersion>8.0.0-beta.25225.5</MicrosoftDotNetGitIssueManagerVersion>
16-
<MicrosoftDotNetVersionToolsVersion>8.0.0-beta.25225.5</MicrosoftDotNetVersionToolsVersion>
12+
<MicrosoftDotNetSignToolVersion>8.0.0-beta.25230.1</MicrosoftDotNetSignToolVersion>
13+
<MicrosoftDotNetBuildTasksFeedVersion>8.0.0-beta.25230.1</MicrosoftDotNetBuildTasksFeedVersion>
14+
<MicrosoftDotNetSwaggerGeneratorMSBuildVersion>8.0.0-beta.25230.1</MicrosoftDotNetSwaggerGeneratorMSBuildVersion>
15+
<MicrosoftDotNetGitIssueManagerVersion>8.0.0-beta.25230.1</MicrosoftDotNetGitIssueManagerVersion>
16+
<MicrosoftDotNetVersionToolsVersion>8.0.0-beta.25230.1</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.25210.1</MicrosoftDncEngSecretManagerVersion>
36-
<MicrosoftDncEngConfigurationBootstrapVersion>1.1.0-beta.25210.1</MicrosoftDncEngConfigurationBootstrapVersion>
35+
<MicrosoftDncEngSecretManagerVersion>1.1.0-beta.25230.4</MicrosoftDncEngSecretManagerVersion>
36+
<MicrosoftDncEngConfigurationBootstrapVersion>1.1.0-beta.25230.4</MicrosoftDncEngConfigurationBootstrapVersion>
3737
</PropertyGroup>
3838
<!--Package names-->
3939
<PropertyGroup>

eng/common/templates-official/jobs/source-build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ parameters:
1414
# This is the default platform provided by Arcade, intended for use by a managed-only repo.
1515
defaultManagedPlatform:
1616
name: 'Managed'
17-
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8'
17+
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream-9-amd64'
1818

1919
# Defines the platforms on which to run build jobs. One job is created for each platform, and the
2020
# object in this array is sent to the job template as 'platform'. If no platforms are specified,

eng/common/templates/jobs/source-build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ parameters:
1414
# This is the default platform provided by Arcade, intended for use by a managed-only repo.
1515
defaultManagedPlatform:
1616
name: 'Managed'
17-
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8'
17+
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream-9-amd64'
1818

1919
# Defines the platforms on which to run build jobs. One job is created for each platform, and the
2020
# object in this array is sent to the job template as 'platform'. If no platforms are specified,

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.25225.5"
18+
"Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25230.1"
1919
}
2020
}

src/Maestro/Maestro.DataProviders/SqlBarClient.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,7 @@ private Subscription ToClientModelSubscription(Data.Models.Subscription other)
294294
};
295295
}
296296

297-
private Build ToClientModelBuild(Data.Models.Build other)
297+
public static Build ToClientModelBuild(Data.Models.Build other)
298298
{
299299
var channels = other.BuildChannels?
300300
.Select(bc => ToClientModelChannel(bc.Channel))
@@ -336,7 +336,7 @@ private Build ToClientModelBuild(Data.Models.Build other)
336336
};
337337
}
338338

339-
private BuildRef ToClientModelBuildDependency(Data.Models.BuildDependency other)
339+
private static BuildRef ToClientModelBuildDependency(Data.Models.BuildDependency other)
340340
=> new(other.BuildId, other.IsProduct, other.TimeToInclusionInMinutes);
341341

342342
private static SubscriptionPolicy ToClientModelSubscriptionPolicy(Data.Models.SubscriptionPolicy other)
@@ -374,6 +374,7 @@ public async Task<Build> GetBuildAsync(int buildId)
374374
.Include(b => b.BuildChannels)
375375
.ThenInclude(b => b.Channel)
376376
.Include(b => b.Assets)
377+
.ThenInclude(b => b.Locations)
377378
.FirstOrDefaultAsync();
378379

379380
if (build != null)

src/Maestro/Maestro.MergePolicies/AllChecksSuccessfulMergePolicy.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ public AllChecksSuccessfulMergePolicy(HashSet<string> ignoreChecks)
2626

2727
public override string DisplayName => "All Checks Successful";
2828

29+
public override string Name => "AllChecksSuccessful";
30+
2931
public override async Task<MergePolicyEvaluationResult> EvaluateAsync(PullRequestUpdateSummary pr, IRemote darc)
3032
{
3133
IEnumerable<Check> checks = await darc.GetPullRequestChecksAsync(pr.Url);

src/Maestro/Maestro.MergePolicies/BackFlowMergePolicy.cs

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ This could be due to a temporary exception and may be resolved automatically wit
6363
if (configurationErrors.Any())
6464
{
6565
string failureMessage = string.Concat(
66-
configurationErrorsHeader,
66+
ConfigurationErrorsHeader,
6767
string.Join(Environment.NewLine, configurationErrors),
6868
SeekHelpMsg);
6969
return FailDecisively($"Missing or mismatched values found in `{VersionFiles.VersionDetailsXml}`", failureMessage);
@@ -117,14 +117,3 @@ private static List<string> CalculateConfigurationErrors(
117117
return configurationErrors;
118118
}
119119
}
120-
121-
public class BackFlowMergePolicyBuilder : IMergePolicyBuilder
122-
{
123-
public string Name => MergePolicyConstants.BackFlowMergePolicyName;
124-
125-
public Task<IReadOnlyList<IMergePolicy>> BuildMergePoliciesAsync(MergePolicyProperties properties, PullRequestUpdateSummary pr)
126-
{
127-
return Task.FromResult<IReadOnlyList<IMergePolicy>>([new BackFlowMergePolicy()]);
128-
}
129-
}
130-

src/Maestro/Maestro.MergePolicies/CodeFlowMergePolicy.cs

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,22 @@
11
// Licensed to the .NET Foundation under one or more agreements.
22
// The .NET Foundation licenses this file to you under the MIT license.
33

4+
using System;
5+
using System.Collections.Generic;
6+
using System.Threading.Tasks;
7+
using Maestro.MergePolicyEvaluation;
8+
using Microsoft.DotNet.DarcLib;
49
using Microsoft.DotNet.DarcLib.Helpers;
510
using Microsoft.DotNet.DarcLib.VirtualMonoRepo;
611

712
namespace Maestro.MergePolicies;
8-
internal abstract class CodeFlowMergePolicy : MergePolicy
13+
internal class CodeFlowMergePolicy : MergePolicy
914
{
1015
public override string DisplayName => "Code flow verification";
1116

12-
protected static readonly string configurationErrorsHeader = """
17+
public override string Name => "CodeFlow";
18+
19+
protected static readonly string ConfigurationErrorsHeader = """
1320
### :x: Check Failed
1421
1522
The following error(s) were encountered:
@@ -29,4 +36,26 @@ The following error(s) were encountered:
2936
- [opening an issue](https://github.com/dotnet/arcade-services/issues/new?template=BLANK_ISSUE) in the dotnet/arcade-services repo
3037
- contacting the [.NET Product Construction Services team via e-mail](mailto:[email protected]).
3138
""";
39+
40+
public override async Task<MergePolicyEvaluationResult> EvaluateAsync(PullRequestUpdateSummary pr, IRemote darc)
41+
{
42+
CodeFlowMergePolicy mergePolicy = pr.CodeFlowDirection switch
43+
{
44+
CodeFlowDirection.BackFlow => new BackFlowMergePolicy(),
45+
CodeFlowDirection.ForwardFlow => new ForwardFlowMergePolicy(),
46+
_ => throw new ArgumentException("PR is not a codeflow PR, can't evaluate CodeFlow Merge Policy"),
47+
};
48+
49+
return await mergePolicy.EvaluateAsync(pr, darc);
50+
}
51+
}
52+
53+
public class CodeFlowMergePolicyBuilder : IMergePolicyBuilder
54+
{
55+
public string Name => MergePolicyConstants.CodeflowMergePolicyName;
56+
57+
public Task<IReadOnlyList<IMergePolicy>> BuildMergePoliciesAsync(MergePolicyProperties properties, PullRequestUpdateSummary pr)
58+
{
59+
return Task.FromResult<IReadOnlyList<IMergePolicy>>([new CodeFlowMergePolicy()]);
60+
}
3261
}

src/Maestro/Maestro.MergePolicies/DontAutomergeDowngradesMergePolicy.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ public class DontAutomergeDowngradesMergePolicy : MergePolicy
1414
{
1515
public override string DisplayName => "Do not automerge downgrades";
1616

17+
public override string Name => "DontAutomergeDowngrades";
18+
1719
public override Task<MergePolicyEvaluationResult> EvaluateAsync(PullRequestUpdateSummary pr, IRemote darc)
1820
{
1921
try

src/Maestro/Maestro.MergePolicies/ForwardFlowMergePolicy.cs

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public override async Task<MergePolicyEvaluationResult> EvaluateAsync(PullReques
4343
if (configurationErrors.Any())
4444
{
4545
string failureMessage = string.Concat(
46-
configurationErrorsHeader,
46+
ConfigurationErrorsHeader,
4747
string.Join(Environment.NewLine, configurationErrors),
4848
SeekHelpMsg);
4949
return FailDecisively($"Missing or mismatched values found in {VmrInfo.DefaultRelativeSourceManifestPath}", failureMessage);
@@ -126,13 +126,3 @@ private static bool TryCreateCommitShaDictionaryFromSourceManifest(SourceManifes
126126
}
127127
}
128128

129-
public class ForwardFlowMergePolicyBuilder : IMergePolicyBuilder
130-
{
131-
public string Name => MergePolicyConstants.ForwardFlowMergePolicyName;
132-
133-
public Task<IReadOnlyList<IMergePolicy>> BuildMergePoliciesAsync(MergePolicyProperties properties, PullRequestUpdateSummary pr)
134-
{
135-
return Task.FromResult<IReadOnlyList<IMergePolicy>>([new ForwardFlowMergePolicy()]);
136-
}
137-
}
138-

src/Maestro/Maestro.MergePolicies/MergePolicy.cs

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -32,19 +32,7 @@ public T Get<T>(string key)
3232

3333
public abstract class MergePolicy : IMergePolicy
3434
{
35-
public string Name
36-
{
37-
get
38-
{
39-
string name = GetType().Name;
40-
if (name.EndsWith(nameof(MergePolicy)))
41-
{
42-
name = name.Substring(0, name.Length - nameof(MergePolicy).Length);
43-
}
44-
45-
return name;
46-
}
47-
}
35+
public abstract string Name { get; }
4836

4937
public abstract string DisplayName { get; }
5038

src/Maestro/Maestro.MergePolicies/MergePolicyServiceCollectionExtensions.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ public static IServiceCollection AddMergePolicies(this IServiceCollection servic
1414
services.AddTransient<IMergePolicyBuilder, DontAutomergeDowngradesMergePolicyBuilder>();
1515
services.AddTransient<IMergePolicyBuilder, StandardMergePolicyBuilder>();
1616
services.AddTransient<IMergePolicyBuilder, ValidateCoherencyMergePolicyBuilder>();
17+
services.AddTransient<IMergePolicyBuilder, CodeFlowMergePolicyBuilder>();
1718
return services;
1819
}
1920
}

src/Maestro/Maestro.MergePolicies/NoRequestedChangesMergePolicy.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ public class NoRequestedChangesMergePolicy : MergePolicy
1414
{
1515
public override string DisplayName => "No Requested Changes";
1616

17+
public override string Name => "NoRequestedChanges";
18+
1719
public override async Task<MergePolicyEvaluationResult> EvaluateAsync(PullRequestUpdateSummary pr, IRemote darc)
1820
{
1921
IEnumerable<Review> reviews = await darc.GetPullRequestReviewsAsync(pr.Url);

0 commit comments

Comments
 (0)