From c0312872fd5f21779f70ebe9b43c1614572de39b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Jare=C5=A1?= Date: Wed, 4 Sep 2024 12:05:17 +0200 Subject: [PATCH 001/193] fixes --- Directory.Packages.props | 23 +- NuGet.config | 1 + eng/Versions.props | 2 +- src/Cli/dotnet/Class1.cs | 334 ++++++++++++++++++ src/Cli/dotnet/Properties/launchSettings.json | 11 +- .../commands/dotnet-test/CustomEventArgs.cs | 2 +- .../dotnet-test/MSBuildConnectionHandler.cs | 1 + .../commands/dotnet-test/TestApplication.cs | 2 +- .../dotnet-test/TestingPlatformCommand.cs | 85 ++++- src/Cli/dotnet/dotnet.csproj | 1 + 10 files changed, 442 insertions(+), 20 deletions(-) create mode 100644 src/Cli/dotnet/Class1.cs diff --git a/Directory.Packages.props b/Directory.Packages.props index bc6204e13b19..976ef0a8aa5f 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -1,10 +1,9 @@ - + $(NoWarn);NU1507 - @@ -12,7 +11,7 @@ - + @@ -43,7 +42,7 @@ - + @@ -63,6 +62,7 @@ + @@ -95,11 +95,11 @@ - - - - - + + + + + @@ -119,9 +119,8 @@ - + - + diff --git a/eng/Versions.props b/eng/Versions.props index 18c89b5250f7..0c312f8703f8 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -77,7 +77,7 @@ 2.0.3 13.0.3 4.8.6 - 1.2.0-beta.435 + 1.2.0-beta.507 4.0.5 2.0.0-beta4.24324.3 0.4.0-alpha.24324.3 diff --git a/src/Cli/dotnet/Class1.cs b/src/Cli/dotnet/Class1.cs new file mode 100644 index 000000000000..3497a9c31b9b --- /dev/null +++ b/src/Cli/dotnet/Class1.cs @@ -0,0 +1,334 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +#pragma warning disable CA1837 // Use 'Environment.ProcessId' +#pragma warning disable CA1416 // Validate platform compatibility + +using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; +using System.Globalization; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Runtime.InteropServices.ComTypes; + +namespace Microsoft.Testing.TestInfrastructure; + +public class DebuggerUtility +{ + public static bool AttachCurrentProcessToParentVSProcess(bool enableLog = false) => AttachVSToProcess(Process.GetCurrentProcess().Id, null, enableLog); + + public static bool AttachCurrentProcessToVSProcessPID(int vsProcessPid, bool enableLog = false) => AttachVSToProcess(Process.GetCurrentProcess().Id, vsProcessPid, enableLog); + + private static bool AttachVSToProcess(int? pid, int? vsPid, bool enableLog = false) + { + try + { + if (pid == null) + { + Trace($"FAIL: Pid is null.", enabled: enableLog); + return false; + } + + var process = Process.GetProcessById(pid.Value); + Trace($"Starting with pid '{pid}({process.ProcessName})', and vsPid '{vsPid}'", enabled: enableLog); + Trace($"Using pid: {pid} to get parent VS.", enabled: enableLog); + Process vs = GetVsFromPid(Process.GetProcessById(vsPid ?? process.Id)); + + if (vs != null) + { + Trace($"Parent VS is {vs.ProcessName} ({vs.Id}).", enabled: enableLog); + AttachTo(process, vs); + return true; + } + + Trace($"Parent VS not found, finding the first VS that started.", enabled: enableLog); + var firstVs = Process.GetProcesses() + .Where(p => p.ProcessName == "devenv") + .Select(p => + { + try + { + return new { Process = p, p.StartTime, p.HasExited }; + } + catch + { + return null; + } + }) + .Where(p => p != null && !p.HasExited) + .OrderBy(p => p!.StartTime) + .FirstOrDefault(); + + if (firstVs != null) + { + Trace($"Found VS {firstVs.Process.Id}", enabled: enableLog); + AttachTo(process, firstVs.Process); + return true; + } + + Trace("Could not find any started VS.", enabled: enableLog); + } + catch (Exception ex) + { + Trace($"ERROR: {ex}, {ex.StackTrace}", enabled: enableLog); + } + + return false; + } + + private static void AttachTo(Process process, Process vs, bool enableLog = false) + { + bool attached = AttachVs(vs, process.Id); + if (attached) + { + // You won't see this in DebugView++ because at this point VS is already attached and all the output goes into Debug window in VS. + Trace($"SUCCESS: Attached process: {process.ProcessName} ({process.Id})", enabled: enableLog); + } + else + { + Trace($"FAIL: Could not attach process: {process.ProcessName} ({process.Id})", enabled: enableLog); + } + } + + private static bool AttachVs(Process vs, int pid, bool enableLog = false) + { + IBindCtx bindCtx = null; + IRunningObjectTable runningObjectTable = null; + IEnumMoniker enumMoniker = null; + try + { +#pragma warning disable IL2050 + int r = CreateBindCtx(0, out bindCtx); +#pragma warning restore IL2050 + Marshal.ThrowExceptionForHR(r); + if (bindCtx == null) + { + Trace($"BindCtx is null. Cannot attach VS.", enabled: enableLog); + return false; + } + + bindCtx.GetRunningObjectTable(out runningObjectTable); + if (runningObjectTable == null) + { + Trace($"RunningObjectTable is null. Cannot attach VS.", enabled: enableLog); + return false; + } + + runningObjectTable.EnumRunning(out enumMoniker); + if (enumMoniker == null) + { + Trace($"EnumMoniker is null. Cannot attach VS.", enabled: enableLog); + return false; + } + + string dteSuffix = ":" + vs.Id; + + var moniker = new IMoniker[1]; + while (enumMoniker.Next(1, moniker, IntPtr.Zero) == 0 && moniker[0] != null) + { + moniker[0].GetDisplayName(bindCtx, null, out string dn); + + if (dn.StartsWith("!VisualStudio.DTE.", StringComparison.Ordinal) && dn.EndsWith(dteSuffix, StringComparison.Ordinal)) + { + object dbg, lps; + runningObjectTable.GetObject(moniker[0], out object dte); + + // The COM object can be busy, we retry few times, hoping that it won't be busy next time. + for (int i = 0; i < 10; i++) + { + try + { + dbg = dte.GetType().InvokeMember("Debugger", BindingFlags.GetProperty, null, dte, null, CultureInfo.InvariantCulture)!; + lps = dbg.GetType().InvokeMember("LocalProcesses", BindingFlags.GetProperty, null, dbg, null, CultureInfo.InvariantCulture)!; + var lpn = (System.Collections.IEnumerator)lps.GetType().InvokeMember("GetEnumerator", BindingFlags.InvokeMethod, null, lps, null, CultureInfo.InvariantCulture)!; + + while (lpn.MoveNext()) + { + int pn = Convert.ToInt32(lpn.Current.GetType().InvokeMember("ProcessID", BindingFlags.GetProperty, null, lpn.Current, null, CultureInfo.InvariantCulture), CultureInfo.InvariantCulture); + + if (pn == pid) + { + lpn.Current.GetType().InvokeMember("Attach", BindingFlags.InvokeMethod, null, lpn.Current, null, CultureInfo.InvariantCulture); + return true; + } + } + } + + // Catch the exception if it is COMException coming directly, or coming from methodInvocation, otherwise just let it be. + catch (Exception ex) when (ex is COMException or TargetInvocationException { InnerException: COMException }) + { + Trace($"ComException: Retrying in 250ms.\n{ex}", enabled: enableLog); + Thread.Sleep(250); + } + } + + Marshal.ReleaseComObject(moniker[0]); + + break; + } + + Marshal.ReleaseComObject(moniker[0]); + } + + return false; + } + finally + { + if (enumMoniker != null) + { + try + { + Marshal.ReleaseComObject(enumMoniker); + } + catch + { + } + } + + if (runningObjectTable != null) + { + try + { + Marshal.ReleaseComObject(runningObjectTable); + } + catch + { + } + } + + if (bindCtx != null) + { + try + { + Marshal.ReleaseComObject(bindCtx); + } + catch + { + } + } + } + } + + private static Process GetVsFromPid(Process process) + { + Process parent = process; + while (!IsVsOrNull(parent)) + { + parent = GetParentProcess(parent); + } + + return parent; + } + + private static bool IsVsOrNull([NotNullWhen(false)] Process process, bool enableLog = false) + { + if (process == null) + { + Trace("Parent process is null..", enabled: enableLog); + return true; + } + + bool isVs = process.ProcessName.Equals("devenv", StringComparison.OrdinalIgnoreCase); + if (isVs) + { + Trace($"Process {process.ProcessName} ({process.Id}) is VS.", enabled: enableLog); + } + else + { + Trace($"Process {process.ProcessName} ({process.Id}) is not VS.", enabled: enableLog); + } + + return isVs; + } + + private static bool IsCorrectParent(Process currentProcess, Process parent, bool enableLog = false) + { + try + { + // Parent needs to start before the child, otherwise it might be a different process + // that is just reusing the same PID. + if (parent.StartTime <= currentProcess.StartTime) + { + return true; + } + + Trace($"Process {parent.ProcessName} ({parent.Id}) is not a valid parent because it started after the current process.", enabled: enableLog); + } + catch + { + // Access denied or process exited while we were holding the Process object. + } + + return false; + } + + private static Process GetParentProcess(Process process) + { + int id = GetParentProcessId(process); + if (id != -1) + { + try + { + var parent = Process.GetProcessById(id); + if (IsCorrectParent(process, parent)) + { + return parent; + } + } + catch + { + // throws when parent no longer runs + } + } + + return null; + + static int GetParentProcessId(Process process) + { + try + { + IntPtr handle = process.Handle; + int res = NtQueryInformationProcess(handle, 0, out PROCESS_BASIC_INFORMATION pbi, Marshal.SizeOf(), out int size); + + int p = res != 0 ? -1 : pbi.InheritedFromUniqueProcessId.ToInt32(); + + return p; + } + catch + { + return -1; + } + } + } + + private static void Trace(string message, [CallerMemberName] string methodName = null, bool enabled = false) + { + if (enabled) + { + Console.WriteLine($"[AttachVS]{methodName}: {message}"); + } + } + + [StructLayout(LayoutKind.Sequential)] + private struct PROCESS_BASIC_INFORMATION + { + public readonly IntPtr ExitStatus; + public readonly IntPtr PebBaseAddress; + public readonly IntPtr AffinityMask; + public readonly IntPtr BasePriority; + public readonly IntPtr UniqueProcessId; + public IntPtr InheritedFromUniqueProcessId; + } + + [DllImport("ntdll.dll", SetLastError = true)] + private static extern int NtQueryInformationProcess( + IntPtr processHandle, + int processInformationClass, + out PROCESS_BASIC_INFORMATION processInformation, + int processInformationLength, + out int returnLength); + + [DllImport("ole32.dll")] + private static extern int CreateBindCtx(uint reserved, out IBindCtx ppbc); +} diff --git a/src/Cli/dotnet/Properties/launchSettings.json b/src/Cli/dotnet/Properties/launchSettings.json index 8d0ebf35dc6f..ccb2fad63201 100644 --- a/src/Cli/dotnet/Properties/launchSettings.json +++ b/src/Cli/dotnet/Properties/launchSettings.json @@ -1,7 +1,14 @@ { "profiles": { "dotnet": { - "commandName": "Project" + "commandName": "Project", + "commandLineArgs": "test -bl:S:\\t\\mstest184\\log.binlog", + "workingDirectory": "S:\\t\\mstest184", + "environmentVariables": { + "DOTNET_CLI_TESTINGPLATFORM_ENABLE": "1", + "DOTNET_CLI_VSTEST_TRACE": "1", + "DOTNET_ROOT": "S:\\p\\dotnet-sdk\\artifacts\\bin\\redist\\Debug\\dotnet", + } } } -} \ No newline at end of file +} diff --git a/src/Cli/dotnet/commands/dotnet-test/CustomEventArgs.cs b/src/Cli/dotnet/commands/dotnet-test/CustomEventArgs.cs index ec2c5fa5a63f..8914a2031c42 100644 --- a/src/Cli/dotnet/commands/dotnet-test/CustomEventArgs.cs +++ b/src/Cli/dotnet/commands/dotnet-test/CustomEventArgs.cs @@ -7,7 +7,7 @@ namespace Microsoft.DotNet.Cli { internal class HandshakeInfoArgs : EventArgs { - public HandshakeInfo handshakeInfo { get; set; } + public HandshakeInfo HandshakeInfo { get; set; } } internal class HelpEventArgs : EventArgs diff --git a/src/Cli/dotnet/commands/dotnet-test/MSBuildConnectionHandler.cs b/src/Cli/dotnet/commands/dotnet-test/MSBuildConnectionHandler.cs index d57e75c7e83b..a253b670451a 100644 --- a/src/Cli/dotnet/commands/dotnet-test/MSBuildConnectionHandler.cs +++ b/src/Cli/dotnet/commands/dotnet-test/MSBuildConnectionHandler.cs @@ -65,6 +65,7 @@ private Task OnRequest(IRequest request) var testApp = new TestApplication(module.DLLPath, _args); // Write the test application to the channel _actionQueue.Enqueue(testApp); + Thread.Sleep(100); testApp.OnCreated(); } catch (Exception ex) diff --git a/src/Cli/dotnet/commands/dotnet-test/TestApplication.cs b/src/Cli/dotnet/commands/dotnet-test/TestApplication.cs index 061cf446b1ec..8fac559a390d 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestApplication.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestApplication.cs @@ -269,7 +269,7 @@ public void OnHandshakeInfo(HandshakeInfo handshakeInfo) { ExecutionIdReceived?.Invoke(this, new ExecutionEventArgs { ModulePath = _modulePath, ExecutionId = executionId }); } - HandshakeInfoReceived?.Invoke(this, new HandshakeInfoArgs { handshakeInfo = handshakeInfo }); + HandshakeInfoReceived?.Invoke(this, new HandshakeInfoArgs { HandshakeInfo = handshakeInfo }); } public void OnCommandLineOptionMessages(CommandLineOptionMessages commandLineOptionMessages) diff --git a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs index 8096d6f69c44..73f3c4cdd20d 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs @@ -3,8 +3,12 @@ using System.Collections.Concurrent; using System.CommandLine; +using Microsoft.DotNet.Cli.Utils; using Microsoft.DotNet.Tools.Test; using Microsoft.TemplateEngine.Cli.Commands; +using Microsoft.Testing.Platform.Helpers; +using Microsoft.Testing.Platform.OutputDevice.Terminal; +using Microsoft.Testing.TestInfrastructure; namespace Microsoft.DotNet.Cli { @@ -15,9 +19,11 @@ internal partial class TestingPlatformCommand : CliCommand, ICustomHelp private MSBuildConnectionHandler _msBuildConnectionHandler; private TestModulesFilterHandler _testModulesFilterHandler; + private TerminalTestReporter _output; private TestApplicationActionQueue _actionQueue; private Task _namedPipeConnectionLoop; private string[] _args; + private Dictionary _executions = new(); public TestingPlatformCommand(string name, string description = null) : base(name, description) { @@ -26,6 +32,11 @@ public TestingPlatformCommand(string name, string description = null) : base(nam public int Run(ParseResult parseResult) { + if (Environment.GetEnvironmentVariable("Debug") == "1") + { + DebuggerUtility.AttachCurrentProcessToParentVSProcess(); + } + if (parseResult.HasOption(TestingPlatformOptions.ArchitectureOption)) { VSTestTrace.SafeWriteTrace(() => $"The --arch option is not yet supported."); @@ -37,6 +48,16 @@ public int Run(ParseResult parseResult) if (!int.TryParse(parseResult.GetValue(TestingPlatformOptions.MaxParallelTestModulesOption), out int degreeOfParallelism)) degreeOfParallelism = Environment.ProcessorCount; + var console = new SystemConsole(); + var output = new TerminalTestReporter(console, new TerminalTestReporterOptions() + { + UseAnsi = true, + ShowAssembly = true, + ShowAssemblyStartAndComplete = true, + }); + _output = output; + _output.TestExecutionStarted(DateTimeOffset.Now, degreeOfParallelism); + if (ContainsHelpOption(parseResult.GetArguments())) { _actionQueue = new(degreeOfParallelism, async (TestApplication testApp) => @@ -47,7 +68,9 @@ public int Run(ParseResult parseResult) testApp.Created += OnTestApplicationCreated; testApp.ExecutionIdReceived += OnExecutionIdReceived; - return await testApp.RunAsync(enableHelp: true); + var result = await testApp.RunAsync(enableHelp: true); + _output.TestExecutionCompleted(DateTimeOffset.Now); + return result; }); } else @@ -65,7 +88,8 @@ public int Run(ParseResult parseResult) testApp.Created += OnTestApplicationCreated; testApp.ExecutionIdReceived += OnExecutionIdReceived; - return await testApp.RunAsync(enableHelp: false); + var result = await testApp.RunAsync(enableHelp: false); + return result; }); } @@ -78,6 +102,7 @@ public int Run(ParseResult parseResult) { if (!_testModulesFilterHandler.RunWithTestModulesFilter(parseResult)) { + _output.TestExecutionCompleted(DateTimeOffset.Now); return ExitCodes.GenericFailure; } } @@ -88,6 +113,7 @@ public int Run(ParseResult parseResult) if (msbuildResult != 0) { VSTestTrace.SafeWriteTrace(() => $"MSBuild task _GetTestsProject didn't execute properly with exit code: {msbuildResult}."); + _output.TestExecutionCompleted(DateTimeOffset.Now); return ExitCodes.GenericFailure; } } @@ -102,6 +128,7 @@ public int Run(ParseResult parseResult) // Clean up everything CleanUp(); + _output.TestExecutionCompleted(DateTimeOffset.Now); return hasFailed ? ExitCodes.GenericFailure : ExitCodes.Success; } @@ -116,12 +143,20 @@ private void CleanUp() private void OnHandshakeInfoReceived(object sender, HandshakeInfoArgs args) { + var testApplication = (TestApplication)sender; + var executionId = args.HandshakeInfo.Properties[HandshakeInfoPropertyNames.ExecutionId]; + var arch = args.HandshakeInfo.Properties[HandshakeInfoPropertyNames.Architecture]; + var tfm = args.HandshakeInfo.Properties[HandshakeInfoPropertyNames.Framework]; + (string ModulePath, string TargetFramework, string Architecture, string ExecutionId) appInfo = new(testApplication.ModulePath, tfm, arch, executionId); + _executions[testApplication] = appInfo; + _output.AssemblyRunStarted(appInfo.ModulePath, appInfo.TargetFramework, appInfo.Architecture, appInfo.ExecutionId); + if (!VSTestTrace.TraceEnabled) { return; } - var handshakeInfo = args.handshakeInfo; + var handshakeInfo = args.HandshakeInfo; foreach (var property in handshakeInfo.Properties) { @@ -142,6 +177,37 @@ private void OnDiscoveredTestReceived(object sender, DiscoveredTestEventArgs arg private void OnTestResultReceived(object sender, EventArgs args) { + if (args is SuccessfulTestResultEventArgs success) + { + var testApp = (TestApplication)sender; + var appInfo = _executions[testApp]; + // TODO: timespan for duration + _output.TestCompleted(appInfo.ModulePath, appInfo.TargetFramework, appInfo.Architecture, appInfo.ExecutionId, + success.SuccessfulTestResultMessage.DisplayName, + TestOutcome.Passed, + TimeSpan.FromSeconds(1), + errorMessage: null, + errorStackTrace: null, + expected: null, + actual: null); + } + else if (args is FailedTestResultEventArgs failed) + { + var testApp = (TestApplication)sender; + // TODO: timespan for duration + // TODO: expected + // TODO: actual + var appInfo = _executions[testApp]; + _output.TestCompleted(appInfo.ModulePath, appInfo.TargetFramework, appInfo.Architecture, appInfo.ExecutionId, + failed.FailedTestResultMessage.DisplayName, + TestOutcome.Fail, + TimeSpan.FromSeconds(1), + errorMessage: failed.FailedTestResultMessage.ErrorMessage, + errorStackTrace: failed.FailedTestResultMessage.ErrorStackTrace, + expected: null, actual: null); + } + + if (!VSTestTrace.TraceEnabled) { return; @@ -198,6 +264,11 @@ private void OnErrorReceived(object sender, ErrorEventArgs args) private void OnTestProcessExited(object sender, TestProcessExitEventArgs args) { + var testApplication = (TestApplication)sender; + + var appInfo = _executions[testApplication]; + _output.AssemblyRunCompleted(appInfo.ModulePath, appInfo.TargetFramework, appInfo.Architecture, appInfo.ExecutionId); + if (!VSTestTrace.TraceEnabled) { return; @@ -223,12 +294,18 @@ private void OnTestApplicationCreated(object sender, EventArgs args) { TestApplication testApp = sender as TestApplication; _testApplications[testApp.ModulePath] = testApp; + + VSTestTrace.SafeWriteTrace(() => $"Created {testApp.ModulePath}"); + + } private void OnExecutionIdReceived(object sender, ExecutionEventArgs args) { if (_testApplications.TryGetValue(args.ModulePath, out var testApp)) { + VSTestTrace.SafeWriteTrace(() => $"id {args.ModulePath}"); + testApp.AddExecutionId(args.ExecutionId); } } @@ -236,3 +313,5 @@ private void OnExecutionIdReceived(object sender, ExecutionEventArgs args) private static bool ContainsHelpOption(IEnumerable args) => args.Contains(CliConstants.HelpOptionKey) || args.Contains(CliConstants.HelpOptionKey.Substring(0, 2)); } } + + diff --git a/src/Cli/dotnet/dotnet.csproj b/src/Cli/dotnet/dotnet.csproj index 9e98bade78e4..6e479523d2c0 100644 --- a/src/Cli/dotnet/dotnet.csproj +++ b/src/Cli/dotnet/dotnet.csproj @@ -96,6 +96,7 @@ + From 990139637d9ce72fd3577bd46339dfa37a5683bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Jare=C5=A1?= Date: Wed, 4 Sep 2024 16:57:36 +0200 Subject: [PATCH 002/193] make testing easier --- .../commands/dotnet-test/TestingPlatformCommand.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs index 00b69447a8ac..65f1887bf9b6 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs @@ -7,6 +7,7 @@ using Microsoft.DotNet.Tools.Test; using Microsoft.TemplateEngine.Cli.Commands; using Microsoft.Testing.Platform.Helpers; +using Microsoft.Testing.Platform.OutputDevice; using Microsoft.Testing.Platform.OutputDevice.Terminal; using Microsoft.Testing.TestInfrastructure; @@ -58,7 +59,9 @@ public int Run(ParseResult parseResult) var console = new SystemConsole(); var output = new TerminalTestReporter(console, new TerminalTestReporterOptions() { - UseAnsi = true, + ShowPassedTests = Environment.GetEnvironmentVariable("SHOW_PASSED") == "1", + ShowProgress = () => Environment.GetEnvironmentVariable("NO_PROGRESS") != "1", + UseAnsi = Environment.GetEnvironmentVariable("NO_ANSI") != "1", ShowAssembly = true, ShowAssemblyStartAndComplete = true, }); @@ -151,8 +154,8 @@ private void OnHandshakeInfoReceived(object sender, HandshakeInfoArgs args) { var testApplication = (TestApplication)sender; var executionId = args.HandshakeInfo.Properties[HandshakeInfoPropertyNames.ExecutionId]; - var arch = args.HandshakeInfo.Properties[HandshakeInfoPropertyNames.Architecture]; - var tfm = args.HandshakeInfo.Properties[HandshakeInfoPropertyNames.Framework]; + var arch = args.HandshakeInfo.Properties[HandshakeInfoPropertyNames.Architecture]?.ToLower(); + var tfm = TargetFrameworkParser.GetShortTargetFramework(args.HandshakeInfo.Properties[HandshakeInfoPropertyNames.Framework]); (string ModulePath, string TargetFramework, string Architecture, string ExecutionId) appInfo = new(testApplication.Module.DLLPath, tfm, arch, executionId); _executions[testApplication] = appInfo; _output.AssemblyRunStarted(appInfo.ModulePath, appInfo.TargetFramework, appInfo.Architecture, appInfo.ExecutionId); From 8549dc2f8bbca321fc8a971d4d38c51144a2f8e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Jare=C5=A1?= Date: Wed, 18 Sep 2024 15:09:39 +0200 Subject: [PATCH 003/193] up --- Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 976ef0a8aa5f..4cec76f6e40a 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -62,7 +62,7 @@ - + From 39cbf436eee52f34356f24a2243c620dd2a28fe3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Jare=C5=A1?= Date: Wed, 18 Sep 2024 15:32:36 +0200 Subject: [PATCH 004/193] update --- .../dotnet-test/TestingPlatformCommand.cs | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs index 0da84b379015..80b2e25b30bc 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs @@ -158,9 +158,9 @@ private void CleanUp() private void OnHandshakeReceived(object sender, HandshakeArgs args) { var testApplication = (TestApplication)sender; - var executionId = args.HandshakeInfo.Properties[HandshakeInfoPropertyNames.ExecutionId]; - var arch = args.HandshakeInfo.Properties[HandshakeInfoPropertyNames.Architecture]?.ToLower(); - var tfm = TargetFrameworkParser.GetShortTargetFramework(args.HandshakeInfo.Properties[HandshakeInfoPropertyNames.Framework]); + var executionId = args.Handshake.Properties[HandshakeMessagePropertyNames.ExecutionId]; + var arch = args.Handshake.Properties[HandshakeMessagePropertyNames.Architecture]?.ToLower(); + var tfm = TargetFrameworkParser.GetShortTargetFramework(args.Handshake.Properties[HandshakeMessagePropertyNames.Framework]); (string ModulePath, string TargetFramework, string Architecture, string ExecutionId) appInfo = new(testApplication.Module.DLLPath, tfm, arch, executionId); _executions[testApplication] = appInfo; _output.AssemblyRunStarted(appInfo.ModulePath, appInfo.TargetFramework, appInfo.Architecture, appInfo.ExecutionId); @@ -196,13 +196,14 @@ private void OnDiscoveredTestsReceived(object sender, DiscoveredTestEventArgs ar private void OnTestResultsReceived(object sender, TestResultEventArgs args) { - if (args is SuccessfulTestResultEventArgs success) + foreach (var testResult in args.SuccessfulTestResults) { + var testApp = (TestApplication)sender; var appInfo = _executions[testApp]; // TODO: timespan for duration _output.TestCompleted(appInfo.ModulePath, appInfo.TargetFramework, appInfo.Architecture, appInfo.ExecutionId, - success.SuccessfulTestResultMessage.DisplayName, + testResult.DisplayName, TestOutcome.Passed, TimeSpan.FromSeconds(1), errorMessage: null, @@ -210,19 +211,21 @@ private void OnTestResultsReceived(object sender, TestResultEventArgs args) expected: null, actual: null); } - else if (args is FailedTestResultEventArgs failed) + + foreach (var testResult in args.FailedTestResults) { + var testApp = (TestApplication)sender; // TODO: timespan for duration // TODO: expected // TODO: actual var appInfo = _executions[testApp]; _output.TestCompleted(appInfo.ModulePath, appInfo.TargetFramework, appInfo.Architecture, appInfo.ExecutionId, - failed.FailedTestResultMessage.DisplayName, + testResult.DisplayName, TestOutcome.Fail, TimeSpan.FromSeconds(1), - errorMessage: failed.FailedTestResultMessage.ErrorMessage, - errorStackTrace: failed.FailedTestResultMessage.ErrorStackTrace, + errorMessage: testResult.ErrorMessage, + errorStackTrace: testResult.ErrorStackTrace, expected: null, actual: null); } From a35faa3d156090ba6e229ddb0d27d13ee5a2c77e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Jare=C5=A1?= Date: Tue, 8 Oct 2024 09:26:52 +0200 Subject: [PATCH 005/193] Fix --- src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs index 80b2e25b30bc..20e6666091e2 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs @@ -161,7 +161,7 @@ private void OnHandshakeReceived(object sender, HandshakeArgs args) var executionId = args.Handshake.Properties[HandshakeMessagePropertyNames.ExecutionId]; var arch = args.Handshake.Properties[HandshakeMessagePropertyNames.Architecture]?.ToLower(); var tfm = TargetFrameworkParser.GetShortTargetFramework(args.Handshake.Properties[HandshakeMessagePropertyNames.Framework]); - (string ModulePath, string TargetFramework, string Architecture, string ExecutionId) appInfo = new(testApplication.Module.DLLPath, tfm, arch, executionId); + (string ModulePath, string TargetFramework, string Architecture, string ExecutionId) appInfo = new(testApplication.Module.DLLOrExe, tfm, arch, executionId); _executions[testApplication] = appInfo; _output.AssemblyRunStarted(appInfo.ModulePath, appInfo.TargetFramework, appInfo.Architecture, appInfo.ExecutionId); From 137031807193230a7dcb711e11946652ebae6a34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Jare=C5=A1?= Date: Fri, 11 Oct 2024 20:44:34 +0200 Subject: [PATCH 006/193] Convert to correct state --- .../dotnet-test/TestingPlatformCommand.cs | 30 +++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs index 20e6666091e2..686606c97700 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs @@ -7,6 +7,7 @@ using Microsoft.DotNet.Tools.Test; using Microsoft.TemplateEngine.Cli.Commands; using Microsoft.Testing.Platform.Helpers; +using Microsoft.Testing.Platform.IPC; using Microsoft.Testing.Platform.OutputDevice; using Microsoft.Testing.Platform.OutputDevice.Terminal; using Microsoft.Testing.TestInfrastructure; @@ -204,12 +205,14 @@ private void OnTestResultsReceived(object sender, TestResultEventArgs args) // TODO: timespan for duration _output.TestCompleted(appInfo.ModulePath, appInfo.TargetFramework, appInfo.Architecture, appInfo.ExecutionId, testResult.DisplayName, - TestOutcome.Passed, + ToOutcome(testResult.State), TimeSpan.FromSeconds(1), errorMessage: null, errorStackTrace: null, expected: null, - actual: null); + actual: null, + standardOutput: null, + errorOutput: null); } foreach (var testResult in args.FailedTestResults) @@ -222,11 +225,14 @@ private void OnTestResultsReceived(object sender, TestResultEventArgs args) var appInfo = _executions[testApp]; _output.TestCompleted(appInfo.ModulePath, appInfo.TargetFramework, appInfo.Architecture, appInfo.ExecutionId, testResult.DisplayName, - TestOutcome.Fail, + ToOutcome(testResult.State), TimeSpan.FromSeconds(1), errorMessage: testResult.ErrorMessage, errorStackTrace: testResult.ErrorStackTrace, - expected: null, actual: null); + expected: null, + actual: null, + standardOutput: null, + errorOutput: null); } @@ -251,6 +257,20 @@ private void OnTestResultsReceived(object sender, TestResultEventArgs args) } } + public static TestOutcome ToOutcome(byte? testState) + { + return testState switch + { + TestStates.Passed => TestOutcome.Passed, + TestStates.Skipped => TestOutcome.Skipped, + TestStates.Failed => TestOutcome.Fail, + TestStates.Error => TestOutcome.Error, + TestStates.Timeout => TestOutcome.Timeout, + TestStates.Cancelled => TestOutcome.Canceled, + _ => throw new ArgumentOutOfRangeException(nameof(testState), $"Invalid test state value {testState}") + }; + } + private void OnFileArtifactsReceived(object sender, FileArtifactEventArgs args) { if (!VSTestTrace.TraceEnabled) @@ -262,7 +282,7 @@ private void OnFileArtifactsReceived(object sender, FileArtifactEventArgs args) foreach (FileArtifact fileArtifactMessage in args.FileArtifacts) { - VSTestTrace.SafeWriteTrace(() => $"FileArtifacr: {fileArtifactMessage.FullPath}, {fileArtifactMessage.DisplayName}, " + + VSTestTrace.SafeWriteTrace(() => $"FileArtifact: {fileArtifactMessage.FullPath}, {fileArtifactMessage.DisplayName}, " + $"{fileArtifactMessage.Description}, {fileArtifactMessage.TestUid}, {fileArtifactMessage.TestDisplayName}, " + $"{fileArtifactMessage.SessionUid}"); } From 38cb652ffd532e53d9ba4d64199fa11af9e25a3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Jare=C5=A1?= Date: Mon, 14 Oct 2024 15:08:39 +0200 Subject: [PATCH 007/193] Fix cancellation --- .../dotnet-test/TestingPlatformCommand.cs | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs index 686606c97700..0a4ce0a9c902 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs @@ -26,6 +26,7 @@ internal partial class TestingPlatformCommand : CliCommand, ICustomHelp private Task _namedPipeConnectionLoop; private List _args; private Dictionary _executions = new(); + private byte _cancelled; public TestingPlatformCommand(string name, string description = null) : base(name, description) { @@ -34,6 +35,12 @@ public TestingPlatformCommand(string name, string description = null) : base(nam public int Run(ParseResult parseResult) { + Console.CancelKeyPress += (s, e) => + { + _output?.StartCancelling(); + CompleteRun(); + }; + if (Environment.GetEnvironmentVariable("Debug") == "1") { DebuggerUtility.AttachCurrentProcessToParentVSProcess(); @@ -86,7 +93,7 @@ public int Run(ParseResult parseResult) testApp.ExecutionIdReceived += OnExecutionIdReceived; var result = await testApp.RunAsync(filterModeEnabled, enableHelp: true, builtInOptions); - _output.TestExecutionCompleted(DateTimeOffset.Now); + CompleteRun(); return result; }); } @@ -117,7 +124,7 @@ public int Run(ParseResult parseResult) { if (!_testModulesFilterHandler.RunWithTestModulesFilter(parseResult)) { - _output.TestExecutionCompleted(DateTimeOffset.Now); + CompleteRun(); return ExitCodes.GenericFailure; } } @@ -128,7 +135,7 @@ public int Run(ParseResult parseResult) if (msbuildResult != 0) { VSTestTrace.SafeWriteTrace(() => $"MSBuild task _GetTestsProject didn't execute properly with exit code: {msbuildResult}."); - _output.TestExecutionCompleted(DateTimeOffset.Now); + CompleteRun(); return ExitCodes.GenericFailure; } } @@ -143,10 +150,18 @@ public int Run(ParseResult parseResult) // Clean up everything CleanUp(); - _output.TestExecutionCompleted(DateTimeOffset.Now); + CompleteRun(); return hasFailed ? ExitCodes.GenericFailure : ExitCodes.Success; } + private void CompleteRun() + { + if (Interlocked.CompareExchange(ref _cancelled, 1, 0) == 0) + { + _output?.TestExecutionCompleted(DateTimeOffset.Now); + } + } + private void CleanUp() { _msBuildConnectionHandler.Dispose(); From 721ccd455f6724091d7b5c230c56d484a1baac39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Jare=C5=A1?= Date: Thu, 17 Oct 2024 13:14:57 +0200 Subject: [PATCH 008/193] Update package --- Directory.Packages.props | 24 ++++++++++--------- NuGet.config | 2 -- eng/Version.Details.xml | 4 ++++ eng/Versions.props | 4 ++++ src/Cli/dotnet/Properties/launchSettings.json | 11 ++------- 5 files changed, 23 insertions(+), 22 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 802a73ebbd0c..9c9f79ec1e95 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -1,9 +1,10 @@ - + $(NoWarn);NU1507 + @@ -11,7 +12,7 @@ - + @@ -42,7 +43,7 @@ - + @@ -62,9 +63,9 @@ - + @@ -95,11 +96,11 @@ - - - - - + + + + + @@ -120,8 +121,9 @@ - + + - - diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 2f8cc88d3902..a0afaf9d4764 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -228,6 +228,10 @@ https://github.com/microsoft/vstest bc9161306b23641b0364b8f93d546da4d48da1eb + + https://github.com/microsoft/testfx + bc9161306b23641b0364b8f93d546da4d48da1eb + https://github.com/microsoft/vstest diff --git a/eng/Versions.props b/eng/Versions.props index 86bea0acb32d..995f1b06a553 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -199,6 +199,10 @@ 17.12.0-release-24508-01 17.12.0-release-24508-01 + + + 1.5.0-preview.24516.3 + 10.0.0-preview.24508.1 diff --git a/src/Cli/dotnet/Properties/launchSettings.json b/src/Cli/dotnet/Properties/launchSettings.json index ccb2fad63201..8d0ebf35dc6f 100644 --- a/src/Cli/dotnet/Properties/launchSettings.json +++ b/src/Cli/dotnet/Properties/launchSettings.json @@ -1,14 +1,7 @@ { "profiles": { "dotnet": { - "commandName": "Project", - "commandLineArgs": "test -bl:S:\\t\\mstest184\\log.binlog", - "workingDirectory": "S:\\t\\mstest184", - "environmentVariables": { - "DOTNET_CLI_TESTINGPLATFORM_ENABLE": "1", - "DOTNET_CLI_VSTEST_TRACE": "1", - "DOTNET_ROOT": "S:\\p\\dotnet-sdk\\artifacts\\bin\\redist\\Debug\\dotnet", - } + "commandName": "Project" } } -} +} \ No newline at end of file From 2622d9852064fe9ba1e8cf906e348090e1835ecb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Jare=C5=A1?= Date: Thu, 17 Oct 2024 13:19:28 +0200 Subject: [PATCH 009/193] Revert style cop version --- eng/Versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/Versions.props b/eng/Versions.props index 995f1b06a553..d0dfa574a265 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -77,7 +77,7 @@ 2.0.3 13.0.3 4.8.6 - 1.2.0-beta.507 + 1.2.0-beta.435 4.0.5 2.0.0-beta4.24324.3 0.4.0-alpha.24324.3 From d3b3f9198343ded39d72ad780566800bde400ca6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Jare=C5=A1?= Date: Thu, 17 Oct 2024 14:14:38 +0200 Subject: [PATCH 010/193] Remove debugger utility --- src/Cli/dotnet/Class1.cs | 334 ------------------ .../dotnet-test/TestingPlatformCommand.cs | 5 - 2 files changed, 339 deletions(-) delete mode 100644 src/Cli/dotnet/Class1.cs diff --git a/src/Cli/dotnet/Class1.cs b/src/Cli/dotnet/Class1.cs deleted file mode 100644 index 3497a9c31b9b..000000000000 --- a/src/Cli/dotnet/Class1.cs +++ /dev/null @@ -1,334 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. See LICENSE file in the project root for full license information. - -#pragma warning disable CA1837 // Use 'Environment.ProcessId' -#pragma warning disable CA1416 // Validate platform compatibility - -using System.Diagnostics; -using System.Diagnostics.CodeAnalysis; -using System.Globalization; -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using System.Runtime.InteropServices.ComTypes; - -namespace Microsoft.Testing.TestInfrastructure; - -public class DebuggerUtility -{ - public static bool AttachCurrentProcessToParentVSProcess(bool enableLog = false) => AttachVSToProcess(Process.GetCurrentProcess().Id, null, enableLog); - - public static bool AttachCurrentProcessToVSProcessPID(int vsProcessPid, bool enableLog = false) => AttachVSToProcess(Process.GetCurrentProcess().Id, vsProcessPid, enableLog); - - private static bool AttachVSToProcess(int? pid, int? vsPid, bool enableLog = false) - { - try - { - if (pid == null) - { - Trace($"FAIL: Pid is null.", enabled: enableLog); - return false; - } - - var process = Process.GetProcessById(pid.Value); - Trace($"Starting with pid '{pid}({process.ProcessName})', and vsPid '{vsPid}'", enabled: enableLog); - Trace($"Using pid: {pid} to get parent VS.", enabled: enableLog); - Process vs = GetVsFromPid(Process.GetProcessById(vsPid ?? process.Id)); - - if (vs != null) - { - Trace($"Parent VS is {vs.ProcessName} ({vs.Id}).", enabled: enableLog); - AttachTo(process, vs); - return true; - } - - Trace($"Parent VS not found, finding the first VS that started.", enabled: enableLog); - var firstVs = Process.GetProcesses() - .Where(p => p.ProcessName == "devenv") - .Select(p => - { - try - { - return new { Process = p, p.StartTime, p.HasExited }; - } - catch - { - return null; - } - }) - .Where(p => p != null && !p.HasExited) - .OrderBy(p => p!.StartTime) - .FirstOrDefault(); - - if (firstVs != null) - { - Trace($"Found VS {firstVs.Process.Id}", enabled: enableLog); - AttachTo(process, firstVs.Process); - return true; - } - - Trace("Could not find any started VS.", enabled: enableLog); - } - catch (Exception ex) - { - Trace($"ERROR: {ex}, {ex.StackTrace}", enabled: enableLog); - } - - return false; - } - - private static void AttachTo(Process process, Process vs, bool enableLog = false) - { - bool attached = AttachVs(vs, process.Id); - if (attached) - { - // You won't see this in DebugView++ because at this point VS is already attached and all the output goes into Debug window in VS. - Trace($"SUCCESS: Attached process: {process.ProcessName} ({process.Id})", enabled: enableLog); - } - else - { - Trace($"FAIL: Could not attach process: {process.ProcessName} ({process.Id})", enabled: enableLog); - } - } - - private static bool AttachVs(Process vs, int pid, bool enableLog = false) - { - IBindCtx bindCtx = null; - IRunningObjectTable runningObjectTable = null; - IEnumMoniker enumMoniker = null; - try - { -#pragma warning disable IL2050 - int r = CreateBindCtx(0, out bindCtx); -#pragma warning restore IL2050 - Marshal.ThrowExceptionForHR(r); - if (bindCtx == null) - { - Trace($"BindCtx is null. Cannot attach VS.", enabled: enableLog); - return false; - } - - bindCtx.GetRunningObjectTable(out runningObjectTable); - if (runningObjectTable == null) - { - Trace($"RunningObjectTable is null. Cannot attach VS.", enabled: enableLog); - return false; - } - - runningObjectTable.EnumRunning(out enumMoniker); - if (enumMoniker == null) - { - Trace($"EnumMoniker is null. Cannot attach VS.", enabled: enableLog); - return false; - } - - string dteSuffix = ":" + vs.Id; - - var moniker = new IMoniker[1]; - while (enumMoniker.Next(1, moniker, IntPtr.Zero) == 0 && moniker[0] != null) - { - moniker[0].GetDisplayName(bindCtx, null, out string dn); - - if (dn.StartsWith("!VisualStudio.DTE.", StringComparison.Ordinal) && dn.EndsWith(dteSuffix, StringComparison.Ordinal)) - { - object dbg, lps; - runningObjectTable.GetObject(moniker[0], out object dte); - - // The COM object can be busy, we retry few times, hoping that it won't be busy next time. - for (int i = 0; i < 10; i++) - { - try - { - dbg = dte.GetType().InvokeMember("Debugger", BindingFlags.GetProperty, null, dte, null, CultureInfo.InvariantCulture)!; - lps = dbg.GetType().InvokeMember("LocalProcesses", BindingFlags.GetProperty, null, dbg, null, CultureInfo.InvariantCulture)!; - var lpn = (System.Collections.IEnumerator)lps.GetType().InvokeMember("GetEnumerator", BindingFlags.InvokeMethod, null, lps, null, CultureInfo.InvariantCulture)!; - - while (lpn.MoveNext()) - { - int pn = Convert.ToInt32(lpn.Current.GetType().InvokeMember("ProcessID", BindingFlags.GetProperty, null, lpn.Current, null, CultureInfo.InvariantCulture), CultureInfo.InvariantCulture); - - if (pn == pid) - { - lpn.Current.GetType().InvokeMember("Attach", BindingFlags.InvokeMethod, null, lpn.Current, null, CultureInfo.InvariantCulture); - return true; - } - } - } - - // Catch the exception if it is COMException coming directly, or coming from methodInvocation, otherwise just let it be. - catch (Exception ex) when (ex is COMException or TargetInvocationException { InnerException: COMException }) - { - Trace($"ComException: Retrying in 250ms.\n{ex}", enabled: enableLog); - Thread.Sleep(250); - } - } - - Marshal.ReleaseComObject(moniker[0]); - - break; - } - - Marshal.ReleaseComObject(moniker[0]); - } - - return false; - } - finally - { - if (enumMoniker != null) - { - try - { - Marshal.ReleaseComObject(enumMoniker); - } - catch - { - } - } - - if (runningObjectTable != null) - { - try - { - Marshal.ReleaseComObject(runningObjectTable); - } - catch - { - } - } - - if (bindCtx != null) - { - try - { - Marshal.ReleaseComObject(bindCtx); - } - catch - { - } - } - } - } - - private static Process GetVsFromPid(Process process) - { - Process parent = process; - while (!IsVsOrNull(parent)) - { - parent = GetParentProcess(parent); - } - - return parent; - } - - private static bool IsVsOrNull([NotNullWhen(false)] Process process, bool enableLog = false) - { - if (process == null) - { - Trace("Parent process is null..", enabled: enableLog); - return true; - } - - bool isVs = process.ProcessName.Equals("devenv", StringComparison.OrdinalIgnoreCase); - if (isVs) - { - Trace($"Process {process.ProcessName} ({process.Id}) is VS.", enabled: enableLog); - } - else - { - Trace($"Process {process.ProcessName} ({process.Id}) is not VS.", enabled: enableLog); - } - - return isVs; - } - - private static bool IsCorrectParent(Process currentProcess, Process parent, bool enableLog = false) - { - try - { - // Parent needs to start before the child, otherwise it might be a different process - // that is just reusing the same PID. - if (parent.StartTime <= currentProcess.StartTime) - { - return true; - } - - Trace($"Process {parent.ProcessName} ({parent.Id}) is not a valid parent because it started after the current process.", enabled: enableLog); - } - catch - { - // Access denied or process exited while we were holding the Process object. - } - - return false; - } - - private static Process GetParentProcess(Process process) - { - int id = GetParentProcessId(process); - if (id != -1) - { - try - { - var parent = Process.GetProcessById(id); - if (IsCorrectParent(process, parent)) - { - return parent; - } - } - catch - { - // throws when parent no longer runs - } - } - - return null; - - static int GetParentProcessId(Process process) - { - try - { - IntPtr handle = process.Handle; - int res = NtQueryInformationProcess(handle, 0, out PROCESS_BASIC_INFORMATION pbi, Marshal.SizeOf(), out int size); - - int p = res != 0 ? -1 : pbi.InheritedFromUniqueProcessId.ToInt32(); - - return p; - } - catch - { - return -1; - } - } - } - - private static void Trace(string message, [CallerMemberName] string methodName = null, bool enabled = false) - { - if (enabled) - { - Console.WriteLine($"[AttachVS]{methodName}: {message}"); - } - } - - [StructLayout(LayoutKind.Sequential)] - private struct PROCESS_BASIC_INFORMATION - { - public readonly IntPtr ExitStatus; - public readonly IntPtr PebBaseAddress; - public readonly IntPtr AffinityMask; - public readonly IntPtr BasePriority; - public readonly IntPtr UniqueProcessId; - public IntPtr InheritedFromUniqueProcessId; - } - - [DllImport("ntdll.dll", SetLastError = true)] - private static extern int NtQueryInformationProcess( - IntPtr processHandle, - int processInformationClass, - out PROCESS_BASIC_INFORMATION processInformation, - int processInformationLength, - out int returnLength); - - [DllImport("ole32.dll")] - private static extern int CreateBindCtx(uint reserved, out IBindCtx ppbc); -} diff --git a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs index 0a4ce0a9c902..987b846a66d8 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs @@ -41,11 +41,6 @@ public int Run(ParseResult parseResult) CompleteRun(); }; - if (Environment.GetEnvironmentVariable("Debug") == "1") - { - DebuggerUtility.AttachCurrentProcessToParentVSProcess(); - } - if (parseResult.HasOption(TestingPlatformOptions.ArchitectureOption)) { VSTestTrace.SafeWriteTrace(() => $"The --arch option is not yet supported."); From 890337ed376c23568248206da979adf8f93a89b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Jare=C5=A1?= Date: Tue, 22 Oct 2024 13:30:12 +0200 Subject: [PATCH 011/193] Fixes from review --- .../commands/dotnet-test/TestingPlatformCommand.cs | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs index 987b846a66d8..f850720936d4 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs @@ -3,14 +3,11 @@ using System.Collections.Concurrent; using System.CommandLine; -using Microsoft.DotNet.Cli.Utils; using Microsoft.DotNet.Tools.Test; using Microsoft.TemplateEngine.Cli.Commands; using Microsoft.Testing.Platform.Helpers; -using Microsoft.Testing.Platform.IPC; using Microsoft.Testing.Platform.OutputDevice; using Microsoft.Testing.Platform.OutputDevice.Terminal; -using Microsoft.Testing.TestInfrastructure; namespace Microsoft.DotNet.Cli { @@ -41,12 +38,6 @@ public int Run(ParseResult parseResult) CompleteRun(); }; - if (parseResult.HasOption(TestingPlatformOptions.ArchitectureOption)) - { - VSTestTrace.SafeWriteTrace(() => $"The --arch option is not yet supported."); - return ExitCodes.GenericFailure; - } - // User can decide what the degree of parallelism should be // If not specified, we will default to the number of processors if (!int.TryParse(parseResult.GetValue(TestingPlatformOptions.MaxParallelTestModulesOption), out int degreeOfParallelism)) @@ -57,6 +48,7 @@ public int Run(ParseResult parseResult) if (filterModeEnabled && parseResult.HasOption(TestingPlatformOptions.ArchitectureOption)) { VSTestTrace.SafeWriteTrace(() => $"The --arch option is not supported yet."); + return ExitCodes.GenericFailure; } BuiltInOptions builtInOptions = new( @@ -209,7 +201,6 @@ private void OnTestResultsReceived(object sender, TestResultEventArgs args) { foreach (var testResult in args.SuccessfulTestResults) { - var testApp = (TestApplication)sender; var appInfo = _executions[testApp]; // TODO: timespan for duration @@ -227,7 +218,6 @@ private void OnTestResultsReceived(object sender, TestResultEventArgs args) foreach (var testResult in args.FailedTestResults) { - var testApp = (TestApplication)sender; // TODO: timespan for duration // TODO: expected @@ -245,7 +235,6 @@ private void OnTestResultsReceived(object sender, TestResultEventArgs args) errorOutput: null); } - if (!VSTestTrace.TraceEnabled) { return; From 768d5dabb39f2fa5932e17d68500c66ca8bc52a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Jare=C5=A1?= Date: Tue, 12 Nov 2024 16:26:11 +0100 Subject: [PATCH 012/193] Fix ipc --- NuGet.config | 1 + eng/Versions.props | 2 +- .../commands/dotnet-test/BuiltInOptions.cs | 2 +- .../IPC/Models/TestResultMessages.cs | 4 +- .../dotnet-test/IPC/ObjectFieldIds.cs | 10 ++- .../TestResultMessagesSerializer.cs | 89 ++++++++++++++++--- src/Cli/dotnet/commands/dotnet-test/Models.cs | 4 +- .../commands/dotnet-test/TestApplication.cs | 7 +- .../commands/dotnet-test/TestCommandParser.cs | 1 + .../dotnet-test/TestingPlatformCommand.cs | 59 ++++++++---- .../dotnet-test/TestingPlatformOptions.cs | 6 ++ 11 files changed, 150 insertions(+), 35 deletions(-) diff --git a/NuGet.config b/NuGet.config index ecf2c176d5ad..8cb6c0138d0f 100644 --- a/NuGet.config +++ b/NuGet.config @@ -8,6 +8,7 @@ + diff --git a/eng/Versions.props b/eng/Versions.props index 37e3fcb44c12..48e62e876da2 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -184,7 +184,7 @@ - 1.5.0-preview.24516.3 + 1.7.0-dev diff --git a/src/Cli/dotnet/commands/dotnet-test/BuiltInOptions.cs b/src/Cli/dotnet/commands/dotnet-test/BuiltInOptions.cs index f3bc4c1419c5..0462c6c7486d 100644 --- a/src/Cli/dotnet/commands/dotnet-test/BuiltInOptions.cs +++ b/src/Cli/dotnet/commands/dotnet-test/BuiltInOptions.cs @@ -3,5 +3,5 @@ namespace Microsoft.DotNet.Cli { - internal record BuiltInOptions(bool HasNoRestore, bool HasNoBuild, string Configuration, string Architecture); + internal record BuiltInOptions(bool HasNoRestore, bool HasNoBuild, bool HasListTests, string Configuration, string Architecture); } diff --git a/src/Cli/dotnet/commands/dotnet-test/IPC/Models/TestResultMessages.cs b/src/Cli/dotnet/commands/dotnet-test/IPC/Models/TestResultMessages.cs index e4d8d7ff1458..2b0aa7422a50 100644 --- a/src/Cli/dotnet/commands/dotnet-test/IPC/Models/TestResultMessages.cs +++ b/src/Cli/dotnet/commands/dotnet-test/IPC/Models/TestResultMessages.cs @@ -7,7 +7,9 @@ namespace Microsoft.DotNet.Tools.Test { internal sealed record SuccessfulTestResultMessage(string? Uid, string? DisplayName, byte? State, long? Duration, string? Reason, string? StandardOutput, string? ErrorOutput, string? SessionUid); - internal sealed record FailedTestResultMessage(string? Uid, string? DisplayName, byte? State, long? Duration, string? Reason, string? ErrorMessage, string? ErrorStackTrace, string? StandardOutput, string? ErrorOutput, string? SessionUid); + internal sealed record FailedTestResultMessage(string? Uid, string? DisplayName, byte? State, long? Duration, string? Reason, ExceptionMessage[]? Exceptions, string? StandardOutput, string? ErrorOutput, string? SessionUid); + + internal sealed record ExceptionMessage(string? ErrorMessage, string? ErrorType, string? StackTrace); internal sealed record TestResultMessages(string? ExecutionId, SuccessfulTestResultMessage[] SuccessfulTestMessages, FailedTestResultMessage[] FailedTestMessages) : IRequest; } diff --git a/src/Cli/dotnet/commands/dotnet-test/IPC/ObjectFieldIds.cs b/src/Cli/dotnet/commands/dotnet-test/IPC/ObjectFieldIds.cs index e7f720c96fbb..01d38f3d9ec2 100644 --- a/src/Cli/dotnet/commands/dotnet-test/IPC/ObjectFieldIds.cs +++ b/src/Cli/dotnet/commands/dotnet-test/IPC/ObjectFieldIds.cs @@ -85,13 +85,19 @@ internal static class FailedTestResultMessageFieldsId public const ushort State = 3; public const ushort Duration = 4; public const ushort Reason = 5; - public const ushort ErrorMessage = 6; - public const ushort ErrorStackTrace = 7; + public const ushort ExceptionMessageList = 6; public const ushort StandardOutput = 8; public const ushort ErrorOutput = 9; public const ushort SessionUid = 10; } + internal static class ExceptionMessageFieldsId + { + public const ushort ErrorMessage = 1; + public const ushort ErrorType = 2; + public const ushort StackTrace = 3; + } + internal static class FileArtifactMessagesFieldsId { public const int MessagesSerializerId = 7; diff --git a/src/Cli/dotnet/commands/dotnet-test/IPC/Serializers/TestResultMessagesSerializer.cs b/src/Cli/dotnet/commands/dotnet-test/IPC/Serializers/TestResultMessagesSerializer.cs index aebd6e86fe04..9577e81d2bb1 100644 --- a/src/Cli/dotnet/commands/dotnet-test/IPC/Serializers/TestResultMessagesSerializer.cs +++ b/src/Cli/dotnet/commands/dotnet-test/IPC/Serializers/TestResultMessagesSerializer.cs @@ -218,8 +218,8 @@ private static List ReadFailedTestMessagesPayload(Strea int length = ReadInt(stream); for (int i = 0; i < length; i++) { - string? uid = null, displayName = null, reason = null, sessionUid = null, - errorMessage = null, errorStackTrace = null, standardOutput = null, errorOutput = null; + string? uid = null, displayName = null, reason = null, sessionUid = null, standardOutput = null, errorOutput = null; + List exceptionMessages = []; byte? state = null; long? duration = null; @@ -252,13 +252,44 @@ private static List ReadFailedTestMessagesPayload(Strea reason = ReadStringValue(stream, fieldSize); break; - case FailedTestResultMessageFieldsId.ErrorMessage: - errorMessage = ReadStringValue(stream, fieldSize); - break; + case FailedTestResultMessageFieldsId.ExceptionMessageList: + { + int length2 = ReadInt(stream); + for (int k = 0; k < length2; k++) + { - case FailedTestResultMessageFieldsId.ErrorStackTrace: - errorStackTrace = ReadStringValue(stream, fieldSize); - break; + int fieldCount2 = ReadShort(stream); + + string? errorMessage = null; + string? errorType = null; + string? stackTrace = null; + + for (int l = 0; l < fieldCount2; l++) + { + int fieldId2 = ReadShort(stream); + int fieldSize2 = ReadInt(stream); + + switch (fieldId2) + { + case ExceptionMessageFieldsId.ErrorMessage: + errorMessage = ReadStringValue(stream, fieldSize2); + break; + + case ExceptionMessageFieldsId.ErrorType: + errorType = ReadStringValue(stream, fieldSize2); + break; + + case ExceptionMessageFieldsId.StackTrace: + stackTrace = ReadStringValue(stream, fieldSize2); + break; + } + } + + exceptionMessages.Add(new ExceptionMessage(errorMessage, errorType, stackTrace)); + } + + break; + } case FailedTestResultMessageFieldsId.StandardOutput: standardOutput = ReadStringValue(stream, fieldSize); @@ -278,7 +309,7 @@ private static List ReadFailedTestMessagesPayload(Strea } } - failedTestResultMessages.Add(new FailedTestResultMessage(uid, displayName, state, duration, reason, errorMessage, errorStackTrace, standardOutput, errorOutput, sessionUid)); + failedTestResultMessages.Add(new FailedTestResultMessage(uid, displayName, state, duration, reason, exceptionMessages.ToArray(), standardOutput, errorOutput, sessionUid)); } return failedTestResultMessages; @@ -355,8 +386,7 @@ private static void WriteFailedTestMessagesPayload(Stream stream, FailedTestResu WriteField(stream, FailedTestResultMessageFieldsId.State, failedTestResultMessage.State); WriteField(stream, FailedTestResultMessageFieldsId.Duration, failedTestResultMessage.Duration); WriteField(stream, FailedTestResultMessageFieldsId.Reason, failedTestResultMessage.Reason); - WriteField(stream, FailedTestResultMessageFieldsId.ErrorMessage, failedTestResultMessage.ErrorMessage); - WriteField(stream, FailedTestResultMessageFieldsId.ErrorStackTrace, failedTestResultMessage.ErrorStackTrace); + WriteExceptionMessagesPayload(stream, failedTestResultMessage.Exceptions); WriteField(stream, FailedTestResultMessageFieldsId.StandardOutput, failedTestResultMessage.StandardOutput); WriteField(stream, FailedTestResultMessageFieldsId.ErrorOutput, failedTestResultMessage.ErrorOutput); WriteField(stream, FailedTestResultMessageFieldsId.SessionUid, failedTestResultMessage.SessionUid); @@ -367,6 +397,35 @@ private static void WriteFailedTestMessagesPayload(Stream stream, FailedTestResu WriteAtPosition(stream, (int)(stream.Position - before), before - sizeof(int)); } + private static void WriteExceptionMessagesPayload(Stream stream, ExceptionMessage[]? exceptionMessages) + { + if (exceptionMessages is null || exceptionMessages.Length == 0) + { + return; + } + + WriteShort(stream, FailedTestResultMessageFieldsId.ExceptionMessageList); + + // We will reserve an int (4 bytes) + // so that we fill the size later, once we write the payload + WriteInt(stream, 0); + + long before = stream.Position; + WriteInt(stream, exceptionMessages.Length); + foreach (ExceptionMessage exceptionMessage in exceptionMessages) + { + WriteShort(stream, GetFieldCount(exceptionMessage)); + + WriteField(stream, ExceptionMessageFieldsId.ErrorMessage, exceptionMessage.ErrorMessage); + WriteField(stream, ExceptionMessageFieldsId.ErrorType, exceptionMessage.ErrorType); + WriteField(stream, ExceptionMessageFieldsId.StackTrace, exceptionMessage.StackTrace); + } + + // NOTE: We are able to seek only if we are using a MemoryStream + // thus, the seek operation is fast as we are only changing the value of a property + WriteAtPosition(stream, (int)(stream.Position - before), before - sizeof(int)); + } + private static ushort GetFieldCount(TestResultMessages testResultMessages) => (ushort)((testResultMessages.ExecutionId is null ? 0 : 1) + (IsNullOrEmpty(testResultMessages.SuccessfulTestMessages) ? 0 : 1) + @@ -388,10 +447,14 @@ private static ushort GetFieldCount(FailedTestResultMessage failedTestResultMess (failedTestResultMessage.State is null ? 0 : 1) + (failedTestResultMessage.Duration is null ? 0 : 1) + (failedTestResultMessage.Reason is null ? 0 : 1) + - (failedTestResultMessage.ErrorMessage is null ? 0 : 1) + - (failedTestResultMessage.ErrorStackTrace is null ? 0 : 1) + + (IsNullOrEmpty(failedTestResultMessage.Exceptions) ? 0 : 1) + (failedTestResultMessage.StandardOutput is null ? 0 : 1) + (failedTestResultMessage.ErrorOutput is null ? 0 : 1) + (failedTestResultMessage.SessionUid is null ? 0 : 1)); + + private static ushort GetFieldCount(ExceptionMessage exceptionMessage) => + (ushort)((exceptionMessage.ErrorMessage is null ? 0 : 1) + + (exceptionMessage.ErrorType is null ? 0 : 1) + + (exceptionMessage.StackTrace is null ? 0 : 1)); } } diff --git a/src/Cli/dotnet/commands/dotnet-test/Models.cs b/src/Cli/dotnet/commands/dotnet-test/Models.cs index 4f4edf811e6d..e9bd91e79482 100644 --- a/src/Cli/dotnet/commands/dotnet-test/Models.cs +++ b/src/Cli/dotnet/commands/dotnet-test/Models.cs @@ -15,7 +15,9 @@ internal sealed record DiscoveredTest(string? Uid, string? DisplayName); internal sealed record SuccessfulTestResult(string? Uid, string? DisplayName, byte? State, long? Duration, string? Reason, string? StandardOutput, string? ErrorOutput, string? SessionUid); - internal sealed record FailedTestResult(string? Uid, string? DisplayName, byte? State, long? Duration, string? Reason, string? ErrorMessage, string? ErrorStackTrace, string? StandardOutput, string? ErrorOutput, string? SessionUid); + internal sealed record FailedTestResult(string? Uid, string? DisplayName, byte? State, long? Duration, string? Reason, FlatException[]? Exceptions, string? StandardOutput, string? ErrorOutput, string? SessionUid); + + internal sealed record FlatException(string? ErrorMessage, string? ErrorType, string? StackTrace); internal sealed record FileArtifact(string? FullPath, string? DisplayName, string? Description, string? TestUid, string? TestDisplayName, string? SessionUid); diff --git a/src/Cli/dotnet/commands/dotnet-test/TestApplication.cs b/src/Cli/dotnet/commands/dotnet-test/TestApplication.cs index 0ad9e9e038af..59fadf17ee04 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestApplication.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestApplication.cs @@ -248,6 +248,11 @@ private string BuildArgsWithDotnetRun(BuiltInOptions builtInOptions) builder.Append($" {TestingPlatformOptions.NoBuildOption.Name}"); } + if (builtInOptions.HasListTests) + { + builder.Append($" {TestingPlatformOptions.ListTestsOption.Name}"); + } + if (!string.IsNullOrEmpty(builtInOptions.Architecture)) { builder.Append($" {TestingPlatformOptions.ArchitectureOption.Name} {builtInOptions.Architecture}"); @@ -336,7 +341,7 @@ internal void OnTestResultMessages(TestResultMessages testResultMessage) { ExecutionId = testResultMessage.ExecutionId, SuccessfulTestResults = testResultMessage.SuccessfulTestMessages.Select(message => new SuccessfulTestResult(message.Uid, message.DisplayName, message.State, message.Duration, message.Reason, message.StandardOutput, message.ErrorOutput, message.SessionUid)).ToArray(), - FailedTestResults = testResultMessage.FailedTestMessages.Select(message => new FailedTestResult(message.Uid, message.DisplayName, message.State, message.Duration, message.Reason, message.ErrorMessage, message.ErrorStackTrace, message.StandardOutput, message.ErrorOutput, message.SessionUid)).ToArray() + FailedTestResults = testResultMessage.FailedTestMessages.Select(message => new FailedTestResult(message.Uid, message.DisplayName, message.State, message.Duration, message.Reason, message.Exceptions.Select(e => new FlatException(e.ErrorMessage, e.ErrorType, e.StackTrace)).ToArray(), message.StandardOutput, message.ErrorOutput, message.SessionUid)).ToArray() }); } diff --git a/src/Cli/dotnet/commands/dotnet-test/TestCommandParser.cs b/src/Cli/dotnet/commands/dotnet-test/TestCommandParser.cs index 5196981af9ae..c308cd2185fe 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestCommandParser.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestCommandParser.cs @@ -200,6 +200,7 @@ private static CliCommand GetTestingPlatformCliCommand() command.Options.Add(TestingPlatformOptions.ArchitectureOption); command.Options.Add(TestingPlatformOptions.ConfigurationOption); command.Options.Add(TestingPlatformOptions.ProjectOption); + command.Options.Add(TestingPlatformOptions.ListTestsOption); return command; } diff --git a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs index 529d7a2692f3..fd2173c1008e 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs @@ -5,6 +5,7 @@ using System.CommandLine; using Microsoft.DotNet.Tools.Test; using Microsoft.TemplateEngine.Cli.Commands; +using Microsoft.Testing.Platform.Builder; using Microsoft.Testing.Platform.Helpers; using Microsoft.Testing.Platform.OutputDevice; using Microsoft.Testing.Platform.OutputDevice.Terminal; @@ -24,6 +25,7 @@ internal partial class TestingPlatformCommand : CliCommand, ICustomHelp private List _args; private Dictionary _executions = new(); private byte _cancelled; + private bool _isDiscovery; public TestingPlatformCommand(string name, string description = null) : base(name, description) { @@ -51,23 +53,29 @@ public int Run(ParseResult parseResult) return ExitCodes.GenericFailure; } + if (parseResult.HasOption(TestingPlatformOptions.ListTestsOption)) + { + _isDiscovery = true; + } + BuiltInOptions builtInOptions = new( parseResult.HasOption(TestingPlatformOptions.NoRestoreOption), parseResult.HasOption(TestingPlatformOptions.NoBuildOption), + parseResult.HasOption(TestingPlatformOptions.ListTestsOption), parseResult.GetValue(TestingPlatformOptions.ConfigurationOption), parseResult.GetValue(TestingPlatformOptions.ArchitectureOption)); var console = new SystemConsole(); var output = new TerminalTestReporter(console, new TerminalTestReporterOptions() { - ShowPassedTests = Environment.GetEnvironmentVariable("SHOW_PASSED") == "1", + ShowPassedTests = Environment.GetEnvironmentVariable("SHOW_PASSED") == "1" ? () => true : () => false, ShowProgress = () => Environment.GetEnvironmentVariable("NO_PROGRESS") != "1", UseAnsi = Environment.GetEnvironmentVariable("NO_ANSI") != "1", ShowAssembly = true, ShowAssemblyStartAndComplete = true, }); _output = output; - _output.TestExecutionStarted(DateTimeOffset.Now, degreeOfParallelism); + _output.TestExecutionStarted(DateTimeOffset.Now, degreeOfParallelism, _isDiscovery); if (ContainsHelpOption(parseResult.GetArguments())) { @@ -183,13 +191,23 @@ private void OnHandshakeReceived(object sender, HandshakeArgs args) private void OnDiscoveredTestsReceived(object sender, DiscoveredTestEventArgs args) { + var testApp = (TestApplication)sender; + var appInfo = _executions[testApp]; + _executions[testApp] = appInfo; + + foreach (var test in args.DiscoveredTests) + { + _output.TestDiscovered(appInfo.ModulePath, appInfo.TargetFramework, appInfo.Architecture, appInfo.ExecutionId, + test.DisplayName, + test.Uid); + } + if (!VSTestTrace.TraceEnabled) { return; } var discoveredTestMessages = args.DiscoveredTests; - VSTestTrace.SafeWriteTrace(() => $"DiscoveredTests Execution Id: {args.ExecutionId}"); foreach (DiscoveredTest discoveredTestMessage in discoveredTestMessages) { @@ -203,13 +221,11 @@ private void OnTestResultsReceived(object sender, TestResultEventArgs args) { var testApp = (TestApplication)sender; var appInfo = _executions[testApp]; - // TODO: timespan for duration _output.TestCompleted(appInfo.ModulePath, appInfo.TargetFramework, appInfo.Architecture, appInfo.ExecutionId, testResult.DisplayName, ToOutcome(testResult.State), - TimeSpan.FromSeconds(1), - errorMessage: null, - errorStackTrace: null, + TimeSpan.FromTicks(testResult.Duration ?? 0), + exceptions: null, expected: null, actual: null, standardOutput: null, @@ -219,16 +235,14 @@ private void OnTestResultsReceived(object sender, TestResultEventArgs args) foreach (var testResult in args.FailedTestResults) { var testApp = (TestApplication)sender; - // TODO: timespan for duration // TODO: expected // TODO: actual var appInfo = _executions[testApp]; _output.TestCompleted(appInfo.ModulePath, appInfo.TargetFramework, appInfo.Architecture, appInfo.ExecutionId, testResult.DisplayName, ToOutcome(testResult.State), - TimeSpan.FromSeconds(1), - errorMessage: testResult.ErrorMessage, - errorStackTrace: testResult.ErrorStackTrace, + TimeSpan.FromTicks(testResult.Duration ?? 0), + exceptions: testResult.Exceptions.Select(fe => new Microsoft.Testing.Platform.OutputDevice.Terminal.FlatException(fe.ErrorMessage, fe.ErrorType, fe.StackTrace)).ToArray(), expected: null, actual: null, standardOutput: null, @@ -252,8 +266,8 @@ private void OnTestResultsReceived(object sender, TestResultEventArgs args) foreach (FailedTestResult failedTestResult in args.FailedTestResults) { VSTestTrace.SafeWriteTrace(() => $"FailedTestResult: {failedTestResult.Uid}, {failedTestResult.DisplayName}, " + - $"{failedTestResult.State}, {failedTestResult.Duration}, {failedTestResult.Reason}, {failedTestResult.ErrorMessage}," + - $"{failedTestResult.ErrorStackTrace}, {failedTestResult.StandardOutput}, {failedTestResult.ErrorOutput}, {failedTestResult.SessionUid}"); + $"{failedTestResult.State}, {failedTestResult.Duration}, {failedTestResult.Reason}, {string.Join(", ", failedTestResult.Exceptions?.Select(e => $"{e.ErrorMessage}, {e.ErrorType}, {e.StackTrace}"))}" + + $"{failedTestResult.StandardOutput}, {failedTestResult.ErrorOutput}, {failedTestResult.SessionUid}"); } } @@ -273,6 +287,17 @@ public static TestOutcome ToOutcome(byte? testState) private void OnFileArtifactsReceived(object sender, FileArtifactEventArgs args) { + var testApp = (TestApplication)sender; + var appInfo = _executions[testApp]; + + foreach (var artifact in args.FileArtifacts) { + // TODO: Is artifact out of process + _output.ArtifactAdded( + outOfProcess: false, + appInfo.ModulePath, appInfo.TargetFramework, appInfo.Architecture, appInfo.ExecutionId, + artifact.TestDisplayName, artifact.FullPath); + } + if (!VSTestTrace.TraceEnabled) { return; @@ -313,8 +338,12 @@ private void OnTestProcessExited(object sender, TestProcessExitEventArgs args) { var testApplication = (TestApplication)sender; - var appInfo = _executions[testApplication]; - _output.AssemblyRunCompleted(appInfo.ModulePath, appInfo.TargetFramework, appInfo.Architecture, appInfo.ExecutionId); + // If the application exits too early we might not start the execution, + // e.g. if the parameter is incorrect. + if (_executions.TryGetValue(testApplication, out var appInfo)) + { + _output.AssemblyRunCompleted(appInfo.ModulePath, appInfo.TargetFramework, appInfo.Architecture, appInfo.ExecutionId, args.ExitCode, string.Join(Environment.NewLine, args.OutputData), string.Join(Environment.NewLine, args.ErrorData)); + } if (!VSTestTrace.TraceEnabled) { diff --git a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformOptions.cs b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformOptions.cs index f894c4cab66f..cd0a128146ce 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformOptions.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformOptions.cs @@ -57,5 +57,11 @@ internal static class TestingPlatformOptions Description = LocalizableStrings.CmdProjectDescription, Arity = ArgumentArity.ExactlyOne }; + + public static readonly CliOption ListTestsOption = new("--list-tests") + { + Description = LocalizableStrings.CmdListTestsDescription, + Arity = ArgumentArity.Zero + }; } } From ac326d938b240484479f225113e08c4c40b853f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Jare=C5=A1?= Date: Tue, 3 Dec 2024 17:11:37 +0100 Subject: [PATCH 013/193] remove local --- NuGet.config | 1 - 1 file changed, 1 deletion(-) diff --git a/NuGet.config b/NuGet.config index 8cb6c0138d0f..ecf2c176d5ad 100644 --- a/NuGet.config +++ b/NuGet.config @@ -8,7 +8,6 @@ - From c28a02cb95ba621c21262cdebc5c81342a0bbeb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Jare=C5=A1?= Date: Wed, 4 Dec 2024 10:13:53 +0100 Subject: [PATCH 014/193] Update eng/Version.Details.xml --- eng/Version.Details.xml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 6cb416984087..d3d6a41c6710 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -224,10 +224,6 @@ https://github.com/microsoft/vstest 7d34b30433259fb914aaaf276fde663a47b6ef2f - - https://github.com/microsoft/testfx - bc9161306b23641b0364b8f93d546da4d48da1eb - https://github.com/microsoft/vstest From a2e4d899cf6b3fce803aedd3c49dcbd3421349c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Jare=C5=A1?= Date: Tue, 10 Dec 2024 15:46:36 +0100 Subject: [PATCH 015/193] concurrent dict --- src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs index 828dbe77b627..96a2bb262afb 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs @@ -6,7 +6,6 @@ using System.CommandLine; using Microsoft.DotNet.Tools.Test; using Microsoft.TemplateEngine.Cli.Commands; -using Microsoft.Testing.Platform.Builder; using Microsoft.Testing.Platform.Helpers; using Microsoft.Testing.Platform.OutputDevice; using Microsoft.Testing.Platform.OutputDevice.Terminal; @@ -24,7 +23,7 @@ internal partial class TestingPlatformCommand : CliCommand, ICustomHelp private TestApplicationActionQueue _actionQueue; private Task _namedPipeConnectionLoop; private List _args; - private Dictionary _executions = new(); + private ConcurrentDictionary _executions = new(); private byte _cancelled; private bool _isDiscovery; @@ -212,7 +211,6 @@ private void OnDiscoveredTestsReceived(object sender, DiscoveredTestEventArgs ar { var testApp = (TestApplication)sender; var appInfo = _executions[testApp]; - _executions[testApp] = appInfo; foreach (var test in args.DiscoveredTests) { From 4fa9b7a935034dd1d5f22445f19fe21dc9a65043 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Jare=C5=A1?= Date: Tue, 10 Dec 2024 20:04:51 +0100 Subject: [PATCH 016/193] remove summary on help --- src/Cli/dotnet/Properties/launchSettings.json | 10 ++++++++-- .../commands/dotnet-test/TestingPlatformCommand.cs | 12 +++++++++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/Cli/dotnet/Properties/launchSettings.json b/src/Cli/dotnet/Properties/launchSettings.json index 8d0ebf35dc6f..4060061afe7a 100644 --- a/src/Cli/dotnet/Properties/launchSettings.json +++ b/src/Cli/dotnet/Properties/launchSettings.json @@ -1,7 +1,13 @@ { "profiles": { "dotnet": { - "commandName": "Project" + "commandName": "Project", + "commandLineArgs": "test --help", + "workingDirectory": "S:\\t\\mstest216", + "environmentVariables": { + "DOTNET_CLI_TESTINGPLATFORM_ENABLE": "1" + }, + "hotReloadEnabled": false } } -} \ No newline at end of file +} diff --git a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs index 96a2bb262afb..e47ad670b93f 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs @@ -20,6 +20,7 @@ internal partial class TestingPlatformCommand : CliCommand, ICustomHelp private MSBuildConnectionHandler _msBuildConnectionHandler; private TestModulesFilterHandler _testModulesFilterHandler; private TerminalTestReporter _output; + private bool _isHelp; private TestApplicationActionQueue _actionQueue; private Task _namedPipeConnectionLoop; private List _args; @@ -77,10 +78,11 @@ public int Run(ParseResult parseResult) ShowAssemblyStartAndComplete = true, }); _output = output; - _output.TestExecutionStarted(DateTimeOffset.Now, degreeOfParallelism, _isDiscovery); + _isHelp = false; if (ContainsHelpOption(parseResult.GetArguments())) { + _isHelp = true; _actionQueue = new(degreeOfParallelism, async (TestApplication testApp) => { testApp.HelpRequested += OnHelpRequested; @@ -90,12 +92,13 @@ public int Run(ParseResult parseResult) testApp.ExecutionIdReceived += OnExecutionIdReceived; var result = await testApp.RunAsync(filterModeEnabled, enableHelp: true, builtInOptions); - CompleteRun(); return result; }); } else { + _output.TestExecutionStarted(DateTimeOffset.Now, degreeOfParallelism, _isDiscovery); + _actionQueue = new(degreeOfParallelism, async (TestApplication testApp) => { testApp.HandshakeReceived += OnHandshakeReceived; @@ -165,7 +168,10 @@ private void CompleteRun() { if (Interlocked.CompareExchange(ref _cancelled, 1, 0) == 0) { - _output?.TestExecutionCompleted(DateTimeOffset.Now); + if (!_isHelp) + { + _output?.TestExecutionCompleted(DateTimeOffset.Now); + } } } From ad132de853f73df286d80ff073565b7f1a457d49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Jare=C5=A1?= Date: Wed, 11 Dec 2024 14:41:41 +0100 Subject: [PATCH 017/193] Fix PR review notes --- .../dotnet-test/IPC/ObjectFieldIds.cs | 6 +- .../TestResultMessagesSerializer.cs | 91 ++++++++++--------- 2 files changed, 49 insertions(+), 48 deletions(-) diff --git a/src/Cli/dotnet/commands/dotnet-test/IPC/ObjectFieldIds.cs b/src/Cli/dotnet/commands/dotnet-test/IPC/ObjectFieldIds.cs index 01d38f3d9ec2..7aa8a164554d 100644 --- a/src/Cli/dotnet/commands/dotnet-test/IPC/ObjectFieldIds.cs +++ b/src/Cli/dotnet/commands/dotnet-test/IPC/ObjectFieldIds.cs @@ -86,9 +86,9 @@ internal static class FailedTestResultMessageFieldsId public const ushort Duration = 4; public const ushort Reason = 5; public const ushort ExceptionMessageList = 6; - public const ushort StandardOutput = 8; - public const ushort ErrorOutput = 9; - public const ushort SessionUid = 10; + public const ushort StandardOutput = 7; + public const ushort ErrorOutput = 8; + public const ushort SessionUid = 9; } internal static class ExceptionMessageFieldsId diff --git a/src/Cli/dotnet/commands/dotnet-test/IPC/Serializers/TestResultMessagesSerializer.cs b/src/Cli/dotnet/commands/dotnet-test/IPC/Serializers/TestResultMessagesSerializer.cs index 9577e81d2bb1..a7bc71aafd7b 100644 --- a/src/Cli/dotnet/commands/dotnet-test/IPC/Serializers/TestResultMessagesSerializer.cs +++ b/src/Cli/dotnet/commands/dotnet-test/IPC/Serializers/TestResultMessagesSerializer.cs @@ -1,9 +1,5 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -#if NETCOREAPP -#nullable enable -#endif +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. using System.Diagnostics; @@ -219,7 +215,7 @@ private static List ReadFailedTestMessagesPayload(Strea for (int i = 0; i < length; i++) { string? uid = null, displayName = null, reason = null, sessionUid = null, standardOutput = null, errorOutput = null; - List exceptionMessages = []; + ExceptionMessage[] exceptionMessages = []; byte? state = null; long? duration = null; @@ -253,43 +249,8 @@ private static List ReadFailedTestMessagesPayload(Strea break; case FailedTestResultMessageFieldsId.ExceptionMessageList: - { - int length2 = ReadInt(stream); - for (int k = 0; k < length2; k++) - { - - int fieldCount2 = ReadShort(stream); - - string? errorMessage = null; - string? errorType = null; - string? stackTrace = null; - - for (int l = 0; l < fieldCount2; l++) - { - int fieldId2 = ReadShort(stream); - int fieldSize2 = ReadInt(stream); - - switch (fieldId2) - { - case ExceptionMessageFieldsId.ErrorMessage: - errorMessage = ReadStringValue(stream, fieldSize2); - break; - - case ExceptionMessageFieldsId.ErrorType: - errorType = ReadStringValue(stream, fieldSize2); - break; - - case ExceptionMessageFieldsId.StackTrace: - stackTrace = ReadStringValue(stream, fieldSize2); - break; - } - } - - exceptionMessages.Add(new ExceptionMessage(errorMessage, errorType, stackTrace)); - } - - break; - } + exceptionMessages = ReadExceptionMessagesPayload(stream); + break; case FailedTestResultMessageFieldsId.StandardOutput: standardOutput = ReadStringValue(stream, fieldSize); @@ -309,12 +270,52 @@ private static List ReadFailedTestMessagesPayload(Strea } } - failedTestResultMessages.Add(new FailedTestResultMessage(uid, displayName, state, duration, reason, exceptionMessages.ToArray(), standardOutput, errorOutput, sessionUid)); + failedTestResultMessages.Add(new FailedTestResultMessage(uid, displayName, state, duration, reason, exceptionMessages, standardOutput, errorOutput, sessionUid)); } return failedTestResultMessages; } + private static ExceptionMessage[] ReadExceptionMessagesPayload(Stream stream) + { + var exceptionMessages = new List(); + + int length = ReadInt(stream); + for (int i = 0; i < length; i++) + { + int fieldCount = ReadShort(stream); + + string? errorMessage = null; + string? errorType = null; + string? stackTrace = null; + + for (int j = 0; j < fieldCount; j++) + { + int fieldId = ReadShort(stream); + int fieldSize = ReadInt(stream); + + switch (fieldId) + { + case ExceptionMessageFieldsId.ErrorMessage: + errorMessage = ReadStringValue(stream, fieldSize); + break; + + case ExceptionMessageFieldsId.ErrorType: + errorType = ReadStringValue(stream, fieldSize); + break; + + case ExceptionMessageFieldsId.StackTrace: + stackTrace = ReadStringValue(stream, fieldSize); + break; + } + } + + exceptionMessages.Add(new ExceptionMessage(errorMessage, errorType, stackTrace)); + } + + return exceptionMessages.ToArray(); + } + public void Serialize(object objectToSerialize, Stream stream) { Debug.Assert(stream.CanSeek, "We expect a seekable stream."); From 405c63f7387f845f941f0171e3dbc5c6420d3987 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 6 Jan 2025 12:07:39 +0000 Subject: [PATCH 018/193] Update dependencies from https://github.com/dotnet/roslyn build 20250106.1 Microsoft.SourceBuild.Intermediate.roslyn , Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset , Microsoft.Net.Compilers.Toolset.Framework From Version 4.13.0-3.25055.1 -> To Version 4.13.0-3.25056.1 --- eng/Version.Details.xml | 36 ++++++++++++++++++------------------ eng/Versions.props | 16 ++++++++-------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 260dc3e1818e..ff5850f172fb 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -93,43 +93,43 @@ 5af96504f10836eca6ce804ab3cdd28c042fa35a - + https://github.com/dotnet/roslyn - f7e10cf53040607a22a61376e5c3d827184699d8 + 642ee015e5c970bd3ad8ff08ef2d619bc23c87c2 - + https://github.com/dotnet/roslyn - f7e10cf53040607a22a61376e5c3d827184699d8 + 642ee015e5c970bd3ad8ff08ef2d619bc23c87c2 - + https://github.com/dotnet/roslyn - f7e10cf53040607a22a61376e5c3d827184699d8 + 642ee015e5c970bd3ad8ff08ef2d619bc23c87c2 - + https://github.com/dotnet/roslyn - f7e10cf53040607a22a61376e5c3d827184699d8 + 642ee015e5c970bd3ad8ff08ef2d619bc23c87c2 - + https://github.com/dotnet/roslyn - f7e10cf53040607a22a61376e5c3d827184699d8 + 642ee015e5c970bd3ad8ff08ef2d619bc23c87c2 - + https://github.com/dotnet/roslyn - f7e10cf53040607a22a61376e5c3d827184699d8 + 642ee015e5c970bd3ad8ff08ef2d619bc23c87c2 - + https://github.com/dotnet/roslyn - f7e10cf53040607a22a61376e5c3d827184699d8 + 642ee015e5c970bd3ad8ff08ef2d619bc23c87c2 - + https://github.com/dotnet/roslyn - f7e10cf53040607a22a61376e5c3d827184699d8 + 642ee015e5c970bd3ad8ff08ef2d619bc23c87c2 - + https://github.com/dotnet/roslyn - f7e10cf53040607a22a61376e5c3d827184699d8 + 642ee015e5c970bd3ad8ff08ef2d619bc23c87c2 https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index 7f8d46b71858..7891459f6f34 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -202,14 +202,14 @@ - 4.13.0-3.25055.1 - 4.13.0-3.25055.1 - 4.13.0-3.25055.1 - 4.13.0-3.25055.1 - 4.13.0-3.25055.1 - 4.13.0-3.25055.1 - 4.13.0-3.25055.1 - 4.13.0-3.25055.1 + 4.13.0-3.25056.1 + 4.13.0-3.25056.1 + 4.13.0-3.25056.1 + 4.13.0-3.25056.1 + 4.13.0-3.25056.1 + 4.13.0-3.25056.1 + 4.13.0-3.25056.1 + 4.13.0-3.25056.1 From 2dd724c3823b62a0039b9e82bfbadaf808f1c8d4 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 6 Jan 2025 13:47:44 +0000 Subject: [PATCH 019/193] Update dependencies from https://github.com/dotnet/roslyn build 20250106.2 Microsoft.SourceBuild.Intermediate.roslyn , Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset , Microsoft.Net.Compilers.Toolset.Framework From Version 4.13.0-3.25055.1 -> To Version 4.13.0-3.25056.2 --- eng/Version.Details.xml | 36 ++++++++++++++++++------------------ eng/Versions.props | 16 ++++++++-------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index ff5850f172fb..edeea846ea96 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -93,43 +93,43 @@ 5af96504f10836eca6ce804ab3cdd28c042fa35a - + https://github.com/dotnet/roslyn - 642ee015e5c970bd3ad8ff08ef2d619bc23c87c2 + b86d8313cbc26144c94a2a07793c6e7e2fc34822 - + https://github.com/dotnet/roslyn - 642ee015e5c970bd3ad8ff08ef2d619bc23c87c2 + b86d8313cbc26144c94a2a07793c6e7e2fc34822 - + https://github.com/dotnet/roslyn - 642ee015e5c970bd3ad8ff08ef2d619bc23c87c2 + b86d8313cbc26144c94a2a07793c6e7e2fc34822 - + https://github.com/dotnet/roslyn - 642ee015e5c970bd3ad8ff08ef2d619bc23c87c2 + b86d8313cbc26144c94a2a07793c6e7e2fc34822 - + https://github.com/dotnet/roslyn - 642ee015e5c970bd3ad8ff08ef2d619bc23c87c2 + b86d8313cbc26144c94a2a07793c6e7e2fc34822 - + https://github.com/dotnet/roslyn - 642ee015e5c970bd3ad8ff08ef2d619bc23c87c2 + b86d8313cbc26144c94a2a07793c6e7e2fc34822 - + https://github.com/dotnet/roslyn - 642ee015e5c970bd3ad8ff08ef2d619bc23c87c2 + b86d8313cbc26144c94a2a07793c6e7e2fc34822 - + https://github.com/dotnet/roslyn - 642ee015e5c970bd3ad8ff08ef2d619bc23c87c2 + b86d8313cbc26144c94a2a07793c6e7e2fc34822 - + https://github.com/dotnet/roslyn - 642ee015e5c970bd3ad8ff08ef2d619bc23c87c2 + b86d8313cbc26144c94a2a07793c6e7e2fc34822 https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index 7891459f6f34..3c8ce8d976d1 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -202,14 +202,14 @@ - 4.13.0-3.25056.1 - 4.13.0-3.25056.1 - 4.13.0-3.25056.1 - 4.13.0-3.25056.1 - 4.13.0-3.25056.1 - 4.13.0-3.25056.1 - 4.13.0-3.25056.1 - 4.13.0-3.25056.1 + 4.13.0-3.25056.2 + 4.13.0-3.25056.2 + 4.13.0-3.25056.2 + 4.13.0-3.25056.2 + 4.13.0-3.25056.2 + 4.13.0-3.25056.2 + 4.13.0-3.25056.2 + 4.13.0-3.25056.2 From 04fff5403cad0325800f6ff541628880d660bb2b Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 6 Jan 2025 19:11:54 +0000 Subject: [PATCH 020/193] Update dependencies from https://github.com/dotnet/roslyn build 20250106.3 Microsoft.SourceBuild.Intermediate.roslyn , Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset , Microsoft.Net.Compilers.Toolset.Framework From Version 4.13.0-3.25055.1 -> To Version 4.13.0-3.25056.3 --- eng/Version.Details.xml | 36 ++++++++++++++++++------------------ eng/Versions.props | 16 ++++++++-------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index edeea846ea96..7b9060f95728 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -93,43 +93,43 @@ 5af96504f10836eca6ce804ab3cdd28c042fa35a - + https://github.com/dotnet/roslyn - b86d8313cbc26144c94a2a07793c6e7e2fc34822 + 3638dd96f888f517a7bb70690e14bc7d7fb6111f - + https://github.com/dotnet/roslyn - b86d8313cbc26144c94a2a07793c6e7e2fc34822 + 3638dd96f888f517a7bb70690e14bc7d7fb6111f - + https://github.com/dotnet/roslyn - b86d8313cbc26144c94a2a07793c6e7e2fc34822 + 3638dd96f888f517a7bb70690e14bc7d7fb6111f - + https://github.com/dotnet/roslyn - b86d8313cbc26144c94a2a07793c6e7e2fc34822 + 3638dd96f888f517a7bb70690e14bc7d7fb6111f - + https://github.com/dotnet/roslyn - b86d8313cbc26144c94a2a07793c6e7e2fc34822 + 3638dd96f888f517a7bb70690e14bc7d7fb6111f - + https://github.com/dotnet/roslyn - b86d8313cbc26144c94a2a07793c6e7e2fc34822 + 3638dd96f888f517a7bb70690e14bc7d7fb6111f - + https://github.com/dotnet/roslyn - b86d8313cbc26144c94a2a07793c6e7e2fc34822 + 3638dd96f888f517a7bb70690e14bc7d7fb6111f - + https://github.com/dotnet/roslyn - b86d8313cbc26144c94a2a07793c6e7e2fc34822 + 3638dd96f888f517a7bb70690e14bc7d7fb6111f - + https://github.com/dotnet/roslyn - b86d8313cbc26144c94a2a07793c6e7e2fc34822 + 3638dd96f888f517a7bb70690e14bc7d7fb6111f https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index 3c8ce8d976d1..2059ca248881 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -202,14 +202,14 @@ - 4.13.0-3.25056.2 - 4.13.0-3.25056.2 - 4.13.0-3.25056.2 - 4.13.0-3.25056.2 - 4.13.0-3.25056.2 - 4.13.0-3.25056.2 - 4.13.0-3.25056.2 - 4.13.0-3.25056.2 + 4.13.0-3.25056.3 + 4.13.0-3.25056.3 + 4.13.0-3.25056.3 + 4.13.0-3.25056.3 + 4.13.0-3.25056.3 + 4.13.0-3.25056.3 + 4.13.0-3.25056.3 + 4.13.0-3.25056.3 From a09b4256a421aeafc1d2ed47773268fdbbee366b Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 6 Jan 2025 21:47:16 +0000 Subject: [PATCH 021/193] Update dependencies from https://github.com/dotnet/roslyn build 20250106.5 Microsoft.SourceBuild.Intermediate.roslyn , Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset , Microsoft.Net.Compilers.Toolset.Framework From Version 4.13.0-3.25055.1 -> To Version 4.13.0-3.25056.5 --- eng/Version.Details.xml | 36 ++++++++++++++++++------------------ eng/Versions.props | 16 ++++++++-------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 7b9060f95728..2cc26069bc65 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -93,43 +93,43 @@ 5af96504f10836eca6ce804ab3cdd28c042fa35a - + https://github.com/dotnet/roslyn - 3638dd96f888f517a7bb70690e14bc7d7fb6111f + 6cac171f3b2660b696624c1778bc637deef51272 - + https://github.com/dotnet/roslyn - 3638dd96f888f517a7bb70690e14bc7d7fb6111f + 6cac171f3b2660b696624c1778bc637deef51272 - + https://github.com/dotnet/roslyn - 3638dd96f888f517a7bb70690e14bc7d7fb6111f + 6cac171f3b2660b696624c1778bc637deef51272 - + https://github.com/dotnet/roslyn - 3638dd96f888f517a7bb70690e14bc7d7fb6111f + 6cac171f3b2660b696624c1778bc637deef51272 - + https://github.com/dotnet/roslyn - 3638dd96f888f517a7bb70690e14bc7d7fb6111f + 6cac171f3b2660b696624c1778bc637deef51272 - + https://github.com/dotnet/roslyn - 3638dd96f888f517a7bb70690e14bc7d7fb6111f + 6cac171f3b2660b696624c1778bc637deef51272 - + https://github.com/dotnet/roslyn - 3638dd96f888f517a7bb70690e14bc7d7fb6111f + 6cac171f3b2660b696624c1778bc637deef51272 - + https://github.com/dotnet/roslyn - 3638dd96f888f517a7bb70690e14bc7d7fb6111f + 6cac171f3b2660b696624c1778bc637deef51272 - + https://github.com/dotnet/roslyn - 3638dd96f888f517a7bb70690e14bc7d7fb6111f + 6cac171f3b2660b696624c1778bc637deef51272 https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index 2059ca248881..183152b36dba 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -202,14 +202,14 @@ - 4.13.0-3.25056.3 - 4.13.0-3.25056.3 - 4.13.0-3.25056.3 - 4.13.0-3.25056.3 - 4.13.0-3.25056.3 - 4.13.0-3.25056.3 - 4.13.0-3.25056.3 - 4.13.0-3.25056.3 + 4.13.0-3.25056.5 + 4.13.0-3.25056.5 + 4.13.0-3.25056.5 + 4.13.0-3.25056.5 + 4.13.0-3.25056.5 + 4.13.0-3.25056.5 + 4.13.0-3.25056.5 + 4.13.0-3.25056.5 From 3b633ce32b5e1a0bf21f9493137957e45e5556d9 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 6 Jan 2025 22:20:09 +0000 Subject: [PATCH 022/193] Update dependencies from https://github.com/dotnet/roslyn build 20250106.6 Microsoft.SourceBuild.Intermediate.roslyn , Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset , Microsoft.Net.Compilers.Toolset.Framework From Version 4.13.0-3.25055.1 -> To Version 4.13.0-3.25056.6 --- eng/Version.Details.xml | 36 ++++++++++++++++++------------------ eng/Versions.props | 16 ++++++++-------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 2cc26069bc65..e4f19e566686 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -93,43 +93,43 @@ 5af96504f10836eca6ce804ab3cdd28c042fa35a - + https://github.com/dotnet/roslyn - 6cac171f3b2660b696624c1778bc637deef51272 + e4242b9d39f13aa19093364f62f9f38ebe1f607a - + https://github.com/dotnet/roslyn - 6cac171f3b2660b696624c1778bc637deef51272 + e4242b9d39f13aa19093364f62f9f38ebe1f607a - + https://github.com/dotnet/roslyn - 6cac171f3b2660b696624c1778bc637deef51272 + e4242b9d39f13aa19093364f62f9f38ebe1f607a - + https://github.com/dotnet/roslyn - 6cac171f3b2660b696624c1778bc637deef51272 + e4242b9d39f13aa19093364f62f9f38ebe1f607a - + https://github.com/dotnet/roslyn - 6cac171f3b2660b696624c1778bc637deef51272 + e4242b9d39f13aa19093364f62f9f38ebe1f607a - + https://github.com/dotnet/roslyn - 6cac171f3b2660b696624c1778bc637deef51272 + e4242b9d39f13aa19093364f62f9f38ebe1f607a - + https://github.com/dotnet/roslyn - 6cac171f3b2660b696624c1778bc637deef51272 + e4242b9d39f13aa19093364f62f9f38ebe1f607a - + https://github.com/dotnet/roslyn - 6cac171f3b2660b696624c1778bc637deef51272 + e4242b9d39f13aa19093364f62f9f38ebe1f607a - + https://github.com/dotnet/roslyn - 6cac171f3b2660b696624c1778bc637deef51272 + e4242b9d39f13aa19093364f62f9f38ebe1f607a https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index 183152b36dba..958942b174a6 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -202,14 +202,14 @@ - 4.13.0-3.25056.5 - 4.13.0-3.25056.5 - 4.13.0-3.25056.5 - 4.13.0-3.25056.5 - 4.13.0-3.25056.5 - 4.13.0-3.25056.5 - 4.13.0-3.25056.5 - 4.13.0-3.25056.5 + 4.13.0-3.25056.6 + 4.13.0-3.25056.6 + 4.13.0-3.25056.6 + 4.13.0-3.25056.6 + 4.13.0-3.25056.6 + 4.13.0-3.25056.6 + 4.13.0-3.25056.6 + 4.13.0-3.25056.6 From f7817452829ee194ce1d22ffb9c6a31592a3ef6b Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 6 Jan 2025 23:33:08 +0000 Subject: [PATCH 023/193] Update dependencies from https://github.com/dotnet/roslyn build 20250106.7 Microsoft.SourceBuild.Intermediate.roslyn , Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset , Microsoft.Net.Compilers.Toolset.Framework From Version 4.13.0-3.25055.1 -> To Version 4.13.0-3.25056.7 --- eng/Version.Details.xml | 36 ++++++++++++++++++------------------ eng/Versions.props | 16 ++++++++-------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index e4f19e566686..ce8d2a4b66fa 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -93,43 +93,43 @@ 5af96504f10836eca6ce804ab3cdd28c042fa35a - + https://github.com/dotnet/roslyn - e4242b9d39f13aa19093364f62f9f38ebe1f607a + 83debc85e5d99c1083efe77f7deb8c6b628d8214 - + https://github.com/dotnet/roslyn - e4242b9d39f13aa19093364f62f9f38ebe1f607a + 83debc85e5d99c1083efe77f7deb8c6b628d8214 - + https://github.com/dotnet/roslyn - e4242b9d39f13aa19093364f62f9f38ebe1f607a + 83debc85e5d99c1083efe77f7deb8c6b628d8214 - + https://github.com/dotnet/roslyn - e4242b9d39f13aa19093364f62f9f38ebe1f607a + 83debc85e5d99c1083efe77f7deb8c6b628d8214 - + https://github.com/dotnet/roslyn - e4242b9d39f13aa19093364f62f9f38ebe1f607a + 83debc85e5d99c1083efe77f7deb8c6b628d8214 - + https://github.com/dotnet/roslyn - e4242b9d39f13aa19093364f62f9f38ebe1f607a + 83debc85e5d99c1083efe77f7deb8c6b628d8214 - + https://github.com/dotnet/roslyn - e4242b9d39f13aa19093364f62f9f38ebe1f607a + 83debc85e5d99c1083efe77f7deb8c6b628d8214 - + https://github.com/dotnet/roslyn - e4242b9d39f13aa19093364f62f9f38ebe1f607a + 83debc85e5d99c1083efe77f7deb8c6b628d8214 - + https://github.com/dotnet/roslyn - e4242b9d39f13aa19093364f62f9f38ebe1f607a + 83debc85e5d99c1083efe77f7deb8c6b628d8214 https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index 958942b174a6..1369450f2b88 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -202,14 +202,14 @@ - 4.13.0-3.25056.6 - 4.13.0-3.25056.6 - 4.13.0-3.25056.6 - 4.13.0-3.25056.6 - 4.13.0-3.25056.6 - 4.13.0-3.25056.6 - 4.13.0-3.25056.6 - 4.13.0-3.25056.6 + 4.13.0-3.25056.7 + 4.13.0-3.25056.7 + 4.13.0-3.25056.7 + 4.13.0-3.25056.7 + 4.13.0-3.25056.7 + 4.13.0-3.25056.7 + 4.13.0-3.25056.7 + 4.13.0-3.25056.7 From 47270ca24957764dd8cfe6452014954be764a339 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 6 Jan 2025 23:58:54 +0000 Subject: [PATCH 024/193] Update dependencies from https://github.com/dotnet/roslyn build 20250106.8 Microsoft.SourceBuild.Intermediate.roslyn , Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset , Microsoft.Net.Compilers.Toolset.Framework From Version 4.13.0-3.25055.1 -> To Version 4.13.0-3.25056.8 --- eng/Version.Details.xml | 36 ++++++++++++++++++------------------ eng/Versions.props | 16 ++++++++-------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index ce8d2a4b66fa..276c5f1a05d8 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -93,43 +93,43 @@ 5af96504f10836eca6ce804ab3cdd28c042fa35a - + https://github.com/dotnet/roslyn - 83debc85e5d99c1083efe77f7deb8c6b628d8214 + 0e54217d8eb545fb9b51d0596b5ef8e4830ff83c - + https://github.com/dotnet/roslyn - 83debc85e5d99c1083efe77f7deb8c6b628d8214 + 0e54217d8eb545fb9b51d0596b5ef8e4830ff83c - + https://github.com/dotnet/roslyn - 83debc85e5d99c1083efe77f7deb8c6b628d8214 + 0e54217d8eb545fb9b51d0596b5ef8e4830ff83c - + https://github.com/dotnet/roslyn - 83debc85e5d99c1083efe77f7deb8c6b628d8214 + 0e54217d8eb545fb9b51d0596b5ef8e4830ff83c - + https://github.com/dotnet/roslyn - 83debc85e5d99c1083efe77f7deb8c6b628d8214 + 0e54217d8eb545fb9b51d0596b5ef8e4830ff83c - + https://github.com/dotnet/roslyn - 83debc85e5d99c1083efe77f7deb8c6b628d8214 + 0e54217d8eb545fb9b51d0596b5ef8e4830ff83c - + https://github.com/dotnet/roslyn - 83debc85e5d99c1083efe77f7deb8c6b628d8214 + 0e54217d8eb545fb9b51d0596b5ef8e4830ff83c - + https://github.com/dotnet/roslyn - 83debc85e5d99c1083efe77f7deb8c6b628d8214 + 0e54217d8eb545fb9b51d0596b5ef8e4830ff83c - + https://github.com/dotnet/roslyn - 83debc85e5d99c1083efe77f7deb8c6b628d8214 + 0e54217d8eb545fb9b51d0596b5ef8e4830ff83c https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index 1369450f2b88..484a6ae425b6 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -202,14 +202,14 @@ - 4.13.0-3.25056.7 - 4.13.0-3.25056.7 - 4.13.0-3.25056.7 - 4.13.0-3.25056.7 - 4.13.0-3.25056.7 - 4.13.0-3.25056.7 - 4.13.0-3.25056.7 - 4.13.0-3.25056.7 + 4.13.0-3.25056.8 + 4.13.0-3.25056.8 + 4.13.0-3.25056.8 + 4.13.0-3.25056.8 + 4.13.0-3.25056.8 + 4.13.0-3.25056.8 + 4.13.0-3.25056.8 + 4.13.0-3.25056.8 From 3048c1cf5641deea80ebc2c062b3917ac3c86101 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 7 Jan 2025 04:21:06 +0000 Subject: [PATCH 025/193] Update dependencies from https://github.com/dotnet/roslyn build 20250106.21 Microsoft.SourceBuild.Intermediate.roslyn , Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset , Microsoft.Net.Compilers.Toolset.Framework From Version 4.13.0-3.25055.1 -> To Version 4.13.0-3.25056.21 --- eng/Version.Details.xml | 36 ++++++++++++++++++------------------ eng/Versions.props | 16 ++++++++-------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 276c5f1a05d8..e2d671b326f3 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -93,43 +93,43 @@ 5af96504f10836eca6ce804ab3cdd28c042fa35a - + https://github.com/dotnet/roslyn - 0e54217d8eb545fb9b51d0596b5ef8e4830ff83c + d7b0a8c4b320a592e6b81dc5a40bc724cd8b71ba - + https://github.com/dotnet/roslyn - 0e54217d8eb545fb9b51d0596b5ef8e4830ff83c + d7b0a8c4b320a592e6b81dc5a40bc724cd8b71ba - + https://github.com/dotnet/roslyn - 0e54217d8eb545fb9b51d0596b5ef8e4830ff83c + d7b0a8c4b320a592e6b81dc5a40bc724cd8b71ba - + https://github.com/dotnet/roslyn - 0e54217d8eb545fb9b51d0596b5ef8e4830ff83c + d7b0a8c4b320a592e6b81dc5a40bc724cd8b71ba - + https://github.com/dotnet/roslyn - 0e54217d8eb545fb9b51d0596b5ef8e4830ff83c + d7b0a8c4b320a592e6b81dc5a40bc724cd8b71ba - + https://github.com/dotnet/roslyn - 0e54217d8eb545fb9b51d0596b5ef8e4830ff83c + d7b0a8c4b320a592e6b81dc5a40bc724cd8b71ba - + https://github.com/dotnet/roslyn - 0e54217d8eb545fb9b51d0596b5ef8e4830ff83c + d7b0a8c4b320a592e6b81dc5a40bc724cd8b71ba - + https://github.com/dotnet/roslyn - 0e54217d8eb545fb9b51d0596b5ef8e4830ff83c + d7b0a8c4b320a592e6b81dc5a40bc724cd8b71ba - + https://github.com/dotnet/roslyn - 0e54217d8eb545fb9b51d0596b5ef8e4830ff83c + d7b0a8c4b320a592e6b81dc5a40bc724cd8b71ba https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index 484a6ae425b6..65fa88589afd 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -202,14 +202,14 @@ - 4.13.0-3.25056.8 - 4.13.0-3.25056.8 - 4.13.0-3.25056.8 - 4.13.0-3.25056.8 - 4.13.0-3.25056.8 - 4.13.0-3.25056.8 - 4.13.0-3.25056.8 - 4.13.0-3.25056.8 + 4.13.0-3.25056.21 + 4.13.0-3.25056.21 + 4.13.0-3.25056.21 + 4.13.0-3.25056.21 + 4.13.0-3.25056.21 + 4.13.0-3.25056.21 + 4.13.0-3.25056.21 + 4.13.0-3.25056.21 From c63afb2ff9436c75386ad391c6508eeef7c56e41 Mon Sep 17 00:00:00 2001 From: Jason Zhai Date: Mon, 6 Jan 2025 22:33:46 -0800 Subject: [PATCH 026/193] Remove Skip attribute from tests related to issue #42850 --- test/Microsoft.NET.Build.Tests/ReferenceExeTests.cs | 2 +- .../HotReload/RuntimeProcessLauncherTests.cs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/Microsoft.NET.Build.Tests/ReferenceExeTests.cs b/test/Microsoft.NET.Build.Tests/ReferenceExeTests.cs index 7c23f4d1ebed..b1a594130c53 100644 --- a/test/Microsoft.NET.Build.Tests/ReferenceExeTests.cs +++ b/test/Microsoft.NET.Build.Tests/ReferenceExeTests.cs @@ -322,7 +322,7 @@ public void ReferencedExeCanRunWhenPublishedWithTrimming(bool referenceExeInCode .Replace("Boolean", referenceExeInCode.ToString())); } - [RequiresMSBuildVersionTheory("17.0.0.32901", Skip = "https://github.com/dotnet/sdk/issues/42850")] + [RequiresMSBuildVersionTheory("17.0.0.32901")] [InlineData("xunit")] [InlineData("mstest")] public void TestProjectCanReferenceExe(string testTemplateName) diff --git a/test/dotnet-watch.Tests/HotReload/RuntimeProcessLauncherTests.cs b/test/dotnet-watch.Tests/HotReload/RuntimeProcessLauncherTests.cs index c0ad614e2c0b..f148dec9b14a 100644 --- a/test/dotnet-watch.Tests/HotReload/RuntimeProcessLauncherTests.cs +++ b/test/dotnet-watch.Tests/HotReload/RuntimeProcessLauncherTests.cs @@ -51,7 +51,7 @@ private static async Task Launch(string projectPath, TestRuntime return await startOp(cancellationToken); } - [Theory(Skip="https://github.com/dotnet/sdk/issues/42850")] + [Theory] [CombinatorialData] public async Task UpdateAndRudeEdit(TriggerEvent trigger) { @@ -382,7 +382,7 @@ public enum UpdateLocation TopFunction, } - [Theory(Skip="https://github.com/dotnet/sdk/issues/42850")] + [Theory] [CombinatorialData] public async Task HostRestart(UpdateLocation updateLocation) { From e5e29271b491d93474c805bb10fa20e73a559a2b Mon Sep 17 00:00:00 2001 From: Marc Paine Date: Tue, 7 Jan 2025 09:29:03 -0800 Subject: [PATCH 027/193] Install the host rather than upgrading it Upgrading will cause rpm to fail if the item is already present like the host. This is how it works in the installer 8.0.1xx branch --- .../targets/GenerateRPMs.targets | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/Installer/redist-installer/targets/GenerateRPMs.targets b/src/Installer/redist-installer/targets/GenerateRPMs.targets index 454a5758c287..6130c8c6238c 100644 --- a/src/Installer/redist-installer/targets/GenerateRPMs.targets +++ b/src/Installer/redist-installer/targets/GenerateRPMs.targets @@ -327,17 +327,17 @@ - - - - - - - - + + + + + + + + - - + + @@ -150,16 +152,6 @@ - - - - - - - - - - @@ -310,53 +302,4 @@ Importance="High" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From 0a87b361783a9065d3ca4608af15b4f75788e265 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 7 Jan 2025 18:16:29 +0000 Subject: [PATCH 029/193] Update dependencies from https://github.com/dotnet/razor build 20250106.4 Microsoft.SourceBuild.Intermediate.razor , Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal , Microsoft.CodeAnalysis.Razor.Tooling.Internal , Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 9.0.0-preview.25056.3 -> To Version 9.0.0-preview.25056.4 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 4cf22d93e3ee..3070b6afd8ab 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -321,22 +321,22 @@ af22effae4069a5dfb9b0735859de48820104f5b - + https://github.com/dotnet/razor - be8874d66810dc562e89ac9b4a3381b7ef9eeb4b + 46efcec83821d7f0322c01bc9549de83e855dcac - + https://github.com/dotnet/razor - be8874d66810dc562e89ac9b4a3381b7ef9eeb4b + 46efcec83821d7f0322c01bc9549de83e855dcac - + https://github.com/dotnet/razor - be8874d66810dc562e89ac9b4a3381b7ef9eeb4b + 46efcec83821d7f0322c01bc9549de83e855dcac - + https://github.com/dotnet/razor - be8874d66810dc562e89ac9b4a3381b7ef9eeb4b + 46efcec83821d7f0322c01bc9549de83e855dcac diff --git a/eng/Versions.props b/eng/Versions.props index f366d9c7002b..620fc48624ea 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -229,9 +229,9 @@ - 9.0.0-preview.25056.3 - 9.0.0-preview.25056.3 - 9.0.0-preview.25056.3 + 9.0.0-preview.25056.4 + 9.0.0-preview.25056.4 + 9.0.0-preview.25056.4 From 72d0b4a088c6390af161fe717592fb8ee4c7c573 Mon Sep 17 00:00:00 2001 From: Sean Reeser Date: Tue, 7 Jan 2025 10:42:39 -0800 Subject: [PATCH 030/193] Update branding to 9.0.103 --- eng/Versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/Versions.props b/eng/Versions.props index d9f1aa94e495..2d82f600895b 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -6,7 +6,7 @@ 9 0 1 - 02 + 03 From 8b2505745d528cd64fe86f8f96f66e4f9799c276 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 7 Jan 2025 20:45:41 +0000 Subject: [PATCH 031/193] Update dependencies from https://github.com/dotnet/roslyn build 20250107.3 Microsoft.SourceBuild.Intermediate.roslyn , Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset , Microsoft.Net.Compilers.Toolset.Framework From Version 4.13.0-3.25055.1 -> To Version 4.13.0-3.25057.3 --- eng/Version.Details.xml | 36 ++++++++++++++++++------------------ eng/Versions.props | 16 ++++++++-------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index e2d671b326f3..f6a55536f719 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -93,43 +93,43 @@ 5af96504f10836eca6ce804ab3cdd28c042fa35a - + https://github.com/dotnet/roslyn - d7b0a8c4b320a592e6b81dc5a40bc724cd8b71ba + 911cf5f462960bdd01df1ea3c0d0c217b3c3838b - + https://github.com/dotnet/roslyn - d7b0a8c4b320a592e6b81dc5a40bc724cd8b71ba + 911cf5f462960bdd01df1ea3c0d0c217b3c3838b - + https://github.com/dotnet/roslyn - d7b0a8c4b320a592e6b81dc5a40bc724cd8b71ba + 911cf5f462960bdd01df1ea3c0d0c217b3c3838b - + https://github.com/dotnet/roslyn - d7b0a8c4b320a592e6b81dc5a40bc724cd8b71ba + 911cf5f462960bdd01df1ea3c0d0c217b3c3838b - + https://github.com/dotnet/roslyn - d7b0a8c4b320a592e6b81dc5a40bc724cd8b71ba + 911cf5f462960bdd01df1ea3c0d0c217b3c3838b - + https://github.com/dotnet/roslyn - d7b0a8c4b320a592e6b81dc5a40bc724cd8b71ba + 911cf5f462960bdd01df1ea3c0d0c217b3c3838b - + https://github.com/dotnet/roslyn - d7b0a8c4b320a592e6b81dc5a40bc724cd8b71ba + 911cf5f462960bdd01df1ea3c0d0c217b3c3838b - + https://github.com/dotnet/roslyn - d7b0a8c4b320a592e6b81dc5a40bc724cd8b71ba + 911cf5f462960bdd01df1ea3c0d0c217b3c3838b - + https://github.com/dotnet/roslyn - d7b0a8c4b320a592e6b81dc5a40bc724cd8b71ba + 911cf5f462960bdd01df1ea3c0d0c217b3c3838b https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index 65fa88589afd..36a929efa648 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -202,14 +202,14 @@ - 4.13.0-3.25056.21 - 4.13.0-3.25056.21 - 4.13.0-3.25056.21 - 4.13.0-3.25056.21 - 4.13.0-3.25056.21 - 4.13.0-3.25056.21 - 4.13.0-3.25056.21 - 4.13.0-3.25056.21 + 4.13.0-3.25057.3 + 4.13.0-3.25057.3 + 4.13.0-3.25057.3 + 4.13.0-3.25057.3 + 4.13.0-3.25057.3 + 4.13.0-3.25057.3 + 4.13.0-3.25057.3 + 4.13.0-3.25057.3 From 2cba37e08f8c72506a275c7a6dcf0779fc1e3de2 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 8 Jan 2025 00:14:57 +0000 Subject: [PATCH 032/193] Update dependencies from https://github.com/dotnet/templating build 20250107.4 Microsoft.SourceBuild.Intermediate.templating , Microsoft.TemplateEngine.Abstractions , Microsoft.TemplateEngine.Mocks From Version 9.0.102-servicing.24576.5 -> To Version 9.0.103-servicing.25057.4 --- NuGet.config | 3 +-- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/NuGet.config b/NuGet.config index 7371e9a37303..7831ef70a5c4 100644 --- a/NuGet.config +++ b/NuGet.config @@ -17,8 +17,7 @@ - - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 12607f6e6571..5b814438bbf8 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,18 +1,18 @@ - + https://github.com/dotnet/templating - b1003b44bf4f77613101b9d31a55bb307515bb6d + cdb776d3a6988a56a69e9ceb669bf250f51919ee - + https://github.com/dotnet/templating - b1003b44bf4f77613101b9d31a55bb307515bb6d + cdb776d3a6988a56a69e9ceb669bf250f51919ee - + https://github.com/dotnet/templating - b1003b44bf4f77613101b9d31a55bb307515bb6d + cdb776d3a6988a56a69e9ceb669bf250f51919ee diff --git a/eng/Versions.props b/eng/Versions.props index 2d82f600895b..ca002283603e 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -187,13 +187,13 @@ - 9.0.102 + 9.0.103 $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) - 9.0.102-servicing.24576.5 + 9.0.103-servicing.25057.4 $(MicrosoftTemplateEngineMocksPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineMocksPackageVersion) From ffd4fa4655e16fe1fa34d550c359802dc23952d2 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 7 Jan 2025 21:35:15 -0800 Subject: [PATCH 033/193] [release/9.0.2xx] Update dependencies from nuget/nuget.client (#45748) Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 68 ++++++++++++++++++++--------------------- eng/Versions.props | 24 +++++++-------- 2 files changed, 46 insertions(+), 46 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 3070b6afd8ab..d46293762f4e 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -139,74 +139,74 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore af22effae4069a5dfb9b0735859de48820104f5b - + https://github.com/nuget/nuget.client - 89781a27ff255553766e4b9403ea7947072b4335 + bf603fb32f32478a1ce0d6a1e27b7b64d14e244a - + https://github.com/nuget/nuget.client - 89781a27ff255553766e4b9403ea7947072b4335 + bf603fb32f32478a1ce0d6a1e27b7b64d14e244a - + https://github.com/nuget/nuget.client - 89781a27ff255553766e4b9403ea7947072b4335 + bf603fb32f32478a1ce0d6a1e27b7b64d14e244a - + https://github.com/nuget/nuget.client - 89781a27ff255553766e4b9403ea7947072b4335 + bf603fb32f32478a1ce0d6a1e27b7b64d14e244a - + https://github.com/nuget/nuget.client - 89781a27ff255553766e4b9403ea7947072b4335 + bf603fb32f32478a1ce0d6a1e27b7b64d14e244a - + https://github.com/nuget/nuget.client - 89781a27ff255553766e4b9403ea7947072b4335 + bf603fb32f32478a1ce0d6a1e27b7b64d14e244a - + https://github.com/nuget/nuget.client - 89781a27ff255553766e4b9403ea7947072b4335 + bf603fb32f32478a1ce0d6a1e27b7b64d14e244a - + https://github.com/nuget/nuget.client - 89781a27ff255553766e4b9403ea7947072b4335 + bf603fb32f32478a1ce0d6a1e27b7b64d14e244a - + https://github.com/nuget/nuget.client - 89781a27ff255553766e4b9403ea7947072b4335 + bf603fb32f32478a1ce0d6a1e27b7b64d14e244a - + https://github.com/nuget/nuget.client - 89781a27ff255553766e4b9403ea7947072b4335 + bf603fb32f32478a1ce0d6a1e27b7b64d14e244a - + https://github.com/nuget/nuget.client - 89781a27ff255553766e4b9403ea7947072b4335 + bf603fb32f32478a1ce0d6a1e27b7b64d14e244a - + https://github.com/nuget/nuget.client - 89781a27ff255553766e4b9403ea7947072b4335 + bf603fb32f32478a1ce0d6a1e27b7b64d14e244a - + https://github.com/nuget/nuget.client - 89781a27ff255553766e4b9403ea7947072b4335 + bf603fb32f32478a1ce0d6a1e27b7b64d14e244a - + https://github.com/nuget/nuget.client - 89781a27ff255553766e4b9403ea7947072b4335 + bf603fb32f32478a1ce0d6a1e27b7b64d14e244a - + https://github.com/nuget/nuget.client - 89781a27ff255553766e4b9403ea7947072b4335 + bf603fb32f32478a1ce0d6a1e27b7b64d14e244a - + https://github.com/nuget/nuget.client - 89781a27ff255553766e4b9403ea7947072b4335 + bf603fb32f32478a1ce0d6a1e27b7b64d14e244a - + https://github.com/nuget/nuget.client - 89781a27ff255553766e4b9403ea7947072b4335 + bf603fb32f32478a1ce0d6a1e27b7b64d14e244a https://github.com/microsoft/vstest diff --git a/eng/Versions.props b/eng/Versions.props index 620fc48624ea..63d3893c3a90 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -135,18 +135,18 @@ - 6.13.0-rc.108 - 6.13.0-rc.108 - 6.13.0-rc.108 - 6.13.0-rc.108 - 6.13.0-rc.108 - 6.13.0-rc.108 - 6.13.0-rc.108 - 6.13.0-rc.108 - 6.13.0-rc.108 - 6.13.0-rc.108 - 6.13.0-rc.108 - 6.13.0-rc.108 + 6.13.0-rc.111 + 6.13.0-rc.111 + 6.13.0-rc.111 + 6.13.0-rc.111 + 6.13.0-rc.111 + 6.13.0-rc.111 + 6.13.0-rc.111 + 6.13.0-rc.111 + 6.13.0-rc.111 + 6.13.0-rc.111 + 6.13.0-rc.111 + 6.13.0-rc.111 From 497de4275c413a4662b806e37fef267e30a31551 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Amaury=20Lev=C3=A9?= Date: Wed, 8 Jan 2025 16:23:17 +0100 Subject: [PATCH 034/193] MSTest templates: drop unsupported TFMs from the list --- .../localize/templatestrings.cs.json | 5 ----- .../localize/templatestrings.de.json | 5 ----- .../localize/templatestrings.en.json | 5 ----- .../localize/templatestrings.es.json | 5 ----- .../localize/templatestrings.fr.json | 5 ----- .../localize/templatestrings.it.json | 5 ----- .../localize/templatestrings.ja.json | 5 ----- .../localize/templatestrings.ko.json | 5 ----- .../localize/templatestrings.pl.json | 5 ----- .../localize/templatestrings.pt-BR.json | 5 ----- .../localize/templatestrings.ru.json | 5 ----- .../localize/templatestrings.tr.json | 5 ----- .../localize/templatestrings.zh-Hans.json | 5 ----- .../localize/templatestrings.zh-Hant.json | 5 ----- .../.template.config/template.json | 20 ------------------- .../localize/templatestrings.cs.json | 5 ----- .../localize/templatestrings.de.json | 5 ----- .../localize/templatestrings.en.json | 5 ----- .../localize/templatestrings.es.json | 5 ----- .../localize/templatestrings.fr.json | 5 ----- .../localize/templatestrings.it.json | 5 ----- .../localize/templatestrings.ja.json | 5 ----- .../localize/templatestrings.ko.json | 5 ----- .../localize/templatestrings.pl.json | 5 ----- .../localize/templatestrings.pt-BR.json | 5 ----- .../localize/templatestrings.ru.json | 5 ----- .../localize/templatestrings.tr.json | 5 ----- .../localize/templatestrings.zh-Hans.json | 5 ----- .../localize/templatestrings.zh-Hant.json | 5 ----- .../.template.config/template.json | 20 ------------------- .../localize/templatestrings.cs.json | 5 ----- .../localize/templatestrings.de.json | 5 ----- .../localize/templatestrings.en.json | 5 ----- .../localize/templatestrings.es.json | 5 ----- .../localize/templatestrings.fr.json | 5 ----- .../localize/templatestrings.it.json | 5 ----- .../localize/templatestrings.ja.json | 5 ----- .../localize/templatestrings.ko.json | 5 ----- .../localize/templatestrings.pl.json | 5 ----- .../localize/templatestrings.pt-BR.json | 5 ----- .../localize/templatestrings.ru.json | 5 ----- .../localize/templatestrings.tr.json | 5 ----- .../localize/templatestrings.zh-Hans.json | 5 ----- .../localize/templatestrings.zh-Hant.json | 5 ----- .../.template.config/template.json | 20 ------------------- 45 files changed, 270 deletions(-) diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.cs.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.cs.json index 20a6307d12b3..3db7f16d0b1c 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.cs.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.cs.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (jenom Windows)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (jenom Windows)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (jenom Windows)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (jenom Windows)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".Net Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.de.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.de.json index 72bd5ba201b7..48e2b7347677 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.de.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.de.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (nur Windows)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (nur Windows)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (nur Windows)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (nur Windows)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.en.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.en.json index 23438a626050..8faf0af5b645 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.en.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.en.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (Windows only)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (Windows only)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (Windows only)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (Windows only)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.es.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.es.json index 0505b2aa395d..f32f1f55763a 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.es.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.es.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (solo Windows)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (solo Windows)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (solo Windows)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (solo Windows)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.fr.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.fr.json index 3df256509dea..81ee0d878906 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.fr.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.fr.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (Windows uniquement)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (Windows uniquement)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (Windows uniquement)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (Windows uniquement)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.it.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.it.json index 67082fef3d18..8799df74975f 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.it.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.it.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (solo Windows)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (solo Windows)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (solo Windows)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (solo Windows)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.ja.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.ja.json index a5cd73b9ee1d..a328410b389b 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.ja.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.ja.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (Windows のみ)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (Windows のみ)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (Windows のみ)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (Windows のみ)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.ko.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.ko.json index 0a04a4673531..bd7610742d66 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.ko.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.ko.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9(Windows만 해당)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8(Windows만 해당)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7(Windows만 해당)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6(Windows만 해당)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.pl.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.pl.json index d8584131ae72..93b579e11e35 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.pl.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.pl.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (tylko system Windows)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (tylko system Windows)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (tylko system Windows)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (tylko system Windows)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": "Platforma .NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.pt-BR.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.pt-BR.json index c1b64cdd822b..867bc52880a5 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.pt-BR.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.pt-BR.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (somente Windows)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (somente Windows)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (somente Windows)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (somente Windows)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.ru.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.ru.json index 5a9482179d1f..a3412f6d606b 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.ru.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.ru.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (только для Windows)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (только для Windows)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (только для Windows)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (только для Windows)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.tr.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.tr.json index d0ca2ca4c465..1935c147ea27 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.tr.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.tr.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (yalnızca Windows)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (yalnızca Windows)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (yalnızca Windows)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (yalnızca Windows)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.zh-Hans.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.zh-Hans.json index 0699b04ab637..2a8e41ee0e02 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.zh-Hans.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.zh-Hans.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (仅限 Windows)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (仅限 Windows)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (仅限 Windows)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (仅限 Windows)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.zh-Hant.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.zh-Hant.json index 6960dbd0882b..0a09b83d12ec 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.zh-Hant.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/localize/templatestrings.zh-Hant.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (僅限 Windows)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (僅限 Windows)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (僅限 Windows)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (僅限 Windows)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/template.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/template.json index d63ecec5fc45..a88d57a73062 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/template.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-CSharp/.template.config/template.json @@ -54,26 +54,6 @@ "choice": "net8.0-windows", "description": ".NET 8 (Windows only)" }, - { - "choice": "net7.0", - "description": ".NET 7" - }, - { - "choice": "net7.0-windows", - "description": ".NET 7 (Windows only)" - }, - { - "choice": "net6.0", - "description": ".NET 6" - }, - { - "choice": "net6.0-windows", - "description": ".NET 6 (Windows only)" - }, - { - "choice": "netcoreapp3.1", - "description": ".NET Core 3.1" - }, { "choice": "net481", "description": ".NET Framework 4.8.1" diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.cs.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.cs.json index 12fad66b02d8..1e2eb0ab0e84 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.cs.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.cs.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (jenom Windows)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (jenom Windows)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (jenom Windows)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (jenom Windows)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".Net Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.de.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.de.json index b47694470873..4f76c89ecab7 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.de.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.de.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (nur Windows)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (nur Windows)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (nur Windows)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (nur Windows)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.en.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.en.json index ec3cf1bec85e..9a42370c2299 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.en.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.en.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (Windows only)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (Windows only)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (Windows only)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (Windows only)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.es.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.es.json index 1a2375af74a0..8a9a5acc709c 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.es.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.es.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (solo Windows)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (solo Windows)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (solo Windows)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (solo Windows)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.fr.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.fr.json index ec6d1b3fbfb0..4244c7cc12ef 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.fr.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.fr.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (Windows uniquement)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (Windows uniquement)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (Windows uniquement)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (Windows uniquement)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.it.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.it.json index 7788268f2615..83f50b8933b7 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.it.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.it.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (solo Windows)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (solo Windows)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (solo Windows)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (solo Windows)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.ja.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.ja.json index 8cfa574ceb35..8b75e2724de9 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.ja.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.ja.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (Windows のみ)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (Windows のみ)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (Windows のみ)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (Windows のみ)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.ko.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.ko.json index db999f123292..7ce01d277a12 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.ko.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.ko.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9(Windows만 해당)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8(Windows만 해당)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7(Windows만 해당)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6(Windows만 해당)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.pl.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.pl.json index 2fc39b85f69e..50baa3adf2a7 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.pl.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.pl.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (tylko system Windows)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (tylko system Windows)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (tylko system Windows)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (tylko system Windows)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": "Platforma .NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.pt-BR.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.pt-BR.json index 2796b853e55a..2117280516a1 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.pt-BR.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.pt-BR.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (somente Windows)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (somente Windows)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (somente Windows)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (somente Windows)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.ru.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.ru.json index 9b4e1e651204..6aceaa9d39eb 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.ru.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.ru.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (только для Windows)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (только для Windows)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (только для Windows)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (только для Windows)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.tr.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.tr.json index 277c77b3f8e3..8832dd4085b8 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.tr.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.tr.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (yalnızca Windows)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (yalnızca Windows)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (yalnızca Windows)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (yalnızca Windows)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.zh-Hans.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.zh-Hans.json index ca1825cfffaf..4e70c8116300 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.zh-Hans.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.zh-Hans.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (仅限 Windows)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (仅限 Windows)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (仅限 Windows)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (仅限 Windows)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.zh-Hant.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.zh-Hant.json index 6d732ec2a392..a6427f265e88 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.zh-Hant.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/localize/templatestrings.zh-Hant.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (僅限 Windows)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (僅限 Windows)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (僅限 Windows)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (僅限 Windows)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/template.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/template.json index b4538b3c475a..8dc534c47825 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/template.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-FSharp/.template.config/template.json @@ -54,26 +54,6 @@ "choice": "net8.0-windows", "description": ".NET 8 (Windows only)" }, - { - "choice": "net7.0", - "description": ".NET 7" - }, - { - "choice": "net7.0-windows", - "description": ".NET 7 (Windows only)" - }, - { - "choice": "net6.0", - "description": ".NET 6" - }, - { - "choice": "net6.0-windows", - "description": ".NET 6 (Windows only)" - }, - { - "choice": "netcoreapp3.1", - "description": ".NET Core 3.1" - }, { "choice": "net481", "description": ".NET Framework 4.8.1" diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.cs.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.cs.json index c43e978e6aa8..50f21d5d7751 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.cs.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.cs.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (jenom Windows)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (jenom Windows)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (jenom Windows)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (jenom Windows)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".Net Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.de.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.de.json index 3fc7a76173e8..5145626c1d03 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.de.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.de.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (nur Windows)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (nur Windows)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (nur Windows)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (nur Windows)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.en.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.en.json index 9758560f9433..f676b077127c 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.en.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.en.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (Windows only)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (Windows only)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (Windows only)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (Windows only)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.es.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.es.json index 44b8743beae1..49a9161375a2 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.es.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.es.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (solo Windows)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (solo Windows)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (solo Windows)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (solo Windows)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.fr.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.fr.json index 35c5ee5ab560..de334d35414d 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.fr.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.fr.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (Windows uniquement)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (Windows uniquement)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (Windows uniquement)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (Windows uniquement)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.it.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.it.json index ff8f14caffce..d6f140b0d27c 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.it.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.it.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (solo Windows)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (solo Windows)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (solo Windows)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (solo Windows)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.ja.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.ja.json index f8e3fef7e617..e0d4ee7b4b60 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.ja.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.ja.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (Windows のみ)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (Windows のみ)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (Windows のみ)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (Windows のみ)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.ko.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.ko.json index 6f46572375c7..b02a6c808cc6 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.ko.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.ko.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9(Windows만 해당)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8(Windows만 해당)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7(Windows만 해당)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6(Windows만 해당)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.pl.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.pl.json index 894e409b294a..38c6f8624d2e 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.pl.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.pl.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (tylko system Windows)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (tylko system Windows)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (tylko system Windows)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (tylko system Windows)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": "Platforma .NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.pt-BR.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.pt-BR.json index 074a3539ab3c..07ab13ebd1d8 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.pt-BR.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.pt-BR.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (somente Windows)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (somente Windows)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (somente Windows)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (somente Windows)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.ru.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.ru.json index e50ed4ce3608..161455da2737 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.ru.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.ru.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (только для Windows)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (только для Windows)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (только для Windows)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (только для Windows)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.tr.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.tr.json index 8dbd27d9520b..f520f3ea2039 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.tr.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.tr.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (yalnızca Windows)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (yalnızca Windows)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (yalnızca Windows)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (yalnızca Windows)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.zh-Hans.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.zh-Hans.json index 1970c96f9d99..36ed004f43a4 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.zh-Hans.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.zh-Hans.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (仅限 Windows)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (仅限 Windows)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (仅限 Windows)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (仅限 Windows)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.zh-Hant.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.zh-Hant.json index 0c4eefabba7e..1073c871a72e 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.zh-Hant.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/localize/templatestrings.zh-Hant.json @@ -12,11 +12,6 @@ "symbols/Framework/choices/net9.0-windows/description": ".NET 9 (僅限 Windows)", "symbols/Framework/choices/net8.0/description": ".NET 8", "symbols/Framework/choices/net8.0-windows/description": ".NET 8 (僅限 Windows)", - "symbols/Framework/choices/net7.0/description": ".NET 7", - "symbols/Framework/choices/net7.0-windows/description": ".NET 7 (僅限 Windows)", - "symbols/Framework/choices/net6.0/description": ".NET 6", - "symbols/Framework/choices/net6.0-windows/description": ".NET 6 (僅限 Windows)", - "symbols/Framework/choices/netcoreapp3.1/description": ".NET Core 3.1", "symbols/Framework/choices/net481/description": ".NET Framework 4.8.1", "symbols/Framework/choices/net48/description": ".NET Framework 4.8", "symbols/Framework/choices/net472/description": ".NET Framework 4.7.2", diff --git a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/template.json b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/template.json index 9b41ff110a56..c0a04a4f9a75 100644 --- a/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/template.json +++ b/template_feed/Microsoft.DotNet.Common.ProjectTemplates.10.0/content/MSTest-VisualBasic/.template.config/template.json @@ -54,26 +54,6 @@ "choice": "net8.0-windows", "description": ".NET 8 (Windows only)" }, - { - "choice": "net7.0", - "description": ".NET 7" - }, - { - "choice": "net7.0-windows", - "description": ".NET 7 (Windows only)" - }, - { - "choice": "net6.0", - "description": ".NET 6" - }, - { - "choice": "net6.0-windows", - "description": ".NET 6 (Windows only)" - }, - { - "choice": "netcoreapp3.1", - "description": ".NET Core 3.1" - }, { "choice": "net481", "description": ".NET Framework 4.8.1" From 5faffecedb5f5ae093e735b1ae78f1c59b76091b Mon Sep 17 00:00:00 2001 From: Forgind <12969783+Forgind@users.noreply.github.com> Date: Wed, 8 Jan 2025 11:03:08 -0800 Subject: [PATCH 035/193] Add posix dmp copy command (#45704) --- test/UnitTests.proj | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/UnitTests.proj b/test/UnitTests.proj index c6b66c29dd26..109a006c342a 100644 --- a/test/UnitTests.proj +++ b/test/UnitTests.proj @@ -121,7 +121,8 @@ call %HELIX_CORRELATION_PAYLOAD%\t\RunTestsOnHelix.cmd $(TestFullMSBuild);$(HelixPreCommands) . $HELIX_CORRELATION_PAYLOAD/t/RunTestsOnHelix.sh;$(HelixPreCommands) PowerShell -ExecutionPolicy ByPass "dotnet nuget locals all -l | ForEach-Object { $_.Split(' ')[1]} | Where-Object{$_ -like '*cache'} | Get-ChildItem -Recurse -File -Filter '*.dat' | Measure";$(HelixPostCommands) - PowerShell -ExecutionPolicy ByPass "Get-ChildItem -Recurse -File -Filter '*hangdump.dmp' | Copy-Item -Destination $env:HELIX_WORKITEM_UPLOAD_ROOT";$(HelixPostCommands) + PowerShell -ExecutionPolicy ByPass "Get-ChildItem -Recurse -File -Filter '*hangdump.dmp' | Copy-Item -Destination $env:HELIX_WORKITEM_UPLOAD_ROOT";$(HelixPostCommands) + find . -name '*hangdump.dmp' -exec cp {} "$HELIX_WORKITEM_UPLOAD_ROOT" \%3B;$(HelixPostCommands) $(RepoRoot)artifacts\bin\redist\$(Configuration)\dotnet $(Version) $(RepoRoot)artifacts\bin\Microsoft.DotNet.MSBuildSdkResolver From ef91c4eb042e342c06a9f65a11cf94bb27a020f5 Mon Sep 17 00:00:00 2001 From: Eduardo Villalpando Mello Date: Wed, 8 Jan 2025 15:39:37 -0600 Subject: [PATCH 036/193] sln-remove: Support for slnx (#45160) Co-authored-by: kasperk81 <83082615+kasperk81@users.noreply.github.com> --- .../commands/dotnet-sln/remove/Program.cs | 124 +++- .../App.slnx | 15 + .../ExpectedSlnContentsAfterRemove.sln | 33 ++ .../ExpectedSlnContentsAfterRemove.slnx | 11 + ...ectedSlnContentsAfterRemoveAllProjects.sln | 17 + ...ctedSlnContentsAfterRemoveAllProjects.slnx | 7 + ...edSlnContentsAfterRemoveLastNestedProj.sln | 33 ++ ...dSlnContentsAfterRemoveLastNestedProj.slnx | 11 + ...pectedSlnContentsAfterRemoveNestedProj.sln | 55 ++ ...ectedSlnContentsAfterRemoveNestedProj.slnx | 18 + ...ojectInSolutionWithNestedSolutionItems.sln | 43 ++ ...jectInSolutionWithNestedSolutionItems.slnx | 11 + ...entsAfterRemoveProjectWithDependencies.sln | 33 ++ ...ntsAfterRemoveProjectWithDependencies.slnx | 6 + .../App.slnx | 25 + .../TestAppWithSlnAndCsprojToRemove/App.slnx | 12 + .../App.slnx | 18 + .../App.slnx | 10 + test/dotnet-sln.Tests/GivenDotnetSlnList.cs | 10 +- test/dotnet-sln.Tests/GivenDotnetSlnRemove.cs | 528 +++++++----------- 20 files changed, 657 insertions(+), 363 deletions(-) create mode 100644 test/TestAssets/TestProjects/SlnFileWithSolutionItemsInNestedFolders/App.slnx create mode 100644 test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemove.sln create mode 100644 test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemove.slnx create mode 100644 test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveAllProjects.sln create mode 100644 test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveAllProjects.slnx create mode 100644 test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveLastNestedProj.sln create mode 100644 test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveLastNestedProj.slnx create mode 100644 test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveNestedProj.sln create mode 100644 test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveNestedProj.slnx create mode 100644 test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveProjectInSolutionWithNestedSolutionItems.sln create mode 100644 test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveProjectInSolutionWithNestedSolutionItems.slnx create mode 100644 test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveProjectWithDependencies.sln create mode 100644 test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveProjectWithDependencies.slnx create mode 100644 test/TestAssets/TestProjects/TestAppWithSlnAndCsprojInSubDirToRemove/App.slnx create mode 100644 test/TestAssets/TestProjects/TestAppWithSlnAndCsprojToRemove/App.slnx create mode 100644 test/TestAssets/TestProjects/TestAppWithSlnAndLastCsprojInSubDirToRemove/App.slnx create mode 100644 test/TestAssets/TestProjects/TestAppWithSlnProjectDependencyToRemove/App.slnx diff --git a/src/Cli/dotnet/commands/dotnet-sln/remove/Program.cs b/src/Cli/dotnet/commands/dotnet-sln/remove/Program.cs index 1e4ce2e23b95..766ce64d9b7c 100644 --- a/src/Cli/dotnet/commands/dotnet-sln/remove/Program.cs +++ b/src/Cli/dotnet/commands/dotnet-sln/remove/Program.cs @@ -2,58 +2,136 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.CommandLine; +using Microsoft.Build.Construction; +using Microsoft.Build.Execution; using Microsoft.DotNet.Cli; -using Microsoft.DotNet.Cli.Sln.Internal; +using Microsoft.DotNet.Cli.Utils; using Microsoft.DotNet.Tools.Common; +using Microsoft.Extensions.EnvironmentAbstractions; +using Microsoft.VisualStudio.SolutionPersistence; +using Microsoft.VisualStudio.SolutionPersistence.Model; +using Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12; namespace Microsoft.DotNet.Tools.Sln.Remove { internal class RemoveProjectFromSolutionCommand : CommandBase { private readonly string _fileOrDirectory; - private readonly IReadOnlyCollection _arguments; + private readonly IReadOnlyCollection _projects; + + private int CountNonFolderDescendants( + SolutionModel solution, + SolutionFolderModel item, + Dictionary solutionItemsGroupedByParent, + Dictionary cached) + { + if (cached.ContainsKey(item)) + { + return cached[item]; + } + int count = item.Files?.Count ?? 0; + var children = solutionItemsGroupedByParent.TryGetValue(item, out var items) ? items : Array.Empty(); + foreach (var child in children) + { + count += child is SolutionFolderModel folderModel + ? CountNonFolderDescendants(solution, folderModel, solutionItemsGroupedByParent, cached) + : 1; + } + cached.Add(item, count); + return count; + } public RemoveProjectFromSolutionCommand(ParseResult parseResult) : base(parseResult) { _fileOrDirectory = parseResult.GetValue(SlnCommandParser.SlnArgument); - _arguments = (parseResult.GetValue(SlnRemoveParser.ProjectPathArgument) ?? Array.Empty()).ToList().AsReadOnly(); + _projects = (parseResult.GetValue(SlnRemoveParser.ProjectPathArgument) ?? Array.Empty()).ToList().AsReadOnly(); - SlnArgumentValidator.ParseAndValidateArguments(_fileOrDirectory, _arguments, SlnArgumentValidator.CommandType.Remove); + SlnArgumentValidator.ParseAndValidateArguments(_fileOrDirectory, _projects, SlnArgumentValidator.CommandType.Remove); } public override int Execute() { - SlnFile slnFile = SlnFileFactory.CreateFromFileOrDirectory(_fileOrDirectory); + string solutionFileFullPath = SlnCommandParser.GetSlnFileFullPath(_fileOrDirectory); + if (_projects.Count == 0) + { + throw new GracefulException(CommonLocalizableStrings.SpecifyAtLeastOneProjectToRemove); + } + + try + { + var relativeProjectPaths = _projects.Select(p => + { + var fullPath = Path.GetFullPath(p); + return Path.GetRelativePath( + Path.GetDirectoryName(solutionFileFullPath), + Directory.Exists(fullPath) + ? MsbuildProject.GetProjectFileFromDirectory(fullPath).FullName + : fullPath); + }); + RemoveProjectsAsync(solutionFileFullPath, relativeProjectPaths, CancellationToken.None).Wait(); + return 0; + } + catch (Exception ex) when (ex is not GracefulException) + { + if (ex is SolutionException || ex.InnerException is SolutionException) + { + throw new GracefulException(CommonLocalizableStrings.InvalidSolutionFormatString, solutionFileFullPath, ex.Message); + } + if (ex.InnerException is GracefulException) + { + throw ex.InnerException; + } + throw new GracefulException(ex.Message, ex); + } + } + + private async Task RemoveProjectsAsync(string solutionFileFullPath, IEnumerable projectPaths, CancellationToken cancellationToken) + { + ISolutionSerializer serializer = SlnCommandParser.GetSolutionSerializer(solutionFileFullPath); + SolutionModel solution = await serializer.OpenAsync(solutionFileFullPath, cancellationToken); - var baseDirectory = PathUtility.EnsureTrailingSlash(slnFile.BaseDirectory); - var relativeProjectPaths = _arguments.Select(p => + // set UTF8 BOM encoding for .sln + if (serializer is ISolutionSerializer v12Serializer) { - var fullPath = Path.GetFullPath(p); - return Path.GetRelativePath( - baseDirectory, - Directory.Exists(fullPath) ? - MsbuildProject.GetProjectFileFromDirectory(fullPath).FullName : - fullPath - ); - }); + solution.SerializerExtension = v12Serializer.CreateModelExtension(new() + { + Encoding = new UTF8Encoding(encoderShouldEmitUTF8Identifier: true) + }); + } - bool slnChanged = false; - foreach (var path in relativeProjectPaths) + foreach (var projectPath in projectPaths) { - slnChanged |= slnFile.RemoveProject(path); + var project = solution.FindProject(projectPath); + if (project != null) + { + solution.RemoveProject(project); + Reporter.Output.WriteLine(CommonLocalizableStrings.ProjectRemovedFromTheSolution, projectPath); + } + else + { + Reporter.Output.WriteLine(CommonLocalizableStrings.ProjectNotFoundInTheSolution, projectPath); + } } - slnFile.RemoveEmptyConfigurationSections(); + Dictionary solutionItemsGroupedByParent = solution.SolutionItems + .Where(i => i.Parent != null) + .GroupBy(i => i.Parent) + .ToDictionary(g => g.Key, g => g.ToArray()); - slnFile.RemoveEmptySolutionFolders(); + Dictionary nonFolderDescendantsCount = new(); + foreach (var item in solution.SolutionFolders) + { + CountNonFolderDescendants(solution, item, solutionItemsGroupedByParent, nonFolderDescendantsCount); + } - if (slnChanged) + var emptyFolders = nonFolderDescendantsCount.Where(i => i.Value == 0).Select(i => i.Key); + foreach (var folder in emptyFolders) { - slnFile.Write(); + solution.RemoveFolder(folder); } - return 0; + await serializer.SaveAsync(solutionFileFullPath, solution, cancellationToken); } } } diff --git a/test/TestAssets/TestProjects/SlnFileWithSolutionItemsInNestedFolders/App.slnx b/test/TestAssets/TestProjects/SlnFileWithSolutionItemsInNestedFolders/App.slnx new file mode 100644 index 000000000000..01759c8694e4 --- /dev/null +++ b/test/TestAssets/TestProjects/SlnFileWithSolutionItemsInNestedFolders/App.slnx @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemove.sln b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemove.sln new file mode 100644 index 000000000000..5d4f59ecb34f --- /dev/null +++ b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemove.sln @@ -0,0 +1,33 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26006.2 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "App", "App\App.csproj", "{7072A694-548F-4CAE-A58F-12D257D5F486}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|x64.ActiveCfg = Debug|x64 + {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|x64.Build.0 = Debug|x64 + {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|x86.ActiveCfg = Debug|x86 + {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|x86.Build.0 = Debug|x86 + {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|Any CPU.Build.0 = Release|Any CPU + {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|x64.ActiveCfg = Release|x64 + {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|x64.Build.0 = Release|x64 + {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|x86.ActiveCfg = Release|x86 + {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal \ No newline at end of file diff --git a/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemove.slnx b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemove.slnx new file mode 100644 index 000000000000..9d9f6a7f5faa --- /dev/null +++ b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemove.slnx @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveAllProjects.sln b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveAllProjects.sln new file mode 100644 index 000000000000..bddb84ff3a0c --- /dev/null +++ b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveAllProjects.sln @@ -0,0 +1,17 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26006.2 +MinimumVisualStudioVersion = 10.0.40219.1 +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal \ No newline at end of file diff --git a/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveAllProjects.slnx b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveAllProjects.slnx new file mode 100644 index 000000000000..70f4bc532c1a --- /dev/null +++ b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveAllProjects.slnx @@ -0,0 +1,7 @@ + + + + + + + diff --git a/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveLastNestedProj.sln b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveLastNestedProj.sln new file mode 100644 index 000000000000..6a9c1d3893db --- /dev/null +++ b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveLastNestedProj.sln @@ -0,0 +1,33 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26006.2 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "App", "App.csproj", "{7072A694-548F-4CAE-A58F-12D257D5F486}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|x64.ActiveCfg = Debug|x64 + {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|x64.Build.0 = Debug|x64 + {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|x86.ActiveCfg = Debug|x86 + {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|x86.Build.0 = Debug|x86 + {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|Any CPU.Build.0 = Release|Any CPU + {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|x64.ActiveCfg = Release|x64 + {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|x64.Build.0 = Release|x64 + {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|x86.ActiveCfg = Release|x86 + {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal \ No newline at end of file diff --git a/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveLastNestedProj.slnx b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveLastNestedProj.slnx new file mode 100644 index 000000000000..1d64de45b461 --- /dev/null +++ b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveLastNestedProj.slnx @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveNestedProj.sln b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveNestedProj.sln new file mode 100644 index 000000000000..5b07912ba6f1 --- /dev/null +++ b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveNestedProj.sln @@ -0,0 +1,55 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26006.2 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "App", "App.csproj", "{7072A694-548F-4CAE-A58F-12D257D5F486}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{7B86CE74-F620-4B32-99FE-82D40F8D6BF2}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Lib", "Lib", "{EAB71280-AF32-4531-8703-43CDBA261AA3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lib", "src\Lib\Lib.csproj", "{84A45D44-B677-492D-A6DA-B3A71135AB8E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|x64.ActiveCfg = Debug|x64 + {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|x64.Build.0 = Debug|x64 + {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|x86.ActiveCfg = Debug|x86 + {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|x86.Build.0 = Debug|x86 + {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|Any CPU.Build.0 = Release|Any CPU + {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|x64.ActiveCfg = Release|x64 + {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|x64.Build.0 = Release|x64 + {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|x86.ActiveCfg = Release|x86 + {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|x86.Build.0 = Release|x86 + {84A45D44-B677-492D-A6DA-B3A71135AB8E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {84A45D44-B677-492D-A6DA-B3A71135AB8E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {84A45D44-B677-492D-A6DA-B3A71135AB8E}.Debug|x64.ActiveCfg = Debug|x64 + {84A45D44-B677-492D-A6DA-B3A71135AB8E}.Debug|x64.Build.0 = Debug|x64 + {84A45D44-B677-492D-A6DA-B3A71135AB8E}.Debug|x86.ActiveCfg = Debug|x86 + {84A45D44-B677-492D-A6DA-B3A71135AB8E}.Debug|x86.Build.0 = Debug|x86 + {84A45D44-B677-492D-A6DA-B3A71135AB8E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {84A45D44-B677-492D-A6DA-B3A71135AB8E}.Release|Any CPU.Build.0 = Release|Any CPU + {84A45D44-B677-492D-A6DA-B3A71135AB8E}.Release|x64.ActiveCfg = Release|x64 + {84A45D44-B677-492D-A6DA-B3A71135AB8E}.Release|x64.Build.0 = Release|x64 + {84A45D44-B677-492D-A6DA-B3A71135AB8E}.Release|x86.ActiveCfg = Release|x86 + {84A45D44-B677-492D-A6DA-B3A71135AB8E}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {EAB71280-AF32-4531-8703-43CDBA261AA3} = {7B86CE74-F620-4B32-99FE-82D40F8D6BF2} + {84A45D44-B677-492D-A6DA-B3A71135AB8E} = {EAB71280-AF32-4531-8703-43CDBA261AA3} + EndGlobalSection +EndGlobal \ No newline at end of file diff --git a/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveNestedProj.slnx b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveNestedProj.slnx new file mode 100644 index 000000000000..22f8b69d5140 --- /dev/null +++ b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveNestedProj.slnx @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveProjectInSolutionWithNestedSolutionItems.sln b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveProjectInSolutionWithNestedSolutionItems.sln new file mode 100644 index 000000000000..d3d281e422d5 --- /dev/null +++ b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveProjectInSolutionWithNestedSolutionItems.sln @@ -0,0 +1,43 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.705 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NewFolder1", "NewFolder1", "{F39E429A-F91C-44F9-9025-EA6E41C99637}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NewFolder2", "NewFolder2", "{1B19AA22-7DB3-4A0F-8B89-2B80040B2BF0}" + ProjectSection(SolutionItems) = preProject + TextFile1.txt = TextFile1.txt + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NestedSolution", "NestedSolution", "{2128FC1C-7B60-4BC4-9010-D7A97E1805EA}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NestedFolder", "NestedFolder", "{7BC6A99C-7321-47A2-8CA5-B394195BD2B8}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NestedFolder", "NestedFolder", "{F6B0D958-42FF-4123-9668-A77A4ABFE5BA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleApp2", "ConsoleApp2\ConsoleApp2.csproj", "{A264F7DB-E1EF-4F99-96BE-C08F29CA494F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A264F7DB-E1EF-4F99-96BE-C08F29CA494F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A264F7DB-E1EF-4F99-96BE-C08F29CA494F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A264F7DB-E1EF-4F99-96BE-C08F29CA494F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A264F7DB-E1EF-4F99-96BE-C08F29CA494F}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {1B19AA22-7DB3-4A0F-8B89-2B80040B2BF0} = {F39E429A-F91C-44F9-9025-EA6E41C99637} + {7BC6A99C-7321-47A2-8CA5-B394195BD2B8} = {2128FC1C-7B60-4BC4-9010-D7A97E1805EA} + {F6B0D958-42FF-4123-9668-A77A4ABFE5BA} = {7BC6A99C-7321-47A2-8CA5-B394195BD2B8} + {A264F7DB-E1EF-4F99-96BE-C08F29CA494F} = {F6B0D958-42FF-4123-9668-A77A4ABFE5BA} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D36A0DD6-BD9C-4B57-9441-693B33DB7C2D} + EndGlobalSection +EndGlobal \ No newline at end of file diff --git a/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveProjectInSolutionWithNestedSolutionItems.slnx b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveProjectInSolutionWithNestedSolutionItems.slnx new file mode 100644 index 000000000000..bc8d9b27891c --- /dev/null +++ b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveProjectInSolutionWithNestedSolutionItems.slnx @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveProjectWithDependencies.sln b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveProjectWithDependencies.sln new file mode 100644 index 000000000000..2301710e0ec7 --- /dev/null +++ b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveProjectWithDependencies.sln @@ -0,0 +1,33 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.27110.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "App", "App\App.csproj", "{BB02B949-F6BD-4872-95CB-96A05B1FE026}" + ProjectSection(ProjectDependencies) = postProject + {D53E177A-8ECF-43D5-A01E-98B884D53CA6} = {D53E177A-8ECF-43D5-A01E-98B884D53CA6} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "First", "First\First.csproj", "{D53E177A-8ECF-43D5-A01E-98B884D53CA6}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {BB02B949-F6BD-4872-95CB-96A05B1FE026}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BB02B949-F6BD-4872-95CB-96A05B1FE026}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BB02B949-F6BD-4872-95CB-96A05B1FE026}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BB02B949-F6BD-4872-95CB-96A05B1FE026}.Release|Any CPU.Build.0 = Release|Any CPU + {D53E177A-8ECF-43D5-A01E-98B884D53CA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D53E177A-8ECF-43D5-A01E-98B884D53CA6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D53E177A-8ECF-43D5-A01E-98B884D53CA6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D53E177A-8ECF-43D5-A01E-98B884D53CA6}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {F6D9A973-1CFD-41C9-84F2-1471C0FE67DF} + EndGlobalSection +EndGlobal \ No newline at end of file diff --git a/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveProjectWithDependencies.slnx b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveProjectWithDependencies.slnx new file mode 100644 index 000000000000..c38dc0b63f21 --- /dev/null +++ b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnContentsAfterRemoveProjectWithDependencies.slnx @@ -0,0 +1,6 @@ + + + + + + diff --git a/test/TestAssets/TestProjects/TestAppWithSlnAndCsprojInSubDirToRemove/App.slnx b/test/TestAssets/TestProjects/TestAppWithSlnAndCsprojInSubDirToRemove/App.slnx new file mode 100644 index 000000000000..07b484553c0a --- /dev/null +++ b/test/TestAssets/TestProjects/TestAppWithSlnAndCsprojInSubDirToRemove/App.slnx @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/TestAssets/TestProjects/TestAppWithSlnAndCsprojToRemove/App.slnx b/test/TestAssets/TestProjects/TestAppWithSlnAndCsprojToRemove/App.slnx new file mode 100644 index 000000000000..6fcaebf060fe --- /dev/null +++ b/test/TestAssets/TestProjects/TestAppWithSlnAndCsprojToRemove/App.slnx @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/TestAssets/TestProjects/TestAppWithSlnAndLastCsprojInSubDirToRemove/App.slnx b/test/TestAssets/TestProjects/TestAppWithSlnAndLastCsprojInSubDirToRemove/App.slnx new file mode 100644 index 000000000000..22f8b69d5140 --- /dev/null +++ b/test/TestAssets/TestProjects/TestAppWithSlnAndLastCsprojInSubDirToRemove/App.slnx @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/test/TestAssets/TestProjects/TestAppWithSlnProjectDependencyToRemove/App.slnx b/test/TestAssets/TestProjects/TestAppWithSlnProjectDependencyToRemove/App.slnx new file mode 100644 index 000000000000..c8df49699642 --- /dev/null +++ b/test/TestAssets/TestProjects/TestAppWithSlnProjectDependencyToRemove/App.slnx @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/test/dotnet-sln.Tests/GivenDotnetSlnList.cs b/test/dotnet-sln.Tests/GivenDotnetSlnList.cs index 682a1e45c495..f462ff1e6042 100644 --- a/test/dotnet-sln.Tests/GivenDotnetSlnList.cs +++ b/test/dotnet-sln.Tests/GivenDotnetSlnList.cs @@ -240,9 +240,11 @@ public void WhenProjectsPresentInTheReadonlySolutionItListsThem(string solutionC } [Theory] - [InlineData("sln")] - [InlineData("solution")] - public void WhenProjectsInSolutionFoldersPresentInTheSolutionItListsSolutionFolderPaths(string solutionCommand) + [InlineData("sln", ".sln")] + [InlineData("solution", ".sln")] + [InlineData("sln", ".slnx")] + [InlineData("solution", ".slnx")] + public void WhenProjectsInSolutionFoldersPresentInTheSolutionItListsSolutionFolderPaths(string solutionCommand, string solutionExtension) { string[] expectedOutput = { $"{CommandLocalizableStrings.SolutionFolderHeader}", $"{new string('-', CommandLocalizableStrings.SolutionFolderHeader.Length)}", @@ -255,7 +257,7 @@ public void WhenProjectsInSolutionFoldersPresentInTheSolutionItListsSolutionFold var cmd = new DotnetCommand(Log) .WithWorkingDirectory(projectDirectory) - .Execute(solutionCommand, "list", "--solution-folders"); + .Execute(solutionCommand, $"App{solutionExtension}", "list", "--solution-folders"); cmd.Should().Pass(); cmd.StdOut.Should().ContainAll(expectedOutput); } diff --git a/test/dotnet-sln.Tests/GivenDotnetSlnRemove.cs b/test/dotnet-sln.Tests/GivenDotnetSlnRemove.cs index b54349830c48..42f51f4c31d3 100644 --- a/test/dotnet-sln.Tests/GivenDotnetSlnRemove.cs +++ b/test/dotnet-sln.Tests/GivenDotnetSlnRemove.cs @@ -1,9 +1,11 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using Microsoft.DotNet.Cli.Sln.Internal; using Microsoft.DotNet.Tools; using Microsoft.DotNet.Tools.Common; +using Microsoft.VisualStudio.SolutionPersistence; +using Microsoft.VisualStudio.SolutionPersistence.Model; +using Microsoft.VisualStudio.SolutionPersistence.Serializer; namespace Microsoft.DotNet.Cli.Sln.Remove.Tests { @@ -22,221 +24,6 @@ dotnet solution remove [...] [options] Options: -?, -h, --help Show command line help."; - private const string ExpectedSlnContentsAfterRemove = @" -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.26006.2 -MinimumVisualStudioVersion = 10.0.40219.1 -Project(""{9A19103F-16F7-4668-BE54-9A1E7A4F7556}"") = ""App"", ""App\App.csproj"", ""{7072A694-548F-4CAE-A58F-12D257D5F486}"" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|x64.ActiveCfg = Debug|x64 - {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|x64.Build.0 = Debug|x64 - {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|x86.ActiveCfg = Debug|x86 - {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|x86.Build.0 = Debug|x86 - {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|Any CPU.Build.0 = Release|Any CPU - {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|x64.ActiveCfg = Release|x64 - {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|x64.Build.0 = Release|x64 - {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|x86.ActiveCfg = Release|x86 - {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|x86.Build.0 = Release|x86 - EndGlobalSection -EndGlobal -"; - - private const string ExpectedSlnContentsAfterRemoveAllProjects = @" -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.26006.2 -MinimumVisualStudioVersion = 10.0.40219.1 -Global -EndGlobal -"; - - private const string ExpectedSlnContentsAfterRemoveNestedProj = @" -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.26006.2 -MinimumVisualStudioVersion = 10.0.40219.1 -Project(""{9A19103F-16F7-4668-BE54-9A1E7A4F7556}"") = ""App"", ""App.csproj"", ""{7072A694-548F-4CAE-A58F-12D257D5F486}"" -EndProject -Project(""{2150E333-8FDC-42A3-9474-1A3956D46DE8}"") = ""src"", ""src"", ""{7B86CE74-F620-4B32-99FE-82D40F8D6BF2}"" -EndProject -Project(""{2150E333-8FDC-42A3-9474-1A3956D46DE8}"") = ""Lib"", ""Lib"", ""{EAB71280-AF32-4531-8703-43CDBA261AA3}"" -EndProject -Project(""{9A19103F-16F7-4668-BE54-9A1E7A4F7556}"") = ""Lib"", ""src\Lib\Lib.csproj"", ""{84A45D44-B677-492D-A6DA-B3A71135AB8E}"" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|x64.ActiveCfg = Debug|x64 - {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|x64.Build.0 = Debug|x64 - {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|x86.ActiveCfg = Debug|x86 - {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|x86.Build.0 = Debug|x86 - {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|Any CPU.Build.0 = Release|Any CPU - {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|x64.ActiveCfg = Release|x64 - {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|x64.Build.0 = Release|x64 - {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|x86.ActiveCfg = Release|x86 - {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|x86.Build.0 = Release|x86 - {84A45D44-B677-492D-A6DA-B3A71135AB8E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {84A45D44-B677-492D-A6DA-B3A71135AB8E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {84A45D44-B677-492D-A6DA-B3A71135AB8E}.Debug|x64.ActiveCfg = Debug|x64 - {84A45D44-B677-492D-A6DA-B3A71135AB8E}.Debug|x64.Build.0 = Debug|x64 - {84A45D44-B677-492D-A6DA-B3A71135AB8E}.Debug|x86.ActiveCfg = Debug|x86 - {84A45D44-B677-492D-A6DA-B3A71135AB8E}.Debug|x86.Build.0 = Debug|x86 - {84A45D44-B677-492D-A6DA-B3A71135AB8E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {84A45D44-B677-492D-A6DA-B3A71135AB8E}.Release|Any CPU.Build.0 = Release|Any CPU - {84A45D44-B677-492D-A6DA-B3A71135AB8E}.Release|x64.ActiveCfg = Release|x64 - {84A45D44-B677-492D-A6DA-B3A71135AB8E}.Release|x64.Build.0 = Release|x64 - {84A45D44-B677-492D-A6DA-B3A71135AB8E}.Release|x86.ActiveCfg = Release|x86 - {84A45D44-B677-492D-A6DA-B3A71135AB8E}.Release|x86.Build.0 = Release|x86 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {EAB71280-AF32-4531-8703-43CDBA261AA3} = {7B86CE74-F620-4B32-99FE-82D40F8D6BF2} - {84A45D44-B677-492D-A6DA-B3A71135AB8E} = {EAB71280-AF32-4531-8703-43CDBA261AA3} - EndGlobalSection -EndGlobal -"; - - private const string ExpectedSlnContentsAfterRemoveLastNestedProj = @" -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.26006.2 -MinimumVisualStudioVersion = 10.0.40219.1 -Project(""{9A19103F-16F7-4668-BE54-9A1E7A4F7556}"") = ""App"", ""App.csproj"", ""{7072A694-548F-4CAE-A58F-12D257D5F486}"" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|x64.ActiveCfg = Debug|x64 - {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|x64.Build.0 = Debug|x64 - {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|x86.ActiveCfg = Debug|x86 - {7072A694-548F-4CAE-A58F-12D257D5F486}.Debug|x86.Build.0 = Debug|x86 - {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|Any CPU.Build.0 = Release|Any CPU - {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|x64.ActiveCfg = Release|x64 - {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|x64.Build.0 = Release|x64 - {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|x86.ActiveCfg = Release|x86 - {7072A694-548F-4CAE-A58F-12D257D5F486}.Release|x86.Build.0 = Release|x86 - EndGlobalSection -EndGlobal -"; - - private const string ExpectedSlnContentsAfterRemoveProjectWithDependencies = @" -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27110.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project(""{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"") = ""App"", ""App\App.csproj"", ""{BB02B949-F6BD-4872-95CB-96A05B1FE026}"" - ProjectSection(ProjectDependencies) = postProject - {D53E177A-8ECF-43D5-A01E-98B884D53CA6} = {D53E177A-8ECF-43D5-A01E-98B884D53CA6} - EndProjectSection -EndProject -Project(""{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"") = ""First"", ""First\First.csproj"", ""{D53E177A-8ECF-43D5-A01E-98B884D53CA6}"" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {BB02B949-F6BD-4872-95CB-96A05B1FE026}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BB02B949-F6BD-4872-95CB-96A05B1FE026}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BB02B949-F6BD-4872-95CB-96A05B1FE026}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BB02B949-F6BD-4872-95CB-96A05B1FE026}.Release|Any CPU.Build.0 = Release|Any CPU - {D53E177A-8ECF-43D5-A01E-98B884D53CA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D53E177A-8ECF-43D5-A01E-98B884D53CA6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D53E177A-8ECF-43D5-A01E-98B884D53CA6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D53E177A-8ECF-43D5-A01E-98B884D53CA6}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {F6D9A973-1CFD-41C9-84F2-1471C0FE67DF} - EndGlobalSection -EndGlobal -"; - - private const string ExpectedSlnContentsAfterRemoveProjectInSolutionWithNestedSolutionItems = @" -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.28307.705 -MinimumVisualStudioVersion = 10.0.40219.1 -Project(""{2150E333-8FDC-42A3-9474-1A3956D46DE8}"") = ""NewFolder1"", ""NewFolder1"", ""{F39E429A-F91C-44F9-9025-EA6E41C99637}"" -EndProject -Project(""{2150E333-8FDC-42A3-9474-1A3956D46DE8}"") = ""NewFolder2"", ""NewFolder2"", ""{1B19AA22-7DB3-4A0F-8B89-2B80040B2BF0}"" - ProjectSection(SolutionItems) = preProject - TextFile1.txt = TextFile1.txt - EndProjectSection -EndProject -Project(""{2150E333-8FDC-42A3-9474-1A3956D46DE8}"") = ""NestedSolution"", ""NestedSolution"", ""{2128FC1C-7B60-4BC4-9010-D7A97E1805EA}"" -EndProject -Project(""{2150E333-8FDC-42A3-9474-1A3956D46DE8}"") = ""NestedFolder"", ""NestedFolder"", ""{7BC6A99C-7321-47A2-8CA5-B394195BD2B8}"" -EndProject -Project(""{2150E333-8FDC-42A3-9474-1A3956D46DE8}"") = ""NestedFolder"", ""NestedFolder"", ""{F6B0D958-42FF-4123-9668-A77A4ABFE5BA}"" -EndProject -Project(""{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"") = ""ConsoleApp2"", ""ConsoleApp2\ConsoleApp2.csproj"", ""{A264F7DB-E1EF-4F99-96BE-C08F29CA494F}"" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A264F7DB-E1EF-4F99-96BE-C08F29CA494F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A264F7DB-E1EF-4F99-96BE-C08F29CA494F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A264F7DB-E1EF-4F99-96BE-C08F29CA494F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A264F7DB-E1EF-4F99-96BE-C08F29CA494F}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {1B19AA22-7DB3-4A0F-8B89-2B80040B2BF0} = {F39E429A-F91C-44F9-9025-EA6E41C99637} - {7BC6A99C-7321-47A2-8CA5-B394195BD2B8} = {2128FC1C-7B60-4BC4-9010-D7A97E1805EA} - {F6B0D958-42FF-4123-9668-A77A4ABFE5BA} = {7BC6A99C-7321-47A2-8CA5-B394195BD2B8} - {A264F7DB-E1EF-4F99-96BE-C08F29CA494F} = {F6B0D958-42FF-4123-9668-A77A4ABFE5BA} - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {D36A0DD6-BD9C-4B57-9441-693B33DB7C2D} - EndGlobalSection -EndGlobal -"; - public GivenDotnetSlnRemove(ITestOutputHelper log) : base(log) { } @@ -260,10 +47,10 @@ public void WhenHelpOptionIsPassedItPrintsUsage(string solutionCommand, string h public void WhenTooManyArgumentsArePassedItPrintsError(string solutionCommand) { var cmd = new DotnetCommand(Log) - .Execute(solutionCommand, "one.sln", "two.sln", "three.sln", "remove"); + .Execute(solutionCommand, "one.sln", "two.sln", "three.slnx", "remove"); cmd.Should().Fail(); cmd.StdErr.Should().BeVisuallyEquivalentTo($@"{string.Format(CommandLineValidation.LocalizableStrings.UnrecognizedCommandOrArgument, "two.sln")} -{string.Format(CommandLineValidation.LocalizableStrings.UnrecognizedCommandOrArgument, "three.sln")}"); +{string.Format(CommandLineValidation.LocalizableStrings.UnrecognizedCommandOrArgument, "three.slnx")}"); } [Theory] @@ -281,11 +68,13 @@ public void WhenNoCommandIsPassedItPrintsError(string solutionCommand, string co [Theory] [InlineData("sln", "idontexist.sln")] + [InlineData("sln", "idontexist.slnx")] [InlineData("sln", "ihave?invalidcharacters")] [InlineData("sln", "ihaveinv@lidcharacters")] [InlineData("sln", "ihaveinvalid/characters")] [InlineData("sln", "ihaveinvalidchar\\acters")] [InlineData("solution", "idontexist.sln")] + [InlineData("solution", "idontexist.slnx")] [InlineData("solution", "ihave?invalidcharacters")] [InlineData("solution", "ihaveinv@lidcharacters")] [InlineData("solution", "ihaveinvalid/characters")] @@ -300,9 +89,11 @@ public void WhenNonExistingSolutionIsPassedItPrintsErrorAndUsage(string solution } [Theory] - [InlineData("sln")] - [InlineData("solution")] - public void WhenInvalidSolutionIsPassedItPrintsErrorAndUsage(string solutionCommand) + [InlineData("sln", ".sln")] + [InlineData("solution", ".sln")] + [InlineData("sln", ".slnx")] + [InlineData("solution", ".slnx")] + public void WhenInvalidSolutionIsPassedItPrintsErrorAndUsage(string solutionCommand, string solutionExtension) { var projectDirectory = _testAssetsManager .CopyTestAsset("InvalidSolution", identifier: $"{solutionCommand}GivenDotnetSlnRemove") @@ -312,36 +103,44 @@ public void WhenInvalidSolutionIsPassedItPrintsErrorAndUsage(string solutionComm var projectToRemove = Path.Combine("Lib", "Lib.csproj"); var cmd = new DotnetCommand(Log) .WithWorkingDirectory(projectDirectory) - .Execute(solutionCommand, "InvalidSolution.sln", "remove", projectToRemove); + .Execute(solutionCommand, $"InvalidSolution{solutionExtension}", "remove", projectToRemove); cmd.Should().Fail(); - cmd.StdErr.Should().Be(string.Format(CommonLocalizableStrings.InvalidSolutionFormatString, "InvalidSolution.sln", LocalizableStrings.FileHeaderMissingError)); + cmd.StdErr.Should().Match(string.Format(CommonLocalizableStrings.InvalidSolutionFormatString, Path.Combine(projectDirectory, $"InvalidSolution{solutionExtension}"), "*")); cmd.StdOut.Should().BeVisuallyEquivalentToIfNotLocalized(""); } [Theory] - [InlineData("sln")] - [InlineData("solution")] - public void WhenInvalidSolutionIsFoundRemovePrintsErrorAndUsage(string solutionCommand) + [InlineData("sln", ".sln")] + [InlineData("solution", ".sln")] + [InlineData("sln", ".slnx")] + [InlineData("solution", ".slnx")] + public void WhenInvalidSolutionIsFoundRemovePrintsErrorAndUsage(string solutionCommand, string solutionExtension) { - var projectDirectory = _testAssetsManager + var projectDirectoryRoot = _testAssetsManager .CopyTestAsset("InvalidSolution", identifier: $"{solutionCommand}") .WithSource() .Path; - var solutionPath = Path.Combine(projectDirectory, "InvalidSolution.sln"); + var projectDirectory = solutionExtension == ".sln" + ? Path.Join(projectDirectoryRoot, "Sln") + : Path.Join(projectDirectoryRoot, "Slnx"); + + var solutionPath = Path.Combine(projectDirectory, $"InvalidSolution{solutionExtension}"); var projectToRemove = Path.Combine("Lib", "Lib.csproj"); var cmd = new DotnetCommand(Log) .WithWorkingDirectory(projectDirectory) .Execute(solutionCommand, "remove", projectToRemove); cmd.Should().Fail(); - cmd.StdErr.Should().Be(string.Format(CommonLocalizableStrings.InvalidSolutionFormatString, solutionPath, LocalizableStrings.FileHeaderMissingError)); + cmd.StdErr.Should().Match(string.Format(CommonLocalizableStrings.InvalidSolutionFormatString, solutionPath, "*")); cmd.StdOut.Should().BeVisuallyEquivalentToIfNotLocalized(""); } [Theory] - [InlineData("sln")] - [InlineData("solution")] - public void WhenNoProjectIsPassedItPrintsErrorAndUsage(string solutionCommand) + [InlineData("sln", ".sln")] + [InlineData("solution", ".sln")] + [InlineData("sln", ".slnx")] + [InlineData("solution", ".slnx")] + public void WhenNoProjectIsPassedItPrintsErrorAndUsage(string solutionCommand, string solutionExtension) { var projectDirectory = _testAssetsManager .CopyTestAsset("TestAppWithSlnAndCsprojFiles", identifier: $"{solutionCommand}GivenDotnetSlnRemove") @@ -350,7 +149,7 @@ public void WhenNoProjectIsPassedItPrintsErrorAndUsage(string solutionCommand) var cmd = new DotnetCommand(Log) .WithWorkingDirectory(projectDirectory) - .Execute(solutionCommand, "App.sln", "remove"); + .Execute(solutionCommand, $"App{solutionExtension}", "remove"); cmd.Should().Fail(); cmd.StdErr.Should().Be(CommonLocalizableStrings.SpecifyAtLeastOneProjectToRemove); cmd.StdOut.Should().BeVisuallyEquivalentToIfNotLocalized(""); @@ -395,20 +194,22 @@ public void WhenMoreThanOneSolutionExistsInTheDirectoryItPrintsErrorAndUsage(str } [Theory] - [InlineData("sln")] - [InlineData("solution")] - public void WhenPassedAReferenceNotInSlnItPrintsStatus(string solutionCommand) + [InlineData("sln", ".sln")] + [InlineData("solution", ".sln")] + [InlineData("sln", ".slnx")] + [InlineData("solution", ".slnx")] + public void WhenPassedAReferenceNotInSlnItPrintsStatus(string solutionCommand, string solutionExtension) { var projectDirectory = _testAssetsManager .CopyTestAsset("TestAppWithSlnAndExistingCsprojReferences", identifier: $"{solutionCommand}") .WithSource() .Path; - var solutionPath = Path.Combine(projectDirectory, "App.sln"); + var solutionPath = Path.Combine(projectDirectory, $"App{solutionExtension}"); var contentBefore = File.ReadAllText(solutionPath); var cmd = new DotnetCommand(Log) .WithWorkingDirectory(projectDirectory) - .Execute(solutionCommand, "remove", "referenceDoesNotExistInSln.csproj"); + .Execute(solutionCommand, $"App{solutionExtension}", "remove", "referenceDoesNotExistInSln.csproj"); cmd.Should().Pass(); cmd.StdOut.Should().Be(string.Format(CommonLocalizableStrings.ProjectNotFoundInTheSolution, "referenceDoesNotExistInSln.csproj")); File.ReadAllText(solutionPath) @@ -416,61 +217,67 @@ public void WhenPassedAReferenceNotInSlnItPrintsStatus(string solutionCommand) } [Theory] - [InlineData("sln")] - [InlineData("solution")] - public void WhenPassedAReferenceItRemovesTheReferenceButNotOtherReferences(string solutionCommand) + [InlineData("sln", ".sln")] + [InlineData("solution", ".sln")] + [InlineData("sln", ".slnx")] + [InlineData("solution", ".slnx")] + public async Task WhenPassedAReferenceItRemovesTheReferenceButNotOtherReferences(string solutionCommand, string solutionExtension) { var projectDirectory = _testAssetsManager .CopyTestAsset("TestAppWithSlnAndExistingCsprojReferences", identifier: $"{solutionCommand}") .WithSource() .Path; - var solutionPath = Path.Combine(projectDirectory, "App.sln"); - SlnFile slnFile = SlnFile.Read(solutionPath); - slnFile.Projects.Count.Should().Be(2); + var solutionPath = Path.Combine(projectDirectory, $"App{solutionExtension}"); + + ISolutionSerializer serializer = SolutionSerializers.GetSerializerByMoniker(solutionPath) ?? throw new InvalidOperationException($"Unable to get solution serializer for {solutionPath}."); + SolutionModel solution = await serializer.OpenAsync(solutionPath, CancellationToken.None); + + solution.SolutionProjects.Count.Should().Be(2); var projectToRemove = Path.Combine("Lib", "Lib.csproj"); var cmd = new DotnetCommand(Log) .WithWorkingDirectory(projectDirectory) - .Execute(solutionCommand, "remove", projectToRemove); + .Execute(solutionCommand, $"App{solutionExtension}", "remove", projectToRemove); cmd.Should().Pass(); cmd.StdOut.Should().Be(string.Format(CommonLocalizableStrings.ProjectRemovedFromTheSolution, projectToRemove)); - slnFile = SlnFile.Read(solutionPath); - slnFile.Projects.Count.Should().Be(1); - slnFile.Projects[0].FilePath.Should().Be(Path.Combine("App", "App.csproj")); + solution = await serializer.OpenAsync(solutionPath, CancellationToken.None); + solution.SolutionProjects.Count.Should().Be(1); + solution.SolutionProjects.Single().FilePath.Should().Be(Path.Combine("App", "App.csproj")); } [Theory] - [InlineData("sln")] - [InlineData("solution")] - public void WhenSolutionItemsExistInFolderParentFoldersAreNotRemoved(string solutionCommand) + [InlineData("sln", ".sln")] + [InlineData("solution", ".sln")] + [InlineData("sln", ".slnx")] + [InlineData("solution", ".slnx")] + public void WhenSolutionItemsExistInFolderParentFoldersAreNotRemoved(string solutionCommand, string solutionExtension) { var projectDirectory = _testAssetsManager - .CopyTestAsset("SlnFileWithSolutionItemsInNestedFolders", identifier: $"{solutionCommand}") + .CopyTestAsset("SlnFileWithSolutionItemsInNestedFolders", identifier: $"{solutionCommand}{solutionExtension}") .WithSource() .Path; - var solutionPath = Path.Combine(projectDirectory, "App.sln"); - SlnFile slnFile = SlnFile.Read(solutionPath); + var solutionPath = Path.Combine(projectDirectory, $"App{solutionExtension}"); var projectToRemove = Path.Combine("ConsoleApp1", "ConsoleApp1.csproj"); var cmd = new DotnetCommand(Log) .WithWorkingDirectory(projectDirectory) - .Execute(solutionCommand, "remove", projectToRemove); + .Execute(solutionCommand, $"App{solutionExtension}", "remove", projectToRemove); cmd.Should().Pass(); cmd.StdOut.Should().Be(string.Format(CommonLocalizableStrings.ProjectRemovedFromTheSolution, projectToRemove)); - slnFile = SlnFile.Read(solutionPath); + var templateContents = GetSolutionFileTemplateContents($"ExpectedSlnContentsAfterRemoveProjectInSolutionWithNestedSolutionItems{solutionExtension}"); File.ReadAllText(solutionPath) .Should() - .BeVisuallyEquivalentTo(ExpectedSlnContentsAfterRemoveProjectInSolutionWithNestedSolutionItems); + .BeVisuallyEquivalentTo(templateContents); } - [Theory] + [Theory(Skip = "vs-solutionpersistence does not allow duplicate references.")] [InlineData("sln")] [InlineData("solution")] - public void WhenDuplicateReferencesArePresentItRemovesThemAll(string solutionCommand) + public async Task WhenDuplicateReferencesArePresentItRemovesThemAll(string solutionCommand) { var projectDirectory = _testAssetsManager .CopyTestAsset("TestAppWithSlnAndDuplicateProjectReferences", identifier: $"{solutionCommand}") @@ -478,42 +285,48 @@ public void WhenDuplicateReferencesArePresentItRemovesThemAll(string solutionCom .Path; var solutionPath = Path.Combine(projectDirectory, "App.sln"); - SlnFile slnFile = SlnFile.Read(solutionPath); - slnFile.Projects.Count.Should().Be(3); + ISolutionSerializer serializer = SolutionSerializers.GetSerializerByMoniker(solutionPath) ?? throw new InvalidOperationException($"Unable to get solution serializer for {solutionPath}."); + SolutionModel solution = await serializer.OpenAsync(solutionPath, CancellationToken.None); + solution.SolutionProjects.Count.Should().Be(3); var projectToRemove = Path.Combine("Lib", "Lib.csproj"); var cmd = new DotnetCommand(Log) .WithWorkingDirectory(projectDirectory) - .Execute(solutionCommand, "remove", projectToRemove); + .Execute(solutionCommand, "App.sln", "remove", projectToRemove); cmd.Should().Pass(); string outputText = string.Format(CommonLocalizableStrings.ProjectRemovedFromTheSolution, projectToRemove); outputText += Environment.NewLine + outputText; cmd.StdOut.Should().BeVisuallyEquivalentTo(outputText); - slnFile = SlnFile.Read(solutionPath); - slnFile.Projects.Count.Should().Be(1); - slnFile.Projects[0].FilePath.Should().Be(Path.Combine("App", "App.csproj")); + solution = await serializer.OpenAsync(solutionPath, CancellationToken.None); + solution.SolutionProjects.Count.Should().Be(1); + solution.SolutionProjects.Single().FilePath.Should().Be(Path.Combine("App", "App.csproj")); } [Theory] - [InlineData("sln")] - [InlineData("solution")] - public void WhenPassedMultipleReferencesAndOneOfThemDoesNotExistItRemovesTheOneThatExists(string solutionCommand) + [InlineData("sln", ".sln")] + [InlineData("solution", ".sln")] + [InlineData("sln", ".slnx")] + [InlineData("solution", ".slnx")] + public async Task WhenPassedMultipleReferencesAndOneOfThemDoesNotExistItRemovesTheOneThatExists(string solutionCommand, string solutionExtension) { var projectDirectory = _testAssetsManager .CopyTestAsset("TestAppWithSlnAndExistingCsprojReferences", identifier: $"{solutionCommand}") .WithSource() .Path; - var solutionPath = Path.Combine(projectDirectory, "App.sln"); - SlnFile slnFile = SlnFile.Read(solutionPath); - slnFile.Projects.Count.Should().Be(2); + var solutionPath = Path.Combine(projectDirectory, $"App{solutionExtension}"); + + ISolutionSerializer serializer = SolutionSerializers.GetSerializerByMoniker(solutionPath) ?? throw new InvalidOperationException($"Unable to get solution serializer for {solutionPath}."); + SolutionModel solution = await serializer.OpenAsync(solutionPath, CancellationToken.None); + + solution.SolutionProjects.Count.Should().Be(2); var projectToRemove = Path.Combine("Lib", "Lib.csproj"); var cmd = new DotnetCommand(Log) .WithWorkingDirectory(projectDirectory) - .Execute(solutionCommand, "remove", "idontexist.csproj", projectToRemove, "idontexisteither.csproj"); + .Execute(solutionCommand, $"App{solutionExtension}", "remove", "idontexist.csproj", projectToRemove, "idontexisteither.csproj"); cmd.Should().Pass(); string outputText = $@"{string.Format(CommonLocalizableStrings.ProjectNotFoundInTheSolution, "idontexist.csproj")} @@ -522,62 +335,76 @@ public void WhenPassedMultipleReferencesAndOneOfThemDoesNotExistItRemovesTheOneT cmd.StdOut.Should().BeVisuallyEquivalentTo(outputText); - slnFile = SlnFile.Read(solutionPath); - slnFile.Projects.Count.Should().Be(1); - slnFile.Projects[0].FilePath.Should().Be(Path.Combine("App", "App.csproj")); + solution = await serializer.OpenAsync(solutionPath, CancellationToken.None); + solution.SolutionProjects.Count.Should().Be(1); + solution.SolutionProjects.Single().FilePath.Should().Be(Path.Combine("App", "App.csproj")); } [Theory] - [InlineData("sln")] - [InlineData("solution")] - public void WhenReferenceIsRemovedBuildConfigsAreAlsoRemoved(string solutionCommand) + [InlineData("sln", ".sln")] + [InlineData("solution", ".sln")] + [InlineData("sln", ".slnx")] + [InlineData("solution", ".slnx")] + public async Task WhenReferenceIsRemovedBuildConfigsAreAlsoRemoved(string solutionCommand, string solutionExtension) { var projectDirectory = _testAssetsManager .CopyTestAsset("TestAppWithSlnAndCsprojToRemove", identifier: $"{solutionCommand}") .WithSource() .Path; - var solutionPath = Path.Combine(projectDirectory, "App.sln"); - SlnFile slnFile = SlnFile.Read(solutionPath); - slnFile.Projects.Count.Should().Be(2); + var solutionPath = Path.Combine(projectDirectory, $"App{solutionExtension}"); + + ISolutionSerializer serializer = SolutionSerializers.GetSerializerByMoniker(solutionPath) ?? throw new InvalidOperationException($"Unable to get solution serializer for {solutionPath}."); + SolutionModel solution = await serializer.OpenAsync(solutionPath, CancellationToken.None); + + solution.SolutionProjects.Count.Should().Be(2); var projectToRemove = Path.Combine("Lib", "Lib.csproj"); var cmd = new DotnetCommand(Log) .WithWorkingDirectory(projectDirectory) - .Execute(solutionCommand, "remove", projectToRemove); + .Execute(solutionCommand, $"App{solutionExtension}", "remove", projectToRemove); cmd.Should().Pass(); + var templateContents = GetSolutionFileTemplateContents($"ExpectedSlnContentsAfterRemove{solutionExtension}"); File.ReadAllText(solutionPath) - .Should().BeVisuallyEquivalentTo(ExpectedSlnContentsAfterRemove); + .Should().BeVisuallyEquivalentTo(templateContents); } [Theory] - [InlineData("sln")] - [InlineData("solution")] - public void WhenDirectoryContainingProjectIsGivenProjectIsRemoved(string solutionCommand) + [InlineData("sln", ".sln")] + [InlineData("solution", ".sln")] + [InlineData("sln", ".slnx")] + [InlineData("solution", ".slnx")] + public async Task WhenDirectoryContainingProjectIsGivenProjectIsRemoved(string solutionCommand, string solutionExtension) { var projectDirectory = _testAssetsManager .CopyTestAsset("TestAppWithSlnAndCsprojToRemove", identifier: $"{solutionCommand}") .WithSource() .Path; - var solutionPath = Path.Combine(projectDirectory, "App.sln"); - SlnFile slnFile = SlnFile.Read(solutionPath); - slnFile.Projects.Count.Should().Be(2); + var solutionPath = Path.Combine(projectDirectory, $"App{solutionExtension}"); + + ISolutionSerializer serializer = SolutionSerializers.GetSerializerByMoniker(solutionPath) ?? throw new InvalidOperationException($"Unable to get solution serializer for {solutionPath}."); + SolutionModel solution = await serializer.OpenAsync(solutionPath, CancellationToken.None); + + solution.SolutionProjects.Count.Should().Be(2); var cmd = new DotnetCommand(Log) .WithWorkingDirectory(projectDirectory) - .Execute(solutionCommand, "remove", "Lib"); + .Execute(solutionCommand, $"App{solutionExtension}", "remove", "Lib"); cmd.Should().Pass(); + var templateContents = GetSolutionFileTemplateContents($"ExpectedSlnContentsAfterRemove{solutionExtension}"); File.ReadAllText(solutionPath) - .Should().BeVisuallyEquivalentTo(ExpectedSlnContentsAfterRemove); + .Should().BeVisuallyEquivalentTo(templateContents); } [Theory] - [InlineData("sln")] - [InlineData("solution")] - public void WhenDirectoryContainsNoProjectsItCancelsWholeOperation(string solutionCommand) + [InlineData("sln", ".sln")] + [InlineData("solution", ".sln")] + [InlineData("sln", ".slnx")] + [InlineData("solution", ".slnx")] + public void WhenDirectoryContainsNoProjectsItCancelsWholeOperation(string solutionCommand, string solutionExtension) { var projectDirectory = _testAssetsManager .CopyTestAsset("TestAppWithSlnAndCsprojToRemove", identifier: $"{solutionCommand}") @@ -587,7 +414,7 @@ public void WhenDirectoryContainsNoProjectsItCancelsWholeOperation(string soluti var cmd = new DotnetCommand(Log) .WithWorkingDirectory(projectDirectory) - .Execute(solutionCommand, "remove", directoryToRemove); + .Execute(solutionCommand, $"App{solutionExtension}", "remove", directoryToRemove); cmd.Should().Fail(); cmd.StdErr.Should().Be( string.Format( @@ -597,9 +424,11 @@ public void WhenDirectoryContainsNoProjectsItCancelsWholeOperation(string soluti } [Theory] - [InlineData("sln")] - [InlineData("solution")] - public void WhenDirectoryContainsMultipleProjectsItCancelsWholeOperation(string solutionCommand) + [InlineData("sln", ".sln")] + [InlineData("solution", ".sln")] + [InlineData("sln", ".slnx")] + [InlineData("solution", ".slnx")] + public void WhenDirectoryContainsMultipleProjectsItCancelsWholeOperation(string solutionCommand, string solutionExtension) { var projectDirectory = _testAssetsManager .CopyTestAsset("TestAppWithSlnAndCsprojToRemove", identifier: $"{solutionCommand}") @@ -609,7 +438,7 @@ public void WhenDirectoryContainsMultipleProjectsItCancelsWholeOperation(string var cmd = new DotnetCommand(Log) .WithWorkingDirectory(projectDirectory) - .Execute(solutionCommand, "remove", directoryToRemove); + .Execute(solutionCommand, $"App{solutionExtension}", "remove", directoryToRemove); cmd.Should().Fail(); cmd.StdErr.Should().Be( string.Format( @@ -619,33 +448,38 @@ public void WhenDirectoryContainsMultipleProjectsItCancelsWholeOperation(string } [Theory] - [InlineData("sln")] - [InlineData("solution")] - public void WhenReferenceIsRemovedSlnBuilds(string solutionCommand) + [InlineData("sln", ".sln")] + [InlineData("solution", ".sln")] + [InlineData("sln", ".slnx")] + [InlineData("solution", ".slnx")] + public async Task WhenReferenceIsRemovedSlnBuilds(string solutionCommand, string solutionExtension) { var projectDirectory = _testAssetsManager - .CopyTestAsset("TestAppWithSlnAndCsprojToRemove", identifier: $"{solutionCommand}") + .CopyTestAsset("TestAppWithSlnAndCsprojToRemove", identifier: $"{solutionCommand}{solutionExtension}") .WithSource() .Path; - var solutionPath = Path.Combine(projectDirectory, "App.sln"); - SlnFile slnFile = SlnFile.Read(solutionPath); - slnFile.Projects.Count.Should().Be(2); + var solutionPath = Path.Combine(projectDirectory, $"App{solutionExtension}"); + + ISolutionSerializer serializer = SolutionSerializers.GetSerializerByMoniker(solutionPath) ?? throw new InvalidOperationException($"Unable to get solution serializer for {solutionPath}."); + SolutionModel solution = await serializer.OpenAsync(solutionPath, CancellationToken.None); + + solution.SolutionProjects.Count.Should().Be(2); var projectToRemove = Path.Combine("Lib", "Lib.csproj"); var cmd = new DotnetCommand(Log) .WithWorkingDirectory(projectDirectory) - .Execute(solutionCommand, "remove", projectToRemove); + .Execute(solutionCommand, $"App{solutionExtension}", "remove", projectToRemove); cmd.Should().Pass(); new DotnetCommand(Log) .WithWorkingDirectory(projectDirectory) - .Execute($"restore", "App.sln") + .Execute($"restore", $"App{solutionExtension}") .Should().Pass(); new DotnetCommand(Log) .WithWorkingDirectory(projectDirectory) - .Execute("build", "App.sln", "--configuration", "Release", "/p:ProduceReferenceAssembly=false") + .Execute("build", $"App{solutionExtension}", "--configuration", "Release", "/p:ProduceReferenceAssembly=false") .Should().Pass(); var reasonString = "should be built in release mode, otherwise it means build configurations are missing from the sln file"; @@ -688,95 +522,108 @@ public void WhenProjectIsRemovedSolutionHasUTF8BOM(string solutionCommand) } [Theory] - [InlineData("sln")] - [InlineData("solution")] - public void WhenFinalReferenceIsRemovedEmptySectionsAreRemoved(string solutionCommand) + [InlineData("sln", ".sln")] + [InlineData("solution", ".sln")] + [InlineData("sln", ".slnx")] + [InlineData("solution", ".slnx")] + public async Task WhenFinalReferenceIsRemovedEmptySectionsAreRemoved(string solutionCommand, string solutionExtension) { var projectDirectory = _testAssetsManager .CopyTestAsset("TestAppWithSlnAndCsprojToRemove", identifier: $"{solutionCommand}") .WithSource() .Path; - var solutionPath = Path.Combine(projectDirectory, "App.sln"); - SlnFile slnFile = SlnFile.Read(solutionPath); - slnFile.Projects.Count.Should().Be(2); + var solutionPath = Path.Combine(projectDirectory, $"App{solutionExtension}"); + + ISolutionSerializer serializer = SolutionSerializers.GetSerializerByMoniker(solutionPath) ?? throw new InvalidOperationException($"Unable to get solution serializer for {solutionPath}."); + SolutionModel solution = await serializer.OpenAsync(solutionPath, CancellationToken.None); + solution.SolutionProjects.Count.Should().Be(2); var appPath = Path.Combine("App", "App.csproj"); var libPath = Path.Combine("Lib", "Lib.csproj"); var cmd = new DotnetCommand(Log) .WithWorkingDirectory(projectDirectory) - .Execute(solutionCommand, "remove", libPath, appPath); + .Execute(solutionCommand, $"App{solutionExtension}", "remove", libPath, appPath); cmd.Should().Pass(); var solutionContents = File.ReadAllText(solutionPath); - - solutionContents.Should().BeVisuallyEquivalentTo(ExpectedSlnContentsAfterRemoveAllProjects); + var templateContents = GetSolutionFileTemplateContents($"ExpectedSlnContentsAfterRemoveAllProjects{solutionExtension}"); + solutionContents.Should().BeVisuallyEquivalentTo(templateContents); } [Theory] - [InlineData("sln")] - [InlineData("solution")] - public void WhenNestedProjectIsRemovedItsSolutionFoldersAreRemoved(string solutionCommand) + [InlineData("sln", ".sln")] + [InlineData("solution", ".sln")] + [InlineData("sln", ".slnx")] + [InlineData("solution", ".slnx")] + public void WhenNestedProjectIsRemovedItsSolutionFoldersAreRemoved(string solutionCommand, string solutionExtension) { var projectDirectory = _testAssetsManager .CopyTestAsset("TestAppWithSlnAndCsprojInSubDirToRemove", identifier: $"{solutionCommand}") .WithSource() .Path; - var solutionPath = Path.Combine(projectDirectory, "App.sln"); + var solutionPath = Path.Combine(projectDirectory, $"App{solutionExtension}"); var projectToRemove = Path.Combine("src", "NotLastProjInSrc", "NotLastProjInSrc.csproj"); var cmd = new DotnetCommand(Log) .WithWorkingDirectory(projectDirectory) - .Execute(solutionCommand, "remove", projectToRemove); + .Execute(solutionCommand, $"App{solutionExtension}", "remove", projectToRemove); cmd.Should().Pass(); + var templateContents = GetSolutionFileTemplateContents($"ExpectedSlnContentsAfterRemoveNestedProj{solutionExtension}"); File.ReadAllText(solutionPath) - .Should().BeVisuallyEquivalentTo(ExpectedSlnContentsAfterRemoveNestedProj); + .Should().BeVisuallyEquivalentTo(templateContents); } [Theory] - [InlineData("sln")] - [InlineData("solution")] - public void WhenFinalNestedProjectIsRemovedSolutionFoldersAreRemoved(string solutionCommand) + [InlineData("sln", ".sln")] + [InlineData("solution", ".sln")] + [InlineData("sln", ".slnx")] + [InlineData("solution", ".slnx")] + public void WhenFinalNestedProjectIsRemovedSolutionFoldersAreRemoved(string solutionCommand, string solutionExtension) { var projectDirectory = _testAssetsManager .CopyTestAsset("TestAppWithSlnAndLastCsprojInSubDirToRemove", identifier: $"{solutionCommand}") .WithSource() .Path; - var solutionPath = Path.Combine(projectDirectory, "App.sln"); + var solutionPath = Path.Combine(projectDirectory, $"App{solutionExtension}"); var projectToRemove = Path.Combine("src", "Lib", "Lib.csproj"); var cmd = new DotnetCommand(Log) .WithWorkingDirectory(projectDirectory) - .Execute(solutionCommand, "remove", projectToRemove); + .Execute(solutionCommand, $"App{solutionExtension}", "remove", projectToRemove); cmd.Should().Pass(); + var templateContents = GetSolutionFileTemplateContents($"ExpectedSlnContentsAfterRemoveLastNestedProj{solutionExtension}"); File.ReadAllText(solutionPath) - .Should().BeVisuallyEquivalentTo(ExpectedSlnContentsAfterRemoveLastNestedProj); + .Should().BeVisuallyEquivalentTo(templateContents); } [Theory] - [InlineData("sln")] - [InlineData("solution")] - public void WhenProjectIsRemovedThenDependenciesOnProjectAreAlsoRemoved(string solutionCommand) + [InlineData("sln", ".sln")] + [InlineData("solution", ".sln")] + [InlineData("sln", ".slnx")] + [InlineData("solution", ".slnx")] + public void WhenProjectIsRemovedThenDependenciesOnProjectAreAlsoRemoved(string solutionCommand, string solutionExtension) { var projectDirectory = _testAssetsManager .CopyTestAsset("TestAppWithSlnProjectDependencyToRemove", identifier: $"{solutionCommand}") .WithSource() .Path; - var solutionPath = Path.Combine(projectDirectory, "App.sln"); + var solutionPath = Path.Combine(projectDirectory, $"App{solutionExtension}"); var projectToRemove = Path.Combine("Second", "Second.csproj"); var cmd = new DotnetCommand(Log) .WithWorkingDirectory(projectDirectory) - .Execute(solutionCommand, "remove", projectToRemove); + .Execute(solutionCommand, $"App{solutionExtension}", "remove", projectToRemove); cmd.Should().Pass(); + var templateContents = GetSolutionFileTemplateContents($"ExpectedSlnContentsAfterRemoveProjectWithDependencies{solutionExtension}"); File.ReadAllText(solutionPath) - .Should().BeVisuallyEquivalentTo(ExpectedSlnContentsAfterRemoveProjectWithDependencies); + .Should().BeVisuallyEquivalentTo(templateContents); } [Theory] @@ -801,5 +648,14 @@ public void WhenSolutionIsPassedAsProjectItPrintsSuggestionAndUsage(string solut ); cmd.StdOut.Should().BeVisuallyEquivalentToIfNotLocalized(""); } + + private string GetSolutionFileTemplateContents(string templateFileName) + { + var templateContentDirectory = _testAssetsManager + .CopyTestAsset("SolutionFilesTemplates", identifier: "SolutionFilesTemplates") + .WithSource() + .Path; + return File.ReadAllText(Path.Join(templateContentDirectory, templateFileName)); + } } } From d2940a12591ffb713e0e3912a88aa2ab014c7862 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 8 Jan 2025 15:12:26 -0800 Subject: [PATCH 037/193] [release/9.0.2xx] Update dependencies from nuget/nuget.client (#45787) Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 68 ++++++++++++++++++++--------------------- eng/Versions.props | 24 +++++++-------- 2 files changed, 46 insertions(+), 46 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 6cb751373e6e..8fc720e95439 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -139,74 +139,74 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore af22effae4069a5dfb9b0735859de48820104f5b - + https://github.com/nuget/nuget.client - bf603fb32f32478a1ce0d6a1e27b7b64d14e244a + c4b26195ee5a77e70b2ea5fd50db87d6a9194c24 - + https://github.com/nuget/nuget.client - bf603fb32f32478a1ce0d6a1e27b7b64d14e244a + c4b26195ee5a77e70b2ea5fd50db87d6a9194c24 - + https://github.com/nuget/nuget.client - bf603fb32f32478a1ce0d6a1e27b7b64d14e244a + c4b26195ee5a77e70b2ea5fd50db87d6a9194c24 - + https://github.com/nuget/nuget.client - bf603fb32f32478a1ce0d6a1e27b7b64d14e244a + c4b26195ee5a77e70b2ea5fd50db87d6a9194c24 - + https://github.com/nuget/nuget.client - bf603fb32f32478a1ce0d6a1e27b7b64d14e244a + c4b26195ee5a77e70b2ea5fd50db87d6a9194c24 - + https://github.com/nuget/nuget.client - bf603fb32f32478a1ce0d6a1e27b7b64d14e244a + c4b26195ee5a77e70b2ea5fd50db87d6a9194c24 - + https://github.com/nuget/nuget.client - bf603fb32f32478a1ce0d6a1e27b7b64d14e244a + c4b26195ee5a77e70b2ea5fd50db87d6a9194c24 - + https://github.com/nuget/nuget.client - bf603fb32f32478a1ce0d6a1e27b7b64d14e244a + c4b26195ee5a77e70b2ea5fd50db87d6a9194c24 - + https://github.com/nuget/nuget.client - bf603fb32f32478a1ce0d6a1e27b7b64d14e244a + c4b26195ee5a77e70b2ea5fd50db87d6a9194c24 - + https://github.com/nuget/nuget.client - bf603fb32f32478a1ce0d6a1e27b7b64d14e244a + c4b26195ee5a77e70b2ea5fd50db87d6a9194c24 - + https://github.com/nuget/nuget.client - bf603fb32f32478a1ce0d6a1e27b7b64d14e244a + c4b26195ee5a77e70b2ea5fd50db87d6a9194c24 - + https://github.com/nuget/nuget.client - bf603fb32f32478a1ce0d6a1e27b7b64d14e244a + c4b26195ee5a77e70b2ea5fd50db87d6a9194c24 - + https://github.com/nuget/nuget.client - bf603fb32f32478a1ce0d6a1e27b7b64d14e244a + c4b26195ee5a77e70b2ea5fd50db87d6a9194c24 - + https://github.com/nuget/nuget.client - bf603fb32f32478a1ce0d6a1e27b7b64d14e244a + c4b26195ee5a77e70b2ea5fd50db87d6a9194c24 - + https://github.com/nuget/nuget.client - bf603fb32f32478a1ce0d6a1e27b7b64d14e244a + c4b26195ee5a77e70b2ea5fd50db87d6a9194c24 - + https://github.com/nuget/nuget.client - bf603fb32f32478a1ce0d6a1e27b7b64d14e244a + c4b26195ee5a77e70b2ea5fd50db87d6a9194c24 - + https://github.com/nuget/nuget.client - bf603fb32f32478a1ce0d6a1e27b7b64d14e244a + c4b26195ee5a77e70b2ea5fd50db87d6a9194c24 https://github.com/microsoft/vstest diff --git a/eng/Versions.props b/eng/Versions.props index 3fcee509c6f8..88548a0f6b8f 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -135,18 +135,18 @@ - 6.13.0-rc.111 - 6.13.0-rc.111 - 6.13.0-rc.111 - 6.13.0-rc.111 - 6.13.0-rc.111 - 6.13.0-rc.111 - 6.13.0-rc.111 - 6.13.0-rc.111 - 6.13.0-rc.111 - 6.13.0-rc.111 - 6.13.0-rc.111 - 6.13.0-rc.111 + 6.13.0-rc.113 + 6.13.0-rc.113 + 6.13.0-rc.113 + 6.13.0-rc.113 + 6.13.0-rc.113 + 6.13.0-rc.113 + 6.13.0-rc.113 + 6.13.0-rc.113 + 6.13.0-rc.113 + 6.13.0-rc.113 + 6.13.0-rc.113 + 6.13.0-rc.113 From 36432e4454ac2575d622aa652a01b587b0c376bf Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 8 Jan 2025 23:37:51 +0000 Subject: [PATCH 038/193] Update dependencies from https://github.com/dotnet/razor build 20250108.6 Microsoft.SourceBuild.Intermediate.razor , Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal , Microsoft.CodeAnalysis.Razor.Tooling.Internal , Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 9.0.0-preview.25056.4 -> To Version 9.0.0-preview.25058.6 --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 8fc720e95439..c0b3f748ce7a 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -321,20 +321,20 @@ af22effae4069a5dfb9b0735859de48820104f5b - + https://github.com/dotnet/razor 46efcec83821d7f0322c01bc9549de83e855dcac - + https://github.com/dotnet/razor 46efcec83821d7f0322c01bc9549de83e855dcac - + https://github.com/dotnet/razor 46efcec83821d7f0322c01bc9549de83e855dcac - + https://github.com/dotnet/razor 46efcec83821d7f0322c01bc9549de83e855dcac diff --git a/eng/Versions.props b/eng/Versions.props index 88548a0f6b8f..9163abe75989 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -229,9 +229,9 @@ - 9.0.0-preview.25056.4 - 9.0.0-preview.25056.4 - 9.0.0-preview.25056.4 + 9.0.0-preview.25058.6 + 9.0.0-preview.25058.6 + 9.0.0-preview.25058.6 From 86e1a5e7fe190151e8a0676ad665d071638746e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20S=C3=A1nchez=20L=C3=B3pez?= <1175054+carlossanlop@users.noreply.github.com> Date: Wed, 8 Jan 2025 15:44:22 -0800 Subject: [PATCH 039/193] Move ImplicitSymbolFilter from Microsoft.DotNet.GenAPI.Filtering to Microsoft.DotNet.ApiSymbolExstensions.Filtering. --- src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/GenAPIApp.cs | 1 - .../Filtering/ImplicitSymbolFilter.cs | 2 +- test/Microsoft.DotNet.GenAPI.Tests/CSharpFileBuilderTests.cs | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) rename src/Compatibility/{GenAPI/Microsoft.DotNet.GenAPI => Microsoft.DotNet.ApiSymbolExtensions}/Filtering/ImplicitSymbolFilter.cs (98%) diff --git a/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/GenAPIApp.cs b/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/GenAPIApp.cs index 51bf68c42017..f76ba63a4c29 100644 --- a/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/GenAPIApp.cs +++ b/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/GenAPIApp.cs @@ -8,7 +8,6 @@ using Microsoft.DotNet.ApiSymbolExtensions; using Microsoft.DotNet.ApiSymbolExtensions.Filtering; using Microsoft.DotNet.ApiSymbolExtensions.Logging; -using Microsoft.DotNet.GenAPI.Filtering; namespace Microsoft.DotNet.GenAPI { diff --git a/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/Filtering/ImplicitSymbolFilter.cs b/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/Filtering/ImplicitSymbolFilter.cs similarity index 98% rename from src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/Filtering/ImplicitSymbolFilter.cs rename to src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/Filtering/ImplicitSymbolFilter.cs index 48d2cb66d46e..1fe0da2e0450 100644 --- a/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/Filtering/ImplicitSymbolFilter.cs +++ b/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/Filtering/ImplicitSymbolFilter.cs @@ -5,7 +5,7 @@ using Microsoft.DotNet.ApiSymbolExtensions; using Microsoft.DotNet.ApiSymbolExtensions.Filtering; -namespace Microsoft.DotNet.GenAPI.Filtering +namespace Microsoft.DotNet.ApiSymbolExtensions.Filtering { /// /// Filter out implicitly generated members for properties, events, etc. diff --git a/test/Microsoft.DotNet.GenAPI.Tests/CSharpFileBuilderTests.cs b/test/Microsoft.DotNet.GenAPI.Tests/CSharpFileBuilderTests.cs index 68009dbd4f0e..60846cff1936 100644 --- a/test/Microsoft.DotNet.GenAPI.Tests/CSharpFileBuilderTests.cs +++ b/test/Microsoft.DotNet.GenAPI.Tests/CSharpFileBuilderTests.cs @@ -10,7 +10,6 @@ using Microsoft.DotNet.ApiSymbolExtensions.Filtering; using Microsoft.DotNet.ApiSymbolExtensions.Logging; using Microsoft.DotNet.ApiSymbolExtensions.Tests; -using Microsoft.DotNet.GenAPI.Filtering; namespace Microsoft.DotNet.GenAPI.Tests { From 8fff72cee2ecd44892cc62f51769e9e0676eb5f5 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 9 Jan 2025 06:40:20 +0000 Subject: [PATCH 040/193] Update dependencies from https://github.com/dotnet/templating build 20250108.4 Microsoft.SourceBuild.Intermediate.templating , Microsoft.TemplateEngine.Abstractions , Microsoft.TemplateEngine.Mocks From Version 10.0.100-alpha.1.25057.11 -> To Version 10.0.100-alpha.1.25058.4 --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index bc2302f62c3c..c47c9e1e75b8 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,18 +1,18 @@ - + https://github.com/dotnet/templating - 88673185ead8999b65e57ff791aa7e26eb2b773a + 486ca10c31ee3c31e9ad9ab9c06fbb37b6cf789e - + https://github.com/dotnet/templating - 88673185ead8999b65e57ff791aa7e26eb2b773a + 486ca10c31ee3c31e9ad9ab9c06fbb37b6cf789e - + https://github.com/dotnet/templating - 88673185ead8999b65e57ff791aa7e26eb2b773a + 486ca10c31ee3c31e9ad9ab9c06fbb37b6cf789e diff --git a/eng/Versions.props b/eng/Versions.props index 2d75ecc73c05..8a0ac49c2fc2 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -192,13 +192,13 @@ - 10.0.100-alpha.1.25057.11 + 10.0.100-alpha.1.25058.4 $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) - 10.0.100-alpha.1.25057.11 + 10.0.100-alpha.1.25058.4 $(MicrosoftTemplateEngineMocksPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineMocksPackageVersion) From 4107c9ad8d44cf766415b09d293404711d98e9aa Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Thu, 9 Jan 2025 13:43:03 +0100 Subject: [PATCH 041/193] Use latest jdk available in VMR aspnetcore build (#45822) --- .../aspnetcore/0001-update-jdk-version.patch | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/SourceBuild/patches/aspnetcore/0001-update-jdk-version.patch diff --git a/src/SourceBuild/patches/aspnetcore/0001-update-jdk-version.patch b/src/SourceBuild/patches/aspnetcore/0001-update-jdk-version.patch new file mode 100644 index 000000000000..5ca01e482b4e --- /dev/null +++ b/src/SourceBuild/patches/aspnetcore/0001-update-jdk-version.patch @@ -0,0 +1,38 @@ +From d04dfb1ab0f13dbe0f15c065d7f127d8747a0832 Mon Sep 17 00:00:00 2001 +From: Viktor Hofer +Date: Thu, 9 Jan 2025 08:54:39 +0100 +Subject: [PATCH] Use the latest available jdk + +Backport: https://github.com/dotnet/aspnetcore/pull/59788 + +--- + global.json | 2 +- + src/SignalR/clients/java/signalr/build.gradle | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/global.json b/global.json +index c1270224e3..bd7a41270d 100644 +--- a/global.json ++++ b/global.json +@@ -24,7 +24,7 @@ + "xcopy-msbuild": "17.8.5" + }, + "native-tools": { +- "jdk": "11.0.24" ++ "jdk": "latest" + }, + "msbuild-sdks": { + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25056.1", +diff --git a/src/SignalR/clients/java/signalr/build.gradle b/src/SignalR/clients/java/signalr/build.gradle +index 895f8c4338..3e192445c9 100644 +--- a/src/SignalR/clients/java/signalr/build.gradle ++++ b/src/SignalR/clients/java/signalr/build.gradle +@@ -22,7 +22,7 @@ allprojects { + version project.findProperty('packageVersion') ?: "99.99.99-dev" + + java { +- sourceCompatibility = 1.8 ++ sourceCompatibility = 1.9 + } + + repositories { From a0b6ebfbb63839e30dbd47087e12f48c0bc32749 Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Thu, 9 Jan 2025 15:59:38 +0100 Subject: [PATCH 042/193] Small clean-up for infra that isn't necessary anymore in the VMR (#45829) --- .../NuGet.Config | 6 ------ src/SourceBuild/content/test/Directory.Build.props | 3 --- .../Directory.Build.props | 10 ---------- 3 files changed, 19 deletions(-) delete mode 100644 src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/NuGet.Config delete mode 100644 src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.Tests/Directory.Build.props diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/NuGet.Config b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/NuGet.Config deleted file mode 100644 index dc7070857222..000000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/NuGet.Config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/src/SourceBuild/content/test/Directory.Build.props b/src/SourceBuild/content/test/Directory.Build.props index 4ea9563cd754..a987ef011cfb 100644 --- a/src/SourceBuild/content/test/Directory.Build.props +++ b/src/SourceBuild/content/test/Directory.Build.props @@ -9,9 +9,6 @@ $(ArtifactsTestResultsDir) - - Major diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.Tests/Directory.Build.props b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.Tests/Directory.Build.props deleted file mode 100644 index afe77d3a8f82..000000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.Tests/Directory.Build.props +++ /dev/null @@ -1,10 +0,0 @@ - - - - - true - - - - - From 395a034a4079cf6f2843ce3a11fe4afc03a3948f Mon Sep 17 00:00:00 2001 From: ".NET Source-Build Bot" <102560831+dotnet-sb-bot@users.noreply.github.com> Date: Thu, 9 Jan 2025 16:16:27 +0100 Subject: [PATCH 043/193] Re-Bootstrap Source Build to .NET 10.0.100-alpha.1.25057.1 (#45749) --- .../content/eng/Version.Details.xml | 4 +- src/SourceBuild/content/eng/Versions.props | 4 +- src/SourceBuild/content/global.json | 4 +- .../razor/0001-Remove-unused-fields.patch | 45 +++ ...ld-in-RazorContentTypeChangeListener.patch | 63 ++++ .../razor/0003-Remove-unnecessary-using.patch | 23 ++ .../0001-Fix-code-analysis-issues.patch | 307 ++++++++++++++++++ 7 files changed, 444 insertions(+), 6 deletions(-) create mode 100644 src/SourceBuild/patches/razor/0001-Remove-unused-fields.patch create mode 100644 src/SourceBuild/patches/razor/0002-Remove-unused-field-in-RazorContentTypeChangeListener.patch create mode 100644 src/SourceBuild/patches/razor/0003-Remove-unnecessary-using.patch create mode 100644 src/SourceBuild/patches/winforms/0001-Fix-code-analysis-issues.patch diff --git a/src/SourceBuild/content/eng/Version.Details.xml b/src/SourceBuild/content/eng/Version.Details.xml index 876705d94e26..b9d93fc94779 100644 --- a/src/SourceBuild/content/eng/Version.Details.xml +++ b/src/SourceBuild/content/eng/Version.Details.xml @@ -2,9 +2,9 @@ - + https://github.com/dotnet/arcade - 45d845e04c05fbe5da9838c454bbc3af1df6be81 + e58820063a8754d418518bce69ca2df0e3b4ac25 diff --git a/src/SourceBuild/content/eng/Versions.props b/src/SourceBuild/content/eng/Versions.props index 2bb9444913fc..49955ebee40b 100644 --- a/src/SourceBuild/content/eng/Versions.props +++ b/src/SourceBuild/content/eng/Versions.props @@ -23,8 +23,8 @@ of a .NET major or minor release, prebuilts may be needed. When the release is mature, prebuilts are not necessary, and this property is removed from the file. --> - 10.0.100-alpha.1.24612.1 - 10.0.100-alpha.1.24612.1-2 + 10.0.100-alpha.1.25057.1 + 10.0.100-alpha.1.25057.1-2 0.1.0-10.0.100-7 2.0.0-beta4.24126.1 diff --git a/src/SourceBuild/content/global.json b/src/SourceBuild/content/global.json index 86ca740c5b0e..ae06a19bb0da 100644 --- a/src/SourceBuild/content/global.json +++ b/src/SourceBuild/content/global.json @@ -1,10 +1,10 @@ { "tools": { - "dotnet": "10.0.100-alpha.1.24611.6" + "dotnet": "10.0.100-alpha.1.25056.8" }, "msbuild-sdks": { "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.24604.4" + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25056.1" } } diff --git a/src/SourceBuild/patches/razor/0001-Remove-unused-fields.patch b/src/SourceBuild/patches/razor/0001-Remove-unused-fields.patch new file mode 100644 index 000000000000..e710243f76d6 --- /dev/null +++ b/src/SourceBuild/patches/razor/0001-Remove-unused-fields.patch @@ -0,0 +1,45 @@ +From faa695199c8b8886c0d923f25a57c9728afeafbf Mon Sep 17 00:00:00 2001 +From: Matt Thalman +Date: Tue, 7 Jan 2025 14:48:06 -0600 +Subject: [PATCH] Remove unused fields + +Backport: https://github.com/dotnet/razor/pull/11358 +--- + .../Microsoft.AspNetCore.Razor.LanguageServer/LspServices.cs | 4 +--- + .../AutoInsert/RemoteAutoInsertService.cs | 1 - + 2 files changed, 1 insertion(+), 4 deletions(-) + +diff --git a/src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/LspServices.cs b/src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/LspServices.cs +index 43a17a0402..01bf4ada70 100644 +--- a/src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/LspServices.cs ++++ b/src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/LspServices.cs +@@ -14,16 +14,14 @@ namespace Microsoft.AspNetCore.Razor.LanguageServer; + internal class LspServices : ILspServices + { + private readonly IServiceProvider _serviceProvider; +- private readonly IEnumerable _startupServices; + public bool IsDisposed = false; + + public LspServices(IServiceCollection serviceCollection) + { + serviceCollection.AddSingleton(this); + _serviceProvider = serviceCollection.BuildServiceProvider(); +- + // Create all startup services +- _startupServices = _serviceProvider.GetServices(); ++ _serviceProvider.GetServices(); + } + + public ImmutableArray GetRegisteredServices() +diff --git a/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/AutoInsert/RemoteAutoInsertService.cs b/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/AutoInsert/RemoteAutoInsertService.cs +index 27dcc78952..f8ab749b66 100644 +--- a/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/AutoInsert/RemoteAutoInsertService.cs ++++ b/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/AutoInsert/RemoteAutoInsertService.cs +@@ -32,7 +32,6 @@ internal sealed class RemoteAutoInsertService(in ServiceArgs args) + } + + private readonly IAutoInsertService _autoInsertService = args.ExportProvider.GetExportedValue(); +- private readonly IFilePathService _filePathService = args.ExportProvider.GetExportedValue(); + private readonly IRazorFormattingService _razorFormattingService = args.ExportProvider.GetExportedValue(); + + protected override IDocumentPositionInfoStrategy DocumentPositionInfoStrategy => PreferHtmlInAttributeValuesDocumentPositionInfoStrategy.Instance; diff --git a/src/SourceBuild/patches/razor/0002-Remove-unused-field-in-RazorContentTypeChangeListener.patch b/src/SourceBuild/patches/razor/0002-Remove-unused-field-in-RazorContentTypeChangeListener.patch new file mode 100644 index 000000000000..8c7dcd117401 --- /dev/null +++ b/src/SourceBuild/patches/razor/0002-Remove-unused-field-in-RazorContentTypeChangeListener.patch @@ -0,0 +1,63 @@ +From 1d6f0ce17c97fcf541b5f45b000b4f54356e8f25 Mon Sep 17 00:00:00 2001 +From: Matt Thalman +Date: Tue, 7 Jan 2025 18:28:41 -0600 +Subject: [PATCH] Remove unused field in RazorContentTypeChangeListener + +Backport: https://github.com/dotnet/razor/pull/11361 +--- + .../LanguageClient/RazorContentTypeChangeListener.cs | 8 -------- + .../LanguageClient/RazorContentTypeChangeListenerTest.cs | 1 - + 2 files changed, 9 deletions(-) + +diff --git a/src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/LanguageClient/RazorContentTypeChangeListener.cs b/src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/LanguageClient/RazorContentTypeChangeListener.cs +index dcc90c5787..13fb4b0696 100644 +--- a/src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/LanguageClient/RazorContentTypeChangeListener.cs ++++ b/src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/LanguageClient/RazorContentTypeChangeListener.cs +@@ -18,7 +18,6 @@ internal class RazorContentTypeChangeListener : ITextBufferContentTypeListener + private readonly TrackingLSPDocumentManager _lspDocumentManager; + private readonly ITextDocumentFactoryService _textDocumentFactory; + private readonly ILspEditorFeatureDetector _lspEditorFeatureDetector; +- private readonly IEditorOptionsFactoryService _editorOptionsFactory; + private readonly IFileToContentTypeService _fileToContentTypeService; + + [ImportingConstructor] +@@ -26,7 +25,6 @@ internal class RazorContentTypeChangeListener : ITextBufferContentTypeListener + ITextDocumentFactoryService textDocumentFactory, + LSPDocumentManager lspDocumentManager, + ILspEditorFeatureDetector lspEditorFeatureDetector, +- IEditorOptionsFactoryService editorOptionsFactory, + IFileToContentTypeService fileToContentTypeService) + { + if (textDocumentFactory is null) +@@ -44,11 +42,6 @@ internal class RazorContentTypeChangeListener : ITextBufferContentTypeListener + throw new ArgumentNullException(nameof(lspEditorFeatureDetector)); + } + +- if (editorOptionsFactory is null) +- { +- throw new ArgumentNullException(nameof(editorOptionsFactory)); +- } +- + if (fileToContentTypeService is null) + { + throw new ArgumentNullException(nameof(fileToContentTypeService)); +@@ -63,7 +56,6 @@ internal class RazorContentTypeChangeListener : ITextBufferContentTypeListener + + _textDocumentFactory = textDocumentFactory; + _lspEditorFeatureDetector = lspEditorFeatureDetector; +- _editorOptionsFactory = editorOptionsFactory; + _fileToContentTypeService = fileToContentTypeService; + } + +diff --git a/src/Razor/test/Microsoft.VisualStudio.LanguageServices.Razor.Test/LanguageClient/RazorContentTypeChangeListenerTest.cs b/src/Razor/test/Microsoft.VisualStudio.LanguageServices.Razor.Test/LanguageClient/RazorContentTypeChangeListenerTest.cs +index d01ea46d5c..d6afae6491 100644 +--- a/src/Razor/test/Microsoft.VisualStudio.LanguageServices.Razor.Test/LanguageClient/RazorContentTypeChangeListenerTest.cs ++++ b/src/Razor/test/Microsoft.VisualStudio.LanguageServices.Razor.Test/LanguageClient/RazorContentTypeChangeListenerTest.cs +@@ -226,7 +226,6 @@ public class RazorContentTypeChangeListenerTest : ToolingTestBase + textDocumentFactory, + lspDocumentManager, + lspEditorFeatureDetector, +- Mock.Of(s => s.GetOptions(It.IsAny()) == Mock.Of(MockBehavior.Strict), MockBehavior.Strict), + fileToContentTypeService); + + return listener; diff --git a/src/SourceBuild/patches/razor/0003-Remove-unnecessary-using.patch b/src/SourceBuild/patches/razor/0003-Remove-unnecessary-using.patch new file mode 100644 index 000000000000..2ad84ab1351c --- /dev/null +++ b/src/SourceBuild/patches/razor/0003-Remove-unnecessary-using.patch @@ -0,0 +1,23 @@ +From fa8b9938dfaa72c790a1bf4a657af77ef2de5f13 Mon Sep 17 00:00:00 2001 +From: David Wengier +Date: Wed, 8 Jan 2025 12:03:12 +1100 +Subject: [PATCH] Remove using + +Backport: https://github.com/dotnet/razor/pull/11361 + +--- + .../LanguageClient/RazorContentTypeChangeListener.cs | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/LanguageClient/RazorContentTypeChangeListener.cs b/src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/LanguageClient/RazorContentTypeChangeListener.cs +index 13fb4b0696..535223227b 100644 +--- a/src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/LanguageClient/RazorContentTypeChangeListener.cs ++++ b/src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/LanguageClient/RazorContentTypeChangeListener.cs +@@ -5,7 +5,6 @@ using System; + using System.ComponentModel.Composition; + using Microsoft.VisualStudio.LanguageServer.ContainedLanguage; + using Microsoft.VisualStudio.Text; +-using Microsoft.VisualStudio.Text.Editor; + using Microsoft.VisualStudio.Utilities; + + namespace Microsoft.VisualStudio.Razor.LanguageClient; diff --git a/src/SourceBuild/patches/winforms/0001-Fix-code-analysis-issues.patch b/src/SourceBuild/patches/winforms/0001-Fix-code-analysis-issues.patch new file mode 100644 index 000000000000..00000140e9d2 --- /dev/null +++ b/src/SourceBuild/patches/winforms/0001-Fix-code-analysis-issues.patch @@ -0,0 +1,307 @@ +From 03549bcc6e902a551be08339490e9f13db217ad6 Mon Sep 17 00:00:00 2001 +From: Matt Thalman +Date: Wed, 8 Jan 2025 07:20:08 -0600 +Subject: [PATCH] Fix code analysis issues + +Backport: https://github.com/dotnet/winforms/pull/12735 +--- + .../Drawing/Printing/PrinterSettings.StringCollection.cs | 2 +- + .../System/Collections/Generic/CollectionExtensions.cs | 2 +- + .../System/Drawing/IIcon.cs | 2 +- + .../CollectionEditor.CollectionEditorCollectionForm.cs | 2 +- + .../src/System/ComponentModel/Design/DesignerHost.cs | 2 +- + ...omSerializationStore.ComponentListCodeDomSerializer.cs | 2 +- + .../Windows/Forms/Design/Behavior/SelectionManager.cs | 4 ++-- + .../Forms/Design/Behavior/TableLayoutPanelBehavior.cs | 2 +- + .../Design/Behavior/ToolStripPanelSelectionBehavior.cs | 2 +- + .../src/System/Windows/Forms/Design/CommandSet.cs | 2 +- + .../Windows/Forms/Design/FlowLayoutPanelDesigner .cs | 2 +- + .../src/System/Windows/Forms/Design/OleDragDropHandler.cs | 2 +- + .../Windows/Forms/Design/TableLayoutPanelDesigner.cs | 2 +- + .../Windows/Forms/ActiveX/AxHost.AxPropertyDescriptor.cs | 2 +- + .../ComponentModel/COM2Interop/COM2PropertyDescriptor.cs | 2 +- + .../COM2Interop/ICom2ExtendedBrowsingHandler.cs | 4 ++-- + .../System/Windows/Forms/Controls/ComboBox/ComboBox.cs | 2 +- + .../System/Windows/Forms/Controls/ToolStrips/ToolStrip.cs | 2 +- + .../Forms/Controls/ToolStrips/ToolStripDropDown.cs | 2 +- + .../Windows/Forms/Dialogs/TaskDialog/TaskDialogPage.cs | 8 ++++---- + 20 files changed, 25 insertions(+), 25 deletions(-) + +diff --git a/src/System.Drawing.Common/src/System/Drawing/Printing/PrinterSettings.StringCollection.cs b/src/System.Drawing.Common/src/System/Drawing/Printing/PrinterSettings.StringCollection.cs +index 15dc585aa..d063cdd21 100644 +--- a/src/System.Drawing.Common/src/System/Drawing/Printing/PrinterSettings.StringCollection.cs ++++ b/src/System.Drawing.Common/src/System/Drawing/Printing/PrinterSettings.StringCollection.cs +@@ -15,7 +15,7 @@ public partial class PrinterSettings + /// + /// Initializes a new instance of the class. + /// +- public StringCollection(string[] array) => _list = new(array); ++ public StringCollection(string[] array) => _list = [..array]; + + /// + /// Gets a value indicating the number of strings. +diff --git a/src/System.Private.Windows.Core/src/System/Collections/Generic/CollectionExtensions.cs b/src/System.Private.Windows.Core/src/System/Collections/Generic/CollectionExtensions.cs +index 15dd20bbf..eb0852ff0 100644 +--- a/src/System.Private.Windows.Core/src/System/Collections/Generic/CollectionExtensions.cs ++++ b/src/System.Private.Windows.Core/src/System/Collections/Generic/CollectionExtensions.cs +@@ -25,7 +25,7 @@ internal static class CollectionExtensions + } + + // Fall back to just setting the count (by removing). +- List list = new(readOnlyList); ++ List list = [..readOnlyList]; + list.RemoveRange(count, list.Count - count); + return list; + } +diff --git a/src/System.Private.Windows.GdiPlus/System/Drawing/IIcon.cs b/src/System.Private.Windows.GdiPlus/System/Drawing/IIcon.cs +index 7b53bdaf0..5eed2338f 100644 +--- a/src/System.Private.Windows.GdiPlus/System/Drawing/IIcon.cs ++++ b/src/System.Private.Windows.GdiPlus/System/Drawing/IIcon.cs +@@ -5,5 +5,5 @@ namespace System.Drawing; + + internal interface IIcon : IHandle + { +- public Size Size { get; } ++ Size Size { get; } + } +diff --git a/src/System.Windows.Forms.Design/src/System/ComponentModel/Design/CollectionEditor.CollectionEditorCollectionForm.cs b/src/System.Windows.Forms.Design/src/System/ComponentModel/Design/CollectionEditor.CollectionEditorCollectionForm.cs +index e5428772c..d30b80ffb 100644 +--- a/src/System.Windows.Forms.Design/src/System/ComponentModel/Design/CollectionEditor.CollectionEditorCollectionForm.cs ++++ b/src/System.Windows.Forms.Design/src/System/ComponentModel/Design/CollectionEditor.CollectionEditorCollectionForm.cs +@@ -807,7 +807,7 @@ public partial class CollectionEditor + { + if (_listBox.SelectedItems.Count > 1) + { +- List toBeDeleted = _listBox.SelectedItems.Cast().ToList(); ++ List toBeDeleted = [.._listBox.SelectedItems.Cast()]; + foreach (ListItem item in toBeDeleted) + { + RemoveInternal(item); +diff --git a/src/System.Windows.Forms.Design/src/System/ComponentModel/Design/DesignerHost.cs b/src/System.Windows.Forms.Design/src/System/ComponentModel/Design/DesignerHost.cs +index 0e5f01025..1260870a2 100644 +--- a/src/System.Windows.Forms.Design/src/System/ComponentModel/Design/DesignerHost.cs ++++ b/src/System.Windows.Forms.Design/src/System/ComponentModel/Design/DesignerHost.cs +@@ -1119,7 +1119,7 @@ internal sealed partial class DesignerHost : Container, IDesignerLoaderHost2, ID + _state[s_stateLoading] = true; + Unload(); + +- List errorList = errorCollection is null ? [] : errorCollection.Cast().ToList(); ++ List errorList = errorCollection is null ? [] : [..errorCollection.Cast()]; + errorList.Insert(0, ex); + + errorCollection = errorList; +diff --git a/src/System.Windows.Forms.Design/src/System/ComponentModel/Design/Serialization/CodeDomComponentSerializationService.CodeDomSerializationStore.ComponentListCodeDomSerializer.cs b/src/System.Windows.Forms.Design/src/System/ComponentModel/Design/Serialization/CodeDomComponentSerializationService.CodeDomSerializationStore.ComponentListCodeDomSerializer.cs +index 9eb2a6a71..cb2e80289 100644 +--- a/src/System.Windows.Forms.Design/src/System/ComponentModel/Design/Serialization/CodeDomComponentSerializationService.CodeDomSerializationStore.ComponentListCodeDomSerializer.cs ++++ b/src/System.Windows.Forms.Design/src/System/ComponentModel/Design/Serialization/CodeDomComponentSerializationService.CodeDomSerializationStore.ComponentListCodeDomSerializer.cs +@@ -91,7 +91,7 @@ public sealed partial class CodeDomComponentSerializationService + + // We need to also ensure that for every entry in the statement table we have a + // corresponding entry in objectNames. Otherwise, we won't deserialize completely. +- HashSet completeNames = new(objectNames); ++ HashSet completeNames = [..objectNames]; + completeNames.UnionWith(_statementsTable.Keys); + + _objectState = new(objectState); +diff --git a/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/Behavior/SelectionManager.cs b/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/Behavior/SelectionManager.cs +index 73648af22..23bbac7ba 100644 +--- a/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/Behavior/SelectionManager.cs ++++ b/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/Behavior/SelectionManager.cs +@@ -257,7 +257,7 @@ internal sealed class SelectionManager : IDisposable + /// + private void OnBeginDrag(object? source, BehaviorDragDropEventArgs e) + { +- List dragComps = e.DragComponents.Cast().ToList(); ++ List dragComps = [..e.DragComponents.Cast()]; + List glyphsToRemove = []; + foreach (ControlBodyGlyph g in BodyGlyphAdorner.Glyphs) + { +@@ -412,7 +412,7 @@ internal sealed class SelectionManager : IDisposable + SelectionGlyphAdorner.Glyphs.Clear(); + BodyGlyphAdorner.Glyphs.Clear(); + +- List selComps = _selectionService.GetSelectedComponents().Cast().ToList(); ++ List selComps = [.._selectionService.GetSelectedComponents().Cast()]; + object? primarySelection = _selectionService.PrimarySelection; + + // add all control glyphs to all controls on rootComp +diff --git a/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/Behavior/TableLayoutPanelBehavior.cs b/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/Behavior/TableLayoutPanelBehavior.cs +index eb6b29b06..a0514c3ac 100644 +--- a/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/Behavior/TableLayoutPanelBehavior.cs ++++ b/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/Behavior/TableLayoutPanelBehavior.cs +@@ -166,7 +166,7 @@ internal class TableLayoutPanelBehavior : Behavior + { + if ((_styles is null || isColumn != _currentColumnStyles) && _table is not null) + { +- _styles = ((TableLayoutStyleCollection)_changedProp.GetValue(_table)).Cast().ToList(); ++ _styles = [..((TableLayoutStyleCollection)_changedProp.GetValue(_table)).Cast()]; + _currentColumnStyles = isColumn; + } + } +diff --git a/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/Behavior/ToolStripPanelSelectionBehavior.cs b/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/Behavior/ToolStripPanelSelectionBehavior.cs +index e717ea8d0..1f5aa98e0 100644 +--- a/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/Behavior/ToolStripPanelSelectionBehavior.cs ++++ b/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/Behavior/ToolStripPanelSelectionBehavior.cs +@@ -223,7 +223,7 @@ internal sealed class ToolStripPanelSelectionBehavior : Behavior + + if (e.Data is DropSourceBehavior.BehaviorDataObject data) + { +- components = new List(data.DragComponents); ++ components = [..data.DragComponents]; + + foreach (IComponent dragComponent in components) + { +diff --git a/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/CommandSet.cs b/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/CommandSet.cs +index d39ed9f70..2b4645fd5 100644 +--- a/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/CommandSet.cs ++++ b/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/CommandSet.cs +@@ -804,7 +804,7 @@ internal partial class CommandSet : IDisposable + // Don't snap if we are moving a component in the ComponentTray + if (invertSnap && useSnapLines && primaryControl is not null && comp.Site is not null) + { +- List selComps = SelectionService.GetSelectedComponents().Cast().ToList(); ++ List selComps = [..SelectionService.GetSelectedComponents().Cast()]; + + // create our snapline engine + dragManager = new DragAssistanceManager(comp.Site, selComps); +diff --git a/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/FlowLayoutPanelDesigner .cs b/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/FlowLayoutPanelDesigner .cs +index 3db868f5c..0e92902a0 100644 +--- a/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/FlowLayoutPanelDesigner .cs ++++ b/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/FlowLayoutPanelDesigner .cs +@@ -757,7 +757,7 @@ internal partial class FlowLayoutPanelDesigner : FlowPanelDesigner + // Get the sorted drag controls. We use these for an internal drag. + if (de.Data is DropSourceBehavior.BehaviorDataObject data) + { +- _dragControls = data.GetSortedDragControls(out int primaryIndex).OfType().ToList(); ++ _dragControls = [..data.GetSortedDragControls(out int primaryIndex).OfType()]; + _primaryDragControl = _dragControls[primaryIndex]; + } + +diff --git a/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/OleDragDropHandler.cs b/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/OleDragDropHandler.cs +index bcf00c49a..8adc80b1c 100644 +--- a/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/OleDragDropHandler.cs ++++ b/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/OleDragDropHandler.cs +@@ -257,7 +257,7 @@ internal partial class OleDragDropHandler + { + host?.Activate(); + +- List selectComps = new(comps); ++ List selectComps = [..comps]; + + for (int i = 0; i < comps.Length; i++) + { +diff --git a/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/TableLayoutPanelDesigner.cs b/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/TableLayoutPanelDesigner.cs +index 1ea69253c..7f8d0da94 100644 +--- a/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/TableLayoutPanelDesigner.cs ++++ b/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/TableLayoutPanelDesigner.cs +@@ -952,7 +952,7 @@ internal partial class TableLayoutPanelDesigner : FlowPanelDesigner + { + if (de.Data is DropSourceBehavior.BehaviorDataObject data) + { +- _dragComponents = new List(data.DragComponents); ++ _dragComponents = [..data.DragComponents]; + return _dragComponents[0] as Control; + } + +diff --git a/src/System.Windows.Forms/src/System/Windows/Forms/ActiveX/AxHost.AxPropertyDescriptor.cs b/src/System.Windows.Forms/src/System/Windows/Forms/ActiveX/AxHost.AxPropertyDescriptor.cs +index 0d60dda12..d66e015cd 100644 +--- a/src/System.Windows.Forms/src/System/Windows/Forms/ActiveX/AxHost.AxPropertyDescriptor.cs ++++ b/src/System.Windows.Forms/src/System/Windows/Forms/ActiveX/AxHost.AxPropertyDescriptor.cs +@@ -254,7 +254,7 @@ public abstract partial class AxHost + return; + } + +- List attributes = new(AttributeArray!); ++ List attributes = [..AttributeArray!]; + attributes.AddRange(_updateAttributes); + AttributeArray = [.. attributes]; + _updateAttributes.Clear(); +diff --git a/src/System.Windows.Forms/src/System/Windows/Forms/ComponentModel/COM2Interop/COM2PropertyDescriptor.cs b/src/System.Windows.Forms/src/System/Windows/Forms/ComponentModel/COM2Interop/COM2PropertyDescriptor.cs +index 33dd3d9e8..53a8148a3 100644 +--- a/src/System.Windows.Forms/src/System/Windows/Forms/ComponentModel/COM2Interop/COM2PropertyDescriptor.cs ++++ b/src/System.Windows.Forms/src/System/Windows/Forms/ComponentModel/COM2Interop/COM2PropertyDescriptor.cs +@@ -238,7 +238,7 @@ internal unsafe partial class Com2PropertyDescriptor : PropertyDescriptor, IClon + + if (attributeList.Count > 0) + { +- newAttributes ??= new(AttributeArray); ++ newAttributes ??= [..AttributeArray]; + + // Push any new attributes into the base type. + for (int i = 0; i < attributeList.Count; i++) +diff --git a/src/System.Windows.Forms/src/System/Windows/Forms/ComponentModel/COM2Interop/ICom2ExtendedBrowsingHandler.cs b/src/System.Windows.Forms/src/System/Windows/Forms/ComponentModel/COM2Interop/ICom2ExtendedBrowsingHandler.cs +index 291b42c5d..8fb6a7b67 100644 +--- a/src/System.Windows.Forms/src/System/Windows/Forms/ComponentModel/COM2Interop/ICom2ExtendedBrowsingHandler.cs ++++ b/src/System.Windows.Forms/src/System/Windows/Forms/ComponentModel/COM2Interop/ICom2ExtendedBrowsingHandler.cs +@@ -21,11 +21,11 @@ internal unsafe interface ICom2ExtendedBrowsingHandler + /// + /// Returns if the given object is supported by this type. + /// +- public bool ObjectSupportsInterface(object @object); ++ bool ObjectSupportsInterface(object @object); + + /// + /// Called to setup the property handlers on a given property. In this method, the handler will add listeners + /// to the events that the surfaces that it cares about. + /// +- public void RegisterEvents(Com2PropertyDescriptor[]? properties); ++ void RegisterEvents(Com2PropertyDescriptor[]? properties); + } +diff --git a/src/System.Windows.Forms/src/System/Windows/Forms/Controls/ComboBox/ComboBox.cs b/src/System.Windows.Forms/src/System/Windows/Forms/Controls/ComboBox/ComboBox.cs +index d078054db..95f65362b 100644 +--- a/src/System.Windows.Forms/src/System/Windows/Forms/Controls/ComboBox/ComboBox.cs ++++ b/src/System.Windows.Forms/src/System/Windows/Forms/Controls/ComboBox/ComboBox.cs +@@ -2052,7 +2052,7 @@ public partial class ComboBox : ListControl + else + { + // Remove one character from matching text and rematch +- MatchingText = MatchingText.Remove(MatchingText.Length - 1); ++ MatchingText = MatchingText[..^1]; + SelectedIndex = FindString(MatchingText); + } + +diff --git a/src/System.Windows.Forms/src/System/Windows/Forms/Controls/ToolStrips/ToolStrip.cs b/src/System.Windows.Forms/src/System/Windows/Forms/Controls/ToolStrips/ToolStrip.cs +index 040b4ff8e..4775f3e96 100644 +--- a/src/System.Windows.Forms/src/System/Windows/Forms/Controls/ToolStrips/ToolStrip.cs ++++ b/src/System.Windows.Forms/src/System/Windows/Forms/Controls/ToolStrips/ToolStrip.cs +@@ -3933,7 +3933,7 @@ public partial class ToolStrip : ScrollableControl, IArrangedElement, ISupportTo + /// contains ToolStrip or ToolStripDropDown items to disconnect + internal virtual void ReleaseToolStripItemsProviders(ToolStripItemCollection items) + { +- ToolStripItem[] itemsArray = items.Cast().ToArray(); ++ ToolStripItem[] itemsArray = [..items.Cast()]; + foreach (ToolStripItem toolStripItem in itemsArray) + { + if (toolStripItem is ToolStripDropDownItem dropDownItem && dropDownItem.DropDownItems.Count > 0) +diff --git a/src/System.Windows.Forms/src/System/Windows/Forms/Controls/ToolStrips/ToolStripDropDown.cs b/src/System.Windows.Forms/src/System/Windows/Forms/Controls/ToolStrips/ToolStripDropDown.cs +index 83777ba57..573607e61 100644 +--- a/src/System.Windows.Forms/src/System/Windows/Forms/Controls/ToolStrips/ToolStripDropDown.cs ++++ b/src/System.Windows.Forms/src/System/Windows/Forms/Controls/ToolStrips/ToolStripDropDown.cs +@@ -1948,7 +1948,7 @@ public partial class ToolStripDropDown : ToolStrip + } + else + { +- List dropDowns = new(ActiveDropDowns); ++ List dropDowns = [..ActiveDropDowns]; + + // We can't iterate through the active dropdown collection + // here as changing visibility changes the collection. +diff --git a/src/System.Windows.Forms/src/System/Windows/Forms/Dialogs/TaskDialog/TaskDialogPage.cs b/src/System.Windows.Forms/src/System/Windows/Forms/Dialogs/TaskDialog/TaskDialogPage.cs +index 40be8a27f..f8b6f7f43 100644 +--- a/src/System.Windows.Forms/src/System/Windows/Forms/Dialogs/TaskDialog/TaskDialogPage.cs ++++ b/src/System.Windows.Forms/src/System/Windows/Forms/Dialogs/TaskDialog/TaskDialogPage.cs +@@ -868,10 +868,10 @@ public class TaskDialogPage + radioButtons.BoundPage = this; + + // Sort the buttons. +- _boundCustomButtons = buttons.Where(e => !e.IsStandardButton).ToArray(); +- _boundStandardButtonsByID = new Dictionary( +- buttons.Where(e => e.IsStandardButton) +- .Select(e => new KeyValuePair(e.ButtonID, e))); ++ _boundCustomButtons = [..buttons.Where(e => !e.IsStandardButton)]; ++ _boundStandardButtonsByID = buttons ++ .Where(e => e.IsStandardButton) ++ .ToDictionary(e => e.ButtonID); + + // Assign IDs to the buttons based on their index. + defaultButtonID = 0; From 0bc759d659ce17d4a675154ef760cafa29671a8c Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Thu, 9 Jan 2025 16:52:38 +0100 Subject: [PATCH 044/193] Make the SkipPrepareSdkArchive more useful for local dev innerloop (#45828) --- src/SourceBuild/content/Directory.Build.targets | 5 ++++- .../Microsoft.DotNet.SourceBuild.Tests.csproj | 7 ++----- .../Microsoft.DotNet.UnifiedBuild.Tests.csproj | 4 ++-- src/SourceBuild/content/test/tests.proj | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/SourceBuild/content/Directory.Build.targets b/src/SourceBuild/content/Directory.Build.targets index 01a45daba0cd..fde76356c705 100644 --- a/src/SourceBuild/content/Directory.Build.targets +++ b/src/SourceBuild/content/Directory.Build.targets @@ -2,7 +2,10 @@ - + + dotnet-sdk- diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.Tests/Microsoft.DotNet.SourceBuild.Tests.csproj b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.Tests/Microsoft.DotNet.SourceBuild.Tests.csproj index 8fa445d38833..c17319311fd6 100644 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.Tests/Microsoft.DotNet.SourceBuild.Tests.csproj +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.Tests/Microsoft.DotNet.SourceBuild.Tests.csproj @@ -10,10 +10,7 @@ false - - DetermineSourceBuiltSdkVersion + @@ -36,7 +33,7 @@ diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/Microsoft.DotNet.UnifiedBuild.Tests.csproj b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/Microsoft.DotNet.UnifiedBuild.Tests.csproj index 78e0ab8f338a..2aa00cba01dd 100644 --- a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/Microsoft.DotNet.UnifiedBuild.Tests.csproj +++ b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/Microsoft.DotNet.UnifiedBuild.Tests.csproj @@ -11,8 +11,8 @@ - - + + diff --git a/src/SourceBuild/content/test/tests.proj b/src/SourceBuild/content/test/tests.proj index 89e8d210f0bd..f7bda2620e07 100644 --- a/src/SourceBuild/content/test/tests.proj +++ b/src/SourceBuild/content/test/tests.proj @@ -31,7 +31,7 @@ - + From b07efa9deed6f6a623b631cf6c51b87b43878120 Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Thu, 9 Jan 2025 16:57:20 +0100 Subject: [PATCH 045/193] Add #nullable disable to files that don't yet use nullable annotations (#45827) --- .../CatalogFileEntry.cs | 2 ++ .../CatalogPackageEntry.cs | 2 ++ .../CheckForPoison.cs | 2 ++ .../DummyAttributeTypeProvider.cs | 1 - .../MarkAndCatalogPackages.cs | 2 ++ .../PoisonMatch.cs | 2 ++ .../PoisonedFileEntry.cs | 2 ++ 7 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/CatalogFileEntry.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/CatalogFileEntry.cs index 268d50fc5a71..1fddd5d55087 100644 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/CatalogFileEntry.cs +++ b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/CatalogFileEntry.cs @@ -2,6 +2,8 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. +#nullable disable + using System; using System.Collections.Generic; using System.Text; diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/CatalogPackageEntry.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/CatalogPackageEntry.cs index e52e1aaa28ff..f0181c9ddd6a 100644 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/CatalogPackageEntry.cs +++ b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/CatalogPackageEntry.cs @@ -2,6 +2,8 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. +#nullable disable + using System; using System.Collections.Generic; using System.Linq; diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/CheckForPoison.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/CheckForPoison.cs index b60804502c5c..0fb8d18d83ee 100644 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/CheckForPoison.cs +++ b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/CheckForPoison.cs @@ -2,6 +2,8 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. +#nullable disable + using Microsoft.Build.Framework; using Microsoft.Build.Utilities; using System; diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/DummyAttributeTypeProvider.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/DummyAttributeTypeProvider.cs index e965344cf07a..0018a2a5e7b1 100644 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/DummyAttributeTypeProvider.cs +++ b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/DummyAttributeTypeProvider.cs @@ -9,7 +9,6 @@ namespace Microsoft.DotNet.SourceBuild.Tasks.LeakDetection { - // An empty ICustomAttributeTypeProvider implementation is necessary to read metadata attribute values. internal class DummyAttributeTypeProvider : ICustomAttributeTypeProvider { diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/MarkAndCatalogPackages.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/MarkAndCatalogPackages.cs index 3f98cedaebf0..81fe6fcb7317 100644 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/MarkAndCatalogPackages.cs +++ b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/MarkAndCatalogPackages.cs @@ -2,6 +2,8 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. +#nullable disable + using Microsoft.Build.Framework; using Microsoft.Build.Utilities; using Microsoft.DotNet.UnifiedBuild.Tasks; diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/PoisonMatch.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/PoisonMatch.cs index 0191b3a260e3..52fc0eef3d20 100644 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/PoisonMatch.cs +++ b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/PoisonMatch.cs @@ -2,6 +2,8 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. +#nullable disable + using System; using System.Collections.Generic; using System.Text; diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/PoisonedFileEntry.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/PoisonedFileEntry.cs index 1d98fd8cb100..a7348482d76b 100644 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/PoisonedFileEntry.cs +++ b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/PoisonedFileEntry.cs @@ -2,6 +2,8 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. +#nullable disable + using System; using System.Collections.Generic; using System.Linq; From 0f031f6688b1c70ee3e99bc700f852e135c8d861 Mon Sep 17 00:00:00 2001 From: Michael Simons Date: Thu, 9 Jan 2025 13:31:20 -0600 Subject: [PATCH 046/193] Remove unused OverrideBootstrapVersions infrastructure (#45550) --- .../bootstrap/OverrideBootstrapVersions.props | 9 ------- .../buildBootstrapPreviouslySB.csproj | 27 ------------------- src/SourceBuild/content/prep-source-build.sh | 2 +- 3 files changed, 1 insertion(+), 37 deletions(-) delete mode 100644 src/SourceBuild/content/eng/bootstrap/OverrideBootstrapVersions.props diff --git a/src/SourceBuild/content/eng/bootstrap/OverrideBootstrapVersions.props b/src/SourceBuild/content/eng/bootstrap/OverrideBootstrapVersions.props deleted file mode 100644 index 4da9c2172a88..000000000000 --- a/src/SourceBuild/content/eng/bootstrap/OverrideBootstrapVersions.props +++ /dev/null @@ -1,9 +0,0 @@ - - - - 7.0.4-servicing.23107.6 - - $(NonshippingRuntimeVersionFor700) - - diff --git a/src/SourceBuild/content/eng/bootstrap/buildBootstrapPreviouslySB.csproj b/src/SourceBuild/content/eng/bootstrap/buildBootstrapPreviouslySB.csproj index 66e72a179810..93f3581ab1be 100644 --- a/src/SourceBuild/content/eng/bootstrap/buildBootstrapPreviouslySB.csproj +++ b/src/SourceBuild/content/eng/bootstrap/buildBootstrapPreviouslySB.csproj @@ -1,7 +1,6 @@ - net7.0 @@ -130,35 +129,9 @@ Targets="CopyDownloadedPackage" Properties="SourcePath=$(RestorePackagesPath);DestinationPath=$(UnpackedTarPath);PackageName=%(PackageDownload.Identity);PackageVersion=%(PackageDownload.Version)" /> - - - - - - - - - - - - - - - - - - diff --git a/src/SourceBuild/content/prep-source-build.sh b/src/SourceBuild/content/prep-source-build.sh index 1af4fe06cf94..59b2541865fb 100755 --- a/src/SourceBuild/content/prep-source-build.sh +++ b/src/SourceBuild/content/prep-source-build.sh @@ -196,7 +196,7 @@ function BootstrapArtifacts { fi # Run restore on project to initiate download of bootstrap packages - "$DOTNET_SDK_PATH/dotnet" restore "$workingDir/buildBootstrapPreviouslySB.csproj" /bl:artifacts/log/prep-bootstrap.binlog /fileLoggerParameters:LogFile=artifacts/log/prep-bootstrap.log /p:ArchiveDir="$packagesArchiveDir" /p:BootstrapOverrideVersionsProps="$REPO_ROOT/eng/bootstrap/OverrideBootstrapVersions.props" + "$DOTNET_SDK_PATH/dotnet" restore "$workingDir/buildBootstrapPreviouslySB.csproj" /bl:artifacts/log/prep-bootstrap.binlog /fileLoggerParameters:LogFile=artifacts/log/prep-bootstrap.log /p:ArchiveDir="$packagesArchiveDir" # Remove working directory rm -rf "$workingDir" From a84ed46da4750bf931007b15a59ebbb8d808979f Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 9 Jan 2025 20:55:13 +0100 Subject: [PATCH 047/193] [main] Update dependencies from dotnet/arcade (#45823) Co-authored-by: dotnet-maestro[bot] Co-authored-by: Viktor Hofer --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 8 ++++---- global.json | 4 ++-- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index bc2302f62c3c..fafbbecffff5 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -559,34 +559,34 @@ - + https://github.com/dotnet/arcade - 43494f7be1c54e6a065f02f92842e08f29a1ff6f + e7cb34898a1b610eb2a22591a2178da6f1fb7e3c - + https://github.com/dotnet/arcade - 43494f7be1c54e6a065f02f92842e08f29a1ff6f + e7cb34898a1b610eb2a22591a2178da6f1fb7e3c - + https://github.com/dotnet/arcade - 43494f7be1c54e6a065f02f92842e08f29a1ff6f + e7cb34898a1b610eb2a22591a2178da6f1fb7e3c - + https://github.com/dotnet/arcade - 43494f7be1c54e6a065f02f92842e08f29a1ff6f + e7cb34898a1b610eb2a22591a2178da6f1fb7e3c - + https://github.com/dotnet/arcade - 43494f7be1c54e6a065f02f92842e08f29a1ff6f + e7cb34898a1b610eb2a22591a2178da6f1fb7e3c - + https://github.com/dotnet/arcade - 43494f7be1c54e6a065f02f92842e08f29a1ff6f + e7cb34898a1b610eb2a22591a2178da6f1fb7e3c - + https://github.com/dotnet/arcade - 43494f7be1c54e6a065f02f92842e08f29a1ff6f + e7cb34898a1b610eb2a22591a2178da6f1fb7e3c diff --git a/eng/Versions.props b/eng/Versions.props index 2d75ecc73c05..15c7552f9332 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -262,10 +262,10 @@ - 10.0.0-beta.25057.5 - 10.0.0-beta.25057.5 - 10.0.0-beta.25057.5 - 10.0.0-beta.25057.5 + 10.0.0-beta.25058.4 + 10.0.0-beta.25058.4 + 10.0.0-beta.25058.4 + 10.0.0-beta.25058.4 diff --git a/global.json b/global.json index b959d531a65e..d3857f505e02 100644 --- a/global.json +++ b/global.json @@ -17,8 +17,8 @@ "cmake": "latest" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25057.5", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.25057.5", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25058.4", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.25058.4", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.DotNet.CMake.Sdk": "9.0.0-beta.24217.1" } From babe4bd80285b84943e4261cd585af36cb01c2a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20S=C3=A1nchez=20L=C3=B3pez?= <1175054+carlossanlop@users.noreply.github.com> Date: Thu, 9 Jan 2025 11:58:20 -0800 Subject: [PATCH 048/193] ApiDiff: Move TryGetRecordConstructor from GenAPI.INamedTypeSymbolExtensions up to ApiSymbolExtensions.SymbolExtensions (#45801) --- .../INamedTypeSymbolExtensions.cs | 31 +---------------- .../Microsoft.DotNet.GenAPI.csproj | 4 --- .../SyntaxGeneratorExtensions.cs | 1 + ...icrosoft.DotNet.ApiSymbolExtensions.csproj | 1 + .../SymbolExtensions.cs | 33 +++++++++++++++++++ 5 files changed, 36 insertions(+), 34 deletions(-) diff --git a/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/INamedTypeSymbolExtensions.cs b/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/INamedTypeSymbolExtensions.cs index fdbee7992df1..6d5d6ec8e054 100644 --- a/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/INamedTypeSymbolExtensions.cs +++ b/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/INamedTypeSymbolExtensions.cs @@ -1,7 +1,6 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System.Diagnostics.CodeAnalysis; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Syntax; @@ -224,7 +223,7 @@ static bool IncludeInternalSymbols(ISymbolFilter filter) => yield return constructor; } - // Synthesize a base class initializer. + // Synthesize a base class initializer. public static ConstructorInitializerSyntax GenerateBaseConstructorInitializer(this IMethodSymbol baseTypeConstructor) { return SyntaxFactory.ConstructorInitializer(SyntaxKind.BaseConstructorInitializer, baseTypeConstructor.CreateDefaultArgumentList()); @@ -248,33 +247,5 @@ public static ArgumentListSyntax CreateDefaultArgumentList(this IMethodSymbol me return argumentList; } - - // Locates constructor generated by the compiler for `record Foo(...)` syntax - // If the type is a record and the compiler generated constructor is found it will be returned, otherwise null. - // The compiler will not generate a constructor in the case where the user defined it themself without using an argument list - // in the record declaration, or if the record has no parameters. - public static bool TryGetRecordConstructor(this INamedTypeSymbol type, [NotNullWhen(true)] out IMethodSymbol? recordConstructor) - { - if (!type.IsRecord) - { - recordConstructor = null; - return false; - } - - // Locate the compiler generated Deconstruct method. - var deconstructMethod = (IMethodSymbol?)type.GetMembers("Deconstruct") - .FirstOrDefault(m => m is IMethodSymbol && m.IsCompilerGenerated()); - - // Locate the compiler generated constructor by matching parameters to Deconstruct - since we cannot locate it with an attribute. - recordConstructor = (IMethodSymbol?)type.GetMembers(".ctor") - .FirstOrDefault(m => m is IMethodSymbol method && - method.MethodKind == MethodKind.Constructor && - (deconstructMethod == null ? - method.Parameters.IsEmpty : - method.Parameters.Select(p => p.Type).SequenceEqual( - deconstructMethod.Parameters.Select(p => p.Type), SymbolEqualityComparer.Default))); - - return recordConstructor != null; - } } } diff --git a/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/Microsoft.DotNet.GenAPI.csproj b/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/Microsoft.DotNet.GenAPI.csproj index 1966bb66ab05..0c382c85d75f 100644 --- a/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/Microsoft.DotNet.GenAPI.csproj +++ b/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/Microsoft.DotNet.GenAPI.csproj @@ -4,10 +4,6 @@ $(NetToolMinimum);$(NetFrameworkToolCurrent) - - - - diff --git a/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/SyntaxGeneratorExtensions.cs b/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/SyntaxGeneratorExtensions.cs index 1201e4db2336..6618d47a20b1 100644 --- a/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/SyntaxGeneratorExtensions.cs +++ b/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/SyntaxGeneratorExtensions.cs @@ -6,6 +6,7 @@ using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Syntax; using Microsoft.CodeAnalysis.Editing; +using Microsoft.DotNet.ApiSymbolExtensions; using Microsoft.DotNet.ApiSymbolExtensions.Filtering; namespace Microsoft.DotNet.GenAPI diff --git a/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/Microsoft.DotNet.ApiSymbolExtensions.csproj b/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/Microsoft.DotNet.ApiSymbolExtensions.csproj index c531b3bd79a7..c9d256170375 100644 --- a/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/Microsoft.DotNet.ApiSymbolExtensions.csproj +++ b/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/Microsoft.DotNet.ApiSymbolExtensions.csproj @@ -19,6 +19,7 @@ + diff --git a/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/SymbolExtensions.cs b/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/SymbolExtensions.cs index 8e7e44b929bc..b37fde068940 100644 --- a/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/SymbolExtensions.cs +++ b/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/SymbolExtensions.cs @@ -1,6 +1,7 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.Diagnostics.CodeAnalysis; using Microsoft.CodeAnalysis; namespace Microsoft.DotNet.ApiSymbolExtensions @@ -126,5 +127,37 @@ public static bool IsEventAdderOrRemover(this IMethodSymbol method) => method.MethodKind == MethodKind.EventRemove || method.Name.StartsWith("add_", StringComparison.Ordinal) || method.Name.StartsWith("remove_", StringComparison.Ordinal); + + /// + /// Attempts to locate and return the constructor generated by the compiler for `record Foo(...)` syntax. + /// The compiler will not generate a constructor in the case where the user defined it themself without using an argument list + /// in the record declaration, or if the record has no parameters. + /// + /// The type to check for a compiler generated constructor. + /// When this method returns , then the compiler generated constructor for the record is stored in this out parameter, otherwise it becomes . + /// if the type is a record and the compiler generated constructor is found, otherwise . + public static bool TryGetRecordConstructor(this INamedTypeSymbol type, [NotNullWhen(true)] out IMethodSymbol? recordConstructor) + { + if (!type.IsRecord) + { + recordConstructor = null; + return false; + } + + // Locate the compiler generated Deconstruct method. + var deconstructMethod = (IMethodSymbol?)type.GetMembers("Deconstruct") + .FirstOrDefault(m => m is IMethodSymbol && m.IsCompilerGenerated()); + + // Locate the compiler generated constructor by matching parameters to Deconstruct - since we cannot locate it with an attribute. + recordConstructor = (IMethodSymbol?)type.GetMembers(".ctor") + .FirstOrDefault(m => m is IMethodSymbol method && + method.MethodKind == MethodKind.Constructor && + (deconstructMethod == null ? + method.Parameters.IsEmpty : + method.Parameters.Select(p => p.Type).SequenceEqual( + deconstructMethod.Parameters.Select(p => p.Type), SymbolEqualityComparer.Default))); + + return recordConstructor != null; + } } } From ae86a4a2fa38c00e006d17518294667e6f62239e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20S=C3=A1nchez=20L=C3=B3pez?= <1175054+carlossanlop@users.noreply.github.com> Date: Thu, 9 Jan 2025 12:21:54 -0800 Subject: [PATCH 049/193] ApiDiff: Allow deciding whether to include partial modifier in TypeDeclarationCSharpSyntaxRewriter output (#45803) --- .../CSharpFileBuilder.cs | 7 ++- .../Microsoft.DotNet.GenAPI/GenAPIApp.cs | 3 +- .../TypeDeclarationCSharpSyntaxRewriter.cs | 12 ++++- .../CSharpFileBuilderTests.cs | 45 ++++++++++--------- ...ypeDeclarationCSharpSyntaxRewriterTests.cs | 6 +-- 5 files changed, 43 insertions(+), 30 deletions(-) diff --git a/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/CSharpFileBuilder.cs b/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/CSharpFileBuilder.cs index c4a287843beb..10cf790e827a 100644 --- a/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/CSharpFileBuilder.cs +++ b/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/CSharpFileBuilder.cs @@ -34,6 +34,7 @@ public sealed class CSharpFileBuilder : IAssemblySymbolWriter, IDisposable private readonly AdhocWorkspace _adhocWorkspace; private readonly SyntaxGenerator _syntaxGenerator; private readonly IEnumerable _metadataReferences; + private readonly bool _addPartialModifier; public CSharpFileBuilder(ILog logger, ISymbolFilter symbolFilter, @@ -41,7 +42,8 @@ public CSharpFileBuilder(ILog logger, TextWriter textWriter, string? exceptionMessage, bool includeAssemblyAttributes, - IEnumerable metadataReferences) + IEnumerable metadataReferences, + bool addPartialModifier) { _logger = logger; _textWriter = textWriter; @@ -52,6 +54,7 @@ public CSharpFileBuilder(ILog logger, _adhocWorkspace = new AdhocWorkspace(); _syntaxGenerator = SyntaxGenerator.GetGenerator(_adhocWorkspace, LanguageNames.CSharp); _metadataReferences = metadataReferences; + _addPartialModifier = addPartialModifier; } /// @@ -79,7 +82,7 @@ public void WriteAssembly(IAssemblySymbol assemblySymbol) SyntaxNode compilationUnit = _syntaxGenerator.CompilationUnit(namespaceSyntaxNodes) .WithAdditionalAnnotations(Formatter.Annotation, Simplifier.Annotation) - .Rewrite(new TypeDeclarationCSharpSyntaxRewriter()) + .Rewrite(new TypeDeclarationCSharpSyntaxRewriter(addPartialModifier: true)) .Rewrite(new BodyBlockCSharpSyntaxRewriter(_exceptionMessage)); if (_includeAssemblyAttributes) diff --git a/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/GenAPIApp.cs b/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/GenAPIApp.cs index 51bf68c42017..5fbdd6c574c3 100644 --- a/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/GenAPIApp.cs +++ b/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/GenAPIApp.cs @@ -81,7 +81,8 @@ public static void Run(ILog logger, textWriter, exceptionMessage, includeAssemblyAttributes, - loader.MetadataReferences); + loader.MetadataReferences, + addPartialModifier: true); fileBuilder.WriteAssembly(assemblySymbol); } diff --git a/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/SyntaxRewriter/TypeDeclarationCSharpSyntaxRewriter.cs b/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/SyntaxRewriter/TypeDeclarationCSharpSyntaxRewriter.cs index 80a061eb461f..99b92239dfa8 100644 --- a/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/SyntaxRewriter/TypeDeclarationCSharpSyntaxRewriter.cs +++ b/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/SyntaxRewriter/TypeDeclarationCSharpSyntaxRewriter.cs @@ -17,6 +17,14 @@ namespace Microsoft.DotNet.GenAPI.SyntaxRewriter /// public class TypeDeclarationCSharpSyntaxRewriter : CSharpSyntaxRewriter { + private readonly bool _addPartialModifier; + + /// + /// Initializes a new instance of the class, and allows deciding whether to insert the partial modifier for types or not. + /// + /// Determines whether to insert the partial modifier for types or not. + public TypeDeclarationCSharpSyntaxRewriter(bool addPartialModifier) => _addPartialModifier = addPartialModifier; + /// public override SyntaxNode? VisitInterfaceDeclaration(InterfaceDeclarationSyntax node) { @@ -83,7 +91,7 @@ public class TypeDeclarationCSharpSyntaxRewriter : CSharpSyntaxRewriter } } - private static T? VisitCommonTypeDeclaration(T? node) where T : TypeDeclarationSyntax + private T? VisitCommonTypeDeclaration(T? node) where T : TypeDeclarationSyntax { if (node == null) { @@ -91,7 +99,7 @@ public class TypeDeclarationCSharpSyntaxRewriter : CSharpSyntaxRewriter } node = RemoveBaseType(node, "global::System.Object"); - return AddPartialModifier(node); + return _addPartialModifier ? AddPartialModifier(node) : node; } private static T? AddPartialModifier(T? node) where T : TypeDeclarationSyntax => diff --git a/test/Microsoft.DotNet.GenAPI.Tests/CSharpFileBuilderTests.cs b/test/Microsoft.DotNet.GenAPI.Tests/CSharpFileBuilderTests.cs index 68009dbd4f0e..55ad81c0c048 100644 --- a/test/Microsoft.DotNet.GenAPI.Tests/CSharpFileBuilderTests.cs +++ b/test/Microsoft.DotNet.GenAPI.Tests/CSharpFileBuilderTests.cs @@ -61,7 +61,8 @@ private void RunTest(string original, stringWriter, null, false, - MetadataReferences); + MetadataReferences, + addPartialModifier: true); using Stream assemblyStream = SymbolFactory.EmitAssemblyStreamFromSyntax(original, enableNullable: true, allowUnsafe: allowUnsafe, assemblyName: assemblyName); AssemblySymbolLoader assemblySymbolLoader = new(resolveAssemblyReferences: true, includeInternalSymbols: includeInternalSymbols); @@ -231,7 +232,7 @@ public void TestRecordDeclaration() { RunTest(original: """ namespace Foo - { + { public record RecordClass; public record RecordClass1(int i); public record RecordClass2(string s, int i); @@ -240,7 +241,7 @@ public record DerivedRecord2(string x, int i, double d) : RecordClass2(default(s public record DerivedRecord3(string x, int i, double d) : RecordClass2(default(string)!, i); public record DerivedRecord4(double d) : RecordClass2(default(string)!, default); public record DerivedRecord5() : RecordClass2(default(string)!, default); - + public record RecordClassWithMethods(int i) { public void DoSomething() { } @@ -345,11 +346,11 @@ public void TestRecordStructDeclaration() RunTest(original: """ namespace Foo { - - public record struct RecordStruct; + + public record struct RecordStruct; public record struct RecordStruct1(int i); public record struct RecordStruct2(string s, int i); - + public record struct RecordStructWithMethods(int i) { public void DoSomething() { } @@ -367,10 +368,10 @@ public record struct RecordStructWithConstructors(int i) public RecordStructWithConstructors() : this(1) { } public RecordStructWithConstructors(string s) : this(int.Parse(s)) { } } - + } """, - expected: """ + expected: """ namespace Foo { public partial struct RecordStruct : System.IEquatable @@ -1644,12 +1645,12 @@ public class B { public B(int i) {} } - + public class C : B { internal C() : base(0) {} } - + public class D : B { internal D(int i) : base(i) {} @@ -1672,7 +1673,7 @@ public partial class B { public B(int i) {} } - + public partial class C : B { internal C() : base(default) {} @@ -1702,12 +1703,12 @@ public class B { public B(int i) {} } - + public class C : B { internal C() : base(0) {} } - + public class D : B { internal D(int i) : base(i) {} @@ -1781,8 +1782,8 @@ namespace A public partial class B { protected B() {} - } - + } + public partial class C : B { internal C() {} @@ -1935,7 +1936,7 @@ public class B : A public class D { } public class Id { } - + public class V { } } """, @@ -2828,7 +2829,7 @@ public class Foo : System.Collections.ICollection, System.Collections.Generic } } - + """, // https://github.com/dotnet/sdk/issues/32195 tracks interface expansion expected: """ @@ -2909,7 +2910,7 @@ namespace N { public ref struct C where T : unmanaged { - public required (string? k, dynamic v, nint n) X { get; init; } + public required (string? k, dynamic v, nint n) X { get; init; } } public static class E @@ -2918,7 +2919,7 @@ public static void M(this object c, scoped System.ReadOnlySpan values) { } } } """, - expected: """ + expected: """ namespace N { public ref partial struct C @@ -2982,7 +2983,7 @@ public void TestExplicitInterfaceNonGenericCollections() namespace a { #pragma warning disable CS8597 - + public partial class MyStringCollection : ICollection, IEnumerable, IList { public int Count { get { throw null; } } @@ -3006,7 +3007,7 @@ public void RemoveAt(int index) { } void ICollection.CopyTo(Array array, int index) { } IEnumerator IEnumerable.GetEnumerator() { throw null; } int IList.Add(object? value) { throw null; } - bool IList.Contains(object? value) { throw null; } + bool IList.Contains(object? value) { throw null; } int IList.IndexOf(object? value) { throw null; } void IList.Insert(int index, object? value) { } void IList.Remove(object? value) { } @@ -3015,7 +3016,7 @@ void IList.Remove(object? value) { } #pragma warning restore CS8597 } """, - expected: """ + expected: """ namespace a { public partial class MyStringCollection : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList diff --git a/test/Microsoft.DotNet.GenAPI.Tests/SyntaxRewriter/TypeDeclarationCSharpSyntaxRewriterTests.cs b/test/Microsoft.DotNet.GenAPI.Tests/SyntaxRewriter/TypeDeclarationCSharpSyntaxRewriterTests.cs index c2f498c1651c..f33ea9ec90e4 100644 --- a/test/Microsoft.DotNet.GenAPI.Tests/SyntaxRewriter/TypeDeclarationCSharpSyntaxRewriterTests.cs +++ b/test/Microsoft.DotNet.GenAPI.Tests/SyntaxRewriter/TypeDeclarationCSharpSyntaxRewriterTests.cs @@ -10,7 +10,7 @@ public class TypeDeclarationCSharpSyntaxRewriterTests : CSharpSyntaxRewriterTest [Fact] public void TestRemoveSystemObjectAsBaseClass() { - CompareSyntaxTree(new TypeDeclarationCSharpSyntaxRewriter(), + CompareSyntaxTree(new TypeDeclarationCSharpSyntaxRewriter(addPartialModifier: true), original: """ namespace A { @@ -32,7 +32,7 @@ partial class B [Fact] public void TestAddPartialKeyword() { - CompareSyntaxTree(new TypeDeclarationCSharpSyntaxRewriter(), + CompareSyntaxTree(new TypeDeclarationCSharpSyntaxRewriter(addPartialModifier: true), original: """ namespace A { @@ -54,7 +54,7 @@ partial interface D { } [Fact] public void TestPartialTypeDeclaration() { - CompareSyntaxTree(new TypeDeclarationCSharpSyntaxRewriter(), + CompareSyntaxTree(new TypeDeclarationCSharpSyntaxRewriter(addPartialModifier: true), original: """ namespace A { From da12057454c95c3d5d116cf972dd37391d8ddf61 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 9 Jan 2025 20:32:37 +0000 Subject: [PATCH 050/193] [main] Update dependencies from dotnet/runtime (#45815) --- eng/Version.Details.xml | 152 ++++++++++++++++++++-------------------- eng/Versions.props | 72 +++++++++---------- 2 files changed, 112 insertions(+), 112 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index fafbbecffff5..11d7db8a3bbc 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -15,46 +15,46 @@ 88673185ead8999b65e57ff791aa7e26eb2b773a - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 @@ -63,14 +63,14 @@ https://github.com/dotnet/core-setup 7d57652f33493fa022125b7f63aad0d70c52d810 - + https://github.com/dotnet/emsdk - 953fd74cd26884432eee21244ff4b031ebbdde32 + 6ee0290df7381d7b9c4887b440e1a2815dc72407 - + https://github.com/dotnet/emsdk - 953fd74cd26884432eee21244ff4b031ebbdde32 + 6ee0290df7381d7b9c4887b440e1a2815dc72407 @@ -230,29 +230,29 @@ 69c2d3e61a2baf76e1491727e81c4d9b344e4d91 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 https://github.com/dotnet/windowsdesktop @@ -473,89 +473,89 @@ - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 https://github.com/dotnet/aspnetcore 77b91e15c1403acd793322b7163469ad7d8babf9 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 @@ -589,9 +589,9 @@ e7cb34898a1b610eb2a22591a2178da6f1fb7e3c - + https://github.com/dotnet/runtime - 0741a32a738f303693947afa63e52d28fb79a576 + 45155059d0b070e8ac0f6ad8f4909448e7eadd42 https://github.com/dotnet/arcade-services diff --git a/eng/Versions.props b/eng/Versions.props index 15c7552f9332..a2a3d99dcc67 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -87,43 +87,43 @@ - 10.0.0-alpha.1.25058.4 - 10.0.0-alpha.1.25058.4 - 10.0.0-alpha.1.25058.4 - 10.0.0-alpha.1.25058.4 - 10.0.0-alpha.1.25058.4 - 10.0.0-alpha.1.25058.4 - 10.0.0-alpha.1.25058.4 - 10.0.0-alpha.1.25058.4 - 10.0.0-alpha.1.25058.4 - 10.0.0-alpha.1.25058.4 - 10.0.0-alpha.1.25058.4 + 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25058.25 8.0.0-rc.1.23414.4 - 10.0.0-alpha.1.25058.4 - 10.0.0-alpha.1.25058.4 - 10.0.0-alpha.1.25058.4 - 10.0.0-alpha.1.25058.4 - 10.0.0-alpha.1.25058.4 - 10.0.0-alpha.1.25058.4 + 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25058.25 2.1.0 - 10.0.0-alpha.1.25058.4 - 10.0.0-alpha.1.25058.4 - 10.0.0-alpha.1.25058.4 - 10.0.0-alpha.1.25058.4 - 10.0.0-alpha.1.25058.4 - 10.0.0-alpha.1.25058.4 - 10.0.0-alpha.1.25058.4 - 10.0.0-alpha.1.25058.4 - 10.0.0-alpha.1.25058.4 - 10.0.0-alpha.1.25058.4 - 10.0.0-alpha.1.25058.4 - 10.0.0-alpha.1.25058.4 - 10.0.0-alpha.1.25058.4 - 10.0.0-alpha.1.25058.4 - 10.0.0-alpha.1.25058.4 - 10.0.0-alpha.1.25058.4 - 10.0.0-alpha.1.25058.4 - 10.0.0-alpha.1.25058.4 + 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25058.25 8.0.0 @@ -309,7 +309,7 @@ 14.2.9714-net9-p6 17.2.9714-net9-p6 - 10.0.0-alpha.1.24628.1 + 10.0.0-alpha.1.25058.3 $(MicrosoftNETWorkloadEmscriptenCurrentManifest100100TransportPackageVersion) 10.0.100$([System.Text.RegularExpressions.Regex]::Match($(EmscriptenWorkloadManifestVersion), `-[A-z]*[\.]*\d*`)) From 0d4182fe1397ba91ed8f28dbe6718f26a6164384 Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Thu, 9 Jan 2025 22:03:00 +0100 Subject: [PATCH 051/193] =?UTF-8?q?Remove=20=5FOverrideArcadeInitializeBui?= =?UTF-8?q?ldToolFramework=20env=20var=20in=20VMR=20rep=E2=80=A6=20(#45835?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/SourceBuild/content/repo-projects/Directory.Build.props | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/SourceBuild/content/repo-projects/Directory.Build.props b/src/SourceBuild/content/repo-projects/Directory.Build.props index ba0afd43ac85..6d200e0e2799 100644 --- a/src/SourceBuild/content/repo-projects/Directory.Build.props +++ b/src/SourceBuild/content/repo-projects/Directory.Build.props @@ -137,8 +137,6 @@ - - From 6dd42272bc6d328d560dd4818491b20b6f52db7f Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 9 Jan 2025 22:23:15 +0000 Subject: [PATCH 052/193] [main] Update dependencies from dotnet/razor (#45804) Co-authored-by: dotnet-maestro[bot] Co-authored-by: Viktor Hofer --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 11d7db8a3bbc..9288df664f6e 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -325,20 +325,20 @@ 77b91e15c1403acd793322b7163469ad7d8babf9 - + https://github.com/dotnet/razor 46efcec83821d7f0322c01bc9549de83e855dcac - + https://github.com/dotnet/razor 46efcec83821d7f0322c01bc9549de83e855dcac - + https://github.com/dotnet/razor 46efcec83821d7f0322c01bc9549de83e855dcac - + https://github.com/dotnet/razor 46efcec83821d7f0322c01bc9549de83e855dcac diff --git a/eng/Versions.props b/eng/Versions.props index a2a3d99dcc67..88c869f03221 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -236,9 +236,9 @@ - 9.0.0-preview.25056.4 - 9.0.0-preview.25056.4 - 9.0.0-preview.25056.4 + 9.0.0-preview.25058.6 + 9.0.0-preview.25058.6 + 9.0.0-preview.25058.6 From 03ea161b32e092466241f3bc87eb58f9416933d8 Mon Sep 17 00:00:00 2001 From: Matt Thalman Date: Thu, 9 Jan 2025 16:47:11 -0600 Subject: [PATCH 053/193] Revert VerticalManifest workaround (#45837) --- src/SourceBuild/content/repo-projects/Directory.Build.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SourceBuild/content/repo-projects/Directory.Build.targets b/src/SourceBuild/content/repo-projects/Directory.Build.targets index bb29224dbc4e..c554a1082169 100644 --- a/src/SourceBuild/content/repo-projects/Directory.Build.targets +++ b/src/SourceBuild/content/repo-projects/Directory.Build.targets @@ -300,7 +300,7 @@ - <_PrebuiltSourceBuiltAssetManifests Include="$(PrebuiltSourceBuiltPackagesPath)*.xml" /> + <_PrebuiltSourceBuiltAssetManifests Include="$(PrebuiltSourceBuiltPackagesPath)VerticalManifest.xml" /> From 74880d3b82e582cf8aef4bd8ec4d79e1e6be00b4 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 9 Jan 2025 23:04:25 +0000 Subject: [PATCH 054/193] Update dependencies from https://github.com/microsoft/vstest build 20250109.2 Microsoft.SourceBuild.Intermediate.vstest , Microsoft.NET.Test.Sdk , Microsoft.TestPlatform.Build , Microsoft.TestPlatform.CLI From Version 17.13.0-preview-25058-03 -> To Version 17.13.0-preview-25059-02 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 9288df664f6e..afb1ed8cb894 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -212,22 +212,22 @@ https://github.com/nuget/nuget.client c4b26195ee5a77e70b2ea5fd50db87d6a9194c24 - + https://github.com/microsoft/vstest - 69c2d3e61a2baf76e1491727e81c4d9b344e4d91 + 8d080dfdb76633bcac69a90d031a31694908ecaa - + https://github.com/microsoft/vstest - 69c2d3e61a2baf76e1491727e81c4d9b344e4d91 + 8d080dfdb76633bcac69a90d031a31694908ecaa - + https://github.com/microsoft/vstest - 69c2d3e61a2baf76e1491727e81c4d9b344e4d91 + 8d080dfdb76633bcac69a90d031a31694908ecaa - + https://github.com/microsoft/vstest - 69c2d3e61a2baf76e1491727e81c4d9b344e4d91 + 8d080dfdb76633bcac69a90d031a31694908ecaa diff --git a/eng/Versions.props b/eng/Versions.props index 88c869f03221..5305ba7c787f 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -157,9 +157,9 @@ - 17.13.0-preview-25058-03 - 17.13.0-preview-25058-03 - 17.13.0-preview-25058-03 + 17.13.0-preview-25059-02 + 17.13.0-preview-25059-02 + 17.13.0-preview-25059-02 From eb042392b81b30a60921099d3e607fb5b6dc4573 Mon Sep 17 00:00:00 2001 From: Matt Thalman Date: Thu, 9 Jan 2025 17:35:09 -0600 Subject: [PATCH 055/193] Remove TFM workaround for scenario tests (#45838) --- src/SourceBuild/content/repo-projects/scenario-tests.proj | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/SourceBuild/content/repo-projects/scenario-tests.proj b/src/SourceBuild/content/repo-projects/scenario-tests.proj index 2bf89ec6dcfd..ea2150209de3 100644 --- a/src/SourceBuild/content/repo-projects/scenario-tests.proj +++ b/src/SourceBuild/content/repo-projects/scenario-tests.proj @@ -8,10 +8,6 @@ $([MSBuild]::NormalizeDirectory('$(ArtifactsTestResultsDir)', 'scenario-tests')) $([MSBuild]::NormalizePath('$(SrcDir)', 'sdk', 'NuGet.config')) $(ScenarioTestsArtifactsDir)NuGet.config - - - $(BuildArgs) /p:NetCurrent=$(NetCurrent) - $(TestCommand) /p:NetCurrent=$(NetCurrent) From e700c6e181b53dc9a365aa96ca32dacf699d835c Mon Sep 17 00:00:00 2001 From: ".NET Source-Build Bot" <102560831+dotnet-sb-bot@users.noreply.github.com> Date: Fri, 10 Jan 2025 00:46:03 +0100 Subject: [PATCH 056/193] Re-Bootstrap Source Build to .NET 10.0.100-alpha.1.25059.1 (#45840) --- src/SourceBuild/content/eng/Version.Details.xml | 4 ++-- src/SourceBuild/content/eng/Versions.props | 4 ++-- src/SourceBuild/content/global.json | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/SourceBuild/content/eng/Version.Details.xml b/src/SourceBuild/content/eng/Version.Details.xml index b9d93fc94779..4935f16f4ac0 100644 --- a/src/SourceBuild/content/eng/Version.Details.xml +++ b/src/SourceBuild/content/eng/Version.Details.xml @@ -2,9 +2,9 @@ - + https://github.com/dotnet/arcade - e58820063a8754d418518bce69ca2df0e3b4ac25 + 43494f7be1c54e6a065f02f92842e08f29a1ff6f diff --git a/src/SourceBuild/content/eng/Versions.props b/src/SourceBuild/content/eng/Versions.props index 49955ebee40b..4e5c1530e172 100644 --- a/src/SourceBuild/content/eng/Versions.props +++ b/src/SourceBuild/content/eng/Versions.props @@ -23,8 +23,8 @@ of a .NET major or minor release, prebuilts may be needed. When the release is mature, prebuilts are not necessary, and this property is removed from the file. --> - 10.0.100-alpha.1.25057.1 - 10.0.100-alpha.1.25057.1-2 + 10.0.100-alpha.1.25059.1 + 10.0.100-alpha.1.25059.1 0.1.0-10.0.100-7 2.0.0-beta4.24126.1 diff --git a/src/SourceBuild/content/global.json b/src/SourceBuild/content/global.json index ae06a19bb0da..5e87861fcc8e 100644 --- a/src/SourceBuild/content/global.json +++ b/src/SourceBuild/content/global.json @@ -1,10 +1,10 @@ { "tools": { - "dotnet": "10.0.100-alpha.1.25056.8" + "dotnet": "10.0.100-alpha.1.25059.14" }, "msbuild-sdks": { "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25056.1" + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25057.5" } } From 7b90c7fc92d91e0600d298f654e4b82081f69cdd Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 9 Jan 2025 17:14:31 -0800 Subject: [PATCH 057/193] [main] Update dependencies from dotnet/windowsdesktop (#45819) Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 12 ++++++------ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 9288df664f6e..5dfced1aa2af 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -254,26 +254,26 @@ https://github.com/dotnet/runtime 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/windowsdesktop - 482e721f784460a0c6464bbf9b7306edb2ee3791 + 5ab6ad62c1cfb74bc02313d4e402b224440be94c - + https://github.com/dotnet/windowsdesktop - 482e721f784460a0c6464bbf9b7306edb2ee3791 + 5ab6ad62c1cfb74bc02313d4e402b224440be94c - + https://github.com/dotnet/windowsdesktop - 482e721f784460a0c6464bbf9b7306edb2ee3791 + 5ab6ad62c1cfb74bc02313d4e402b224440be94c - + https://github.com/dotnet/windowsdesktop - 482e721f784460a0c6464bbf9b7306edb2ee3791 + 5ab6ad62c1cfb74bc02313d4e402b224440be94c - + https://github.com/dotnet/wpf - 538cc805308fb006f5f793a0f299609d3007b612 + 13ba88319d24dc9bdef6e4d18361d2153c8a4fe8 https://github.com/dotnet/aspnetcore @@ -360,13 +360,13 @@ 77b91e15c1403acd793322b7163469ad7d8babf9 - + https://github.com/dotnet/winforms - a3da2c91433c32b8ed267fe660af6581cdbe1da0 + ce6b6c2e675edbb52900ca75f66603d2468c5034 - + https://github.com/dotnet/wpf - 538cc805308fb006f5f793a0f299609d3007b612 + 13ba88319d24dc9bdef6e4d18361d2153c8a4fe8 https://github.com/dotnet/xdt diff --git a/eng/Versions.props b/eng/Versions.props index 88c869f03221..609ba399fe2f 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -83,7 +83,7 @@ - 10.0.0-alpha.1.25057.7 + 10.0.0-alpha.1.25058.9 @@ -136,9 +136,9 @@ - 10.0.0-alpha.1.25058.1 - 10.0.0-alpha.1.25058.1 - 10.0.0-alpha.1.25058.1 + 10.0.0-alpha.1.25059.1 + 10.0.0-alpha.1.25059.1 + 10.0.0-alpha.1.25059.1 @@ -242,8 +242,8 @@ - 10.0.0-alpha.1.25058.2 - 10.0.0-alpha.1.25058.2 + 10.0.0-alpha.1.25058.3 + 10.0.0-alpha.1.25058.3 From 422fdd279279a91f001e74d5c700d712b137030b Mon Sep 17 00:00:00 2001 From: Matt Thalman Date: Thu, 9 Jan 2025 19:24:57 -0600 Subject: [PATCH 058/193] Enable SB stage 2 builds (#45791) --- eng/pipelines/templates/stages/vmr-build.yml | 207 +++++++++---------- 1 file changed, 101 insertions(+), 106 deletions(-) diff --git a/eng/pipelines/templates/stages/vmr-build.yml b/eng/pipelines/templates/stages/vmr-build.yml index fd8daa2f91e1..cfc3f558c35f 100644 --- a/eng/pipelines/templates/stages/vmr-build.yml +++ b/eng/pipelines/templates/stages/vmr-build.yml @@ -106,29 +106,28 @@ stages: ### Additional jobs for lite/full builds ### - ${{ if in(parameters.scope, 'lite', 'full') }}: - # Disabled until net9.0 -> net10.0 transition is complete - see https://github.com/dotnet/source-build/issues/4605 - # - template: ../jobs/vmr-build.yml - # parameters: - # # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline - # buildName: ${{ format('{0}_Online_CurrentSourceBuiltSdk', variables.centOSStreamName) }} - # isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - # vmrBranch: ${{ variables.VmrBranch }} - # targetArchitecture: x64 - # pool: ${{ parameters.pool_Linux }} - # container: - # name: ${{ variables.centOSStreamContainerName }} - # image: ${{ variables.centOSStreamContainerImage }} - # buildFromArchive: false # 🚫 - # buildSourceOnly: true # ✅ - # enablePoison: false # 🚫 - # excludeOmniSharpTests: true # ✅ - # runOnline: true # ✅ - # useMonoRuntime: false # 🚫 - # withPreviousSDK: false # 🚫 - # reuseBuildArtifactsFrom: - # - ${{ format('{0}_Online_MsftSdk_x64', variables.centOSStreamName) }} + - template: ../jobs/vmr-build.yml + parameters: + # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline + buildName: ${{ format('{0}_Online_CurrentSourceBuiltSdk', variables.centOSStreamName) }} + isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} + vmrBranch: ${{ variables.VmrBranch }} + targetArchitecture: x64 + pool: ${{ parameters.pool_Linux }} + container: + name: ${{ variables.centOSStreamContainerName }} + image: ${{ variables.centOSStreamContainerImage }} + buildFromArchive: false # 🚫 + buildSourceOnly: true # ✅ + enablePoison: false # 🚫 + excludeOmniSharpTests: true # ✅ + runOnline: true # ✅ + useMonoRuntime: false # 🚫 + withPreviousSDK: false # 🚫 + reuseBuildArtifactsFrom: + - ${{ format('{0}_Online_MsftSdk_x64', variables.centOSStreamName) }} - # Disabled until net9.0 -> net10.0 transition is complete - see https://github.com/dotnet/source-build/issues/4605 + # Disabled due to https://github.com/dotnet/source-build/issues/4819 # - template: ../jobs/vmr-build.yml # parameters: # # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline @@ -232,47 +231,45 @@ stages: useMonoRuntime: false # 🚫 withPreviousSDK: false # 🚫 - # Disabled until net9.0 -> net10.0 transition is complete - see https://github.com/dotnet/source-build/issues/4605 - # - template: ../jobs/vmr-build.yml - # parameters: - # # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline - # buildName: ${{ format('{0}_Online_PreviousSourceBuiltSdk', variables.centOSStreamName) }} - # isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - # vmrBranch: ${{ variables.VmrBranch }} - # targetArchitecture: x64 - # artifactsRid: ${{ variables.centOSStreamX64Rid }} - # pool: ${{ parameters.pool_Linux }} - # container: - # name: ${{ variables.centOSStreamContainerName }} - # image: ${{ variables.centOSStreamContainerImage }} - # buildFromArchive: false # 🚫 - # buildSourceOnly: true # ✅ - # enablePoison: false # 🚫 - # excludeOmniSharpTests: false # 🚫 - # runOnline: true # ✅ - # useMonoRuntime: false # 🚫 - # withPreviousSDK: true # ✅ - - # Disabled until net9.0 -> net10.0 transition is complete - see https://github.com/dotnet/source-build/issues/4605 - # - template: ../jobs/vmr-build.yml - # parameters: - # # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline - # buildName: ${{ format('{0}_Offline_PreviousSourceBuiltSdk', variables.centOSStreamName) }} - # isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - # vmrBranch: ${{ variables.VmrBranch }} - # targetArchitecture: x64 - # artifactsRid: ${{ variables.centOSStreamX64Rid }} - # pool: ${{ parameters.pool_Linux }} - # container: - # name: ${{ variables.centOSStreamContainerName }} - # image: ${{ variables.centOSStreamContainerImage }} - # buildFromArchive: false # 🚫 - # buildSourceOnly: true # ✅ - # enablePoison: false # 🚫 - # excludeOmniSharpTests: true # ✅ - # runOnline: false # 🚫 - # useMonoRuntime: false # 🚫 - # withPreviousSDK: true # ✅ + - template: ../jobs/vmr-build.yml + parameters: + # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline + buildName: ${{ format('{0}_Online_PreviousSourceBuiltSdk', variables.centOSStreamName) }} + isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} + vmrBranch: ${{ variables.VmrBranch }} + targetArchitecture: x64 + artifactsRid: ${{ variables.centOSStreamX64Rid }} + pool: ${{ parameters.pool_Linux }} + container: + name: ${{ variables.centOSStreamContainerName }} + image: ${{ variables.centOSStreamContainerImage }} + buildFromArchive: false # 🚫 + buildSourceOnly: true # ✅ + enablePoison: false # 🚫 + excludeOmniSharpTests: false # 🚫 + runOnline: true # ✅ + useMonoRuntime: false # 🚫 + withPreviousSDK: true # ✅ + + - template: ../jobs/vmr-build.yml + parameters: + # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline + buildName: ${{ format('{0}_Offline_PreviousSourceBuiltSdk', variables.centOSStreamName) }} + isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} + vmrBranch: ${{ variables.VmrBranch }} + targetArchitecture: x64 + artifactsRid: ${{ variables.centOSStreamX64Rid }} + pool: ${{ parameters.pool_Linux }} + container: + name: ${{ variables.centOSStreamContainerName }} + image: ${{ variables.centOSStreamContainerImage }} + buildFromArchive: false # 🚫 + buildSourceOnly: true # ✅ + enablePoison: false # 🚫 + excludeOmniSharpTests: true # ✅ + runOnline: false # 🚫 + useMonoRuntime: false # 🚫 + withPreviousSDK: true # ✅ - template: ../jobs/vmr-build.yml parameters: @@ -331,49 +328,47 @@ stages: useMonoRuntime: false # 🚫 withPreviousSDK: false # 🚫 - # Disabled until net9.0 -> net10.0 transition is complete - see https://github.com/dotnet/source-build/issues/4605 - # - template: ../jobs/vmr-build.yml - # parameters: - # # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline - # buildName: ${{ format('{0}_Offline_CurrentSourceBuiltSdk', variables.fedoraName) }} - # isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - # vmrBranch: ${{ variables.VmrBranch }} - # targetArchitecture: x64 - # pool: ${{ parameters.pool_Linux }} - # container: - # name: ${{ variables.fedoraContainerName }} - # image: ${{ variables.fedoraContainerImage }} - # buildFromArchive: false # 🚫 - # buildSourceOnly: true # ✅ - # enablePoison: false # 🚫 - # excludeOmniSharpTests: false # 🚫 - # runOnline: false # 🚫 - # useMonoRuntime: false # 🚫 - # withPreviousSDK: false # 🚫 - # reuseBuildArtifactsFrom: - # - ${{ format('{0}_Offline_MsftSdk_x64', variables.fedoraName) }} - - # Disabled until net9.0 -> net10.0 transition is complete - see https://github.com/dotnet/source-build/issues/4605 - # - template: ../jobs/vmr-build.yml - # parameters: - # # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline - # buildName: ${{ format('{0}_Mono_Offline_CurrentSourceBuiltSdk', variables.centOSStreamName) }} - # isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - # vmrBranch: ${{ variables.VmrBranch }} - # targetArchitecture: x64 - # pool: ${{ parameters.pool_Linux }} - # container: - # name: ${{ variables.centOSStreamContainerName }} - # image: ${{ variables.centOSStreamContainerImage }} - # buildFromArchive: true # ✅ - # buildSourceOnly: true # ✅ - # enablePoison: false # 🚫 - # excludeOmniSharpTests: true # ✅ - # runOnline: false # 🚫 - # useMonoRuntime: true # ✅ - # withPreviousSDK: false # 🚫 - # reuseBuildArtifactsFrom: - # - ${{ format('{0}_Mono_Offline_MsftSdk_x64', variables.centOSStreamName) }} + - template: ../jobs/vmr-build.yml + parameters: + # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline + buildName: ${{ format('{0}_Offline_CurrentSourceBuiltSdk', variables.fedoraName) }} + isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} + vmrBranch: ${{ variables.VmrBranch }} + targetArchitecture: x64 + pool: ${{ parameters.pool_Linux }} + container: + name: ${{ variables.fedoraContainerName }} + image: ${{ variables.fedoraContainerImage }} + buildFromArchive: false # 🚫 + buildSourceOnly: true # ✅ + enablePoison: false # 🚫 + excludeOmniSharpTests: false # 🚫 + runOnline: false # 🚫 + useMonoRuntime: false # 🚫 + withPreviousSDK: false # 🚫 + reuseBuildArtifactsFrom: + - ${{ format('{0}_Offline_MsftSdk_x64', variables.fedoraName) }} + + - template: ../jobs/vmr-build.yml + parameters: + # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline + buildName: ${{ format('{0}_Mono_Offline_CurrentSourceBuiltSdk', variables.centOSStreamName) }} + isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} + vmrBranch: ${{ variables.VmrBranch }} + targetArchitecture: x64 + pool: ${{ parameters.pool_Linux }} + container: + name: ${{ variables.centOSStreamContainerName }} + image: ${{ variables.centOSStreamContainerImage }} + buildFromArchive: true # ✅ + buildSourceOnly: true # ✅ + enablePoison: false # 🚫 + excludeOmniSharpTests: true # ✅ + runOnline: false # 🚫 + useMonoRuntime: true # ✅ + withPreviousSDK: false # 🚫 + reuseBuildArtifactsFrom: + - ${{ format('{0}_Mono_Offline_MsftSdk_x64', variables.centOSStreamName) }} #### VERTICAL BUILD (Validation) #### - ${{ if and(not(parameters.isSourceOnlyBuild), or(eq(variables['Build.Reason'], 'PullRequest'), ne(variables['System.TeamProject'], 'internal'))) }}: From af492c4ff29a536702c60f1d06d91d3722f7d5d0 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 10 Jan 2025 03:52:10 +0000 Subject: [PATCH 059/193] [main] Update dependencies from dotnet/msbuild (#45812) Co-authored-by: dotnet-maestro[bot] Co-authored-by: Larry Ewing --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 5dfced1aa2af..fcccaa8ef1be 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -73,18 +73,18 @@ 6ee0290df7381d7b9c4887b440e1a2815dc72407 - + https://github.com/dotnet/msbuild - b497794a81585d40ba5401acde02200f7b7d863b + 6ea6901b3aec1feaa989df8a5e0eb3e728bbc117 - + https://github.com/dotnet/msbuild - b497794a81585d40ba5401acde02200f7b7d863b + 6ea6901b3aec1feaa989df8a5e0eb3e728bbc117 - + https://github.com/dotnet/msbuild - b497794a81585d40ba5401acde02200f7b7d863b + 6ea6901b3aec1feaa989df8a5e0eb3e728bbc117 diff --git a/eng/Versions.props b/eng/Versions.props index 609ba399fe2f..4cfdaa486f27 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -185,8 +185,8 @@ At usage sites, either we use MicrosoftBuildMinimumVersion, or MicrosoftBuildVersion in source-only modes. Additionally, set the MinimumVSVersion for the installer UI that's required for targeting NetCurrent --> - 17.14.0-preview-25057-10 - 17.14.0-preview-25057-10 + 17.14.0-preview-25058-09 + 17.14.0-preview-25058-09 17.11.4 17.12 From 71aa100f8adc9653415430ad3c06297af52bdb48 Mon Sep 17 00:00:00 2001 From: Mariam Abdullah <122357303+mariam-abdulla@users.noreply.github.com> Date: Fri, 10 Jan 2025 09:57:18 +0100 Subject: [PATCH 060/193] Use MSbuild APIs to Retrieve Projects Properties (#45724) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Amaury Levé --- src/Cli/dotnet/SlnFileExtensions.cs | 3 +- .../commands/dotnet-test/CliConstants.cs | 18 ++ .../dotnet-test/LocalizableStrings.resx | 15 + .../dotnet-test/MSBuildConnectionHandler.cs | 172 ----------- .../commands/dotnet-test/MSBuildHandler.cs | 269 ++++++++++++++++++ src/Cli/dotnet/commands/dotnet-test/Models.cs | 2 +- .../dotnet-test/SolutionAndProjectUtility.cs | 128 +++++++++ .../commands/dotnet-test/TestApplication.cs | 8 +- .../commands/dotnet-test/TestCommandParser.cs | 2 +- .../dotnet-test/TestModulesFilterHandler.cs | 2 +- .../TestingPlatformCommand.Help.cs | 4 +- .../dotnet-test/TestingPlatformCommand.cs | 58 ++-- .../dotnet-test/xlf/LocalizableStrings.cs.xlf | 25 ++ .../dotnet-test/xlf/LocalizableStrings.de.xlf | 25 ++ .../dotnet-test/xlf/LocalizableStrings.es.xlf | 25 ++ .../dotnet-test/xlf/LocalizableStrings.fr.xlf | 25 ++ .../dotnet-test/xlf/LocalizableStrings.it.xlf | 25 ++ .../dotnet-test/xlf/LocalizableStrings.ja.xlf | 25 ++ .../dotnet-test/xlf/LocalizableStrings.ko.xlf | 25 ++ .../dotnet-test/xlf/LocalizableStrings.pl.xlf | 25 ++ .../xlf/LocalizableStrings.pt-BR.xlf | 25 ++ .../dotnet-test/xlf/LocalizableStrings.ru.xlf | 25 ++ .../dotnet-test/xlf/LocalizableStrings.tr.xlf | 25 ++ .../xlf/LocalizableStrings.zh-Hans.xlf | 25 ++ .../xlf/LocalizableStrings.zh-Hant.xlf | 25 ++ 25 files changed, 805 insertions(+), 201 deletions(-) delete mode 100644 src/Cli/dotnet/commands/dotnet-test/MSBuildConnectionHandler.cs create mode 100644 src/Cli/dotnet/commands/dotnet-test/MSBuildHandler.cs create mode 100644 src/Cli/dotnet/commands/dotnet-test/SolutionAndProjectUtility.cs diff --git a/src/Cli/dotnet/SlnFileExtensions.cs b/src/Cli/dotnet/SlnFileExtensions.cs index 0a981b9e2429..22b5cc48c5a8 100644 --- a/src/Cli/dotnet/SlnFileExtensions.cs +++ b/src/Cli/dotnet/SlnFileExtensions.cs @@ -6,7 +6,6 @@ using Microsoft.Build.Execution; using Microsoft.DotNet.Cli.Sln.Internal; using Microsoft.DotNet.Cli.Utils; -using System.Collections.Generic; namespace Microsoft.DotNet.Tools.Common { @@ -271,7 +270,7 @@ private static void AddSolutionFolders(this SlnFile slnFile, SlnProject slnProje else { - if(HasDuplicateNameForSameValueOfNestedProjects(nestedProjectsSection, dir, parentDirGuid, slnFile.Projects)) + if (HasDuplicateNameForSameValueOfNestedProjects(nestedProjectsSection, dir, parentDirGuid, slnFile.Projects)) { throw new GracefulException(CommonLocalizableStrings.SolutionFolderAlreadyContainsProject, slnFile.FullPath, slnProject.Name, slnFile.Projects.FirstOrDefault(p => p.Id == parentDirGuid).Name); } diff --git a/src/Cli/dotnet/commands/dotnet-test/CliConstants.cs b/src/Cli/dotnet/commands/dotnet-test/CliConstants.cs index 08ba9c16b3dc..8b8c4a33838c 100644 --- a/src/Cli/dotnet/commands/dotnet-test/CliConstants.cs +++ b/src/Cli/dotnet/commands/dotnet-test/CliConstants.cs @@ -15,6 +15,13 @@ internal static class CliConstants public const string MSBuildExeName = "MSBuild.dll"; public const string ParametersSeparator = "--"; + + public const string VSTest = "VSTest"; + public const string MicrosoftTestingPlatform = "MicrosoftTestingPlatform"; + + public const string TestSectionKey = "test"; + + public const string RestoreCommand = "restore"; } internal static class TestStates @@ -50,4 +57,15 @@ internal static class ProtocolConstants { internal const string Version = "1.0.0"; } + + internal static class ProjectProperties + { + internal const string IsTestingPlatformApplication = "IsTestingPlatformApplication"; + internal const string IsTestProject = "IsTestProject"; + internal const string TargetFramework = "TargetFramework"; + internal const string TargetFrameworks = "TargetFrameworks"; + internal const string TargetPath = "TargetPath"; + internal const string ProjectFullPath = "MSBuildProjectFullPath"; + internal const string RunSettingsFilePath = "RunSettingsFilePath"; + } } diff --git a/src/Cli/dotnet/commands/dotnet-test/LocalizableStrings.resx b/src/Cli/dotnet/commands/dotnet-test/LocalizableStrings.resx index 2a6adfc6f413..92aaef39fd5c 100644 --- a/src/Cli/dotnet/commands/dotnet-test/LocalizableStrings.resx +++ b/src/Cli/dotnet/commands/dotnet-test/LocalizableStrings.resx @@ -326,4 +326,19 @@ Examples: Test application(s) that support VSTest are not supported. + + Test runner not supported: {0}. + + + The provided project file path does not exist: {0}. + + + Specify which project or solution file to use because this folder contains more than one project or solution file. + + + Specify a project or solution file. The current working directory does not contain a project or solution file. + + + Get projects properties with MSBuild didn't execute properly with exit code: {0}. + diff --git a/src/Cli/dotnet/commands/dotnet-test/MSBuildConnectionHandler.cs b/src/Cli/dotnet/commands/dotnet-test/MSBuildConnectionHandler.cs deleted file mode 100644 index e8e38728b825..000000000000 --- a/src/Cli/dotnet/commands/dotnet-test/MSBuildConnectionHandler.cs +++ /dev/null @@ -1,172 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Collections.Concurrent; -using System.CommandLine; -using System.IO.Pipes; -using Microsoft.DotNet.Cli.Utils; -using Microsoft.DotNet.Tools.Test; - -namespace Microsoft.DotNet.Cli -{ - internal sealed class MSBuildConnectionHandler : IDisposable - { - private List _args; - private readonly TestApplicationActionQueue _actionQueue; - - private readonly PipeNameDescription _pipeNameDescription = NamedPipeServer.GetPipeName(Guid.NewGuid().ToString("N")); - private readonly List _namedPipeConnections = new(); - private readonly ConcurrentBag _testApplications = new(); - private bool _areTestingPlatformApplications = true; - - public MSBuildConnectionHandler(List args, TestApplicationActionQueue actionQueue) - { - _args = args; - _actionQueue = actionQueue; - } - - public async Task WaitConnectionAsync(CancellationToken token) - { - VSTestTrace.SafeWriteTrace(() => $"Waiting for connection(s) on pipe = {_pipeNameDescription.Name}"); - - try - { - while (!token.IsCancellationRequested) - { - NamedPipeServer pipeConnection = new(_pipeNameDescription, OnRequest, NamedPipeServerStream.MaxAllowedServerInstances, token, skipUnknownMessages: true); - pipeConnection.RegisterAllSerializers(); - - await pipeConnection.WaitConnectionAsync(token); - - _namedPipeConnections.Add(pipeConnection); - } - } - catch (OperationCanceledException ex) when (ex.CancellationToken == token) - { - // We are exiting - } - catch (Exception ex) - { - if (VSTestTrace.TraceEnabled) - { - VSTestTrace.SafeWriteTrace(() => ex.ToString()); - } - - Environment.FailFast(ex.ToString()); - } - } - - private Task OnRequest(IRequest request) - { - try - { - if (request is not ModuleMessage module) - { - throw new NotSupportedException($"Request '{request.GetType()}' is unsupported."); - } - - // Check if the test app has IsTestingPlatformApplication property set to true - if (bool.TryParse(module.IsTestingPlatformApplication, out bool isTestingPlatformApplication) && isTestingPlatformApplication) - { - var testApp = new TestApplication(new Module(module.DllOrExePath, module.ProjectPath, module.TargetFramework, module.RunSettingsFilePath), _args); - _testApplications.Add(testApp); - } - else // If one test app has IsTestingPlatformApplication set to false, then we will not run any of the test apps - { - _areTestingPlatformApplications = false; - } - } - catch (Exception ex) - { - if (VSTestTrace.TraceEnabled) - { - VSTestTrace.SafeWriteTrace(() => ex.ToString()); - } - - Environment.FailFast(ex.ToString()); - } - - return Task.FromResult((IResponse)VoidResponse.CachedInstance); - } - - public bool EnqueueTestApplications() - { - if (!_areTestingPlatformApplications) - { - return false; - } - - foreach (var testApp in _testApplications) - { - _actionQueue.Enqueue(testApp); - } - return true; - } - - public int RunWithMSBuild(ParseResult parseResult) - { - List msbuildCommandLineArgs = - [ - parseResult.GetValue(TestingPlatformOptions.ProjectOption) ?? string.Empty, - "-t:Restore;_GetTestsProject", - $"-p:GetTestsProjectPipeName={_pipeNameDescription.Name}", - "-verbosity:q", - "-nologo", - ]; - - AddBinLogParameterIfExists(msbuildCommandLineArgs, _args); - AddAdditionalMSBuildParametersIfExist(parseResult, msbuildCommandLineArgs); - - if (VSTestTrace.TraceEnabled) - { - VSTestTrace.SafeWriteTrace(() => $"MSBuild command line arguments: {string.Join(" ", msbuildCommandLineArgs)}"); - } - - ForwardingAppImplementation msBuildForwardingApp = new(GetMSBuildExePath(), msbuildCommandLineArgs); - return msBuildForwardingApp.Execute(); - } - - private static void AddBinLogParameterIfExists(List msbuildCommandLineArgs, List args) - { - var binLog = args.FirstOrDefault(arg => arg.StartsWith("-bl", StringComparison.OrdinalIgnoreCase)); - - if (!string.IsNullOrEmpty(binLog)) - { - msbuildCommandLineArgs.Add(binLog); - - // We remove it from the args list so that it is not passed to the test application - args.Remove(binLog); - } - } - - private static void AddAdditionalMSBuildParametersIfExist(ParseResult parseResult, List parameters) - { - string msBuildParameters = parseResult.GetValue(TestingPlatformOptions.AdditionalMSBuildParametersOption); - - if (!string.IsNullOrEmpty(msBuildParameters)) - { - parameters.AddRange(msBuildParameters.Split(" ", StringSplitOptions.RemoveEmptyEntries)); - } - } - - private static string GetMSBuildExePath() - { - return Path.Combine( - AppContext.BaseDirectory, - CliConstants.MSBuildExeName); - } - - public void Dispose() - { - foreach (var namedPipeServer in _namedPipeConnections) - { - namedPipeServer.Dispose(); - } - - foreach (var testApplication in _testApplications) - { - testApplication.Dispose(); - } - } - } -} diff --git a/src/Cli/dotnet/commands/dotnet-test/MSBuildHandler.cs b/src/Cli/dotnet/commands/dotnet-test/MSBuildHandler.cs new file mode 100644 index 000000000000..40c2e4639cae --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-test/MSBuildHandler.cs @@ -0,0 +1,269 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Concurrent; +using Microsoft.Build.Evaluation; +using Microsoft.Build.Execution; +using Microsoft.Build.Framework; +using Microsoft.Build.Logging; + +namespace Microsoft.DotNet.Cli +{ + internal sealed class MSBuildHandler : IDisposable + { + private readonly List _args; + private readonly TestApplicationActionQueue _actionQueue; + private readonly int _degreeOfParallelism; + + private readonly ConcurrentBag _testApplications = new(); + private bool _areTestingPlatformApplications = true; + + private const string BinLogFileName = "msbuild.binlog"; + private const string Separator = ";"; + private static readonly Lock buildLock = new(); + + public MSBuildHandler(List args, TestApplicationActionQueue actionQueue, int degreeOfParallelism) + { + _args = args; + _actionQueue = actionQueue; + _degreeOfParallelism = degreeOfParallelism; + } + + public async Task RunWithMSBuild() + { + bool solutionOrProjectFileFound = SolutionAndProjectUtility.TryGetProjectOrSolutionFilePath(Directory.GetCurrentDirectory(), out string projectOrSolutionFilePath, out bool isSolution); + + if (!solutionOrProjectFileFound) + { + return ExitCodes.GenericFailure; + } + + (IEnumerable modules, bool restored) = await GetProjectsProperties(projectOrSolutionFilePath, isSolution); + + InitializeTestApplications(modules); + + return restored ? ExitCodes.Success : ExitCodes.GenericFailure; + } + + public async Task RunWithMSBuild(string filePath) + { + (IEnumerable modules, bool restored) = await GetProjectsProperties(filePath, false); + + InitializeTestApplications(modules); + + return restored ? ExitCodes.Success : ExitCodes.GenericFailure; + } + + private void InitializeTestApplications(IEnumerable modules) + { + foreach (Module module in modules) + { + if (module.IsTestProject && module.IsTestingPlatformApplication) + { + var testApp = new TestApplication(module, _args); + _testApplications.Add(testApp); + } + else // If one test app has IsTestingPlatformApplication set to false, then we will not run any of the test apps + { + _areTestingPlatformApplications = false; + return; + } + } + } + + public bool EnqueueTestApplications() + { + if (!_areTestingPlatformApplications) + { + return false; + } + + foreach (var testApp in _testApplications) + { + _actionQueue.Enqueue(testApp); + } + return true; + } + + private async Task<(IEnumerable, bool Restored)> GetProjectsProperties(string solutionOrProjectFilePath, bool isSolution) + { + var allProjects = new ConcurrentBag(); + bool restored = true; + + if (isSolution) + { + var projects = await SolutionAndProjectUtility.ParseSolution(solutionOrProjectFilePath); + ProcessProjectsInParallel(projects, allProjects, ref restored); + } + else + { + bool allowBinLog = IsBinaryLoggerEnabled(_args, out string binLogFileName); + + var (relatedProjects, isProjectBuilt) = GetProjectPropertiesInternal(solutionOrProjectFilePath, allowBinLog, binLogFileName); + foreach (var relatedProject in relatedProjects) + { + allProjects.Add(relatedProject); + } + + if (!isProjectBuilt) + { + restored = false; + } + } + return (allProjects, restored); + } + + private void ProcessProjectsInParallel(IEnumerable projects, ConcurrentBag allProjects, ref bool restored) + { + bool allProjectsRestored = true; + bool allowBinLog = IsBinaryLoggerEnabled(_args, out string binLogFileName); + + Parallel.ForEach( + projects, + new ParallelOptions { MaxDegreeOfParallelism = _degreeOfParallelism }, + () => true, + (project, state, localRestored) => + { + var (relatedProjects, isRestored) = GetProjectPropertiesInternal(project, allowBinLog, binLogFileName); + foreach (var relatedProject in relatedProjects) + { + allProjects.Add(relatedProject); + } + + return localRestored && isRestored; + }, + localRestored => + { + if (!localRestored) + { + allProjectsRestored = false; + } + }); + + restored = allProjectsRestored; + } + + private static (IEnumerable Modules, bool Restored) GetProjectPropertiesInternal(string projectFilePath, bool allowBinLog, string binLogFileName) + { + var projectCollection = new ProjectCollection(); + var project = projectCollection.LoadProject(projectFilePath); + var buildResult = RestoreProject(projectFilePath, projectCollection, allowBinLog, binLogFileName); + + bool restored = buildResult.OverallResult == BuildResultCode.Success; + + if (!restored) + { + return (Array.Empty(), restored); + } + + return (ExtractModulesFromProject(project), restored); + } + + private static IEnumerable ExtractModulesFromProject(Project project) + { + _ = bool.TryParse(project.GetPropertyValue(ProjectProperties.IsTestingPlatformApplication), out bool isTestingPlatformApplication); + _ = bool.TryParse(project.GetPropertyValue(ProjectProperties.IsTestProject), out bool isTestProject); + + string targetFramework = project.GetPropertyValue(ProjectProperties.TargetFramework); + string targetFrameworks = project.GetPropertyValue(ProjectProperties.TargetFrameworks); + string targetPath = project.GetPropertyValue(ProjectProperties.TargetPath); + string projectFullPath = project.GetPropertyValue(ProjectProperties.ProjectFullPath); + string runSettingsFilePath = project.GetPropertyValue(ProjectProperties.RunSettingsFilePath); + + var projects = new List(); + + if (string.IsNullOrEmpty(targetFrameworks)) + { + projects.Add(new Module(targetPath, projectFullPath, targetFramework, runSettingsFilePath, isTestingPlatformApplication, isTestProject)); + } + else + { + var frameworks = targetFrameworks.Split(Separator, StringSplitOptions.RemoveEmptyEntries); + foreach (var framework in frameworks) + { + project.SetProperty(ProjectProperties.TargetFramework, framework); + project.ReevaluateIfNecessary(); + + projects.Add(new Module(project.GetPropertyValue(ProjectProperties.TargetPath), + projectFullPath, + framework, + runSettingsFilePath, + isTestingPlatformApplication, + isTestProject)); + } + } + + return projects; + } + + private static BuildResult RestoreProject(string projectFilePath, ProjectCollection projectCollection, bool allowBinLog, string binLogFileName) + { + BuildParameters parameters = new(projectCollection) + { + Loggers = [new ConsoleLogger(LoggerVerbosity.Quiet)] + }; + + if (allowBinLog) + { + parameters.Loggers = parameters.Loggers.Concat([ + new BinaryLogger + { + Parameters = binLogFileName + } + ]); + } + + var buildRequestData = new BuildRequestData(projectFilePath, new Dictionary(), null, [CliConstants.RestoreCommand], null); + BuildResult buildResult; + lock (buildLock) + { + buildResult = BuildManager.DefaultBuildManager.Build(parameters, buildRequestData); + } + + return buildResult; + } + + private static bool IsBinaryLoggerEnabled(List args, out string binLogFileName) + { + binLogFileName = BinLogFileName; + + var binLogArgs = new List(); + + foreach (var arg in args) + { + if (arg.StartsWith("/bl:") || arg.Equals("/bl") + || arg.StartsWith("--binaryLogger:") || arg.Equals("--binaryLogger") + || arg.StartsWith("-bl:") || arg.Equals("-bl")) + { + binLogArgs.Add(arg); + + } + } + + if (binLogArgs.Count > 0) + { + // Remove all BinLog args from the list of args + args.RemoveAll(arg => binLogArgs.Contains(arg)); + + // Get BinLog filename + var binLogArg = binLogArgs.LastOrDefault(); + + if (binLogArg.Contains(':')) + { + binLogFileName = binLogArg.Split(':')[1]; + } + return true; + } + + return false; + } + + public void Dispose() + { + foreach (var testApplication in _testApplications) + { + testApplication.Dispose(); + } + } + } +} diff --git a/src/Cli/dotnet/commands/dotnet-test/Models.cs b/src/Cli/dotnet/commands/dotnet-test/Models.cs index 8484f819f38d..9f18391810c6 100644 --- a/src/Cli/dotnet/commands/dotnet-test/Models.cs +++ b/src/Cli/dotnet/commands/dotnet-test/Models.cs @@ -3,7 +3,7 @@ namespace Microsoft.DotNet.Cli { - internal sealed record Module(string? DllOrExePath, string? ProjectPath, string? TargetFramework, string? RunSettingsFilePath); + internal sealed record Module(string? DllOrExePath, string? ProjectPath, string? TargetFramework, string? RunSettingsFilePath, bool IsTestingPlatformApplication, bool IsTestProject); internal sealed record Handshake(Dictionary? Properties); diff --git a/src/Cli/dotnet/commands/dotnet-test/SolutionAndProjectUtility.cs b/src/Cli/dotnet/commands/dotnet-test/SolutionAndProjectUtility.cs new file mode 100644 index 000000000000..f050f135fcf8 --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-test/SolutionAndProjectUtility.cs @@ -0,0 +1,128 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using Microsoft.DotNet.Tools; +using Microsoft.DotNet.Tools.Test; +using Microsoft.VisualStudio.SolutionPersistence; +using Microsoft.VisualStudio.SolutionPersistence.Model; +using Microsoft.VisualStudio.SolutionPersistence.Serializer; + +namespace Microsoft.DotNet.Cli +{ + internal static class SolutionAndProjectUtility + { + public static bool TryGetProjectOrSolutionFilePath(string directory, out string projectOrSolutionFilePath, out bool isSolution) + { + projectOrSolutionFilePath = string.Empty; + isSolution = false; + + if (!Directory.Exists(directory)) + { + return false; + } + + string[] possibleSolutionPaths = [ + ..Directory.GetFiles(directory, "*.sln", SearchOption.TopDirectoryOnly), + ..Directory.GetFiles(directory, "*.slnx", SearchOption.TopDirectoryOnly)]; + + // If more than a single sln file is found, an error is thrown since we can't determine which one to choose. + if (possibleSolutionPaths.Length > 1) + { + VSTestTrace.SafeWriteTrace(() => string.Format(CommonLocalizableStrings.MoreThanOneSolutionInDirectory, directory)); + return false; + } + // If a single solution is found, use it. + else if (possibleSolutionPaths.Length == 1) + { + // Get project file paths to check if there are any projects in the directory + string[] possibleProjectPaths = GetProjectFilePaths(directory); + + if (possibleProjectPaths.Length == 0) + { + projectOrSolutionFilePath = possibleSolutionPaths[0]; + isSolution = true; + return true; + } + else // If both solution and project files are found, return false + { + VSTestTrace.SafeWriteTrace(() => LocalizableStrings.CmdMultipleProjectOrSolutionFilesErrorMessage); + return false; + } + } + // If no solutions are found, look for a project file + else + { + string[] possibleProjectPath = GetProjectFilePaths(directory); + + // No projects found throws an error that no sln nor projects were found + if (possibleProjectPath.Length == 0) + { + VSTestTrace.SafeWriteTrace(() => LocalizableStrings.CmdNoProjectOrSolutionFileErrorMessage); + return false; + } + // A single project found, use it + else if (possibleProjectPath.Length == 1) + { + projectOrSolutionFilePath = possibleProjectPath[0]; + return true; + } + // More than one project found. Not sure which one to choose + else + { + VSTestTrace.SafeWriteTrace(() => string.Format(CommonLocalizableStrings.MoreThanOneProjectInDirectory, directory)); + return false; + } + } + } + + + private static string[] GetProjectFilePaths(string directory) + { + var projectFiles = Directory.EnumerateFiles(directory, "*.*proj", SearchOption.TopDirectoryOnly) + .Where(IsProjectFile) + .ToArray(); + + return projectFiles; + } + + private static bool IsProjectFile(string filePath) + { + var extension = Path.GetExtension(filePath); + return extension.Equals(".csproj", StringComparison.OrdinalIgnoreCase) || + extension.Equals(".vbproj", StringComparison.OrdinalIgnoreCase) || + extension.Equals(".fsproj", StringComparison.OrdinalIgnoreCase) || + extension.Equals(".proj", StringComparison.OrdinalIgnoreCase); + } + + public static async Task> ParseSolution(string solutionFilePath) + { + if (string.IsNullOrEmpty(solutionFilePath)) + { + VSTestTrace.SafeWriteTrace(() => $"Solution file path cannot be null or empty: {solutionFilePath}"); + return []; + } + + var projectsPaths = new List(); + SolutionModel solution = null; + + try + { + solution = SolutionSerializers.GetSerializerByMoniker(solutionFilePath) is ISolutionSerializer serializer + ? await serializer.OpenAsync(solutionFilePath, CancellationToken.None) + : null; + } + catch (Exception ex) + { + VSTestTrace.SafeWriteTrace(() => $"Failed to parse solution file '{solutionFilePath}': {ex.Message}"); + return []; + } + + if (solution is not null) + { + projectsPaths = [.. solution.SolutionProjects.Select(project => Path.GetFullPath(project.FilePath))]; + } + + return projectsPaths; + } + } +} diff --git a/src/Cli/dotnet/commands/dotnet-test/TestApplication.cs b/src/Cli/dotnet/commands/dotnet-test/TestApplication.cs index c727ffd4fe3b..1c448328323c 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestApplication.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestApplication.cs @@ -4,6 +4,7 @@ using System.Collections.Concurrent; using System.Diagnostics; using System.IO.Pipes; +using Microsoft.DotNet.Tools.Common; using Microsoft.DotNet.Tools.Test; namespace Microsoft.DotNet.Cli @@ -33,6 +34,9 @@ internal sealed class TestApplication : IDisposable public event EventHandler Run; public event EventHandler ExecutionIdReceived; + private const string TestingPlatformVsTestBridgeRunSettingsFileEnvVar = "TESTINGPLATFORM_VSTESTBRIDGE_RUNSETTINGS_FILE"; + private const string DLLExtension = "dll"; + public Module Module => _module; public TestApplication(Module module, List args) @@ -55,7 +59,7 @@ public async Task RunAsync(bool isFilterMode, bool enableHelp, BuiltInOptio return 1; } - bool isDll = _module.DllOrExePath.EndsWith(".dll"); + bool isDll = _module.DllOrExePath.HasExtension(DLLExtension); ProcessStartInfo processStartInfo = new() { @@ -67,7 +71,7 @@ public async Task RunAsync(bool isFilterMode, bool enableHelp, BuiltInOptio if (!string.IsNullOrEmpty(_module.RunSettingsFilePath)) { - processStartInfo.EnvironmentVariables.Add("TESTINGPLATFORM_VSTESTBRIDGE_RUNSETTINGS_FILE", _module.RunSettingsFilePath); + processStartInfo.EnvironmentVariables.Add(TestingPlatformVsTestBridgeRunSettingsFileEnvVar, _module.RunSettingsFilePath); } _testAppPipeConnectionLoop = Task.Run(async () => await WaitConnectionAsync(_cancellationToken.Token), _cancellationToken.Token); diff --git a/src/Cli/dotnet/commands/dotnet-test/TestCommandParser.cs b/src/Cli/dotnet/commands/dotnet-test/TestCommandParser.cs index 5196981af9ae..9c26e21111e2 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestCommandParser.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestCommandParser.cs @@ -190,7 +190,7 @@ private static CliCommand ConstructCommand() private static CliCommand GetTestingPlatformCliCommand() { var command = new TestingPlatformCommand("test"); - command.SetAction((parseResult) => command.Run(parseResult)); + command.SetAction(async (parseResult) => await command.Run(parseResult)); command.Options.Add(TestingPlatformOptions.MaxParallelTestModulesOption); command.Options.Add(TestingPlatformOptions.AdditionalMSBuildParametersOption); command.Options.Add(TestingPlatformOptions.TestModulesFilterOption); diff --git a/src/Cli/dotnet/commands/dotnet-test/TestModulesFilterHandler.cs b/src/Cli/dotnet/commands/dotnet-test/TestModulesFilterHandler.cs index 7562e0225296..80179fbf5732 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestModulesFilterHandler.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestModulesFilterHandler.cs @@ -50,7 +50,7 @@ public bool RunWithTestModulesFilter(ParseResult parseResult) foreach (string testModule in testModulePaths) { - var testApp = new TestApplication(new Module(testModule, null, null, null), _args); + var testApp = new TestApplication(new Module(testModule, null, null, null, true, true), _args); // Write the test application to the channel _actionQueue.Enqueue(testApp); } diff --git a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.Help.cs b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.Help.cs index 6499eb074933..838a74530384 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.Help.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.Help.cs @@ -14,11 +14,11 @@ internal partial class TestingPlatformCommand public IEnumerable> CustomHelpLayout() { - yield return (context) => + yield return async (context) => { Console.WriteLine("Waiting for options and extensions..."); - Run(context.ParseResult); + await Run(context.ParseResult); if (_commandLineOptionNameToModuleNames.IsEmpty) { diff --git a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs index b947031fdca2..e51f8da017d7 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs @@ -11,12 +11,10 @@ namespace Microsoft.DotNet.Cli internal partial class TestingPlatformCommand : CliCommand, ICustomHelp { private readonly ConcurrentBag _testApplications = []; - private readonly CancellationTokenSource _cancellationToken = new(); - private MSBuildConnectionHandler _msBuildConnectionHandler; + private MSBuildHandler _msBuildHandler; private TestModulesFilterHandler _testModulesFilterHandler; private TestApplicationActionQueue _actionQueue; - private Task _namedPipeConnectionLoop; private List _args; public TestingPlatformCommand(string name, string description = null) : base(name, description) @@ -24,7 +22,7 @@ public TestingPlatformCommand(string name, string description = null) : base(nam TreatUnmatchedTokensAsErrors = false; } - public int Run(ParseResult parseResult) + public async Task Run(ParseResult parseResult) { bool hasFailed = false; try @@ -78,10 +76,9 @@ public int Run(ParseResult parseResult) }); } - _args = new List(parseResult.UnmatchedTokens); - _msBuildConnectionHandler = new(_args, _actionQueue); + _args = [.. parseResult.UnmatchedTokens]; + _msBuildHandler = new(_args, _actionQueue, degreeOfParallelism); _testModulesFilterHandler = new(_args, _actionQueue); - _namedPipeConnectionLoop = Task.Run(async () => await _msBuildConnectionHandler.WaitConnectionAsync(_cancellationToken.Token)); if (parseResult.HasOption(TestingPlatformOptions.TestModulesFilterOption)) { @@ -92,16 +89,13 @@ public int Run(ParseResult parseResult) } else { - // If no filter was provided, MSBuild will get the test project paths - var msbuildResult = _msBuildConnectionHandler.RunWithMSBuild(parseResult); - if (msbuildResult != 0) + if (!await RunMSBuild(parseResult)) { - VSTestTrace.SafeWriteTrace(() => $"MSBuild task _GetTestsProject didn't execute properly with exit code: {msbuildResult}."); return ExitCodes.GenericFailure; } - // If not all test projects have IsTestingPlatformApplication set to true, we will simply return - if (!_msBuildConnectionHandler.EnqueueTestApplications()) + // If not all test projects have IsTestProject and IsTestingPlatformApplication properties set to true, we will simply return + if (!_msBuildHandler.EnqueueTestApplications()) { VSTestTrace.SafeWriteTrace(() => LocalizableStrings.CmdUnsupportedVSTestTestApplicationsDescription); return ExitCodes.GenericFailure; @@ -111,8 +105,6 @@ public int Run(ParseResult parseResult) _actionQueue.EnqueueCompleted(); hasFailed = _actionQueue.WaitAllActions(); // Above line will block till we have all connections and all GetTestsProject msbuild task complete. - - WaitOnMSBuildHandlerPipeConnectionLoop(); } finally { @@ -123,15 +115,41 @@ public int Run(ParseResult parseResult) return hasFailed ? ExitCodes.GenericFailure : ExitCodes.Success; } - private void WaitOnMSBuildHandlerPipeConnectionLoop() + private async Task RunMSBuild(ParseResult parseResult) { - _cancellationToken.Cancel(); - _namedPipeConnectionLoop.Wait((int)TimeSpan.FromSeconds(30).TotalMilliseconds); + int msbuildExitCode; + + if (parseResult.HasOption(TestingPlatformOptions.ProjectOption)) + { + string filePath = parseResult.GetValue(TestingPlatformOptions.ProjectOption); + + if (!File.Exists(filePath)) + { + VSTestTrace.SafeWriteTrace(() => string.Format(LocalizableStrings.CmdNonExistentProjectFilePathDescription, filePath)); + return false; + } + + msbuildExitCode = await _msBuildHandler.RunWithMSBuild(filePath); + } + else + { + // If no filter was provided neither the project using --project, + // MSBuild will get the test project paths in the current directory + msbuildExitCode = await _msBuildHandler.RunWithMSBuild(); + } + + if (msbuildExitCode != ExitCodes.Success) + { + VSTestTrace.SafeWriteTrace(() => string.Format(LocalizableStrings.CmdMSBuildProjectsPropertiesErrorMessage, msbuildExitCode)); + return false; + } + + return true; } private void CleanUp() { - _msBuildConnectionHandler.Dispose(); + _msBuildHandler.Dispose(); foreach (var testApplication in _testApplications) { testApplication.Dispose(); @@ -238,7 +256,7 @@ private void OnTestProcessExited(object sender, TestProcessExitEventArgs args) return; } - if (args.ExitCode != 0) + if (args.ExitCode != ExitCodes.Success) { VSTestTrace.SafeWriteTrace(() => $"Test Process exited with non-zero exit code: {args.ExitCode}"); } diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.cs.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.cs.xlf index 2ad19fb0b1b8..293bf2f6c922 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.cs.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.cs.xlf @@ -118,21 +118,41 @@ Příklady: Invalid test message state '{0}' {0} - test message state + + Get projects properties with MSBuild didn't execute properly with exit code: {0}. + Get projects properties with MSBuild didn't execute properly with exit code: {0}. + + The max number of test modules that can run in parallel. Maximální počet testovacích modulů, které je možné spustit paralelně. + + Specify which project or solution file to use because this folder contains more than one project or solution file. + Specify which project or solution file to use because this folder contains more than one project or solution file. + + + + Specify a project or solution file. The current working directory does not contain a project or solution file. + Specify a project or solution file. The current working directory does not contain a project or solution file. + + Do not execute an implicit restore. Do not execute an implicit restore. + + The provided project file path does not exist: {0}. + The provided project file path does not exist: {0}. + + Defines the path of the project file to run (folder name or full path). If not specified, it defaults to the current directory. Defines the path of the project file to run (folder name or full path). If not specified, it defaults to the current directory. @@ -255,6 +275,11 @@ Pokud zadaný adresář neexistuje, bude vytvořen. Message Request type '{0}' is unsupported. {0} - message request type + + Test runner not supported: {0}. + Test runner not supported: {0}. + + Test application(s) that support VSTest are not supported. Test application(s) that support VSTest are not supported. diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.de.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.de.xlf index 230a26c4cdf8..ffdc27dd1298 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.de.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.de.xlf @@ -118,21 +118,41 @@ Beispiele: Invalid test message state '{0}' {0} - test message state + + Get projects properties with MSBuild didn't execute properly with exit code: {0}. + Get projects properties with MSBuild didn't execute properly with exit code: {0}. + + The max number of test modules that can run in parallel. Die maximale Anzahl von Testmodulen, die parallel ausgeführt werden können. + + Specify which project or solution file to use because this folder contains more than one project or solution file. + Specify which project or solution file to use because this folder contains more than one project or solution file. + + + + Specify a project or solution file. The current working directory does not contain a project or solution file. + Specify a project or solution file. The current working directory does not contain a project or solution file. + + Do not execute an implicit restore. Do not execute an implicit restore. + + The provided project file path does not exist: {0}. + The provided project file path does not exist: {0}. + + Defines the path of the project file to run (folder name or full path). If not specified, it defaults to the current directory. Defines the path of the project file to run (folder name or full path). If not specified, it defaults to the current directory. @@ -255,6 +275,11 @@ Das angegebene Verzeichnis wird erstellt, wenn es nicht vorhanden ist. Message Request type '{0}' is unsupported. {0} - message request type + + Test runner not supported: {0}. + Test runner not supported: {0}. + + Test application(s) that support VSTest are not supported. Test application(s) that support VSTest are not supported. diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.es.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.es.xlf index b4504cd41ca0..880eb9ad38b6 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.es.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.es.xlf @@ -120,21 +120,41 @@ Ejemplos: Invalid test message state '{0}' {0} - test message state + + Get projects properties with MSBuild didn't execute properly with exit code: {0}. + Get projects properties with MSBuild didn't execute properly with exit code: {0}. + + The max number of test modules that can run in parallel. Número máximo de módulos de prueba que se pueden ejecutar en paralelo. + + Specify which project or solution file to use because this folder contains more than one project or solution file. + Specify which project or solution file to use because this folder contains more than one project or solution file. + + + + Specify a project or solution file. The current working directory does not contain a project or solution file. + Specify a project or solution file. The current working directory does not contain a project or solution file. + + Do not execute an implicit restore. Do not execute an implicit restore. + + The provided project file path does not exist: {0}. + The provided project file path does not exist: {0}. + + Defines the path of the project file to run (folder name or full path). If not specified, it defaults to the current directory. Defines the path of the project file to run (folder name or full path). If not specified, it defaults to the current directory. @@ -257,6 +277,11 @@ Si no existe, se creará el directorio especificado. Message Request type '{0}' is unsupported. {0} - message request type + + Test runner not supported: {0}. + Test runner not supported: {0}. + + Test application(s) that support VSTest are not supported. Test application(s) that support VSTest are not supported. diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.fr.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.fr.xlf index 080d51785fda..809445d7303c 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.fr.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.fr.xlf @@ -118,21 +118,41 @@ Exemples : Invalid test message state '{0}' {0} - test message state + + Get projects properties with MSBuild didn't execute properly with exit code: {0}. + Get projects properties with MSBuild didn't execute properly with exit code: {0}. + + The max number of test modules that can run in parallel. Nombre maximal de modules de test qui peuvent s’exécuter en parallèle. + + Specify which project or solution file to use because this folder contains more than one project or solution file. + Specify which project or solution file to use because this folder contains more than one project or solution file. + + + + Specify a project or solution file. The current working directory does not contain a project or solution file. + Specify a project or solution file. The current working directory does not contain a project or solution file. + + Do not execute an implicit restore. Do not execute an implicit restore. + + The provided project file path does not exist: {0}. + The provided project file path does not exist: {0}. + + Defines the path of the project file to run (folder name or full path). If not specified, it defaults to the current directory. Defines the path of the project file to run (folder name or full path). If not specified, it defaults to the current directory. @@ -255,6 +275,11 @@ Le répertoire spécifié est créé, s'il n'existe pas déjà. Message Request type '{0}' is unsupported. {0} - message request type + + Test runner not supported: {0}. + Test runner not supported: {0}. + + Test application(s) that support VSTest are not supported. Test application(s) that support VSTest are not supported. diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.it.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.it.xlf index 31ea56d050fe..497ec27cbeb3 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.it.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.it.xlf @@ -118,21 +118,41 @@ Esempi: Invalid test message state '{0}' {0} - test message state + + Get projects properties with MSBuild didn't execute properly with exit code: {0}. + Get projects properties with MSBuild didn't execute properly with exit code: {0}. + + The max number of test modules that can run in parallel. Numero massimo di moduli di test che possono essere eseguiti in parallelo. + + Specify which project or solution file to use because this folder contains more than one project or solution file. + Specify which project or solution file to use because this folder contains more than one project or solution file. + + + + Specify a project or solution file. The current working directory does not contain a project or solution file. + Specify a project or solution file. The current working directory does not contain a project or solution file. + + Do not execute an implicit restore. Do not execute an implicit restore. + + The provided project file path does not exist: {0}. + The provided project file path does not exist: {0}. + + Defines the path of the project file to run (folder name or full path). If not specified, it defaults to the current directory. Defines the path of the project file to run (folder name or full path). If not specified, it defaults to the current directory. @@ -255,6 +275,11 @@ Se non esiste, la directory specificata verrà creata. Message Request type '{0}' is unsupported. {0} - message request type + + Test runner not supported: {0}. + Test runner not supported: {0}. + + Test application(s) that support VSTest are not supported. Test application(s) that support VSTest are not supported. diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ja.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ja.xlf index cc1420582f48..e569010555c7 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ja.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ja.xlf @@ -118,21 +118,41 @@ Examples: Invalid test message state '{0}' {0} - test message state + + Get projects properties with MSBuild didn't execute properly with exit code: {0}. + Get projects properties with MSBuild didn't execute properly with exit code: {0}. + + The max number of test modules that can run in parallel. 並列で実行できるテスト モジュールの最大数。 + + Specify which project or solution file to use because this folder contains more than one project or solution file. + Specify which project or solution file to use because this folder contains more than one project or solution file. + + + + Specify a project or solution file. The current working directory does not contain a project or solution file. + Specify a project or solution file. The current working directory does not contain a project or solution file. + + Do not execute an implicit restore. Do not execute an implicit restore. + + The provided project file path does not exist: {0}. + The provided project file path does not exist: {0}. + + Defines the path of the project file to run (folder name or full path). If not specified, it defaults to the current directory. Defines the path of the project file to run (folder name or full path). If not specified, it defaults to the current directory. @@ -255,6 +275,11 @@ The specified directory will be created if it does not exist. Message Request type '{0}' is unsupported. {0} - message request type + + Test runner not supported: {0}. + Test runner not supported: {0}. + + Test application(s) that support VSTest are not supported. Test application(s) that support VSTest are not supported. diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ko.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ko.xlf index 37bb82ef49af..79a632e40db1 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ko.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ko.xlf @@ -118,21 +118,41 @@ Examples: Invalid test message state '{0}' {0} - test message state + + Get projects properties with MSBuild didn't execute properly with exit code: {0}. + Get projects properties with MSBuild didn't execute properly with exit code: {0}. + + The max number of test modules that can run in parallel. 병렬로 실행할 수 있는 최대 테스트 모듈 수입니다. + + Specify which project or solution file to use because this folder contains more than one project or solution file. + Specify which project or solution file to use because this folder contains more than one project or solution file. + + + + Specify a project or solution file. The current working directory does not contain a project or solution file. + Specify a project or solution file. The current working directory does not contain a project or solution file. + + Do not execute an implicit restore. Do not execute an implicit restore. + + The provided project file path does not exist: {0}. + The provided project file path does not exist: {0}. + + Defines the path of the project file to run (folder name or full path). If not specified, it defaults to the current directory. Defines the path of the project file to run (folder name or full path). If not specified, it defaults to the current directory. @@ -255,6 +275,11 @@ The specified directory will be created if it does not exist. Message Request type '{0}' is unsupported. {0} - message request type + + Test runner not supported: {0}. + Test runner not supported: {0}. + + Test application(s) that support VSTest are not supported. Test application(s) that support VSTest are not supported. diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.pl.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.pl.xlf index 8d40d724227b..2d5a55fa0b94 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.pl.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.pl.xlf @@ -118,21 +118,41 @@ Przykłady: Invalid test message state '{0}' {0} - test message state + + Get projects properties with MSBuild didn't execute properly with exit code: {0}. + Get projects properties with MSBuild didn't execute properly with exit code: {0}. + + The max number of test modules that can run in parallel. Maksymalna liczba modułów testowych, które mogą być uruchamiane równolegle. + + Specify which project or solution file to use because this folder contains more than one project or solution file. + Specify which project or solution file to use because this folder contains more than one project or solution file. + + + + Specify a project or solution file. The current working directory does not contain a project or solution file. + Specify a project or solution file. The current working directory does not contain a project or solution file. + + Do not execute an implicit restore. Do not execute an implicit restore. + + The provided project file path does not exist: {0}. + The provided project file path does not exist: {0}. + + Defines the path of the project file to run (folder name or full path). If not specified, it defaults to the current directory. Defines the path of the project file to run (folder name or full path). If not specified, it defaults to the current directory. @@ -255,6 +275,11 @@ Jeśli określony katalog nie istnieje, zostanie utworzony. Message Request type '{0}' is unsupported. {0} - message request type + + Test runner not supported: {0}. + Test runner not supported: {0}. + + Test application(s) that support VSTest are not supported. Test application(s) that support VSTest are not supported. diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.pt-BR.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.pt-BR.xlf index 5eaa4668710e..d693799cad63 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.pt-BR.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.pt-BR.xlf @@ -118,21 +118,41 @@ Exemplos: Invalid test message state '{0}' {0} - test message state + + Get projects properties with MSBuild didn't execute properly with exit code: {0}. + Get projects properties with MSBuild didn't execute properly with exit code: {0}. + + The max number of test modules that can run in parallel. O número máximo de módulos de teste que podem ser executados em paralelo. + + Specify which project or solution file to use because this folder contains more than one project or solution file. + Specify which project or solution file to use because this folder contains more than one project or solution file. + + + + Specify a project or solution file. The current working directory does not contain a project or solution file. + Specify a project or solution file. The current working directory does not contain a project or solution file. + + Do not execute an implicit restore. Do not execute an implicit restore. + + The provided project file path does not exist: {0}. + The provided project file path does not exist: {0}. + + Defines the path of the project file to run (folder name or full path). If not specified, it defaults to the current directory. Defines the path of the project file to run (folder name or full path). If not specified, it defaults to the current directory. @@ -255,6 +275,11 @@ O diretório especificado será criado se ele ainda não existir. Message Request type '{0}' is unsupported. {0} - message request type + + Test runner not supported: {0}. + Test runner not supported: {0}. + + Test application(s) that support VSTest are not supported. Test application(s) that support VSTest are not supported. diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ru.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ru.xlf index a9669d9915c4..c1d07c22765b 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ru.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ru.xlf @@ -118,21 +118,41 @@ Examples: Invalid test message state '{0}' {0} - test message state + + Get projects properties with MSBuild didn't execute properly with exit code: {0}. + Get projects properties with MSBuild didn't execute properly with exit code: {0}. + + The max number of test modules that can run in parallel. Максимальное число тестовых модулей, которые могут выполняться параллельно. + + Specify which project or solution file to use because this folder contains more than one project or solution file. + Specify which project or solution file to use because this folder contains more than one project or solution file. + + + + Specify a project or solution file. The current working directory does not contain a project or solution file. + Specify a project or solution file. The current working directory does not contain a project or solution file. + + Do not execute an implicit restore. Do not execute an implicit restore. + + The provided project file path does not exist: {0}. + The provided project file path does not exist: {0}. + + Defines the path of the project file to run (folder name or full path). If not specified, it defaults to the current directory. Defines the path of the project file to run (folder name or full path). If not specified, it defaults to the current directory. @@ -255,6 +275,11 @@ The specified directory will be created if it does not exist. Message Request type '{0}' is unsupported. {0} - message request type + + Test runner not supported: {0}. + Test runner not supported: {0}. + + Test application(s) that support VSTest are not supported. Test application(s) that support VSTest are not supported. diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.tr.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.tr.xlf index 68bcd480e31b..24501aa00de8 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.tr.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.tr.xlf @@ -118,21 +118,41 @@ Bu bağımsız değişken, birden çok değişken sağlamak için birden çok ke Invalid test message state '{0}' {0} - test message state + + Get projects properties with MSBuild didn't execute properly with exit code: {0}. + Get projects properties with MSBuild didn't execute properly with exit code: {0}. + + The max number of test modules that can run in parallel. Paralel olarak çalıştırılabilecek test modüllerinin maksimum sayısı. + + Specify which project or solution file to use because this folder contains more than one project or solution file. + Specify which project or solution file to use because this folder contains more than one project or solution file. + + + + Specify a project or solution file. The current working directory does not contain a project or solution file. + Specify a project or solution file. The current working directory does not contain a project or solution file. + + Do not execute an implicit restore. Do not execute an implicit restore. + + The provided project file path does not exist: {0}. + The provided project file path does not exist: {0}. + + Defines the path of the project file to run (folder name or full path). If not specified, it defaults to the current directory. Defines the path of the project file to run (folder name or full path). If not specified, it defaults to the current directory. @@ -255,6 +275,11 @@ Belirtilen dizin yoksa oluşturulur. Message Request type '{0}' is unsupported. {0} - message request type + + Test runner not supported: {0}. + Test runner not supported: {0}. + + Test application(s) that support VSTest are not supported. Test application(s) that support VSTest are not supported. diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.zh-Hans.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.zh-Hans.xlf index e7ac40be829b..379e4b89db5f 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.zh-Hans.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.zh-Hans.xlf @@ -118,21 +118,41 @@ Examples: Invalid test message state '{0}' {0} - test message state + + Get projects properties with MSBuild didn't execute properly with exit code: {0}. + Get projects properties with MSBuild didn't execute properly with exit code: {0}. + + The max number of test modules that can run in parallel. 可并行运行的测试模块的最大数目。 + + Specify which project or solution file to use because this folder contains more than one project or solution file. + Specify which project or solution file to use because this folder contains more than one project or solution file. + + + + Specify a project or solution file. The current working directory does not contain a project or solution file. + Specify a project or solution file. The current working directory does not contain a project or solution file. + + Do not execute an implicit restore. Do not execute an implicit restore. + + The provided project file path does not exist: {0}. + The provided project file path does not exist: {0}. + + Defines the path of the project file to run (folder name or full path). If not specified, it defaults to the current directory. Defines the path of the project file to run (folder name or full path). If not specified, it defaults to the current directory. @@ -255,6 +275,11 @@ The specified directory will be created if it does not exist. Message Request type '{0}' is unsupported. {0} - message request type + + Test runner not supported: {0}. + Test runner not supported: {0}. + + Test application(s) that support VSTest are not supported. Test application(s) that support VSTest are not supported. diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.zh-Hant.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.zh-Hant.xlf index 222eb321c2c4..c6c681e48c47 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.zh-Hant.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.zh-Hant.xlf @@ -118,21 +118,41 @@ Examples: Invalid test message state '{0}' {0} - test message state + + Get projects properties with MSBuild didn't execute properly with exit code: {0}. + Get projects properties with MSBuild didn't execute properly with exit code: {0}. + + The max number of test modules that can run in parallel. 可平行執行的測試模組數目上限。 + + Specify which project or solution file to use because this folder contains more than one project or solution file. + Specify which project or solution file to use because this folder contains more than one project or solution file. + + + + Specify a project or solution file. The current working directory does not contain a project or solution file. + Specify a project or solution file. The current working directory does not contain a project or solution file. + + Do not execute an implicit restore. Do not execute an implicit restore. + + The provided project file path does not exist: {0}. + The provided project file path does not exist: {0}. + + Defines the path of the project file to run (folder name or full path). If not specified, it defaults to the current directory. Defines the path of the project file to run (folder name or full path). If not specified, it defaults to the current directory. @@ -255,6 +275,11 @@ The specified directory will be created if it does not exist. Message Request type '{0}' is unsupported. {0} - message request type + + Test runner not supported: {0}. + Test runner not supported: {0}. + + Test application(s) that support VSTest are not supported. Test application(s) that support VSTest are not supported. From 9ef2cde74708e22878f2b05b4d5d5863a34dcf0a Mon Sep 17 00:00:00 2001 From: Jan Krivanek Date: Fri, 10 Jan 2025 11:56:16 +0100 Subject: [PATCH 061/193] Update MSB3825 warning presence --- .../Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.targets index 269f1a45c5d7..c58a2f3096b5 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.targets @@ -103,7 +103,7 @@ Copyright (c) .NET Foundation. All rights reserved. true - + true From 6b3a36d7790618fef7a00f4cbcc5d80aeb371b7a Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Fri, 10 Jan 2025 12:03:16 +0100 Subject: [PATCH 062/193] Use Windows scouting image in VMR to unblock builds (#45857) --- eng/pipelines/templates/variables/vmr-build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/eng/pipelines/templates/variables/vmr-build.yml b/eng/pipelines/templates/variables/vmr-build.yml index b689b821f8e6..575a5964d61d 100644 --- a/eng/pipelines/templates/variables/vmr-build.yml +++ b/eng/pipelines/templates/variables/vmr-build.yml @@ -150,8 +150,9 @@ variables: value: Docker-Linux-Arm-Public - name: poolImage_Mac value: macos-13 + # TODO: Change back to preview image when it has a recent enough version of VS installed. - name: poolImage_Windows - value: windows.vs2022preview.amd64.open + value: windows.vs2022preview.scout.amd64.open - ${{ else }}: - ${{ if in(variables['Build.Reason'], 'PullRequest') }}: - name: defaultPoolName From 2d6bc4f67df6fdfe8fe299a37c8e4894d480759e Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 10 Jan 2025 16:55:09 +0100 Subject: [PATCH 063/193] [main] Update dependencies from dotnet/windowsdesktop (#45853) Co-authored-by: dotnet-maestro[bot] Co-authored-by: Viktor Hofer --- eng/Version.Details.xml | 28 +- eng/Versions.props | 12 +- .../0001-Fix-code-analysis-issues.patch | 307 ------------------ 3 files changed, 20 insertions(+), 327 deletions(-) delete mode 100644 src/SourceBuild/patches/winforms/0001-Fix-code-analysis-issues.patch diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 34b4e23e5fc3..7ed1b7353c34 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -254,26 +254,26 @@ https://github.com/dotnet/runtime 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/windowsdesktop - 5ab6ad62c1cfb74bc02313d4e402b224440be94c + f222b11af3848fcdae7fd071cef42a5d53d106a0 - + https://github.com/dotnet/windowsdesktop - 5ab6ad62c1cfb74bc02313d4e402b224440be94c + f222b11af3848fcdae7fd071cef42a5d53d106a0 - + https://github.com/dotnet/windowsdesktop - 5ab6ad62c1cfb74bc02313d4e402b224440be94c + f222b11af3848fcdae7fd071cef42a5d53d106a0 - + https://github.com/dotnet/windowsdesktop - 5ab6ad62c1cfb74bc02313d4e402b224440be94c + f222b11af3848fcdae7fd071cef42a5d53d106a0 - + https://github.com/dotnet/wpf - 13ba88319d24dc9bdef6e4d18361d2153c8a4fe8 + 8e79c0b3980f0670bcc68d7f1ee7f06ff256ec94 https://github.com/dotnet/aspnetcore @@ -360,13 +360,13 @@ 77b91e15c1403acd793322b7163469ad7d8babf9 - + https://github.com/dotnet/winforms - ce6b6c2e675edbb52900ca75f66603d2468c5034 + 927806ea97973240d7395970309d106f2d65c6d0 - + https://github.com/dotnet/wpf - 13ba88319d24dc9bdef6e4d18361d2153c8a4fe8 + 8e79c0b3980f0670bcc68d7f1ee7f06ff256ec94 https://github.com/dotnet/xdt diff --git a/eng/Versions.props b/eng/Versions.props index b3358876abf2..5e85d71fde08 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -83,7 +83,7 @@ - 10.0.0-alpha.1.25058.9 + 10.0.0-alpha.1.25059.1 @@ -136,9 +136,9 @@ - 10.0.0-alpha.1.25059.1 - 10.0.0-alpha.1.25059.1 - 10.0.0-alpha.1.25059.1 + 10.0.0-alpha.1.25059.2 + 10.0.0-alpha.1.25059.2 + 10.0.0-alpha.1.25059.2 @@ -242,8 +242,8 @@ - 10.0.0-alpha.1.25058.3 - 10.0.0-alpha.1.25058.3 + 10.0.0-alpha.1.25059.2 + 10.0.0-alpha.1.25059.2 diff --git a/src/SourceBuild/patches/winforms/0001-Fix-code-analysis-issues.patch b/src/SourceBuild/patches/winforms/0001-Fix-code-analysis-issues.patch deleted file mode 100644 index 00000140e9d2..000000000000 --- a/src/SourceBuild/patches/winforms/0001-Fix-code-analysis-issues.patch +++ /dev/null @@ -1,307 +0,0 @@ -From 03549bcc6e902a551be08339490e9f13db217ad6 Mon Sep 17 00:00:00 2001 -From: Matt Thalman -Date: Wed, 8 Jan 2025 07:20:08 -0600 -Subject: [PATCH] Fix code analysis issues - -Backport: https://github.com/dotnet/winforms/pull/12735 ---- - .../Drawing/Printing/PrinterSettings.StringCollection.cs | 2 +- - .../System/Collections/Generic/CollectionExtensions.cs | 2 +- - .../System/Drawing/IIcon.cs | 2 +- - .../CollectionEditor.CollectionEditorCollectionForm.cs | 2 +- - .../src/System/ComponentModel/Design/DesignerHost.cs | 2 +- - ...omSerializationStore.ComponentListCodeDomSerializer.cs | 2 +- - .../Windows/Forms/Design/Behavior/SelectionManager.cs | 4 ++-- - .../Forms/Design/Behavior/TableLayoutPanelBehavior.cs | 2 +- - .../Design/Behavior/ToolStripPanelSelectionBehavior.cs | 2 +- - .../src/System/Windows/Forms/Design/CommandSet.cs | 2 +- - .../Windows/Forms/Design/FlowLayoutPanelDesigner .cs | 2 +- - .../src/System/Windows/Forms/Design/OleDragDropHandler.cs | 2 +- - .../Windows/Forms/Design/TableLayoutPanelDesigner.cs | 2 +- - .../Windows/Forms/ActiveX/AxHost.AxPropertyDescriptor.cs | 2 +- - .../ComponentModel/COM2Interop/COM2PropertyDescriptor.cs | 2 +- - .../COM2Interop/ICom2ExtendedBrowsingHandler.cs | 4 ++-- - .../System/Windows/Forms/Controls/ComboBox/ComboBox.cs | 2 +- - .../System/Windows/Forms/Controls/ToolStrips/ToolStrip.cs | 2 +- - .../Forms/Controls/ToolStrips/ToolStripDropDown.cs | 2 +- - .../Windows/Forms/Dialogs/TaskDialog/TaskDialogPage.cs | 8 ++++---- - 20 files changed, 25 insertions(+), 25 deletions(-) - -diff --git a/src/System.Drawing.Common/src/System/Drawing/Printing/PrinterSettings.StringCollection.cs b/src/System.Drawing.Common/src/System/Drawing/Printing/PrinterSettings.StringCollection.cs -index 15dc585aa..d063cdd21 100644 ---- a/src/System.Drawing.Common/src/System/Drawing/Printing/PrinterSettings.StringCollection.cs -+++ b/src/System.Drawing.Common/src/System/Drawing/Printing/PrinterSettings.StringCollection.cs -@@ -15,7 +15,7 @@ public partial class PrinterSettings - /// - /// Initializes a new instance of the class. - /// -- public StringCollection(string[] array) => _list = new(array); -+ public StringCollection(string[] array) => _list = [..array]; - - /// - /// Gets a value indicating the number of strings. -diff --git a/src/System.Private.Windows.Core/src/System/Collections/Generic/CollectionExtensions.cs b/src/System.Private.Windows.Core/src/System/Collections/Generic/CollectionExtensions.cs -index 15dd20bbf..eb0852ff0 100644 ---- a/src/System.Private.Windows.Core/src/System/Collections/Generic/CollectionExtensions.cs -+++ b/src/System.Private.Windows.Core/src/System/Collections/Generic/CollectionExtensions.cs -@@ -25,7 +25,7 @@ internal static class CollectionExtensions - } - - // Fall back to just setting the count (by removing). -- List list = new(readOnlyList); -+ List list = [..readOnlyList]; - list.RemoveRange(count, list.Count - count); - return list; - } -diff --git a/src/System.Private.Windows.GdiPlus/System/Drawing/IIcon.cs b/src/System.Private.Windows.GdiPlus/System/Drawing/IIcon.cs -index 7b53bdaf0..5eed2338f 100644 ---- a/src/System.Private.Windows.GdiPlus/System/Drawing/IIcon.cs -+++ b/src/System.Private.Windows.GdiPlus/System/Drawing/IIcon.cs -@@ -5,5 +5,5 @@ namespace System.Drawing; - - internal interface IIcon : IHandle - { -- public Size Size { get; } -+ Size Size { get; } - } -diff --git a/src/System.Windows.Forms.Design/src/System/ComponentModel/Design/CollectionEditor.CollectionEditorCollectionForm.cs b/src/System.Windows.Forms.Design/src/System/ComponentModel/Design/CollectionEditor.CollectionEditorCollectionForm.cs -index e5428772c..d30b80ffb 100644 ---- a/src/System.Windows.Forms.Design/src/System/ComponentModel/Design/CollectionEditor.CollectionEditorCollectionForm.cs -+++ b/src/System.Windows.Forms.Design/src/System/ComponentModel/Design/CollectionEditor.CollectionEditorCollectionForm.cs -@@ -807,7 +807,7 @@ public partial class CollectionEditor - { - if (_listBox.SelectedItems.Count > 1) - { -- List toBeDeleted = _listBox.SelectedItems.Cast().ToList(); -+ List toBeDeleted = [.._listBox.SelectedItems.Cast()]; - foreach (ListItem item in toBeDeleted) - { - RemoveInternal(item); -diff --git a/src/System.Windows.Forms.Design/src/System/ComponentModel/Design/DesignerHost.cs b/src/System.Windows.Forms.Design/src/System/ComponentModel/Design/DesignerHost.cs -index 0e5f01025..1260870a2 100644 ---- a/src/System.Windows.Forms.Design/src/System/ComponentModel/Design/DesignerHost.cs -+++ b/src/System.Windows.Forms.Design/src/System/ComponentModel/Design/DesignerHost.cs -@@ -1119,7 +1119,7 @@ internal sealed partial class DesignerHost : Container, IDesignerLoaderHost2, ID - _state[s_stateLoading] = true; - Unload(); - -- List errorList = errorCollection is null ? [] : errorCollection.Cast().ToList(); -+ List errorList = errorCollection is null ? [] : [..errorCollection.Cast()]; - errorList.Insert(0, ex); - - errorCollection = errorList; -diff --git a/src/System.Windows.Forms.Design/src/System/ComponentModel/Design/Serialization/CodeDomComponentSerializationService.CodeDomSerializationStore.ComponentListCodeDomSerializer.cs b/src/System.Windows.Forms.Design/src/System/ComponentModel/Design/Serialization/CodeDomComponentSerializationService.CodeDomSerializationStore.ComponentListCodeDomSerializer.cs -index 9eb2a6a71..cb2e80289 100644 ---- a/src/System.Windows.Forms.Design/src/System/ComponentModel/Design/Serialization/CodeDomComponentSerializationService.CodeDomSerializationStore.ComponentListCodeDomSerializer.cs -+++ b/src/System.Windows.Forms.Design/src/System/ComponentModel/Design/Serialization/CodeDomComponentSerializationService.CodeDomSerializationStore.ComponentListCodeDomSerializer.cs -@@ -91,7 +91,7 @@ public sealed partial class CodeDomComponentSerializationService - - // We need to also ensure that for every entry in the statement table we have a - // corresponding entry in objectNames. Otherwise, we won't deserialize completely. -- HashSet completeNames = new(objectNames); -+ HashSet completeNames = [..objectNames]; - completeNames.UnionWith(_statementsTable.Keys); - - _objectState = new(objectState); -diff --git a/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/Behavior/SelectionManager.cs b/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/Behavior/SelectionManager.cs -index 73648af22..23bbac7ba 100644 ---- a/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/Behavior/SelectionManager.cs -+++ b/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/Behavior/SelectionManager.cs -@@ -257,7 +257,7 @@ internal sealed class SelectionManager : IDisposable - /// - private void OnBeginDrag(object? source, BehaviorDragDropEventArgs e) - { -- List dragComps = e.DragComponents.Cast().ToList(); -+ List dragComps = [..e.DragComponents.Cast()]; - List glyphsToRemove = []; - foreach (ControlBodyGlyph g in BodyGlyphAdorner.Glyphs) - { -@@ -412,7 +412,7 @@ internal sealed class SelectionManager : IDisposable - SelectionGlyphAdorner.Glyphs.Clear(); - BodyGlyphAdorner.Glyphs.Clear(); - -- List selComps = _selectionService.GetSelectedComponents().Cast().ToList(); -+ List selComps = [.._selectionService.GetSelectedComponents().Cast()]; - object? primarySelection = _selectionService.PrimarySelection; - - // add all control glyphs to all controls on rootComp -diff --git a/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/Behavior/TableLayoutPanelBehavior.cs b/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/Behavior/TableLayoutPanelBehavior.cs -index eb6b29b06..a0514c3ac 100644 ---- a/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/Behavior/TableLayoutPanelBehavior.cs -+++ b/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/Behavior/TableLayoutPanelBehavior.cs -@@ -166,7 +166,7 @@ internal class TableLayoutPanelBehavior : Behavior - { - if ((_styles is null || isColumn != _currentColumnStyles) && _table is not null) - { -- _styles = ((TableLayoutStyleCollection)_changedProp.GetValue(_table)).Cast().ToList(); -+ _styles = [..((TableLayoutStyleCollection)_changedProp.GetValue(_table)).Cast()]; - _currentColumnStyles = isColumn; - } - } -diff --git a/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/Behavior/ToolStripPanelSelectionBehavior.cs b/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/Behavior/ToolStripPanelSelectionBehavior.cs -index e717ea8d0..1f5aa98e0 100644 ---- a/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/Behavior/ToolStripPanelSelectionBehavior.cs -+++ b/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/Behavior/ToolStripPanelSelectionBehavior.cs -@@ -223,7 +223,7 @@ internal sealed class ToolStripPanelSelectionBehavior : Behavior - - if (e.Data is DropSourceBehavior.BehaviorDataObject data) - { -- components = new List(data.DragComponents); -+ components = [..data.DragComponents]; - - foreach (IComponent dragComponent in components) - { -diff --git a/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/CommandSet.cs b/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/CommandSet.cs -index d39ed9f70..2b4645fd5 100644 ---- a/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/CommandSet.cs -+++ b/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/CommandSet.cs -@@ -804,7 +804,7 @@ internal partial class CommandSet : IDisposable - // Don't snap if we are moving a component in the ComponentTray - if (invertSnap && useSnapLines && primaryControl is not null && comp.Site is not null) - { -- List selComps = SelectionService.GetSelectedComponents().Cast().ToList(); -+ List selComps = [..SelectionService.GetSelectedComponents().Cast()]; - - // create our snapline engine - dragManager = new DragAssistanceManager(comp.Site, selComps); -diff --git a/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/FlowLayoutPanelDesigner .cs b/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/FlowLayoutPanelDesigner .cs -index 3db868f5c..0e92902a0 100644 ---- a/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/FlowLayoutPanelDesigner .cs -+++ b/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/FlowLayoutPanelDesigner .cs -@@ -757,7 +757,7 @@ internal partial class FlowLayoutPanelDesigner : FlowPanelDesigner - // Get the sorted drag controls. We use these for an internal drag. - if (de.Data is DropSourceBehavior.BehaviorDataObject data) - { -- _dragControls = data.GetSortedDragControls(out int primaryIndex).OfType().ToList(); -+ _dragControls = [..data.GetSortedDragControls(out int primaryIndex).OfType()]; - _primaryDragControl = _dragControls[primaryIndex]; - } - -diff --git a/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/OleDragDropHandler.cs b/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/OleDragDropHandler.cs -index bcf00c49a..8adc80b1c 100644 ---- a/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/OleDragDropHandler.cs -+++ b/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/OleDragDropHandler.cs -@@ -257,7 +257,7 @@ internal partial class OleDragDropHandler - { - host?.Activate(); - -- List selectComps = new(comps); -+ List selectComps = [..comps]; - - for (int i = 0; i < comps.Length; i++) - { -diff --git a/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/TableLayoutPanelDesigner.cs b/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/TableLayoutPanelDesigner.cs -index 1ea69253c..7f8d0da94 100644 ---- a/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/TableLayoutPanelDesigner.cs -+++ b/src/System.Windows.Forms.Design/src/System/Windows/Forms/Design/TableLayoutPanelDesigner.cs -@@ -952,7 +952,7 @@ internal partial class TableLayoutPanelDesigner : FlowPanelDesigner - { - if (de.Data is DropSourceBehavior.BehaviorDataObject data) - { -- _dragComponents = new List(data.DragComponents); -+ _dragComponents = [..data.DragComponents]; - return _dragComponents[0] as Control; - } - -diff --git a/src/System.Windows.Forms/src/System/Windows/Forms/ActiveX/AxHost.AxPropertyDescriptor.cs b/src/System.Windows.Forms/src/System/Windows/Forms/ActiveX/AxHost.AxPropertyDescriptor.cs -index 0d60dda12..d66e015cd 100644 ---- a/src/System.Windows.Forms/src/System/Windows/Forms/ActiveX/AxHost.AxPropertyDescriptor.cs -+++ b/src/System.Windows.Forms/src/System/Windows/Forms/ActiveX/AxHost.AxPropertyDescriptor.cs -@@ -254,7 +254,7 @@ public abstract partial class AxHost - return; - } - -- List attributes = new(AttributeArray!); -+ List attributes = [..AttributeArray!]; - attributes.AddRange(_updateAttributes); - AttributeArray = [.. attributes]; - _updateAttributes.Clear(); -diff --git a/src/System.Windows.Forms/src/System/Windows/Forms/ComponentModel/COM2Interop/COM2PropertyDescriptor.cs b/src/System.Windows.Forms/src/System/Windows/Forms/ComponentModel/COM2Interop/COM2PropertyDescriptor.cs -index 33dd3d9e8..53a8148a3 100644 ---- a/src/System.Windows.Forms/src/System/Windows/Forms/ComponentModel/COM2Interop/COM2PropertyDescriptor.cs -+++ b/src/System.Windows.Forms/src/System/Windows/Forms/ComponentModel/COM2Interop/COM2PropertyDescriptor.cs -@@ -238,7 +238,7 @@ internal unsafe partial class Com2PropertyDescriptor : PropertyDescriptor, IClon - - if (attributeList.Count > 0) - { -- newAttributes ??= new(AttributeArray); -+ newAttributes ??= [..AttributeArray]; - - // Push any new attributes into the base type. - for (int i = 0; i < attributeList.Count; i++) -diff --git a/src/System.Windows.Forms/src/System/Windows/Forms/ComponentModel/COM2Interop/ICom2ExtendedBrowsingHandler.cs b/src/System.Windows.Forms/src/System/Windows/Forms/ComponentModel/COM2Interop/ICom2ExtendedBrowsingHandler.cs -index 291b42c5d..8fb6a7b67 100644 ---- a/src/System.Windows.Forms/src/System/Windows/Forms/ComponentModel/COM2Interop/ICom2ExtendedBrowsingHandler.cs -+++ b/src/System.Windows.Forms/src/System/Windows/Forms/ComponentModel/COM2Interop/ICom2ExtendedBrowsingHandler.cs -@@ -21,11 +21,11 @@ internal unsafe interface ICom2ExtendedBrowsingHandler - /// - /// Returns if the given object is supported by this type. - /// -- public bool ObjectSupportsInterface(object @object); -+ bool ObjectSupportsInterface(object @object); - - /// - /// Called to setup the property handlers on a given property. In this method, the handler will add listeners - /// to the events that the surfaces that it cares about. - /// -- public void RegisterEvents(Com2PropertyDescriptor[]? properties); -+ void RegisterEvents(Com2PropertyDescriptor[]? properties); - } -diff --git a/src/System.Windows.Forms/src/System/Windows/Forms/Controls/ComboBox/ComboBox.cs b/src/System.Windows.Forms/src/System/Windows/Forms/Controls/ComboBox/ComboBox.cs -index d078054db..95f65362b 100644 ---- a/src/System.Windows.Forms/src/System/Windows/Forms/Controls/ComboBox/ComboBox.cs -+++ b/src/System.Windows.Forms/src/System/Windows/Forms/Controls/ComboBox/ComboBox.cs -@@ -2052,7 +2052,7 @@ public partial class ComboBox : ListControl - else - { - // Remove one character from matching text and rematch -- MatchingText = MatchingText.Remove(MatchingText.Length - 1); -+ MatchingText = MatchingText[..^1]; - SelectedIndex = FindString(MatchingText); - } - -diff --git a/src/System.Windows.Forms/src/System/Windows/Forms/Controls/ToolStrips/ToolStrip.cs b/src/System.Windows.Forms/src/System/Windows/Forms/Controls/ToolStrips/ToolStrip.cs -index 040b4ff8e..4775f3e96 100644 ---- a/src/System.Windows.Forms/src/System/Windows/Forms/Controls/ToolStrips/ToolStrip.cs -+++ b/src/System.Windows.Forms/src/System/Windows/Forms/Controls/ToolStrips/ToolStrip.cs -@@ -3933,7 +3933,7 @@ public partial class ToolStrip : ScrollableControl, IArrangedElement, ISupportTo - /// contains ToolStrip or ToolStripDropDown items to disconnect - internal virtual void ReleaseToolStripItemsProviders(ToolStripItemCollection items) - { -- ToolStripItem[] itemsArray = items.Cast().ToArray(); -+ ToolStripItem[] itemsArray = [..items.Cast()]; - foreach (ToolStripItem toolStripItem in itemsArray) - { - if (toolStripItem is ToolStripDropDownItem dropDownItem && dropDownItem.DropDownItems.Count > 0) -diff --git a/src/System.Windows.Forms/src/System/Windows/Forms/Controls/ToolStrips/ToolStripDropDown.cs b/src/System.Windows.Forms/src/System/Windows/Forms/Controls/ToolStrips/ToolStripDropDown.cs -index 83777ba57..573607e61 100644 ---- a/src/System.Windows.Forms/src/System/Windows/Forms/Controls/ToolStrips/ToolStripDropDown.cs -+++ b/src/System.Windows.Forms/src/System/Windows/Forms/Controls/ToolStrips/ToolStripDropDown.cs -@@ -1948,7 +1948,7 @@ public partial class ToolStripDropDown : ToolStrip - } - else - { -- List dropDowns = new(ActiveDropDowns); -+ List dropDowns = [..ActiveDropDowns]; - - // We can't iterate through the active dropdown collection - // here as changing visibility changes the collection. -diff --git a/src/System.Windows.Forms/src/System/Windows/Forms/Dialogs/TaskDialog/TaskDialogPage.cs b/src/System.Windows.Forms/src/System/Windows/Forms/Dialogs/TaskDialog/TaskDialogPage.cs -index 40be8a27f..f8b6f7f43 100644 ---- a/src/System.Windows.Forms/src/System/Windows/Forms/Dialogs/TaskDialog/TaskDialogPage.cs -+++ b/src/System.Windows.Forms/src/System/Windows/Forms/Dialogs/TaskDialog/TaskDialogPage.cs -@@ -868,10 +868,10 @@ public class TaskDialogPage - radioButtons.BoundPage = this; - - // Sort the buttons. -- _boundCustomButtons = buttons.Where(e => !e.IsStandardButton).ToArray(); -- _boundStandardButtonsByID = new Dictionary( -- buttons.Where(e => e.IsStandardButton) -- .Select(e => new KeyValuePair(e.ButtonID, e))); -+ _boundCustomButtons = [..buttons.Where(e => !e.IsStandardButton)]; -+ _boundStandardButtonsByID = buttons -+ .Where(e => e.IsStandardButton) -+ .ToDictionary(e => e.ButtonID); - - // Assign IDs to the buttons based on their index. - defaultButtonID = 0; From 16ccea5ffefe59f4724a3f5ba527b8d36e050e7c Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 10 Jan 2025 16:14:29 +0000 Subject: [PATCH 064/193] [main] Update dependencies from dotnet/msbuild (#45846) Co-authored-by: dotnet-maestro[bot] Co-authored-by: Viktor Hofer --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 7ed1b7353c34..808320cb70c2 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -73,18 +73,18 @@ 6ee0290df7381d7b9c4887b440e1a2815dc72407 - + https://github.com/dotnet/msbuild - 6ea6901b3aec1feaa989df8a5e0eb3e728bbc117 + 01501b7d0f9a09dfb71717c5b55a55d75f5af354 - + https://github.com/dotnet/msbuild - 6ea6901b3aec1feaa989df8a5e0eb3e728bbc117 + 01501b7d0f9a09dfb71717c5b55a55d75f5af354 - + https://github.com/dotnet/msbuild - 6ea6901b3aec1feaa989df8a5e0eb3e728bbc117 + 01501b7d0f9a09dfb71717c5b55a55d75f5af354 diff --git a/eng/Versions.props b/eng/Versions.props index 5e85d71fde08..0746c3b73390 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -185,8 +185,8 @@ At usage sites, either we use MicrosoftBuildMinimumVersion, or MicrosoftBuildVersion in source-only modes. Additionally, set the MinimumVSVersion for the installer UI that's required for targeting NetCurrent --> - 17.14.0-preview-25058-09 - 17.14.0-preview-25058-09 + 17.14.0-preview-25059-08 + 17.14.0-preview-25059-08 17.11.4 17.12 From 2f9b4cb0ecfcdc94494ead354a9add47806c8f0a Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 10 Jan 2025 17:15:44 +0000 Subject: [PATCH 065/193] Update dependencies from https://github.com/microsoft/vstest build 20250110.3 Microsoft.SourceBuild.Intermediate.vstest , Microsoft.NET.Test.Sdk , Microsoft.TestPlatform.Build , Microsoft.TestPlatform.CLI From Version 17.13.0-preview-25059-02 -> To Version 17.13.0-preview-25060-03 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 808320cb70c2..70a4815bcc71 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -212,22 +212,22 @@ https://github.com/nuget/nuget.client c4b26195ee5a77e70b2ea5fd50db87d6a9194c24 - + https://github.com/microsoft/vstest - 8d080dfdb76633bcac69a90d031a31694908ecaa + bcef12d909709f13027afe1557c724f11bc8df05 - + https://github.com/microsoft/vstest - 8d080dfdb76633bcac69a90d031a31694908ecaa + bcef12d909709f13027afe1557c724f11bc8df05 - + https://github.com/microsoft/vstest - 8d080dfdb76633bcac69a90d031a31694908ecaa + bcef12d909709f13027afe1557c724f11bc8df05 - + https://github.com/microsoft/vstest - 8d080dfdb76633bcac69a90d031a31694908ecaa + bcef12d909709f13027afe1557c724f11bc8df05 diff --git a/eng/Versions.props b/eng/Versions.props index 0746c3b73390..76512cce1476 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -157,9 +157,9 @@ - 17.13.0-preview-25059-02 - 17.13.0-preview-25059-02 - 17.13.0-preview-25059-02 + 17.13.0-preview-25060-03 + 17.13.0-preview-25060-03 + 17.13.0-preview-25060-03 From 900b9303a8f00566a855955402c2984d4a02f22e Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 10 Jan 2025 19:42:50 +0100 Subject: [PATCH 066/193] [main] Update dependencies from microsoft/testfx (#45816) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: dotnet-maestro[bot] Co-authored-by: Forgind <12969783+Forgind@users.noreply.github.com> Co-authored-by: Alexander Köplinger --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 808320cb70c2..a0aa011e324c 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -634,13 +634,13 @@ https://github.com/dotnet/runtime e77011b31a3e5c47d931248a64b47f9b2d47853d - + https://github.com/microsoft/testfx - e8edc352e84880a7bc9d3b23fe1eb2d14fa8f229 + 53488cf463d33882113ca7a6fbbb6f93e06251df - + https://github.com/microsoft/testfx - e8edc352e84880a7bc9d3b23fe1eb2d14fa8f229 + 53488cf463d33882113ca7a6fbbb6f93e06251df diff --git a/eng/Versions.props b/eng/Versions.props index 0746c3b73390..1066c4d8e135 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -28,7 +28,7 @@ true 6.0.1 true - 1.6.0-preview.25057.8 + 1.6.0-preview.25059.14 30 @@ -285,7 +285,7 @@ 6.12.0 6.1.0 4.18.4 - 3.8.0-preview.25057.8 + 3.8.0-preview.25059.14 1.3.2 8.0.0-beta.23607.1 From 0a4857228f21f45efbba93fc22d866a84f980392 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 10 Jan 2025 20:07:21 +0100 Subject: [PATCH 067/193] [main] Update dependencies from dotnet/templating (#45858) Co-authored-by: dotnet-maestro[bot] Co-authored-by: Viktor Hofer --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a0aa011e324c..a8d4a31b290b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,18 +1,18 @@ - + https://github.com/dotnet/templating - 486ca10c31ee3c31e9ad9ab9c06fbb37b6cf789e + d7f0bf0d7f983456641e7640708a62c4f0a63620 - + https://github.com/dotnet/templating - 486ca10c31ee3c31e9ad9ab9c06fbb37b6cf789e + d7f0bf0d7f983456641e7640708a62c4f0a63620 - + https://github.com/dotnet/templating - 486ca10c31ee3c31e9ad9ab9c06fbb37b6cf789e + d7f0bf0d7f983456641e7640708a62c4f0a63620 diff --git a/eng/Versions.props b/eng/Versions.props index 1066c4d8e135..385f2d20439e 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -192,13 +192,13 @@ - 10.0.100-alpha.1.25058.4 + 10.0.100-alpha.1.25060.1 $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) - 10.0.100-alpha.1.25058.4 + 10.0.100-alpha.1.25060.1 $(MicrosoftTemplateEngineMocksPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineMocksPackageVersion) From 41bcaa914b54c96ad20e784d0baeccf2d7ab7fa1 Mon Sep 17 00:00:00 2001 From: Matt Thalman Date: Fri, 10 Jan 2025 13:33:56 -0600 Subject: [PATCH 068/193] Enable SB stage 2 builds in PR validation (#45865) --- eng/pipelines/templates/stages/vmr-build.yml | 41 ++++++++++---------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/eng/pipelines/templates/stages/vmr-build.yml b/eng/pipelines/templates/stages/vmr-build.yml index cfc3f558c35f..bf59dff17caa 100644 --- a/eng/pipelines/templates/stages/vmr-build.yml +++ b/eng/pipelines/templates/stages/vmr-build.yml @@ -103,30 +103,29 @@ stages: useMonoRuntime: false # 🚫 withPreviousSDK: false # 🚫 + - template: ../jobs/vmr-build.yml + parameters: + buildName: ${{ format('{0}_Offline_CurrentSourceBuiltSdk', variables.centOSStreamName) }} + isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} + vmrBranch: ${{ variables.VmrBranch }} + targetArchitecture: x64 + pool: ${{ parameters.pool_Linux }} + container: + name: ${{ variables.centOSStreamContainerName }} + image: ${{ variables.centOSStreamContainerImage }} + buildFromArchive: false # 🚫 + buildSourceOnly: true # ✅ + enablePoison: false # 🚫 + excludeOmniSharpTests: true # ✅ + runOnline: false # 🚫 + useMonoRuntime: false # 🚫 + withPreviousSDK: false # 🚫 + reuseBuildArtifactsFrom: + - ${{ format('{0}_Online_MsftSdk_x64', variables.centOSStreamName) }} + ### Additional jobs for lite/full builds ### - ${{ if in(parameters.scope, 'lite', 'full') }}: - - template: ../jobs/vmr-build.yml - parameters: - # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline - buildName: ${{ format('{0}_Online_CurrentSourceBuiltSdk', variables.centOSStreamName) }} - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - targetArchitecture: x64 - pool: ${{ parameters.pool_Linux }} - container: - name: ${{ variables.centOSStreamContainerName }} - image: ${{ variables.centOSStreamContainerImage }} - buildFromArchive: false # 🚫 - buildSourceOnly: true # ✅ - enablePoison: false # 🚫 - excludeOmniSharpTests: true # ✅ - runOnline: true # ✅ - useMonoRuntime: false # 🚫 - withPreviousSDK: false # 🚫 - reuseBuildArtifactsFrom: - - ${{ format('{0}_Online_MsftSdk_x64', variables.centOSStreamName) }} - # Disabled due to https://github.com/dotnet/source-build/issues/4819 # - template: ../jobs/vmr-build.yml # parameters: From f32825168c069173ff061f6a8b5e8d34a7d89daf Mon Sep 17 00:00:00 2001 From: Adeel Mujahid <3840695+am11@users.noreply.github.com> Date: Fri, 10 Jan 2025 23:03:18 +0200 Subject: [PATCH 069/193] Add linux-riscv64 in ILCompilerSupportedRids (#45852) Co-authored-by: Viktor Hofer --- .../targets/GenerateBundledVersions.targets | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Installer/redist-installer/targets/GenerateBundledVersions.targets b/src/Installer/redist-installer/targets/GenerateBundledVersions.targets index 6d2284069604..3d0600418a92 100644 --- a/src/Installer/redist-installer/targets/GenerateBundledVersions.targets +++ b/src/Installer/redist-installer/targets/GenerateBundledVersions.targets @@ -385,9 +385,13 @@ win-x86; " /> - - + Date: Fri, 10 Jan 2025 21:33:36 +0000 Subject: [PATCH 070/193] [main] Update dependencies from dotnet/source-build-reference-packages (#45813) Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a8d4a31b290b..bcfaeeb526b6 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -421,9 +421,9 @@ - + https://github.com/dotnet/source-build-reference-packages - 72009fb6ce7327430539004be1dcbfb6fb88adab + 1d0bf118044fc096231bfba85b0cd68aad0d1507 From 775ac0ced813a278c7341dfd777c545e43c0167c Mon Sep 17 00:00:00 2001 From: Fred Silberberg Date: Fri, 10 Jan 2025 14:02:52 -0800 Subject: [PATCH 071/193] Turn on the Roslyn lexer by default for .NET 10 Razor projects (#45808) --- .../Targets/Sdk.Razor.CurrentVersion.targets | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/RazorSdk/Targets/Sdk.Razor.CurrentVersion.targets b/src/RazorSdk/Targets/Sdk.Razor.CurrentVersion.targets index 6d9b3fa9307c..919d24fa54a5 100644 --- a/src/RazorSdk/Targets/Sdk.Razor.CurrentVersion.targets +++ b/src/RazorSdk/Targets/Sdk.Razor.CurrentVersion.targets @@ -44,6 +44,21 @@ Copyright (c) .NET Foundation. All rights reserved. + + + <_TargetingNETCoreApp30OrLater>true + <_TargetingNET50OrLater>true + <_TargetingNET60OrLater>true + <_TargetingNET70OrLater>true + <_TargetingNET80OrLater>true + <_TargetingNET90OrLater>true + <_TargetingNET100OrLater>true + true + 9.0 + <_RazorUseRoslynTokenizer Condition="'$(_RazorUseRoslynTokenizer)'==''">true + use-roslyn-tokenizer=true;$(Features) + + <_TargetingNETCoreApp30OrLater>true From 8e40f729550fff988e19299a13a93f4a56fbc128 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Sat, 11 Jan 2025 00:23:44 +0000 Subject: [PATCH 072/193] [main] Update dependencies from dotnet/arcade-services (#45863) Co-authored-by: dotnet-maestro[bot] --- .config/dotnet-tools.json | 2 +- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index dc53f6d30a4f..d21983af23ee 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -3,7 +3,7 @@ "isRoot": true, "tools": { "microsoft.dotnet.darc": { - "version": "1.1.0-beta.25056.6", + "version": "1.1.0-beta.25060.1", "commands": [ "darc" ] diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index bcfaeeb526b6..e02d129b0777 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -593,13 +593,13 @@ https://github.com/dotnet/runtime 45155059d0b070e8ac0f6ad8f4909448e7eadd42 - + https://github.com/dotnet/arcade-services - 4b4c10faea021e1f895531b8cbae7c3ec320e0dc + e38ee48c4ae68ebf65a3a4eab89320d730369cbd - + https://github.com/dotnet/arcade-services - 4b4c10faea021e1f895531b8cbae7c3ec320e0dc + e38ee48c4ae68ebf65a3a4eab89320d730369cbd https://github.com/dotnet/scenario-tests diff --git a/eng/Versions.props b/eng/Versions.props index 385f2d20439e..22ae9153f44e 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -75,7 +75,7 @@ - 1.1.0-beta.25056.6 + 1.1.0-beta.25060.1 From 8e888104c7f700af311e0f58fb20171580ce4549 Mon Sep 17 00:00:00 2001 From: ".NET Source-Build Bot" <102560831+dotnet-sb-bot@users.noreply.github.com> Date: Sat, 11 Jan 2025 02:07:21 +0100 Subject: [PATCH 073/193] Re-Bootstrap Source Build to .NET 10.0.100-alpha.1.25060.1 (#45879) --- src/SourceBuild/content/eng/Version.Details.xml | 4 ++-- src/SourceBuild/content/eng/Versions.props | 4 ++-- src/SourceBuild/content/global.json | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/SourceBuild/content/eng/Version.Details.xml b/src/SourceBuild/content/eng/Version.Details.xml index 4935f16f4ac0..2c95a72be894 100644 --- a/src/SourceBuild/content/eng/Version.Details.xml +++ b/src/SourceBuild/content/eng/Version.Details.xml @@ -2,9 +2,9 @@ - + https://github.com/dotnet/arcade - 43494f7be1c54e6a065f02f92842e08f29a1ff6f + e7cb34898a1b610eb2a22591a2178da6f1fb7e3c diff --git a/src/SourceBuild/content/eng/Versions.props b/src/SourceBuild/content/eng/Versions.props index 4e5c1530e172..ed08a68c0628 100644 --- a/src/SourceBuild/content/eng/Versions.props +++ b/src/SourceBuild/content/eng/Versions.props @@ -23,8 +23,8 @@ of a .NET major or minor release, prebuilts may be needed. When the release is mature, prebuilts are not necessary, and this property is removed from the file. --> - 10.0.100-alpha.1.25059.1 - 10.0.100-alpha.1.25059.1 + 10.0.100-alpha.1.25060.1 + 10.0.100-alpha.1.25060.1 0.1.0-10.0.100-7 2.0.0-beta4.24126.1 diff --git a/src/SourceBuild/content/global.json b/src/SourceBuild/content/global.json index 5e87861fcc8e..97d17a650e40 100644 --- a/src/SourceBuild/content/global.json +++ b/src/SourceBuild/content/global.json @@ -1,10 +1,10 @@ { "tools": { - "dotnet": "10.0.100-alpha.1.25059.14" + "dotnet": "10.0.100-alpha.1.25060.10" }, "msbuild-sdks": { "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25057.5" + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25058.4" } } From de851859f18f670ac50c5e9b8babaf5d127087d4 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 10 Jan 2025 17:10:49 -0800 Subject: [PATCH 074/193] [main] Update dependencies from dotnet/runtime (#45849) Co-authored-by: dotnet-maestro[bot] Co-authored-by: Viktor Hofer --- eng/Version.Details.xml | 144 ++++++++++++++++++++-------------------- eng/Versions.props | 70 +++++++++---------- 2 files changed, 107 insertions(+), 107 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index e02d129b0777..88a29b334773 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -15,46 +15,46 @@ d7f0bf0d7f983456641e7640708a62c4f0a63620 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 @@ -230,29 +230,29 @@ 8d080dfdb76633bcac69a90d031a31694908ecaa - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 https://github.com/dotnet/windowsdesktop @@ -473,89 +473,89 @@ - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 https://github.com/dotnet/aspnetcore 77b91e15c1403acd793322b7163469ad7d8babf9 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 @@ -589,9 +589,9 @@ e7cb34898a1b610eb2a22591a2178da6f1fb7e3c - + https://github.com/dotnet/runtime - 45155059d0b070e8ac0f6ad8f4909448e7eadd42 + 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 https://github.com/dotnet/arcade-services diff --git a/eng/Versions.props b/eng/Versions.props index 22ae9153f44e..f66f99f83c41 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -87,43 +87,43 @@ - 10.0.0-alpha.1.25058.25 - 10.0.0-alpha.1.25058.25 - 10.0.0-alpha.1.25058.25 - 10.0.0-alpha.1.25058.25 - 10.0.0-alpha.1.25058.25 - 10.0.0-alpha.1.25058.25 - 10.0.0-alpha.1.25058.25 - 10.0.0-alpha.1.25058.25 - 10.0.0-alpha.1.25058.25 - 10.0.0-alpha.1.25058.25 - 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.5 8.0.0-rc.1.23414.4 - 10.0.0-alpha.1.25058.25 - 10.0.0-alpha.1.25058.25 - 10.0.0-alpha.1.25058.25 - 10.0.0-alpha.1.25058.25 - 10.0.0-alpha.1.25058.25 - 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.5 2.1.0 - 10.0.0-alpha.1.25058.25 - 10.0.0-alpha.1.25058.25 - 10.0.0-alpha.1.25058.25 - 10.0.0-alpha.1.25058.25 - 10.0.0-alpha.1.25058.25 - 10.0.0-alpha.1.25058.25 - 10.0.0-alpha.1.25058.25 - 10.0.0-alpha.1.25058.25 - 10.0.0-alpha.1.25058.25 - 10.0.0-alpha.1.25058.25 - 10.0.0-alpha.1.25058.25 - 10.0.0-alpha.1.25058.25 - 10.0.0-alpha.1.25058.25 - 10.0.0-alpha.1.25058.25 - 10.0.0-alpha.1.25058.25 - 10.0.0-alpha.1.25058.25 - 10.0.0-alpha.1.25058.25 - 10.0.0-alpha.1.25058.25 + 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.5 8.0.0 From 3ca2fccb17bf28192c98339be3e4775d8bff993f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20S=C3=A1nchez=20L=C3=B3pez?= <1175054+carlossanlop@users.noreply.github.com> Date: Fri, 10 Jan 2025 18:06:24 -0800 Subject: [PATCH 075/193] ApiDiff: Pass an ILog instance to the AssemblySymbolLoader constructor (#45807) Co-authored-by: Viktor Hofer --- .../ApiCompatServiceProvider.cs | 2 +- .../DiagnosticIds.cs | 3 - .../Mapping/AssemblyMapper.cs | 14 ---- .../Resources.resx | 3 - .../Rules/CannotRemoveBaseTypeOrInterface.cs | 34 -------- .../Rules/RuleSettings.cs | 5 -- .../xlf/Resources.cs.xlf | 5 -- .../xlf/Resources.de.xlf | 5 -- .../xlf/Resources.es.xlf | 5 -- .../xlf/Resources.fr.xlf | 5 -- .../xlf/Resources.it.xlf | 5 -- .../xlf/Resources.ja.xlf | 5 -- .../xlf/Resources.ko.xlf | 5 -- .../xlf/Resources.pl.xlf | 5 -- .../xlf/Resources.pt-BR.xlf | 5 -- .../xlf/Resources.ru.xlf | 5 -- .../xlf/Resources.tr.xlf | 5 -- .../xlf/Resources.zh-Hans.xlf | 5 -- .../xlf/Resources.zh-Hant.xlf | 5 -- .../CSharpFileBuilder.cs | 8 +- .../Microsoft.DotNet.GenAPI/GenAPIApp.cs | 22 +---- .../AssemblyLoadWarning.cs | 49 ------------ .../AssemblySymbolLoader.cs | 59 ++++++++------ .../AssemblySymbolLoaderFactory.cs | 7 +- .../IAssemblySymbolLoader.cs | 17 +--- ...eworkInPackageValidatorIntegrationTests.cs | 2 +- .../ValidatePackageTargetIntegrationTests.cs | 67 +++------------- .../Rules/AssemblyIdentityMustMatchTests.cs | 8 +- .../AssemblySymbolLoaderTests.cs | 80 +++++++++---------- .../TestLog.cs | 25 ++++++ .../CSharpFileBuilderTests.cs | 7 +- 31 files changed, 130 insertions(+), 347 deletions(-) delete mode 100644 src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/AssemblyLoadWarning.cs create mode 100644 test/Microsoft.DotNet.ApiSymbolExtensions.Tests/TestLog.cs diff --git a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompat.Shared/ApiCompatServiceProvider.cs b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompat.Shared/ApiCompatServiceProvider.cs index b5d95dd8debd..4edb495c0e5d 100644 --- a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompat.Shared/ApiCompatServiceProvider.cs +++ b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompat.Shared/ApiCompatServiceProvider.cs @@ -49,7 +49,7 @@ public ApiCompatServiceProvider(Func logFa return new ApiCompatRunner(SuppressibleLog, SuppressionEngine, new ApiComparerFactory(ruleFactory(SuppressibleLog), apiComparerSettings), - new AssemblySymbolLoaderFactory(respectInternals)); + new AssemblySymbolLoaderFactory(SuppressibleLog, respectInternals)); }); } diff --git a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/DiagnosticIds.cs b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/DiagnosticIds.cs index 5d8d4fca4284..cb1f09738d0d 100644 --- a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/DiagnosticIds.cs +++ b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/DiagnosticIds.cs @@ -29,8 +29,5 @@ public static class DiagnosticIds public const string CannotReduceVisibility = "CP0019"; public const string CannotExpandVisibility = "CP0020"; public const string CannotChangeGenericConstraint = "CP0021"; - - // Assembly loading ids - public const string AssemblyReferenceNotFound = "CP1002"; } } diff --git a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/Mapping/AssemblyMapper.cs b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/Mapping/AssemblyMapper.cs index c3347c3a9433..7646c1628ad0 100644 --- a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/Mapping/AssemblyMapper.cs +++ b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/Mapping/AssemblyMapper.cs @@ -121,20 +121,6 @@ Dictionary> ResolveTypeForwards(Element types.Add(symbol); } - else - { - // If we should warn on missing references and we are unable to resolve the type forward, then we should log a diagnostic - if (Settings.WithReferences) - { - _assemblyLoadErrors.Add(new CompatDifference( - side == ElementSide.Left ? assembly.MetadataInformation : MetadataInformation.DefaultLeft, - side == ElementSide.Right ? assembly.MetadataInformation : MetadataInformation.DefaultRight, - DiagnosticIds.AssemblyReferenceNotFound, - string.Format(Resources.MatchingAssemblyNotFound, $"{symbol.ContainingAssembly.Name}.dll"), - DifferenceType.Changed, - symbol.ContainingAssembly.Identity.GetDisplayName())); - } - } } return typeForwards; diff --git a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/Resources.resx b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/Resources.resx index d3f005e0cb1c..781c94f35366 100644 --- a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/Resources.resx +++ b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/Resources.resx @@ -147,9 +147,6 @@ The {0} index should be in the range zero through {1} inclusive. - - Could not find matching assembly: '{0}' in any of the search directories. - Member '{0}' exists on {1} but not on {2} diff --git a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/Rules/CannotRemoveBaseTypeOrInterface.cs b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/Rules/CannotRemoveBaseTypeOrInterface.cs index 09068721b5df..956356df27d1 100644 --- a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/Rules/CannotRemoveBaseTypeOrInterface.cs +++ b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/Rules/CannotRemoveBaseTypeOrInterface.cs @@ -48,11 +48,6 @@ private void ValidateBaseTypeNotRemoved(ITypeSymbol left, ITypeSymbol right, str if (leftBaseType == null) return; - if (leftBaseType.TypeKind == TypeKind.Error && _settings.WithReferences) - { - AddAssemblyLoadError(leftMetadata, rightMetadata, differences, leftBaseType); - } - while (rightBaseType != null) { // If we found the immediate left base type on right we can assume @@ -61,11 +56,6 @@ private void ValidateBaseTypeNotRemoved(ITypeSymbol left, ITypeSymbol right, str if (_settings.SymbolEqualityComparer.Equals(leftBaseType, rightBaseType)) return; - if (rightBaseType.TypeKind == TypeKind.Error && _settings.WithReferences) - { - AddAssemblyLoadError(leftMetadata, rightMetadata, differences, rightBaseType); - } - rightBaseType = rightBaseType.BaseType; } @@ -84,11 +74,6 @@ private void ValidateInterfaceNotRemoved(ITypeSymbol left, ITypeSymbol right, st foreach (ITypeSymbol leftInterface in left.GetAllBaseInterfaces()) { - if (leftInterface.TypeKind == TypeKind.Error && _settings.WithReferences) - { - AddAssemblyLoadError(leftMetadata, rightMetadata, differences, leftInterface); - } - // Ignore non visible interfaces based on the run Settings // If TypeKind == Error it means the Roslyn couldn't resolve it, // so we are running with a missing assembly reference to where that type ef is defined. @@ -108,25 +93,6 @@ private void ValidateInterfaceNotRemoved(ITypeSymbol left, ITypeSymbol right, st return; } } - - foreach (ITypeSymbol rightInterface in rightInterfaces) - { - if (rightInterface.TypeKind == TypeKind.Error && _settings.WithReferences) - { - AddAssemblyLoadError(leftMetadata, rightMetadata, differences, rightInterface); - } - } - } - - private static void AddAssemblyLoadError(MetadataInformation leftMetadata, MetadataInformation rightMetadata, IList differences, ITypeSymbol type) - { - differences.Add(new CompatDifference( - leftMetadata, - rightMetadata, - DiagnosticIds.AssemblyReferenceNotFound, - string.Format(Resources.MatchingAssemblyNotFound, $"{type.ContainingAssembly.Name}.dll"), - DifferenceType.Changed, - type.ContainingAssembly.Identity.GetDisplayName())); } } } diff --git a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/Rules/RuleSettings.cs b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/Rules/RuleSettings.cs index d0d7fa955489..2587ad98f582 100644 --- a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/Rules/RuleSettings.cs +++ b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/Rules/RuleSettings.cs @@ -43,10 +43,5 @@ public interface IRuleSettings /// which are compared, should not differ. /// bool StrictMode { get; } - - /// - /// If true, references are available. Necessary to know for following type forwards. - /// - bool WithReferences { get; } } } diff --git a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.cs.xlf b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.cs.xlf index 01d041181abb..5872df4520eb 100644 --- a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.cs.xlf +++ b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.cs.xlf @@ -147,11 +147,6 @@ Index {0} by měl být v rozsahu nula až {1} včetně. - - Could not find matching assembly: '{0}' in any of the search directories. - V žádném z hledaných adresářů se nepovedlo najít odpovídající sestavení: {0}. - - Member '{0}' exists on {1} but not on {2} Člen {0} existuje v {1}, ale ne v {2} diff --git a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.de.xlf b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.de.xlf index 2cc94a6dfdbe..a1c7eb6bc0ff 100644 --- a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.de.xlf +++ b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.de.xlf @@ -147,11 +147,6 @@ Der {0} Index sollte zwischen null und einschließlich {1} liegen. - - Could not find matching assembly: '{0}' in any of the search directories. - Die übereinstimmende Assembly "{0}" wurde in keinem der Suchverzeichnisse gefunden. - - Member '{0}' exists on {1} but not on {2} Das Element „{0}“ ist auf {1} vorhanden, aber nicht auf {2}. diff --git a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.es.xlf b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.es.xlf index 904725d93069..4588e5e99dc8 100644 --- a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.es.xlf +++ b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.es.xlf @@ -147,11 +147,6 @@ El índice de {0} debe estar comprendido entre cero y {1} inclusive. - - Could not find matching assembly: '{0}' in any of the search directories. - No se han encontrado coincidencias de ensamblado: "{0}" en ninguno de los directorios de búsqueda. - - Member '{0}' exists on {1} but not on {2} El miembro "{0}" existe en {1} pero no en {2} diff --git a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.fr.xlf b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.fr.xlf index 9233f13d40c0..2f1d893ea7a8 100644 --- a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.fr.xlf +++ b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.fr.xlf @@ -147,11 +147,6 @@ L’index {0} doit être compris entre zéro et {1} inclus. - - Could not find matching assembly: '{0}' in any of the search directories. - Assembly correspondant introuvable : «{0}» dans les répertoires de recherche. - - Member '{0}' exists on {1} but not on {2} Le membre '{0}' existe sur {1}, mais pas sur {2}. diff --git a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.it.xlf b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.it.xlf index 22c388a9b01e..dd4468415175 100644 --- a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.it.xlf +++ b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.it.xlf @@ -147,11 +147,6 @@ L'indice {0} deve essere compreso nell'intervallo compreso tra zero e {1} incluso. - - Could not find matching assembly: '{0}' in any of the search directories. - Non è stato possibile trovare un assembly corrispondente: '{0}' in nessuna delle directory di ricerca. - - Member '{0}' exists on {1} but not on {2} Il membro ' {0}' esiste in {1} ma non in {2} diff --git a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.ja.xlf b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.ja.xlf index 8c284153fed8..41eec2342b28 100644 --- a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.ja.xlf +++ b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.ja.xlf @@ -147,11 +147,6 @@ {0} インデックスは、0 から {1} の範囲内である必要があります。 - - Could not find matching assembly: '{0}' in any of the search directories. - 任意の検索ディレクトリ '{0}' に一致するアセンブリが見つかりませんでした。 - - Member '{0}' exists on {1} but not on {2} メンバー '{0}' は {1} に存在していますが、{2} には存在しません diff --git a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.ko.xlf b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.ko.xlf index bb4ed60391a0..b18330f14056 100644 --- a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.ko.xlf +++ b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.ko.xlf @@ -147,11 +147,6 @@ {0} 인덱스는 0 이상 {1} 이하의 범위 안에 있어야 합니다. - - Could not find matching assembly: '{0}' in any of the search directories. - 검색 디렉터리에서 일치하는 어셈블리 '{0}'(을)를 찾을 수 없습니다. - - Member '{0}' exists on {1} but not on {2} 멤버 '{0}'이(가) {1}에는 있지만 {2}에는 없습니다 diff --git a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.pl.xlf b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.pl.xlf index 100782f99b1a..6aefc58b20a5 100644 --- a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.pl.xlf +++ b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.pl.xlf @@ -147,11 +147,6 @@ Indeks {0} powinien należeć do zakresu od zera do {1} włącznie. - - Could not find matching assembly: '{0}' in any of the search directories. - Nie można znaleźć pasującego zestawu: "{0}" w żadnym z katalogów wyszukiwania. - - Member '{0}' exists on {1} but not on {2} Członek „{0}” istnieje w {1}, ale nie w {2} diff --git a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.pt-BR.xlf b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.pt-BR.xlf index 17a61a7bef92..c52b5f528fb2 100644 --- a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.pt-BR.xlf +++ b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.pt-BR.xlf @@ -147,11 +147,6 @@ O índice {0} deve estar no intervalo de zero até {1} inclusivo. - - Could not find matching assembly: '{0}' in any of the search directories. - Não foi possível encontrar o assembly correspondente: '{0}' em qualquer um dos diretórios de pesquisa. - - Member '{0}' exists on {1} but not on {2} O membro '{0}' existe em {1} mas não em {2} diff --git a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.ru.xlf b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.ru.xlf index 889779190047..7254edc7e52a 100644 --- a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.ru.xlf +++ b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.ru.xlf @@ -147,11 +147,6 @@ Индекс {0} должен находиться в диапазоне от нуля до {1} включительно. - - Could not find matching assembly: '{0}' in any of the search directories. - Не удалось найти соответствующую сборку "{0}" ни в одном из каталогов поиска. - - Member '{0}' exists on {1} but not on {2} Элемент "{0}" существует в {1}, но не в {2} diff --git a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.tr.xlf b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.tr.xlf index 202835edaf0e..8f5b2a486612 100644 --- a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.tr.xlf +++ b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.tr.xlf @@ -147,11 +147,6 @@ {0} dizini sıfırdan başlayarak {1} dahil olmak üzere bu aralıkta olmalıdır. - - Could not find matching assembly: '{0}' in any of the search directories. - Arama dizinlerinin hiçbirinde eşleşen {0} bütünleştirilmiş kodu bulunamadı. - - Member '{0}' exists on {1} but not on {2} '{0}' üyesi {1} üzerinde var ancak {2} üzerinde yok diff --git a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.zh-Hans.xlf b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.zh-Hans.xlf index 5dfe74a0df94..cb556448476d 100644 --- a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.zh-Hans.xlf +++ b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.zh-Hans.xlf @@ -147,11 +147,6 @@ {0} 索引应在 0 到 {1} (含)范围内。 - - Could not find matching assembly: '{0}' in any of the search directories. - 在任何搜索目录中都找不到匹配的程序集“{0}”。 - - Member '{0}' exists on {1} but not on {2} 成员“{0}”在 {1} 上存在,但在 {2} 上不存在 diff --git a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.zh-Hant.xlf b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.zh-Hant.xlf index 0e8fad65bba1..bcd1eb5ac9e6 100644 --- a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.zh-Hant.xlf +++ b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/xlf/Resources.zh-Hant.xlf @@ -147,11 +147,6 @@ {0} 索引應在零到 {1} (含) 之間的範圍。 - - Could not find matching assembly: '{0}' in any of the search directories. - 在任何搜尋目錄中都找不到符合的元件: '{0}'。 - - Member '{0}' exists on {1} but not on {2} 成員 '{0}' 存在於 {1},但不在 {2} 上 diff --git a/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/CSharpFileBuilder.cs b/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/CSharpFileBuilder.cs index 10cf790e827a..0301672ffe3e 100644 --- a/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/CSharpFileBuilder.cs +++ b/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/CSharpFileBuilder.cs @@ -25,7 +25,7 @@ namespace Microsoft.DotNet.GenAPI /// public sealed class CSharpFileBuilder : IAssemblySymbolWriter, IDisposable { - private readonly ILog _logger; + private readonly ILog _log; private readonly TextWriter _textWriter; private readonly ISymbolFilter _symbolFilter; private readonly ISymbolFilter _attributeDataSymbolFilter; @@ -36,7 +36,7 @@ public sealed class CSharpFileBuilder : IAssemblySymbolWriter, IDisposable private readonly IEnumerable _metadataReferences; private readonly bool _addPartialModifier; - public CSharpFileBuilder(ILog logger, + public CSharpFileBuilder(ILog log, ISymbolFilter symbolFilter, ISymbolFilter attributeDataSymbolFilter, TextWriter textWriter, @@ -45,7 +45,7 @@ public CSharpFileBuilder(ILog logger, IEnumerable metadataReferences, bool addPartialModifier) { - _logger = logger; + _log = log; _textWriter = textWriter; _symbolFilter = symbolFilter; _attributeDataSymbolFilter = attributeDataSymbolFilter; @@ -296,7 +296,7 @@ private SyntaxNode GenerateForwardedTypeAssemblyAttributes(IAssemblySymbol assem } else { - _logger.LogWarning(string.Format( + _log.LogWarning(string.Format( Resources.ResolveTypeForwardFailed, symbol.ToDisplayString(), $"{symbol.ContainingAssembly.Name}.dll")); diff --git a/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/GenAPIApp.cs b/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/GenAPIApp.cs index 66f3e1bee3b9..f537d26e823b 100644 --- a/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/GenAPIApp.cs +++ b/src/Compatibility/GenAPI/Microsoft.DotNet.GenAPI/GenAPIApp.cs @@ -20,7 +20,7 @@ public static class GenAPIApp /// /// Initialize and run Roslyn-based GenAPI tool. /// - public static void Run(ILog logger, + public static void Run(ILog log, string[] assemblies, string[]? assemblyReferences, string? outputPath, @@ -34,7 +34,7 @@ public static void Run(ILog logger, bool resolveAssemblyReferences = assemblyReferences?.Length > 0; // Create, configure and execute the assembly loader. - AssemblySymbolLoader loader = new(resolveAssemblyReferences, respectInternals); + AssemblySymbolLoader loader = new(log, resolveAssemblyReferences, respectInternals); if (assemblyReferences is not null) { loader.AddReferenceSearchPaths(assemblyReferences); @@ -74,7 +74,7 @@ public static void Run(ILog logger, using TextWriter textWriter = GetTextWriter(outputPath, assemblySymbol.Name); textWriter.Write(headerFileText); - using CSharpFileBuilder fileBuilder = new(logger, + using CSharpFileBuilder fileBuilder = new(log, symbolFilter, attributeDataSymbolFilter, textWriter, @@ -85,22 +85,6 @@ public static void Run(ILog logger, fileBuilder.WriteAssembly(assemblySymbol); } - - if (loader.HasRoslynDiagnostics(out IReadOnlyList roslynDiagnostics)) - { - foreach (Diagnostic warning in roslynDiagnostics) - { - logger.LogWarning(warning.Id, warning.ToString()); - } - } - - if (loader.HasLoadWarnings(out IReadOnlyList loadWarnings)) - { - foreach (AssemblyLoadWarning warning in loadWarnings) - { - logger.LogWarning(warning.DiagnosticId, warning.Message); - } - } } // Creates a TextWriter capable of writing into Console or a cs file. diff --git a/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/AssemblyLoadWarning.cs b/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/AssemblyLoadWarning.cs deleted file mode 100644 index 4a8d187b8923..000000000000 --- a/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/AssemblyLoadWarning.cs +++ /dev/null @@ -1,49 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -namespace Microsoft.DotNet.ApiSymbolExtensions -{ - /// - /// Class that represents a warning that occurred while trying to load a specific assembly. - /// - /// String representing the diagnostic ID. - /// String representing the ID for the object that the diagnostic was created for. - /// String describing the diagnostic. - public class AssemblyLoadWarning(string diagnosticId, string referenceId, string message) : IDiagnostic, IEquatable - { - private readonly StringComparer _ordinalComparer = StringComparer.Ordinal; - - /// - public string DiagnosticId { get; } = diagnosticId; - - /// - public string ReferenceId { get; } = referenceId; - - /// - public string Message { get; } = message; - - /// - public bool Equals(AssemblyLoadWarning? other) => other != null && - _ordinalComparer.Equals(DiagnosticId, other.DiagnosticId) && - _ordinalComparer.Equals(ReferenceId, other.ReferenceId) && - _ordinalComparer.Equals(Message, other.Message); - - /// - public override bool Equals(object? obj) => - obj is AssemblyLoadWarning assemblyLoadWarning && Equals(assemblyLoadWarning); - - /// - public override int GetHashCode() - { -#if NET - return HashCode.Combine(DiagnosticId, ReferenceId, Message); -#else - int hashCode = 1447485498; - hashCode = hashCode * -1521134295 + EqualityComparer.Default.GetHashCode(DiagnosticId); - hashCode = hashCode * -1521134295 + EqualityComparer.Default.GetHashCode(ReferenceId); - hashCode = hashCode * -1521134295 + EqualityComparer.Default.GetHashCode(Message); - return hashCode; -#endif - } - } -} diff --git a/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/AssemblySymbolLoader.cs b/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/AssemblySymbolLoader.cs index 6d7dea1bc8ae..1d6921dd1f92 100644 --- a/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/AssemblySymbolLoader.cs +++ b/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/AssemblySymbolLoader.cs @@ -7,6 +7,7 @@ using System.Reflection.PortableExecutable; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; +using Microsoft.DotNet.ApiSymbolExtensions.Logging; namespace Microsoft.DotNet.ApiSymbolExtensions { @@ -15,11 +16,11 @@ namespace Microsoft.DotNet.ApiSymbolExtensions /// public class AssemblySymbolLoader : IAssemblySymbolLoader { - // Dictionary that holds the paths to help loading dependencies. Keys will be assembly name and + private readonly ILog _log; + // Dictionary that holds the paths to help loading dependencies. Keys will be assembly name and // value are the containing folder. private readonly Dictionary _referencePathFiles = new(StringComparer.OrdinalIgnoreCase); private readonly HashSet _referencePathDirectories = new(StringComparer.OrdinalIgnoreCase); - private readonly List _warnings = []; private readonly Dictionary _loadedAssemblies; private readonly bool _resolveReferences; private CSharpCompilation _cSharpCompilation; @@ -37,10 +38,12 @@ public class AssemblySymbolLoader : IAssemblySymbolLoader /// /// Creates a new instance of the class. /// + /// A logger instance for logging message. /// True to attempt to load references for loaded assemblies from the locations specified with . Default is false. /// True to include all internal metadata for assemblies loaded. Default is false which only includes public and some internal metadata. - public AssemblySymbolLoader(bool resolveAssemblyReferences = false, bool includeInternalSymbols = false) + public AssemblySymbolLoader(ILog log, bool resolveAssemblyReferences = false, bool includeInternalSymbols = false) { + _log = log; _loadedAssemblies = []; CSharpCompilationOptions compilationOptions = new(OutputKind.DynamicallyLinkedLibrary, nullableContextOptions: NullableContextOptions.Enable, metadataImportOptions: includeInternalSymbols ? MetadataImportOptions.Internal : MetadataImportOptions.Public); @@ -73,20 +76,6 @@ public void AddReferenceSearchPaths(params string[] paths) } } - /// - public bool HasRoslynDiagnostics(out IReadOnlyList diagnostics) - { - diagnostics = _cSharpCompilation.GetDiagnostics(); - return diagnostics.Count > 0; - } - - /// - public bool HasLoadWarnings(out IReadOnlyList warnings) - { - warnings = _warnings; - return _warnings.Count > 0; - } - /// public IReadOnlyList LoadAssemblies(params string[] paths) { @@ -106,6 +95,8 @@ public bool HasLoadWarnings(out IReadOnlyList warnings) assemblySymbols[i] = symbol as IAssemblySymbol; } + LogCompilationDiagnostics(); + return assemblySymbols; } @@ -155,6 +146,8 @@ public bool HasLoadWarnings(out IReadOnlyList warnings) null; } + LogCompilationDiagnostics(); + return assemblySymbols; } @@ -162,7 +155,10 @@ public bool HasLoadWarnings(out IReadOnlyList warnings) public IAssemblySymbol? LoadAssembly(string path) { MetadataReference metadataReference = CreateOrGetMetadataReferenceFromPath(path); - return _cSharpCompilation.GetAssemblyOrModuleSymbol(metadataReference) as IAssemblySymbol; + IAssemblySymbol? assemblySymbol = _cSharpCompilation.GetAssemblyOrModuleSymbol(metadataReference) as IAssemblySymbol; + LogCompilationDiagnostics(); + + return assemblySymbol; } /// @@ -178,7 +174,10 @@ public bool HasLoadWarnings(out IReadOnlyList warnings) metadataReference = CreateAndAddReferenceToCompilation(name, stream); } - return _cSharpCompilation.GetAssemblyOrModuleSymbol(metadataReference) as IAssemblySymbol; + IAssemblySymbol? assemblySymbol = _cSharpCompilation.GetAssemblyOrModuleSymbol(metadataReference) as IAssemblySymbol; + LogCompilationDiagnostics(); + + return assemblySymbol; } /// @@ -205,6 +204,8 @@ public IAssemblySymbol LoadAssemblyFromSourceFiles(IEnumerable filePaths _cSharpCompilation = _cSharpCompilation.AddSyntaxTrees(syntaxTrees); LoadFromPaths(referencePaths); + LogCompilationDiagnostics(); + return _cSharpCompilation.Assembly; } @@ -247,12 +248,12 @@ public IEnumerable LoadMatchingAssemblies(IEnumerable? refe if (!found) { - _warnings.Add(new AssemblyLoadWarning( - AssemblyReferenceNotFoundErrorCode, - name, - string.Format(Resources.CouldNotResolveReference, name))); + _log.LogWarning(AssemblyReferenceNotFoundErrorCode, string.Format(Resources.CouldNotResolveReference, name)); } } } } + + private void LogCompilationDiagnostics() + { + var diagnostics = _cSharpCompilation.GetDiagnostics(); + foreach (Diagnostic warning in diagnostics) + { + _log.LogMessage(MessageImportance.Normal, warning.ToString()); + } + } } } diff --git a/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/AssemblySymbolLoaderFactory.cs b/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/AssemblySymbolLoaderFactory.cs index 2df44a418f9f..5a2b74600cc0 100644 --- a/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/AssemblySymbolLoaderFactory.cs +++ b/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/AssemblySymbolLoaderFactory.cs @@ -1,16 +1,19 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using Microsoft.DotNet.ApiSymbolExtensions.Logging; + namespace Microsoft.DotNet.ApiSymbolExtensions { /// /// Factory to create an AssemblySymbolLoader /// + /// A logger instance used for logging messages. /// True to include internal API when reading assemblies from the created. - public sealed class AssemblySymbolLoaderFactory(bool includeInternalSymbols = false) : IAssemblySymbolLoaderFactory + public sealed class AssemblySymbolLoaderFactory(ILog log, bool includeInternalSymbols = false) : IAssemblySymbolLoaderFactory { /// public IAssemblySymbolLoader Create(bool shouldResolveReferences) => - new AssemblySymbolLoader(shouldResolveReferences, includeInternalSymbols); + new AssemblySymbolLoader(log, shouldResolveReferences, includeInternalSymbols); } } diff --git a/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/IAssemblySymbolLoader.cs b/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/IAssemblySymbolLoader.cs index cfb78f0a13d1..161ead0aea87 100644 --- a/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/IAssemblySymbolLoader.cs +++ b/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/IAssemblySymbolLoader.cs @@ -18,21 +18,6 @@ public interface IAssemblySymbolLoader /// The list of paths to register as search directories. void AddReferenceSearchPaths(params string[] paths); - /// - /// Indicates if the compilation used to resolve binaries has any roslyn diagnostics. - /// Might be useful when loading an assembly from source files. - /// - /// List of diagnostics. - /// True if there are any diagnostics, false otherwise. - bool HasRoslynDiagnostics(out IReadOnlyList diagnostics); - - /// - /// Indicates if the loader emitted any warnings that might affect the assembly resolution. - /// - /// List of warnings. - /// True if there are any warnings, false otherwise. - bool HasLoadWarnings(out IReadOnlyList warnings); - /// /// Loads a list of assemblies and gets its corresponding from the specified paths. /// @@ -60,7 +45,7 @@ public interface IAssemblySymbolLoader /// /// The name to use to resolve the assembly. /// The stream to read the metadata from. - /// representing the given . If an + /// representing the given . If an /// assembly with the same was already loaded, the previously loaded assembly is returned. IAssemblySymbol? LoadAssembly(string name, Stream stream); diff --git a/test/Microsoft.DotNet.ApiCompat.IntegrationTests/CompatibleFrameworkInPackageValidatorIntegrationTests.cs b/test/Microsoft.DotNet.ApiCompat.IntegrationTests/CompatibleFrameworkInPackageValidatorIntegrationTests.cs index 91a896625fd5..f2c1acde2421 100644 --- a/test/Microsoft.DotNet.ApiCompat.IntegrationTests/CompatibleFrameworkInPackageValidatorIntegrationTests.cs +++ b/test/Microsoft.DotNet.ApiCompat.IntegrationTests/CompatibleFrameworkInPackageValidatorIntegrationTests.cs @@ -27,7 +27,7 @@ public CompatibleFrameworkInPackageValidatorIntegrationTests(ITestOutputHelper l new ApiCompatRunner(log, new SuppressionEngine(), new ApiComparerFactory(new RuleFactory(log)), - new AssemblySymbolLoaderFactory())); + new AssemblySymbolLoaderFactory(log))); return (log, validator); } diff --git a/test/Microsoft.DotNet.ApiCompat.IntegrationTests/Task/ValidatePackageTargetIntegrationTests.cs b/test/Microsoft.DotNet.ApiCompat.IntegrationTests/Task/ValidatePackageTargetIntegrationTests.cs index 6bbb8beb8362..c7e8afadb6ba 100644 --- a/test/Microsoft.DotNet.ApiCompat.IntegrationTests/Task/ValidatePackageTargetIntegrationTests.cs +++ b/test/Microsoft.DotNet.ApiCompat.IntegrationTests/Task/ValidatePackageTargetIntegrationTests.cs @@ -29,7 +29,7 @@ public ValidatePackageTargetIntegrationTests(ITestOutputHelper log) : base(log) new ApiCompatRunner(log, new SuppressionEngine(), new ApiComparerFactory(new RuleFactory(log)), - new AssemblySymbolLoaderFactory())); + new AssemblySymbolLoaderFactory(log))); return (log, validator); } @@ -187,11 +187,11 @@ public void ValidatePackageWithReferences() } [RequiresMSBuildVersionTheory("17.12")] - [InlineData(false, true, false)] - [InlineData(false, false, false)] - [InlineData(true, false, false)] - [InlineData(true, true, true)] - public void ValidateOnlyErrorWhenAReferenceIsRequired(bool createDependencyToDummy, bool useReferences, bool shouldLogError) + [InlineData(false, true)] + [InlineData(false, false)] + [InlineData(true, false)] + [InlineData(true, true)] + public void ValidateOnlyErrorWhenAReferenceIsRequired(bool createDependencyToDummy, bool useReferences) { string testDependencyCode = createDependencyToDummy ? @"namespace PackageValidationTests{public class SomeBaseClass : IDummyInterface { }public class SomeDummyClass : IDummyInterface { }}" : @@ -220,17 +220,13 @@ public void ValidateOnlyErrorWhenAReferenceIsRequired(bool createDependencyToDum // removed an interface due to it's base class removing that implementation. We validate that APICompat doesn't // log errors when not using references. validator.Validate(new PackageValidatorOption(package)); - if (shouldLogError) - Assert.Contains($"CP1002 Could not find matching assembly: '{testDummyDependency.Name}.dll' in any of the search directories.", log.errors); - else - Assert.DoesNotContain($"CP1002 Could not find matching assembly: '{testDummyDependency.Name}.dll' in any of the search directories.", log.errors); } [RequiresMSBuildVersionTheory("17.12")] - [InlineData(false, true, false, false)] - [InlineData(true, false, false, false)] - [InlineData(true, true, true, true)] - public void ValidateErrorWhenTypeForwardingReferences(bool useReferences, bool expectCP0001, bool deleteFile, bool expectCP1002) + [InlineData(false, true, false)] + [InlineData(true, false, false)] + [InlineData(true, true, true)] + public void ValidateErrorWhenTypeForwardingReferences(bool useReferences, bool expectCP0001, bool deleteFile) { string dependencySourceCode = @"namespace PackageValidationTests { public interface ISomeInterface { } #if !NETSTANDARD2_0 @@ -267,49 +263,6 @@ namespace PackageValidationTests { public class MyForwardedType : ISomeInterface if (expectCP0001) Assert.Contains($"CP0001 Type 'PackageValidationTests.MyForwardedType' exists on lib/netstandard2.0/{testProject.Name}.dll but not on lib/{ToolsetInfo.CurrentTargetFramework}/{testProject.Name}.dll", log.errors); - - if (expectCP1002) - Assert.Contains($"CP1002 Could not find matching assembly: '{dependency.Name}.dll' in any of the search directories.", log.errors); - } - - [RequiresMSBuildVersionFact("17.12", Reason = "Needs System.Text.Json 8.0.5")] - public void EnsureOnlyOneAssemblyLoadErrorIsLoggedPerMissingAssembly() - { - string dependencySourceCode = @"namespace PackageValidationTests { public interface ISomeInterface { } -#if !NETSTANDARD2_0 -public class MyForwardedType : ISomeInterface { } -public class MySecondForwardedType : ISomeInterface { } -#endif -}"; - string testSourceCode = @" -#if NETSTANDARD2_0 -namespace PackageValidationTests { public class MyForwardedType : ISomeInterface { } public class MySecondForwardedType : ISomeInterface { } } -#else -[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(PackageValidationTests.MyForwardedType))] -[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(PackageValidationTests.MySecondForwardedType))] -#endif"; - - TestProject dependency = CreateTestProject(dependencySourceCode, $"netstandard2.0;{ToolsetInfo.CurrentTargetFramework}"); - TestProject testProject = CreateTestProject(testSourceCode, $"netstandard2.0;{ToolsetInfo.CurrentTargetFramework}", new[] { dependency }); - - TestAsset asset = _testAssetsManager.CreateTestProject(testProject, testProject.Name); - PackCommand packCommand = new(Log, Path.Combine(asset.TestRoot, testProject.Name)); - var result = packCommand.Execute(); - Assert.Equal(string.Empty, result.StdErr); - - Dictionary> references = new() - { - { NuGetFramework.ParseFolder("netstandard2.0"), new string[] { Path.Combine(asset.TestRoot, asset.TestProject.Name, "bin", "Debug", "netstandard2.0") } }, - { NuGetFramework.ParseFolder(ToolsetInfo.CurrentTargetFramework), new string[] { Path.Combine(asset.TestRoot, asset.TestProject.Name, "bin", "Debug", ToolsetInfo.CurrentTargetFramework) } } - }; - Package package = Package.Create(packCommand.GetNuGetPackage(), references); - - File.Delete(Path.Combine(asset.TestRoot, asset.TestProject.Name, "bin", "Debug", ToolsetInfo.CurrentTargetFramework, $"{dependency.Name}.dll")); - (SuppressibleTestLog log, CompatibleFrameworkInPackageValidator validator) = CreateLoggerAndValidator(); - - validator.Validate(new PackageValidatorOption(package)); - - Assert.Single(log.errors, e => e.Contains("CP1002")); } [RequiresMSBuildVersionTheory("17.12")] diff --git a/test/Microsoft.DotNet.ApiCompatibility.Tests/Rules/AssemblyIdentityMustMatchTests.cs b/test/Microsoft.DotNet.ApiCompatibility.Tests/Rules/AssemblyIdentityMustMatchTests.cs index ca9fe2ca9a06..4f9e53e5e75c 100644 --- a/test/Microsoft.DotNet.ApiCompatibility.Tests/Rules/AssemblyIdentityMustMatchTests.cs +++ b/test/Microsoft.DotNet.ApiCompatibility.Tests/Rules/AssemblyIdentityMustMatchTests.cs @@ -13,7 +13,8 @@ namespace Microsoft.DotNet.ApiCompatibility.Rules.Tests { public class AssemblyIdentityMustMatchTests { - private static readonly TestRuleFactory s_ruleFactory = new((settings, context) => new AssemblyIdentityMustMatch(new SuppressibleTestLog(), settings, context)); + private static readonly SuppressibleTestLog s_log = new(); + private static readonly TestRuleFactory s_ruleFactory = new((settings, context) => new AssemblyIdentityMustMatch(s_log, settings, context)); private static readonly byte[] _publicKey = new byte[] { @@ -196,8 +197,8 @@ public void RetargetableFlagSet(bool strictMode) string leftAssembly = SymbolFactory.EmitAssemblyFromSyntax(syntax, publicKey: _publicKey); string rightAssembly = SymbolFactory.EmitAssemblyFromSyntax(syntax); - IAssemblySymbol leftSymbol = new AssemblySymbolLoader().LoadAssembly(leftAssembly); - IAssemblySymbol rightSymbol = new AssemblySymbolLoader().LoadAssembly(rightAssembly); + IAssemblySymbol leftSymbol = new AssemblySymbolLoader(s_log).LoadAssembly(leftAssembly); + IAssemblySymbol rightSymbol = new AssemblySymbolLoader(s_log).LoadAssembly(rightAssembly); Assert.True(leftSymbol.Identity.IsRetargetable); Assert.True(rightSymbol.Identity.IsRetargetable); @@ -210,4 +211,3 @@ public void RetargetableFlagSet(bool strictMode) } } } - diff --git a/test/Microsoft.DotNet.ApiSymbolExtensions.Tests/AssemblySymbolLoaderTests.cs b/test/Microsoft.DotNet.ApiSymbolExtensions.Tests/AssemblySymbolLoaderTests.cs index bb31747720b9..35886f8cbf05 100644 --- a/test/Microsoft.DotNet.ApiSymbolExtensions.Tests/AssemblySymbolLoaderTests.cs +++ b/test/Microsoft.DotNet.ApiSymbolExtensions.Tests/AssemblySymbolLoaderTests.cs @@ -89,14 +89,16 @@ private TestAssetInfo GetAsset(TestAssetsManager manager) [Fact] public void LoadAssembly_Throws() { - AssemblySymbolLoader loader = new(); + TestLog log = new(); + AssemblySymbolLoader loader = new(log); Assert.Throws(() => loader.LoadAssembly(Guid.NewGuid().ToString("N").Substring(0, 8))); } [Fact] public void LoadAssemblyFromSourceFiles_Throws() { - AssemblySymbolLoader loader = new(); + TestLog log = new(); + AssemblySymbolLoader loader = new(log); IEnumerable paths = new[] { Guid.NewGuid().ToString("N") }; Assert.Throws(() => loader.LoadAssemblyFromSourceFiles(paths, "assembly1", Array.Empty())); Assert.Throws("filePaths", () => loader.LoadAssemblyFromSourceFiles(Array.Empty(), "assembly1", Array.Empty())); @@ -106,7 +108,8 @@ public void LoadAssemblyFromSourceFiles_Throws() [Fact] public void LoadMatchingAssemblies_Throws() { - AssemblySymbolLoader loader = new(); + TestLog log = new(); + AssemblySymbolLoader loader = new(log); IEnumerable paths = new[] { Guid.NewGuid().ToString("N") }; IAssemblySymbol assembly = SymbolFactory.GetAssemblyFromSyntax("namespace MyNamespace { class Foo { } }"); @@ -119,17 +122,13 @@ public void LoadMatchingAssembliesWarns() IAssemblySymbol assembly = SymbolFactory.GetAssemblyFromSyntax("namespace MyNamespace { class Foo { } }"); IEnumerable paths = new[] { AppContext.BaseDirectory }; - AssemblySymbolLoader loader = new(); + TestLog log = new(); + AssemblySymbolLoader loader = new(log); IEnumerable symbols = loader.LoadMatchingAssemblies(new[] { assembly }, paths); Assert.Empty(symbols); - Assert.True(loader.HasLoadWarnings(out IReadOnlyList warnings)); - - IEnumerable expected = new[] - { - new AssemblyLoadWarning(AssemblySymbolLoader.AssemblyNotFoundErrorCode, assembly.Identity.GetDisplayName(), $"Could not find matching assembly: '{assembly.Identity.GetDisplayName()}' in any of the search directories.") - }; - - Assert.Equal(expected, warnings); + Assert.True(log.HasLoggedWarnings); + List expected = [ $"{AssemblySymbolLoader.AssemblyNotFoundErrorCode} Could not find matching assembly: '{assembly.Identity.GetDisplayName()}' in any of the search directories." ]; + Assert.Equal(expected, log.Warnings, StringComparer.CurrentCultureIgnoreCase); } [Fact] @@ -152,11 +151,12 @@ public void LoadMatchingAssembliesSameIdentitySucceeds() .Should() .Pass(); - AssemblySymbolLoader loader = new(); + TestLog log = new(); + AssemblySymbolLoader loader = new(log); IEnumerable matchingAssemblies = loader.LoadMatchingAssemblies(new[] { fromAssembly }, new[] { outputDirectory }); Assert.Single(matchingAssemblies); - Assert.False(loader.HasLoadWarnings(out var _)); + Assert.False(log.HasLoggedWarnings); } [Theory] @@ -167,25 +167,21 @@ public void LoadMatchingAssemblies_DifferentIdentity(bool validateIdentities) var assetInfo = GetSimpleTestAsset(); IAssemblySymbol fromAssembly = SymbolFactory.GetAssemblyFromSyntax(SimpleAssemblySourceContents, assemblyName: assetInfo.TestAsset.TestProject.Name); - AssemblySymbolLoader loader = new(); + TestLog log = new(); + AssemblySymbolLoader loader = new(log); IEnumerable matchingAssemblies = loader.LoadMatchingAssemblies(new[] { fromAssembly }, new[] { assetInfo.OutputDirectory }, validateMatchingIdentity: validateIdentities); if (validateIdentities) { Assert.Empty(matchingAssemblies); - Assert.True(loader.HasLoadWarnings(out IReadOnlyList warnings)); - - IEnumerable expected = new[] - { - new AssemblyLoadWarning(AssemblySymbolLoader.AssemblyNotFoundErrorCode, fromAssembly.Identity.GetDisplayName(), $"Could not find matching assembly: '{fromAssembly.Identity.GetDisplayName()}' in any of the search directories.") - }; - - Assert.Equal(expected, warnings); + Assert.True(log.HasLoggedWarnings); + List expected = [$"{AssemblySymbolLoader.AssemblyNotFoundErrorCode} Could not find matching assembly: '{fromAssembly.Identity.GetDisplayName()}' in any of the search directories."]; + Assert.Equal(expected, log.Warnings, StringComparer.CurrentCultureIgnoreCase); } else { Assert.Single(matchingAssemblies); - Assert.False(loader.HasLoadWarnings(out var _)); + Assert.False(log.HasLoggedWarnings); Assert.NotEqual(fromAssembly.Identity, matchingAssemblies.FirstOrDefault().Identity); } } @@ -194,7 +190,8 @@ public void LoadMatchingAssemblies_DifferentIdentity(bool validateIdentities) public void LoadsSimpleAssemblyFromDirectory() { var assetInfo = GetSimpleTestAsset(); - AssemblySymbolLoader loader = new(); + TestLog log = new(); + AssemblySymbolLoader loader = new(log); IEnumerable symbols = loader.LoadAssemblies(assetInfo.OutputDirectory); Assert.Single(symbols); @@ -212,7 +209,8 @@ public void LoadsSimpleAssemblyFromDirectory() public void LoadSimpleAssemblyFullPath() { var assetInfo = GetSimpleTestAsset(); - AssemblySymbolLoader loader = new(); + TestLog log = new(); + AssemblySymbolLoader loader = new(log); IAssemblySymbol symbol = loader.LoadAssembly(Path.Combine(assetInfo.OutputDirectory, assetInfo.TestAsset.TestProject.Name + ".dll")); IEnumerable types = symbol.GlobalNamespace @@ -246,7 +244,8 @@ public void LoadsMultipleAssembliesFromDirectory() .Should() .Pass(); - AssemblySymbolLoader loader = new(); + TestLog log = new(); + AssemblySymbolLoader loader = new(log); IEnumerable symbols = loader.LoadAssemblies(outputDirectory); Assert.Equal(2, symbols.Count()); @@ -263,12 +262,13 @@ public void LoadsMultipleAssembliesFromDirectory() public void LoadAssemblyResolveReferences_WarnsWhenEnabled(bool resolveReferences) { var assetInfo = GetSimpleTestAsset(); - AssemblySymbolLoader loader = new(resolveAssemblyReferences: resolveReferences); + TestLog log = new(); + AssemblySymbolLoader loader = new(log, resolveAssemblyReferences: resolveReferences); loader.LoadAssembly(Path.Combine(assetInfo.OutputDirectory, assetInfo.TestAsset.TestProject.Name + ".dll")); if (resolveReferences) { - Assert.True(loader.HasLoadWarnings(out IReadOnlyList warnings)); + Assert.True(log.HasLoggedWarnings); string expectedReference = "System.Runtime.dll"; @@ -277,17 +277,12 @@ public void LoadAssemblyResolveReferences_WarnsWhenEnabled(bool resolveReference expectedReference = "mscorlib.dll"; } - IEnumerable expected = new List - { - new AssemblyLoadWarning(AssemblySymbolLoader.AssemblyReferenceNotFoundErrorCode, expectedReference, $"Could not resolve reference '{expectedReference}' in any of the provided search directories.") - }; - - Assert.Equal(expected, warnings); + List expected = [$"{AssemblySymbolLoader.AssemblyReferenceNotFoundErrorCode} Could not resolve reference '{expectedReference}' in any of the provided search directories."]; + Assert.Equal(expected, log.Warnings, StringComparer.CurrentCultureIgnoreCase); } else { - Assert.False(loader.HasLoadWarnings(out IReadOnlyList warnings)); - Assert.Empty(warnings); + Assert.Empty(log.Warnings); } } @@ -295,14 +290,14 @@ public void LoadAssemblyResolveReferences_WarnsWhenEnabled(bool resolveReference public void LoadAssembliesShouldResolveReferencesNoWarnings() { var assetInfo = GetSimpleTestAsset(); - AssemblySymbolLoader loader = new(resolveAssemblyReferences: true); + TestLog log = new(); + AssemblySymbolLoader loader = new(log, resolveAssemblyReferences: true); // AddReferenceSearchDirectories should be able to handle directories as well as full path to assemblies. loader.AddReferenceSearchPaths(Path.GetDirectoryName(typeof(string).Assembly.Location)); loader.AddReferenceSearchPaths(Path.GetFullPath(typeof(string).Assembly.Location)); loader.LoadAssembly(Path.Combine(assetInfo.OutputDirectory, assetInfo.TestAsset.TestProject.Name + ".dll")); - Assert.False(loader.HasLoadWarnings(out IReadOnlyList warnings)); - Assert.Empty(warnings); + Assert.Empty(log.Warnings); // Ensure we loaded more than one assembly since resolveReferences was set to true. Dictionary loadedAssemblies = (Dictionary)typeof(AssemblySymbolLoader)?.GetField("_loadedAssemblies", BindingFlags.NonPublic | BindingFlags.Instance)?.GetValue(loader); @@ -314,11 +309,12 @@ public void LoadAssemblyFromStreamNoWarns() { var assetInfo = GetSimpleTestAsset(); TestProject testProject = assetInfo.TestAsset.TestProject; - AssemblySymbolLoader loader = new(); + TestLog log = new(); + AssemblySymbolLoader loader = new(log); using FileStream stream = File.OpenRead(Path.Combine(assetInfo.OutputDirectory, testProject.Name + ".dll")); IAssemblySymbol symbol = loader.LoadAssembly(testProject.Name, stream); - Assert.False(loader.HasLoadWarnings(out var _)); + Assert.False(log.HasLoggedWarnings); Assert.Equal(testProject.Name, symbol.Name, StringComparer.Ordinal); IEnumerable types = symbol.GlobalNamespace diff --git a/test/Microsoft.DotNet.ApiSymbolExtensions.Tests/TestLog.cs b/test/Microsoft.DotNet.ApiSymbolExtensions.Tests/TestLog.cs new file mode 100644 index 000000000000..1d915e915793 --- /dev/null +++ b/test/Microsoft.DotNet.ApiSymbolExtensions.Tests/TestLog.cs @@ -0,0 +1,25 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using Microsoft.DotNet.ApiSymbolExtensions.Logging; + +namespace Microsoft.DotNet.ApiSymbolExtensions.Tests; + +internal class TestLog : ILog +{ + public List Info { get; } = []; + public List Errors { get; } = []; + public List Warnings { get; } = []; + + public bool HasLoggedErrors => Errors.Count != 0; + public bool HasLoggedWarnings => Warnings.Count != 0; + + public void LogError(string message) => Errors.Add(message); + public void LogError(string code, string message) => Errors.Add($"{code} {message}"); + + public void LogWarning(string message) => Warnings.Add(message); + public void LogWarning(string code, string message) => Warnings.Add($"{code} {message}"); + + public void LogMessage(string message) => Info.Add(message); + public void LogMessage(MessageImportance importance, string message) => Info.Add(message); +} diff --git a/test/Microsoft.DotNet.GenAPI.Tests/CSharpFileBuilderTests.cs b/test/Microsoft.DotNet.GenAPI.Tests/CSharpFileBuilderTests.cs index d2db7d879de1..81856d2842ce 100644 --- a/test/Microsoft.DotNet.GenAPI.Tests/CSharpFileBuilderTests.cs +++ b/test/Microsoft.DotNet.GenAPI.Tests/CSharpFileBuilderTests.cs @@ -10,6 +10,7 @@ using Microsoft.DotNet.ApiSymbolExtensions.Filtering; using Microsoft.DotNet.ApiSymbolExtensions.Logging; using Microsoft.DotNet.ApiSymbolExtensions.Tests; +using Moq; namespace Microsoft.DotNet.GenAPI.Tests { @@ -53,8 +54,10 @@ private void RunTest(string original, } attributeDataSymbolFilter.Add(accessibilitySymbolFilter); + Mock log = new(); + IAssemblySymbolWriter csharpFileBuilder = new CSharpFileBuilder( - new ConsoleLog(MessageImportance.Low), + log.Object, symbolFilter, attributeDataSymbolFilter, stringWriter, @@ -64,7 +67,7 @@ private void RunTest(string original, addPartialModifier: true); using Stream assemblyStream = SymbolFactory.EmitAssemblyStreamFromSyntax(original, enableNullable: true, allowUnsafe: allowUnsafe, assemblyName: assemblyName); - AssemblySymbolLoader assemblySymbolLoader = new(resolveAssemblyReferences: true, includeInternalSymbols: includeInternalSymbols); + AssemblySymbolLoader assemblySymbolLoader = new(log.Object, resolveAssemblyReferences: true, includeInternalSymbols: includeInternalSymbols); assemblySymbolLoader.AddReferenceSearchPaths(typeof(object).Assembly!.Location!); assemblySymbolLoader.AddReferenceSearchPaths(typeof(DynamicAttribute).Assembly!.Location!); IAssemblySymbol assemblySymbol = assemblySymbolLoader.LoadAssembly(assemblyName, assemblyStream); From 504ae68fa5d30762e8cbeea1f812c073a53b1729 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 10 Jan 2025 20:40:30 -0800 Subject: [PATCH 076/193] [main] Update dependencies from dotnet/aspnetcore (#45878) --- eng/Version.Details.xml | 76 ++++++++++++++++++++--------------------- eng/Versions.props | 26 +++++++------- 2 files changed, 51 insertions(+), 51 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 88a29b334773..1058db1ea5c6 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -135,13 +135,13 @@ https://github.com/dotnet/roslyn 911cf5f462960bdd01df1ea3c0d0c217b3c3838b - + https://github.com/dotnet/aspnetcore - 77b91e15c1403acd793322b7163469ad7d8babf9 + f655a4a1cec91d2325b408142a8fe9f6d390c6f4 - + https://github.com/dotnet/aspnetcore - 77b91e15c1403acd793322b7163469ad7d8babf9 + f655a4a1cec91d2325b408142a8fe9f6d390c6f4 https://github.com/nuget/nuget.client @@ -275,54 +275,54 @@ https://github.com/dotnet/wpf 8e79c0b3980f0670bcc68d7f1ee7f06ff256ec94 - + https://github.com/dotnet/aspnetcore - 77b91e15c1403acd793322b7163469ad7d8babf9 + f655a4a1cec91d2325b408142a8fe9f6d390c6f4 - + https://github.com/dotnet/aspnetcore - 77b91e15c1403acd793322b7163469ad7d8babf9 + f655a4a1cec91d2325b408142a8fe9f6d390c6f4 - + https://github.com/dotnet/aspnetcore - 77b91e15c1403acd793322b7163469ad7d8babf9 + f655a4a1cec91d2325b408142a8fe9f6d390c6f4 - + https://github.com/dotnet/aspnetcore - 77b91e15c1403acd793322b7163469ad7d8babf9 + f655a4a1cec91d2325b408142a8fe9f6d390c6f4 - + https://github.com/dotnet/aspnetcore - 77b91e15c1403acd793322b7163469ad7d8babf9 + f655a4a1cec91d2325b408142a8fe9f6d390c6f4 - + https://github.com/dotnet/aspnetcore - 77b91e15c1403acd793322b7163469ad7d8babf9 + f655a4a1cec91d2325b408142a8fe9f6d390c6f4 - + https://github.com/dotnet/aspnetcore - 77b91e15c1403acd793322b7163469ad7d8babf9 + f655a4a1cec91d2325b408142a8fe9f6d390c6f4 - + https://github.com/dotnet/aspnetcore - 77b91e15c1403acd793322b7163469ad7d8babf9 + f655a4a1cec91d2325b408142a8fe9f6d390c6f4 - + https://github.com/dotnet/aspnetcore - 77b91e15c1403acd793322b7163469ad7d8babf9 + f655a4a1cec91d2325b408142a8fe9f6d390c6f4 - + https://github.com/dotnet/aspnetcore - 77b91e15c1403acd793322b7163469ad7d8babf9 + f655a4a1cec91d2325b408142a8fe9f6d390c6f4 - + https://github.com/dotnet/aspnetcore - 77b91e15c1403acd793322b7163469ad7d8babf9 + f655a4a1cec91d2325b408142a8fe9f6d390c6f4 - + https://github.com/dotnet/aspnetcore - 77b91e15c1403acd793322b7163469ad7d8babf9 + f655a4a1cec91d2325b408142a8fe9f6d390c6f4 @@ -343,21 +343,21 @@ 46efcec83821d7f0322c01bc9549de83e855dcac - + https://github.com/dotnet/aspnetcore - 77b91e15c1403acd793322b7163469ad7d8babf9 + f655a4a1cec91d2325b408142a8fe9f6d390c6f4 - + https://github.com/dotnet/aspnetcore - 77b91e15c1403acd793322b7163469ad7d8babf9 + f655a4a1cec91d2325b408142a8fe9f6d390c6f4 - + https://github.com/dotnet/aspnetcore - 77b91e15c1403acd793322b7163469ad7d8babf9 + f655a4a1cec91d2325b408142a8fe9f6d390c6f4 - + https://github.com/dotnet/aspnetcore - 77b91e15c1403acd793322b7163469ad7d8babf9 + f655a4a1cec91d2325b408142a8fe9f6d390c6f4 @@ -509,9 +509,9 @@ https://github.com/dotnet/runtime 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/aspnetcore - 77b91e15c1403acd793322b7163469ad7d8babf9 + f655a4a1cec91d2325b408142a8fe9f6d390c6f4 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index f66f99f83c41..bd41a15313ab 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -220,19 +220,19 @@ - 10.0.0-alpha.2.25058.2 - 10.0.0-alpha.2.25058.2 - 10.0.0-alpha.2.25058.2 - 10.0.0-alpha.2.25058.2 - 10.0.0-alpha.2.25058.2 - 10.0.0-alpha.2.25058.2 - 10.0.0-alpha.2.25058.2 - 10.0.0-alpha.2.25058.2 - 10.0.0-alpha.2.25058.2 - 10.0.0-alpha.2.25058.2 - 10.0.0-alpha.2.25058.2 - 10.0.0-alpha.2.25058.2 - 10.0.0-alpha.2.25058.2 + 10.0.0-alpha.2.25060.14 + 10.0.0-alpha.2.25060.14 + 10.0.0-alpha.2.25060.14 + 10.0.0-alpha.2.25060.14 + 10.0.0-alpha.2.25060.14 + 10.0.0-alpha.2.25060.14 + 10.0.0-alpha.2.25060.14 + 10.0.0-alpha.2.25060.14 + 10.0.0-alpha.2.25060.14 + 10.0.0-alpha.2.25060.14 + 10.0.0-alpha.2.25060.14 + 10.0.0-alpha.2.25060.14 + 10.0.0-alpha.2.25060.14 From 67b83583704b4a6d988bed2b2b928a0719b3b7b2 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 11 Jan 2025 04:45:07 +0000 Subject: [PATCH 077/193] Update dependencies from https://github.com/dotnet/aspnetcore build 20250110.15 dotnet-dev-certs , dotnet-user-jwts , dotnet-user-secrets , Microsoft.AspNetCore.Analyzers , Microsoft.AspNetCore.App.Ref , Microsoft.AspNetCore.App.Ref.Internal , Microsoft.AspNetCore.App.Runtime.win-x64 , Microsoft.AspNetCore.Authorization , Microsoft.AspNetCore.Components.SdkAnalyzers , Microsoft.AspNetCore.Components.Web , Microsoft.AspNetCore.DeveloperCertificates.XPlat , Microsoft.AspNetCore.Mvc.Analyzers , Microsoft.AspNetCore.Mvc.Api.Analyzers , Microsoft.AspNetCore.TestHost , Microsoft.Extensions.FileProviders.Embedded , Microsoft.Extensions.ObjectPool , Microsoft.JSInterop , VS.Redist.Common.AspNetCore.SharedFramework.x64.10.0 , Microsoft.SourceBuild.Intermediate.aspnetcore From Version 10.0.0-alpha.2.25060.14 -> To Version 10.0.0-alpha.2.25060.15 --- eng/Version.Details.xml | 76 ++++++++++++++++++++--------------------- eng/Versions.props | 26 +++++++------- 2 files changed, 51 insertions(+), 51 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 1058db1ea5c6..b6b0415b7d64 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -135,13 +135,13 @@ https://github.com/dotnet/roslyn 911cf5f462960bdd01df1ea3c0d0c217b3c3838b - + https://github.com/dotnet/aspnetcore - f655a4a1cec91d2325b408142a8fe9f6d390c6f4 + 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 - + https://github.com/dotnet/aspnetcore - f655a4a1cec91d2325b408142a8fe9f6d390c6f4 + 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 https://github.com/nuget/nuget.client @@ -275,54 +275,54 @@ https://github.com/dotnet/wpf 8e79c0b3980f0670bcc68d7f1ee7f06ff256ec94 - + https://github.com/dotnet/aspnetcore - f655a4a1cec91d2325b408142a8fe9f6d390c6f4 + 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 - + https://github.com/dotnet/aspnetcore - f655a4a1cec91d2325b408142a8fe9f6d390c6f4 + 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 - + https://github.com/dotnet/aspnetcore - f655a4a1cec91d2325b408142a8fe9f6d390c6f4 + 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 - + https://github.com/dotnet/aspnetcore - f655a4a1cec91d2325b408142a8fe9f6d390c6f4 + 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 - + https://github.com/dotnet/aspnetcore - f655a4a1cec91d2325b408142a8fe9f6d390c6f4 + 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 - + https://github.com/dotnet/aspnetcore - f655a4a1cec91d2325b408142a8fe9f6d390c6f4 + 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 - + https://github.com/dotnet/aspnetcore - f655a4a1cec91d2325b408142a8fe9f6d390c6f4 + 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 - + https://github.com/dotnet/aspnetcore - f655a4a1cec91d2325b408142a8fe9f6d390c6f4 + 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 - + https://github.com/dotnet/aspnetcore - f655a4a1cec91d2325b408142a8fe9f6d390c6f4 + 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 - + https://github.com/dotnet/aspnetcore - f655a4a1cec91d2325b408142a8fe9f6d390c6f4 + 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 - + https://github.com/dotnet/aspnetcore - f655a4a1cec91d2325b408142a8fe9f6d390c6f4 + 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 - + https://github.com/dotnet/aspnetcore - f655a4a1cec91d2325b408142a8fe9f6d390c6f4 + 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 @@ -343,21 +343,21 @@ 46efcec83821d7f0322c01bc9549de83e855dcac - + https://github.com/dotnet/aspnetcore - f655a4a1cec91d2325b408142a8fe9f6d390c6f4 + 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 - + https://github.com/dotnet/aspnetcore - f655a4a1cec91d2325b408142a8fe9f6d390c6f4 + 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 - + https://github.com/dotnet/aspnetcore - f655a4a1cec91d2325b408142a8fe9f6d390c6f4 + 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 - + https://github.com/dotnet/aspnetcore - f655a4a1cec91d2325b408142a8fe9f6d390c6f4 + 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 @@ -509,9 +509,9 @@ https://github.com/dotnet/runtime 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/aspnetcore - f655a4a1cec91d2325b408142a8fe9f6d390c6f4 + 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index bd41a15313ab..81967892d941 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -220,19 +220,19 @@ - 10.0.0-alpha.2.25060.14 - 10.0.0-alpha.2.25060.14 - 10.0.0-alpha.2.25060.14 - 10.0.0-alpha.2.25060.14 - 10.0.0-alpha.2.25060.14 - 10.0.0-alpha.2.25060.14 - 10.0.0-alpha.2.25060.14 - 10.0.0-alpha.2.25060.14 - 10.0.0-alpha.2.25060.14 - 10.0.0-alpha.2.25060.14 - 10.0.0-alpha.2.25060.14 - 10.0.0-alpha.2.25060.14 - 10.0.0-alpha.2.25060.14 + 10.0.0-alpha.2.25060.15 + 10.0.0-alpha.2.25060.15 + 10.0.0-alpha.2.25060.15 + 10.0.0-alpha.2.25060.15 + 10.0.0-alpha.2.25060.15 + 10.0.0-alpha.2.25060.15 + 10.0.0-alpha.2.25060.15 + 10.0.0-alpha.2.25060.15 + 10.0.0-alpha.2.25060.15 + 10.0.0-alpha.2.25060.15 + 10.0.0-alpha.2.25060.15 + 10.0.0-alpha.2.25060.15 + 10.0.0-alpha.2.25060.15 From 4606f62cce29be312118f220919013cec5fd2224 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 11 Jan 2025 07:30:22 +0000 Subject: [PATCH 078/193] Update dependencies from https://github.com/dotnet/aspnetcore build 20250110.16 dotnet-dev-certs , dotnet-user-jwts , dotnet-user-secrets , Microsoft.AspNetCore.Analyzers , Microsoft.AspNetCore.App.Ref , Microsoft.AspNetCore.App.Ref.Internal , Microsoft.AspNetCore.App.Runtime.win-x64 , Microsoft.AspNetCore.Authorization , Microsoft.AspNetCore.Components.SdkAnalyzers , Microsoft.AspNetCore.Components.Web , Microsoft.AspNetCore.DeveloperCertificates.XPlat , Microsoft.AspNetCore.Mvc.Analyzers , Microsoft.AspNetCore.Mvc.Api.Analyzers , Microsoft.AspNetCore.TestHost , Microsoft.Extensions.FileProviders.Embedded , Microsoft.Extensions.ObjectPool , Microsoft.JSInterop , VS.Redist.Common.AspNetCore.SharedFramework.x64.10.0 , Microsoft.SourceBuild.Intermediate.aspnetcore From Version 10.0.0-alpha.2.25060.14 -> To Version 10.0.0-alpha.2.25060.16 --- eng/Version.Details.xml | 76 ++++++++++++++++++++--------------------- eng/Versions.props | 26 +++++++------- 2 files changed, 51 insertions(+), 51 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index b6b0415b7d64..f02a9cb1973a 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -135,13 +135,13 @@ https://github.com/dotnet/roslyn 911cf5f462960bdd01df1ea3c0d0c217b3c3838b - + https://github.com/dotnet/aspnetcore - 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 + 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 - + https://github.com/dotnet/aspnetcore - 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 + 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 https://github.com/nuget/nuget.client @@ -275,54 +275,54 @@ https://github.com/dotnet/wpf 8e79c0b3980f0670bcc68d7f1ee7f06ff256ec94 - + https://github.com/dotnet/aspnetcore - 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 + 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 - + https://github.com/dotnet/aspnetcore - 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 + 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 - + https://github.com/dotnet/aspnetcore - 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 + 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 - + https://github.com/dotnet/aspnetcore - 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 + 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 - + https://github.com/dotnet/aspnetcore - 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 + 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 - + https://github.com/dotnet/aspnetcore - 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 + 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 - + https://github.com/dotnet/aspnetcore - 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 + 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 - + https://github.com/dotnet/aspnetcore - 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 + 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 - + https://github.com/dotnet/aspnetcore - 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 + 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 - + https://github.com/dotnet/aspnetcore - 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 + 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 - + https://github.com/dotnet/aspnetcore - 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 + 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 - + https://github.com/dotnet/aspnetcore - 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 + 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 @@ -343,21 +343,21 @@ 46efcec83821d7f0322c01bc9549de83e855dcac - + https://github.com/dotnet/aspnetcore - 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 + 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 - + https://github.com/dotnet/aspnetcore - 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 + 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 - + https://github.com/dotnet/aspnetcore - 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 + 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 - + https://github.com/dotnet/aspnetcore - 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 + 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 @@ -509,9 +509,9 @@ https://github.com/dotnet/runtime 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/aspnetcore - 9a97e2acb8bf037a56e1d905f8fc5468e5de7de5 + 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 81967892d941..d92d0d8d86e5 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -220,19 +220,19 @@ - 10.0.0-alpha.2.25060.15 - 10.0.0-alpha.2.25060.15 - 10.0.0-alpha.2.25060.15 - 10.0.0-alpha.2.25060.15 - 10.0.0-alpha.2.25060.15 - 10.0.0-alpha.2.25060.15 - 10.0.0-alpha.2.25060.15 - 10.0.0-alpha.2.25060.15 - 10.0.0-alpha.2.25060.15 - 10.0.0-alpha.2.25060.15 - 10.0.0-alpha.2.25060.15 - 10.0.0-alpha.2.25060.15 - 10.0.0-alpha.2.25060.15 + 10.0.0-alpha.2.25060.16 + 10.0.0-alpha.2.25060.16 + 10.0.0-alpha.2.25060.16 + 10.0.0-alpha.2.25060.16 + 10.0.0-alpha.2.25060.16 + 10.0.0-alpha.2.25060.16 + 10.0.0-alpha.2.25060.16 + 10.0.0-alpha.2.25060.16 + 10.0.0-alpha.2.25060.16 + 10.0.0-alpha.2.25060.16 + 10.0.0-alpha.2.25060.16 + 10.0.0-alpha.2.25060.16 + 10.0.0-alpha.2.25060.16 From 0ac1e59219b0ff757a553441ec8931985d65c7a9 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Sat, 11 Jan 2025 07:39:38 +0000 Subject: [PATCH 079/193] [main] Update dependencies from dotnet/arcade (#45848) Co-authored-by: dotnet-maestro[bot] Co-authored-by: Viktor Hofer --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 8 ++++---- global.json | 4 ++-- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 1058db1ea5c6..73b168569bbe 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -559,34 +559,34 @@ - + https://github.com/dotnet/arcade - e7cb34898a1b610eb2a22591a2178da6f1fb7e3c + f2135575461b9adce73a7178f0a9692c2b8608f1 - + https://github.com/dotnet/arcade - e7cb34898a1b610eb2a22591a2178da6f1fb7e3c + f2135575461b9adce73a7178f0a9692c2b8608f1 - + https://github.com/dotnet/arcade - e7cb34898a1b610eb2a22591a2178da6f1fb7e3c + f2135575461b9adce73a7178f0a9692c2b8608f1 - + https://github.com/dotnet/arcade - e7cb34898a1b610eb2a22591a2178da6f1fb7e3c + f2135575461b9adce73a7178f0a9692c2b8608f1 - + https://github.com/dotnet/arcade - e7cb34898a1b610eb2a22591a2178da6f1fb7e3c + f2135575461b9adce73a7178f0a9692c2b8608f1 - + https://github.com/dotnet/arcade - e7cb34898a1b610eb2a22591a2178da6f1fb7e3c + f2135575461b9adce73a7178f0a9692c2b8608f1 - + https://github.com/dotnet/arcade - e7cb34898a1b610eb2a22591a2178da6f1fb7e3c + f2135575461b9adce73a7178f0a9692c2b8608f1 diff --git a/eng/Versions.props b/eng/Versions.props index bd41a15313ab..ee4ae5005061 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -262,10 +262,10 @@ - 10.0.0-beta.25058.4 - 10.0.0-beta.25058.4 - 10.0.0-beta.25058.4 - 10.0.0-beta.25058.4 + 10.0.0-beta.25060.4 + 10.0.0-beta.25060.4 + 10.0.0-beta.25060.4 + 10.0.0-beta.25060.4 diff --git a/global.json b/global.json index d3857f505e02..835c78d3cb9a 100644 --- a/global.json +++ b/global.json @@ -17,8 +17,8 @@ "cmake": "latest" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25058.4", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.25058.4", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25060.4", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.25060.4", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.DotNet.CMake.Sdk": "9.0.0-beta.24217.1" } From ebbd4f72216f5643dcd8c92941b87e5ed99bdf85 Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Sat, 11 Jan 2025 09:06:16 +0100 Subject: [PATCH 080/193] Remove PackageVersionPropsFlowType workaround in sourcelink (#45875) --- src/SourceBuild/content/repo-projects/sourcelink.proj | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/SourceBuild/content/repo-projects/sourcelink.proj b/src/SourceBuild/content/repo-projects/sourcelink.proj index 6e6127664f5d..e9c2050132fb 100644 --- a/src/SourceBuild/content/repo-projects/sourcelink.proj +++ b/src/SourceBuild/content/repo-projects/sourcelink.proj @@ -2,9 +2,6 @@ true - - - AllPackages From af6407c798c364b46fe567932e96fb5285395177 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Sat, 11 Jan 2025 08:43:43 +0000 Subject: [PATCH 081/193] [main] Update dependencies from dotnet/sourcelink (#45847) Co-authored-by: dotnet-maestro[bot] Co-authored-by: Viktor Hofer --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 12 ++++++------ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 73b168569bbe..daa3e58d0fe9 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -430,34 +430,34 @@ https://github.com/dotnet/deployment-tools c7bcd7d32f7744af89dfd031a9b2085e3004fd9c - + https://github.com/dotnet/sourcelink - 1bd66a7dc3cc5b5a8da1b7560037afa7c5e3507f + 57c3b92b9f603ee90accd758dbd3efefcf7c080f - + https://github.com/dotnet/sourcelink - 1bd66a7dc3cc5b5a8da1b7560037afa7c5e3507f + 57c3b92b9f603ee90accd758dbd3efefcf7c080f - + https://github.com/dotnet/sourcelink - 1bd66a7dc3cc5b5a8da1b7560037afa7c5e3507f + 57c3b92b9f603ee90accd758dbd3efefcf7c080f - + https://github.com/dotnet/sourcelink - 1bd66a7dc3cc5b5a8da1b7560037afa7c5e3507f + 57c3b92b9f603ee90accd758dbd3efefcf7c080f - + https://github.com/dotnet/sourcelink - 1bd66a7dc3cc5b5a8da1b7560037afa7c5e3507f + 57c3b92b9f603ee90accd758dbd3efefcf7c080f - + https://github.com/dotnet/sourcelink - 1bd66a7dc3cc5b5a8da1b7560037afa7c5e3507f + 57c3b92b9f603ee90accd758dbd3efefcf7c080f - + https://github.com/dotnet/sourcelink - 1bd66a7dc3cc5b5a8da1b7560037afa7c5e3507f + 57c3b92b9f603ee90accd758dbd3efefcf7c080f diff --git a/eng/Versions.props b/eng/Versions.props index ee4ae5005061..2623df06f796 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -269,12 +269,12 @@ - 9.0.0-beta.25057.2 - 9.0.0-beta.25057.2 - 9.0.0-beta.25057.2 - 9.0.0-beta.25057.2 - 9.0.0-beta.25057.2 - 9.0.0-beta.25057.2 + 9.0.0-beta.25060.1 + 9.0.0-beta.25060.1 + 9.0.0-beta.25060.1 + 9.0.0-beta.25060.1 + 9.0.0-beta.25060.1 + 9.0.0-beta.25060.1 From 7cd85dfd6535261cb000ee84f19c445be69a2870 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Sat, 11 Jan 2025 09:56:01 +0100 Subject: [PATCH 082/193] [main] Update dependencies from dotnet/runtime (#45894) Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 152 ++++++++++++++++++++-------------------- eng/Versions.props | 72 +++++++++---------- 2 files changed, 112 insertions(+), 112 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index daa3e58d0fe9..86cb32e3c1aa 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -15,46 +15,46 @@ d7f0bf0d7f983456641e7640708a62c4f0a63620 - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd @@ -63,14 +63,14 @@ https://github.com/dotnet/core-setup 7d57652f33493fa022125b7f63aad0d70c52d810 - + https://github.com/dotnet/emsdk - 6ee0290df7381d7b9c4887b440e1a2815dc72407 + 0de3165cb0d56323b6caaf8e9916d4d9e72da32d - + https://github.com/dotnet/emsdk - 6ee0290df7381d7b9c4887b440e1a2815dc72407 + 0de3165cb0d56323b6caaf8e9916d4d9e72da32d @@ -230,29 +230,29 @@ 8d080dfdb76633bcac69a90d031a31694908ecaa - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd https://github.com/dotnet/windowsdesktop @@ -473,89 +473,89 @@ - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd https://github.com/dotnet/aspnetcore f655a4a1cec91d2325b408142a8fe9f6d390c6f4 - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd @@ -589,9 +589,9 @@ f2135575461b9adce73a7178f0a9692c2b8608f1 - + https://github.com/dotnet/runtime - 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 + bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd https://github.com/dotnet/arcade-services diff --git a/eng/Versions.props b/eng/Versions.props index 2623df06f796..7c5e10d01979 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -87,43 +87,43 @@ - 10.0.0-alpha.1.25060.5 - 10.0.0-alpha.1.25060.5 - 10.0.0-alpha.1.25060.5 - 10.0.0-alpha.1.25060.5 - 10.0.0-alpha.1.25060.5 - 10.0.0-alpha.1.25060.5 - 10.0.0-alpha.1.25060.5 - 10.0.0-alpha.1.25060.5 - 10.0.0-alpha.1.25060.5 - 10.0.0-alpha.1.25060.5 - 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.15 8.0.0-rc.1.23414.4 - 10.0.0-alpha.1.25060.5 - 10.0.0-alpha.1.25060.5 - 10.0.0-alpha.1.25060.5 - 10.0.0-alpha.1.25060.5 - 10.0.0-alpha.1.25060.5 - 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.15 2.1.0 - 10.0.0-alpha.1.25060.5 - 10.0.0-alpha.1.25060.5 - 10.0.0-alpha.1.25060.5 - 10.0.0-alpha.1.25060.5 - 10.0.0-alpha.1.25060.5 - 10.0.0-alpha.1.25060.5 - 10.0.0-alpha.1.25060.5 - 10.0.0-alpha.1.25060.5 - 10.0.0-alpha.1.25060.5 - 10.0.0-alpha.1.25060.5 - 10.0.0-alpha.1.25060.5 - 10.0.0-alpha.1.25060.5 - 10.0.0-alpha.1.25060.5 - 10.0.0-alpha.1.25060.5 - 10.0.0-alpha.1.25060.5 - 10.0.0-alpha.1.25060.5 - 10.0.0-alpha.1.25060.5 - 10.0.0-alpha.1.25060.5 + 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.15 8.0.0 @@ -309,7 +309,7 @@ 14.2.9714-net9-p6 17.2.9714-net9-p6 - 10.0.0-alpha.1.25058.3 + 10.0.0-alpha.1.25059.1 $(MicrosoftNETWorkloadEmscriptenCurrentManifest100100TransportPackageVersion) 10.0.100$([System.Text.RegularExpressions.Regex]::Match($(EmscriptenWorkloadManifestVersion), `-[A-z]*[\.]*\d*`)) From 8e051f418ca1953b89e1d09446e79fdcf750b1e9 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Sat, 11 Jan 2025 09:57:27 +0100 Subject: [PATCH 083/193] [main] Update dependencies from dotnet/msbuild (#45888) Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 86cb32e3c1aa..a3d1561e87bc 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -73,18 +73,18 @@ 0de3165cb0d56323b6caaf8e9916d4d9e72da32d - + https://github.com/dotnet/msbuild - 01501b7d0f9a09dfb71717c5b55a55d75f5af354 + 07a83ea02160de9d22bc98ce69c884a840787140 - + https://github.com/dotnet/msbuild - 01501b7d0f9a09dfb71717c5b55a55d75f5af354 + 07a83ea02160de9d22bc98ce69c884a840787140 - + https://github.com/dotnet/msbuild - 01501b7d0f9a09dfb71717c5b55a55d75f5af354 + 07a83ea02160de9d22bc98ce69c884a840787140 diff --git a/eng/Versions.props b/eng/Versions.props index 7c5e10d01979..6930d31b83bd 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -185,8 +185,8 @@ At usage sites, either we use MicrosoftBuildMinimumVersion, or MicrosoftBuildVersion in source-only modes. Additionally, set the MinimumVSVersion for the installer UI that's required for targeting NetCurrent --> - 17.14.0-preview-25059-08 - 17.14.0-preview-25059-08 + 17.14.0-preview-25060-06 + 17.14.0-preview-25060-06 17.11.4 17.12 From 01ea8f6483e08bd0f9a1ae5f2911071489b54b87 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Sat, 11 Jan 2025 12:15:19 +0000 Subject: [PATCH 084/193] [main] Update dependencies from dotnet/runtime (#45900) [main] Update dependencies from dotnet/runtime --- eng/Version.Details.xml | 144 ++++++++++++++++++++-------------------- eng/Versions.props | 70 +++++++++---------- 2 files changed, 107 insertions(+), 107 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a3d1561e87bc..00d57d3e620c 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -15,46 +15,46 @@ d7f0bf0d7f983456641e7640708a62c4f0a63620 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 @@ -230,29 +230,29 @@ 8d080dfdb76633bcac69a90d031a31694908ecaa - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 https://github.com/dotnet/windowsdesktop @@ -473,89 +473,89 @@ - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 https://github.com/dotnet/aspnetcore f655a4a1cec91d2325b408142a8fe9f6d390c6f4 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 @@ -589,9 +589,9 @@ f2135575461b9adce73a7178f0a9692c2b8608f1 - + https://github.com/dotnet/runtime - bc2ac2f3d51ee9ee58a01ee17ac254ac09e5f3cd + e68313e1612010c9515ea5a97bc5c913c7a0a8d6 https://github.com/dotnet/arcade-services diff --git a/eng/Versions.props b/eng/Versions.props index 6930d31b83bd..5cc35fa92925 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -87,43 +87,43 @@ - 10.0.0-alpha.1.25060.15 - 10.0.0-alpha.1.25060.15 - 10.0.0-alpha.1.25060.15 - 10.0.0-alpha.1.25060.15 - 10.0.0-alpha.1.25060.15 - 10.0.0-alpha.1.25060.15 - 10.0.0-alpha.1.25060.15 - 10.0.0-alpha.1.25060.15 - 10.0.0-alpha.1.25060.15 - 10.0.0-alpha.1.25060.15 - 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25060.22 8.0.0-rc.1.23414.4 - 10.0.0-alpha.1.25060.15 - 10.0.0-alpha.1.25060.15 - 10.0.0-alpha.1.25060.15 - 10.0.0-alpha.1.25060.15 - 10.0.0-alpha.1.25060.15 - 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25060.22 2.1.0 - 10.0.0-alpha.1.25060.15 - 10.0.0-alpha.1.25060.15 - 10.0.0-alpha.1.25060.15 - 10.0.0-alpha.1.25060.15 - 10.0.0-alpha.1.25060.15 - 10.0.0-alpha.1.25060.15 - 10.0.0-alpha.1.25060.15 - 10.0.0-alpha.1.25060.15 - 10.0.0-alpha.1.25060.15 - 10.0.0-alpha.1.25060.15 - 10.0.0-alpha.1.25060.15 - 10.0.0-alpha.1.25060.15 - 10.0.0-alpha.1.25060.15 - 10.0.0-alpha.1.25060.15 - 10.0.0-alpha.1.25060.15 - 10.0.0-alpha.1.25060.15 - 10.0.0-alpha.1.25060.15 - 10.0.0-alpha.1.25060.15 + 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25060.22 8.0.0 From c733dff6c69c23609b2a233d9ba71cf8ff30bc6f Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 11 Jan 2025 19:42:15 +0000 Subject: [PATCH 085/193] Update dependencies from https://github.com/dotnet/windowsdesktop build 20250111.1 Microsoft.WindowsDesktop.App.Ref , Microsoft.WindowsDesktop.App.Runtime.win-x64 , VS.Redist.Common.WindowsDesktop.SharedFramework.x64.10.0 , VS.Redist.Common.WindowsDesktop.TargetingPack.x64.10.0 From Version 10.0.0-alpha.1.25059.2 -> To Version 10.0.0-alpha.1.25061.1 Dependency coherency updates Microsoft.NET.Sdk.WindowsDesktop,Microsoft.Dotnet.WinForms.ProjectTemplates,Microsoft.DotNet.Wpf.ProjectTemplates From Version 10.0.0-alpha.1.25059.2 -> To Version 10.0.0-alpha.1.25060.3 (parent: Microsoft.WindowsDesktop.App.Ref --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 12 ++++++------ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 00d57d3e620c..d01b2f7f9dad 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -254,26 +254,26 @@ https://github.com/dotnet/runtime e68313e1612010c9515ea5a97bc5c913c7a0a8d6 - + https://github.com/dotnet/windowsdesktop - f222b11af3848fcdae7fd071cef42a5d53d106a0 + 2df543b48861c637219e80cebea9fcfdddc5e2ef - + https://github.com/dotnet/windowsdesktop - f222b11af3848fcdae7fd071cef42a5d53d106a0 + 2df543b48861c637219e80cebea9fcfdddc5e2ef - + https://github.com/dotnet/windowsdesktop - f222b11af3848fcdae7fd071cef42a5d53d106a0 + 2df543b48861c637219e80cebea9fcfdddc5e2ef - + https://github.com/dotnet/windowsdesktop - f222b11af3848fcdae7fd071cef42a5d53d106a0 + 2df543b48861c637219e80cebea9fcfdddc5e2ef - + https://github.com/dotnet/wpf - 8e79c0b3980f0670bcc68d7f1ee7f06ff256ec94 + 1f10d776a73a6f6c729bf202c56aa052382957b8 https://github.com/dotnet/aspnetcore @@ -360,13 +360,13 @@ f655a4a1cec91d2325b408142a8fe9f6d390c6f4 - + https://github.com/dotnet/winforms - 927806ea97973240d7395970309d106f2d65c6d0 + 2261fa0fda3fcbe76f717263a7f19234c57587ae - + https://github.com/dotnet/wpf - 8e79c0b3980f0670bcc68d7f1ee7f06ff256ec94 + 1f10d776a73a6f6c729bf202c56aa052382957b8 https://github.com/dotnet/xdt diff --git a/eng/Versions.props b/eng/Versions.props index 5cc35fa92925..7bf53ef0c5e6 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -83,7 +83,7 @@ - 10.0.0-alpha.1.25059.1 + 10.0.0-alpha.1.25060.4 @@ -136,9 +136,9 @@ - 10.0.0-alpha.1.25059.2 - 10.0.0-alpha.1.25059.2 - 10.0.0-alpha.1.25059.2 + 10.0.0-alpha.1.25061.1 + 10.0.0-alpha.1.25061.1 + 10.0.0-alpha.1.25061.1 @@ -242,8 +242,8 @@ - 10.0.0-alpha.1.25059.2 - 10.0.0-alpha.1.25059.2 + 10.0.0-alpha.1.25060.3 + 10.0.0-alpha.1.25060.3 From f218f3768639e131f5c833c707ef9b0585ed99ec Mon Sep 17 00:00:00 2001 From: Matt Thalman Date: Sat, 11 Jan 2025 14:14:16 -0600 Subject: [PATCH 086/193] Remove dependency on prebuilts tarball (#45864) --- src/SourceBuild/content/eng/Versions.props | 1 - 1 file changed, 1 deletion(-) diff --git a/src/SourceBuild/content/eng/Versions.props b/src/SourceBuild/content/eng/Versions.props index ed08a68c0628..dcd3ae604989 100644 --- a/src/SourceBuild/content/eng/Versions.props +++ b/src/SourceBuild/content/eng/Versions.props @@ -25,7 +25,6 @@ --> 10.0.100-alpha.1.25060.1 10.0.100-alpha.1.25060.1 - 0.1.0-10.0.100-7 2.0.0-beta4.24126.1 From b730d86aa623a984b9aebbf1371eadf23c465a91 Mon Sep 17 00:00:00 2001 From: Chet Husk Date: Sat, 11 Jan 2025 14:49:30 -0600 Subject: [PATCH 087/193] allow reading all mcr image names (#44738) --- .../Tasks/ComputeDotnetBaseImageAndTag.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Containers/Microsoft.NET.Build.Containers/Tasks/ComputeDotnetBaseImageAndTag.cs b/src/Containers/Microsoft.NET.Build.Containers/Tasks/ComputeDotnetBaseImageAndTag.cs index b5573582900b..fcb0b66922f7 100644 --- a/src/Containers/Microsoft.NET.Build.Containers/Tasks/ComputeDotnetBaseImageAndTag.cs +++ b/src/Containers/Microsoft.NET.Build.Containers/Tasks/ComputeDotnetBaseImageAndTag.cs @@ -320,11 +320,11 @@ private bool ComputeRepositoryAndTag([NotNullWhen(true)] out string? repository, }; } - private bool UserImageIsMicrosoftBaseImage => UserBaseImage?.StartsWith("mcr.microsoft.com/dotnet") ?? false; + private bool UserImageIsMicrosoftBaseImage => UserBaseImage?.StartsWith("mcr.microsoft.com/") ?? false; private void LogNoInferencePerformedTelemetry() { - // we should only log the base image, tag, containerFamily if we _know_ they are .NET's MCR images + // we should only log the base image, tag, containerFamily if we _know_ they are MCR images string? userBaseImage = null; string? userTag = null; string? containerFamily = null; From b782e01e296ac22f43ffd8a9358c8873485ae226 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sun, 12 Jan 2025 05:02:09 +0000 Subject: [PATCH 088/193] Update dependencies from https://github.com/dotnet/arcade build 20250111.1 Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.XliffTasks , Microsoft.DotNet.XUnitExtensions From Version 10.0.0-beta.25060.4 -> To Version 10.0.0-beta.25061.1 --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 8 ++++---- eng/common/tools.ps1 | 2 +- eng/common/tools.sh | 2 +- global.json | 4 ++-- 5 files changed, 22 insertions(+), 22 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 00d57d3e620c..13b92b15b7dd 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -559,34 +559,34 @@ - + https://github.com/dotnet/arcade - f2135575461b9adce73a7178f0a9692c2b8608f1 + 98b4ae348fa01b99dc6fbfc8f601efd9b90090db - + https://github.com/dotnet/arcade - f2135575461b9adce73a7178f0a9692c2b8608f1 + 98b4ae348fa01b99dc6fbfc8f601efd9b90090db - + https://github.com/dotnet/arcade - f2135575461b9adce73a7178f0a9692c2b8608f1 + 98b4ae348fa01b99dc6fbfc8f601efd9b90090db - + https://github.com/dotnet/arcade - f2135575461b9adce73a7178f0a9692c2b8608f1 + 98b4ae348fa01b99dc6fbfc8f601efd9b90090db - + https://github.com/dotnet/arcade - f2135575461b9adce73a7178f0a9692c2b8608f1 + 98b4ae348fa01b99dc6fbfc8f601efd9b90090db - + https://github.com/dotnet/arcade - f2135575461b9adce73a7178f0a9692c2b8608f1 + 98b4ae348fa01b99dc6fbfc8f601efd9b90090db - + https://github.com/dotnet/arcade - f2135575461b9adce73a7178f0a9692c2b8608f1 + 98b4ae348fa01b99dc6fbfc8f601efd9b90090db diff --git a/eng/Versions.props b/eng/Versions.props index 5cc35fa92925..d6ffbfcfcb22 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -262,10 +262,10 @@ - 10.0.0-beta.25060.4 - 10.0.0-beta.25060.4 - 10.0.0-beta.25060.4 - 10.0.0-beta.25060.4 + 10.0.0-beta.25061.1 + 10.0.0-beta.25061.1 + 10.0.0-beta.25061.1 + 10.0.0-beta.25061.1 diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index 04b02f4fd3cc..853c63849626 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -262,7 +262,7 @@ function GetDotNetInstallScript([string] $dotnetRoot) { if (!(Test-Path $installScript)) { Create-Directory $dotnetRoot $ProgressPreference = 'SilentlyContinue' # Don't display the console progress UI - it's a huge perf hit - $uri = "https://dotnet.microsoft.com/download/dotnet/scripts/$dotnetInstallScriptVersion/dotnet-install.ps1" + $uri = "https://raw.githubusercontent.com/dotnet/install-scripts/4b17227b30fbbad567d4d4fba17c59da51bc817b/src/dotnet-install.ps1" Retry({ Write-Host "GET $uri" diff --git a/eng/common/tools.sh b/eng/common/tools.sh index 40485a0f59de..84ab5f124acc 100755 --- a/eng/common/tools.sh +++ b/eng/common/tools.sh @@ -295,7 +295,7 @@ function with_retries { function GetDotNetInstallScript { local root=$1 local install_script="$root/dotnet-install.sh" - local install_script_url="https://dotnet.microsoft.com/download/dotnet/scripts/$dotnetInstallScriptVersion/dotnet-install.sh" + local install_script_url="https://raw.githubusercontent.com/dotnet/install-scripts/4b17227b30fbbad567d4d4fba17c59da51bc817b/src/dotnet-install.sh" if [[ ! -a "$install_script" ]]; then mkdir -p "$root" diff --git a/global.json b/global.json index 835c78d3cb9a..7d56494ca0cf 100644 --- a/global.json +++ b/global.json @@ -17,8 +17,8 @@ "cmake": "latest" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25060.4", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.25060.4", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25061.1", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.25061.1", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.DotNet.CMake.Sdk": "9.0.0-beta.24217.1" } From 15e02ac9583ddb0e6a45871a4cba163ad3e5cbe4 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sun, 12 Jan 2025 05:02:19 +0000 Subject: [PATCH 089/193] Update dependencies from https://github.com/dotnet/sourcelink build 20250111.1 Microsoft.SourceBuild.Intermediate.sourcelink , Microsoft.Build.Tasks.Git , Microsoft.SourceLink.AzureRepos.Git , Microsoft.SourceLink.Bitbucket.Git , Microsoft.SourceLink.Common , Microsoft.SourceLink.GitHub , Microsoft.SourceLink.GitLab From Version 9.0.0-beta.25060.1 -> To Version 9.0.0-beta.25061.1 --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 12 ++++++------ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 00d57d3e620c..2b44856c5495 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -430,34 +430,34 @@ https://github.com/dotnet/deployment-tools c7bcd7d32f7744af89dfd031a9b2085e3004fd9c - + https://github.com/dotnet/sourcelink - 57c3b92b9f603ee90accd758dbd3efefcf7c080f + 5ea73491228574eb803a676a7248b3fc9e602d4d - + https://github.com/dotnet/sourcelink - 57c3b92b9f603ee90accd758dbd3efefcf7c080f + 5ea73491228574eb803a676a7248b3fc9e602d4d - + https://github.com/dotnet/sourcelink - 57c3b92b9f603ee90accd758dbd3efefcf7c080f + 5ea73491228574eb803a676a7248b3fc9e602d4d - + https://github.com/dotnet/sourcelink - 57c3b92b9f603ee90accd758dbd3efefcf7c080f + 5ea73491228574eb803a676a7248b3fc9e602d4d - + https://github.com/dotnet/sourcelink - 57c3b92b9f603ee90accd758dbd3efefcf7c080f + 5ea73491228574eb803a676a7248b3fc9e602d4d - + https://github.com/dotnet/sourcelink - 57c3b92b9f603ee90accd758dbd3efefcf7c080f + 5ea73491228574eb803a676a7248b3fc9e602d4d - + https://github.com/dotnet/sourcelink - 57c3b92b9f603ee90accd758dbd3efefcf7c080f + 5ea73491228574eb803a676a7248b3fc9e602d4d diff --git a/eng/Versions.props b/eng/Versions.props index 5cc35fa92925..2834b342e8f8 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -269,12 +269,12 @@ - 9.0.0-beta.25060.1 - 9.0.0-beta.25060.1 - 9.0.0-beta.25060.1 - 9.0.0-beta.25060.1 - 9.0.0-beta.25060.1 - 9.0.0-beta.25060.1 + 9.0.0-beta.25061.1 + 9.0.0-beta.25061.1 + 9.0.0-beta.25061.1 + 9.0.0-beta.25061.1 + 9.0.0-beta.25061.1 + 9.0.0-beta.25061.1 From 8599dfe67ce8f82eab37c4a5fd0f1f85352c6209 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sun, 12 Jan 2025 05:02:57 +0000 Subject: [PATCH 090/193] Update dependencies from https://github.com/dotnet/runtime build 20250111.3 Microsoft.SourceBuild.Intermediate.runtime.linux-x64 , Microsoft.Bcl.AsyncInterfaces , Microsoft.Extensions.DependencyModel , Microsoft.Extensions.FileProviders.Abstractions , Microsoft.Extensions.FileSystemGlobbing , Microsoft.Extensions.Logging , Microsoft.Extensions.Logging.Abstractions , Microsoft.Extensions.Logging.Console , Microsoft.NET.HostModel , Microsoft.NET.ILLink.Tasks , Microsoft.NETCore.App.Host.win-x64 , Microsoft.NETCore.App.Ref , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.Platforms , Microsoft.Win32.SystemEvents , System.CodeDom , System.Composition.AttributedModel , System.Composition.Convention , System.Composition.Hosting , System.Composition.Runtime , System.Composition.TypedParts , System.Configuration.ConfigurationManager , System.Formats.Asn1 , System.IO.Hashing , System.Reflection.MetadataLoadContext , System.Resources.Extensions , System.Security.Cryptography.Pkcs , System.Security.Cryptography.ProtectedData , System.Security.Cryptography.Xml , System.Security.Permissions , System.ServiceProcess.ServiceController , System.Text.Encoding.CodePages , System.Text.Json , System.Windows.Extensions , VS.Redist.Common.NetCore.SharedFramework.x64.10.0 , VS.Redist.Common.NetCore.TargetingPack.x64.10.0 From Version 10.0.0-alpha.1.25060.22 -> To Version 10.0.0-alpha.1.25061.3 --- eng/Version.Details.xml | 144 ++++++++++++++++++++-------------------- eng/Versions.props | 70 +++++++++---------- 2 files changed, 107 insertions(+), 107 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 00d57d3e620c..466b26341048 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -15,46 +15,46 @@ d7f0bf0d7f983456641e7640708a62c4f0a63620 - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a @@ -230,29 +230,29 @@ 8d080dfdb76633bcac69a90d031a31694908ecaa - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a https://github.com/dotnet/windowsdesktop @@ -473,89 +473,89 @@ - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a https://github.com/dotnet/aspnetcore f655a4a1cec91d2325b408142a8fe9f6d390c6f4 - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a @@ -589,9 +589,9 @@ f2135575461b9adce73a7178f0a9692c2b8608f1 - + https://github.com/dotnet/runtime - e68313e1612010c9515ea5a97bc5c913c7a0a8d6 + 82ab89241b90ca3d64b22971f3a1e248da72828a https://github.com/dotnet/arcade-services diff --git a/eng/Versions.props b/eng/Versions.props index 5cc35fa92925..5519df900f89 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -87,43 +87,43 @@ - 10.0.0-alpha.1.25060.22 - 10.0.0-alpha.1.25060.22 - 10.0.0-alpha.1.25060.22 - 10.0.0-alpha.1.25060.22 - 10.0.0-alpha.1.25060.22 - 10.0.0-alpha.1.25060.22 - 10.0.0-alpha.1.25060.22 - 10.0.0-alpha.1.25060.22 - 10.0.0-alpha.1.25060.22 - 10.0.0-alpha.1.25060.22 - 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25061.3 8.0.0-rc.1.23414.4 - 10.0.0-alpha.1.25060.22 - 10.0.0-alpha.1.25060.22 - 10.0.0-alpha.1.25060.22 - 10.0.0-alpha.1.25060.22 - 10.0.0-alpha.1.25060.22 - 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25061.3 2.1.0 - 10.0.0-alpha.1.25060.22 - 10.0.0-alpha.1.25060.22 - 10.0.0-alpha.1.25060.22 - 10.0.0-alpha.1.25060.22 - 10.0.0-alpha.1.25060.22 - 10.0.0-alpha.1.25060.22 - 10.0.0-alpha.1.25060.22 - 10.0.0-alpha.1.25060.22 - 10.0.0-alpha.1.25060.22 - 10.0.0-alpha.1.25060.22 - 10.0.0-alpha.1.25060.22 - 10.0.0-alpha.1.25060.22 - 10.0.0-alpha.1.25060.22 - 10.0.0-alpha.1.25060.22 - 10.0.0-alpha.1.25060.22 - 10.0.0-alpha.1.25060.22 - 10.0.0-alpha.1.25060.22 - 10.0.0-alpha.1.25060.22 + 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25061.3 8.0.0 From fc23a34a2b6c98c43bba2cf89c891be6fa72ccad Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sun, 12 Jan 2025 08:26:19 +0000 Subject: [PATCH 091/193] Update dependencies from https://github.com/dotnet/aspnetcore build 20250111.1 dotnet-dev-certs , dotnet-user-jwts , dotnet-user-secrets , Microsoft.AspNetCore.Analyzers , Microsoft.AspNetCore.App.Ref , Microsoft.AspNetCore.App.Ref.Internal , Microsoft.AspNetCore.App.Runtime.win-x64 , Microsoft.AspNetCore.Authorization , Microsoft.AspNetCore.Components.SdkAnalyzers , Microsoft.AspNetCore.Components.Web , Microsoft.AspNetCore.DeveloperCertificates.XPlat , Microsoft.AspNetCore.Mvc.Analyzers , Microsoft.AspNetCore.Mvc.Api.Analyzers , Microsoft.AspNetCore.TestHost , Microsoft.Extensions.FileProviders.Embedded , Microsoft.Extensions.ObjectPool , Microsoft.JSInterop , VS.Redist.Common.AspNetCore.SharedFramework.x64.10.0 , Microsoft.SourceBuild.Intermediate.aspnetcore From Version 10.0.0-alpha.2.25060.14 -> To Version 10.0.0-alpha.2.25061.1 --- eng/Version.Details.xml | 76 ++++++++++++++++++++--------------------- eng/Versions.props | 26 +++++++------- 2 files changed, 51 insertions(+), 51 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index f02a9cb1973a..f4722f1eb394 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -135,13 +135,13 @@ https://github.com/dotnet/roslyn 911cf5f462960bdd01df1ea3c0d0c217b3c3838b - + https://github.com/dotnet/aspnetcore - 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 + b2d50f7d2f36638fd2db5caf9cc8b759597058b7 - + https://github.com/dotnet/aspnetcore - 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 + b2d50f7d2f36638fd2db5caf9cc8b759597058b7 https://github.com/nuget/nuget.client @@ -275,54 +275,54 @@ https://github.com/dotnet/wpf 8e79c0b3980f0670bcc68d7f1ee7f06ff256ec94 - + https://github.com/dotnet/aspnetcore - 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 + b2d50f7d2f36638fd2db5caf9cc8b759597058b7 - + https://github.com/dotnet/aspnetcore - 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 + b2d50f7d2f36638fd2db5caf9cc8b759597058b7 - + https://github.com/dotnet/aspnetcore - 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 + b2d50f7d2f36638fd2db5caf9cc8b759597058b7 - + https://github.com/dotnet/aspnetcore - 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 + b2d50f7d2f36638fd2db5caf9cc8b759597058b7 - + https://github.com/dotnet/aspnetcore - 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 + b2d50f7d2f36638fd2db5caf9cc8b759597058b7 - + https://github.com/dotnet/aspnetcore - 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 + b2d50f7d2f36638fd2db5caf9cc8b759597058b7 - + https://github.com/dotnet/aspnetcore - 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 + b2d50f7d2f36638fd2db5caf9cc8b759597058b7 - + https://github.com/dotnet/aspnetcore - 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 + b2d50f7d2f36638fd2db5caf9cc8b759597058b7 - + https://github.com/dotnet/aspnetcore - 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 + b2d50f7d2f36638fd2db5caf9cc8b759597058b7 - + https://github.com/dotnet/aspnetcore - 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 + b2d50f7d2f36638fd2db5caf9cc8b759597058b7 - + https://github.com/dotnet/aspnetcore - 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 + b2d50f7d2f36638fd2db5caf9cc8b759597058b7 - + https://github.com/dotnet/aspnetcore - 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 + b2d50f7d2f36638fd2db5caf9cc8b759597058b7 @@ -343,21 +343,21 @@ 46efcec83821d7f0322c01bc9549de83e855dcac - + https://github.com/dotnet/aspnetcore - 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 + b2d50f7d2f36638fd2db5caf9cc8b759597058b7 - + https://github.com/dotnet/aspnetcore - 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 + b2d50f7d2f36638fd2db5caf9cc8b759597058b7 - + https://github.com/dotnet/aspnetcore - 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 + b2d50f7d2f36638fd2db5caf9cc8b759597058b7 - + https://github.com/dotnet/aspnetcore - 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 + b2d50f7d2f36638fd2db5caf9cc8b759597058b7 @@ -509,9 +509,9 @@ https://github.com/dotnet/runtime 5abf58221b725acc12df0b0c4e225e4d3c3c3b45 - + https://github.com/dotnet/aspnetcore - 38cac4ab9b8aba54671f226fb3c075ee3701f9b7 + b2d50f7d2f36638fd2db5caf9cc8b759597058b7 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index d92d0d8d86e5..8b5a1d8d7467 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -220,19 +220,19 @@ - 10.0.0-alpha.2.25060.16 - 10.0.0-alpha.2.25060.16 - 10.0.0-alpha.2.25060.16 - 10.0.0-alpha.2.25060.16 - 10.0.0-alpha.2.25060.16 - 10.0.0-alpha.2.25060.16 - 10.0.0-alpha.2.25060.16 - 10.0.0-alpha.2.25060.16 - 10.0.0-alpha.2.25060.16 - 10.0.0-alpha.2.25060.16 - 10.0.0-alpha.2.25060.16 - 10.0.0-alpha.2.25060.16 - 10.0.0-alpha.2.25060.16 + 10.0.0-alpha.2.25061.1 + 10.0.0-alpha.2.25061.1 + 10.0.0-alpha.2.25061.1 + 10.0.0-alpha.2.25061.1 + 10.0.0-alpha.2.25061.1 + 10.0.0-alpha.2.25061.1 + 10.0.0-alpha.2.25061.1 + 10.0.0-alpha.2.25061.1 + 10.0.0-alpha.2.25061.1 + 10.0.0-alpha.2.25061.1 + 10.0.0-alpha.2.25061.1 + 10.0.0-alpha.2.25061.1 + 10.0.0-alpha.2.25061.1 From 638f4f1eee2d4f3095614b9b6208374cd2596faa Mon Sep 17 00:00:00 2001 From: ".NET Source-Build Bot" <102560831+dotnet-sb-bot@users.noreply.github.com> Date: Sun, 12 Jan 2025 17:34:32 +0100 Subject: [PATCH 092/193] Re-Bootstrap Source Build to .NET 10.0.100-alpha.1.25061.1 (#45910) --- src/SourceBuild/content/eng/Version.Details.xml | 4 ++-- src/SourceBuild/content/eng/Versions.props | 4 ++-- src/SourceBuild/content/global.json | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/SourceBuild/content/eng/Version.Details.xml b/src/SourceBuild/content/eng/Version.Details.xml index 2c95a72be894..d3c0c969ed1b 100644 --- a/src/SourceBuild/content/eng/Version.Details.xml +++ b/src/SourceBuild/content/eng/Version.Details.xml @@ -2,9 +2,9 @@ - + https://github.com/dotnet/arcade - e7cb34898a1b610eb2a22591a2178da6f1fb7e3c + f2135575461b9adce73a7178f0a9692c2b8608f1 diff --git a/src/SourceBuild/content/eng/Versions.props b/src/SourceBuild/content/eng/Versions.props index dcd3ae604989..ddabad77195e 100644 --- a/src/SourceBuild/content/eng/Versions.props +++ b/src/SourceBuild/content/eng/Versions.props @@ -23,8 +23,8 @@ of a .NET major or minor release, prebuilts may be needed. When the release is mature, prebuilts are not necessary, and this property is removed from the file. --> - 10.0.100-alpha.1.25060.1 - 10.0.100-alpha.1.25060.1 + 10.0.100-alpha.1.25061.1 + 10.0.100-alpha.1.25061.1 2.0.0-beta4.24126.1 diff --git a/src/SourceBuild/content/global.json b/src/SourceBuild/content/global.json index 97d17a650e40..990027d87c4f 100644 --- a/src/SourceBuild/content/global.json +++ b/src/SourceBuild/content/global.json @@ -1,10 +1,10 @@ { "tools": { - "dotnet": "10.0.100-alpha.1.25060.10" + "dotnet": "10.0.100-alpha.1.25061.2" }, "msbuild-sdks": { "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25058.4" + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25060.4" } } From 8505bb96c507cfaac10167c3bc7c43605fc424aa Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Sun, 12 Jan 2025 19:51:54 +0100 Subject: [PATCH 093/193] Enable NuGet Audit in the VMR orchestrator, normalize and update dependencies (#45830) --- src/SourceBuild/content/Directory.Build.props | 4 +++ .../content/Directory.Packages.props | 9 +++-- src/SourceBuild/content/NuGet.config | 4 +++ src/SourceBuild/content/eng/Versions.props | 7 ++-- .../content/eng/tools/Directory.Build.props | 12 ------- ...Net.SourceBuild.Tasks.LeakDetection.csproj | 4 --- ...Net.UnifiedBuild.MSBuildSdkResolver.csproj | 5 +-- ...Microsoft.DotNet.UnifiedBuild.Tasks.csproj | 12 +++---- .../Microsoft.DotNet.Tests.csproj | 33 ++++--------------- 9 files changed, 34 insertions(+), 56 deletions(-) diff --git a/src/SourceBuild/content/Directory.Build.props b/src/SourceBuild/content/Directory.Build.props index 9396966d90a2..0060e99dd227 100644 --- a/src/SourceBuild/content/Directory.Build.props +++ b/src/SourceBuild/content/Directory.Build.props @@ -133,6 +133,10 @@ true latest + + all + + $(WarningsNotAsErrors);NU1901;NU1902;NU1903;NU1904 diff --git a/src/SourceBuild/content/Directory.Packages.props b/src/SourceBuild/content/Directory.Packages.props index ebcf05f6e6ee..86687b8a8323 100644 --- a/src/SourceBuild/content/Directory.Packages.props +++ b/src/SourceBuild/content/Directory.Packages.props @@ -13,15 +13,20 @@ + + + - + + + + - diff --git a/src/SourceBuild/content/NuGet.config b/src/SourceBuild/content/NuGet.config index 5225fd440ff3..31e5f90104dd 100644 --- a/src/SourceBuild/content/NuGet.config +++ b/src/SourceBuild/content/NuGet.config @@ -12,4 +12,8 @@ + + + + diff --git a/src/SourceBuild/content/eng/Versions.props b/src/SourceBuild/content/eng/Versions.props index ddabad77195e..7166b6cfe082 100644 --- a/src/SourceBuild/content/eng/Versions.props +++ b/src/SourceBuild/content/eng/Versions.props @@ -28,13 +28,14 @@ 2.0.0-beta4.24126.1 - 17.8.3 + 17.12.6 + + 6.12.1 + 6.12.1 9.0.0 9.0.0 9.0.0 - - 6.11.0 13.0.3 10.0.0 diff --git a/src/SourceBuild/content/eng/tools/Directory.Build.props b/src/SourceBuild/content/eng/tools/Directory.Build.props index 7c1442273f8d..23bf9519fc37 100644 --- a/src/SourceBuild/content/eng/tools/Directory.Build.props +++ b/src/SourceBuild/content/eng/tools/Directory.Build.props @@ -6,16 +6,4 @@ $(ReferencePackagesDir);$(PrebuiltPackagesPath);$(PrebuiltSourceBuiltPackagesPath) - - - - - diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection.csproj b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection.csproj index 5eb9d5fcda91..e6d6752f1a37 100644 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection.csproj +++ b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection.csproj @@ -13,8 +13,4 @@ - - - - diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.MSBuildSdkResolver/Microsoft.DotNet.UnifiedBuild.MSBuildSdkResolver.csproj b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.MSBuildSdkResolver/Microsoft.DotNet.UnifiedBuild.MSBuildSdkResolver.csproj index 7e0cd3a59761..970a50f3fc7e 100644 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.MSBuildSdkResolver/Microsoft.DotNet.UnifiedBuild.MSBuildSdkResolver.csproj +++ b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.MSBuildSdkResolver/Microsoft.DotNet.UnifiedBuild.MSBuildSdkResolver.csproj @@ -5,8 +5,9 @@ - - + + + diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/Microsoft.DotNet.UnifiedBuild.Tasks.csproj b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/Microsoft.DotNet.UnifiedBuild.Tasks.csproj index 63880f2020cf..45a7e3fab752 100644 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/Microsoft.DotNet.UnifiedBuild.Tasks.csproj +++ b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/Microsoft.DotNet.UnifiedBuild.Tasks.csproj @@ -5,12 +5,12 @@ - - - - - - + + + + + + diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.Tests/Microsoft.DotNet.Tests.csproj b/src/SourceBuild/content/test/Microsoft.DotNet.Tests/Microsoft.DotNet.Tests.csproj index f327a827e648..6f6b01169ebc 100644 --- a/src/SourceBuild/content/test/Microsoft.DotNet.Tests/Microsoft.DotNet.Tests.csproj +++ b/src/SourceBuild/content/test/Microsoft.DotNet.Tests/Microsoft.DotNet.Tests.csproj @@ -5,38 +5,17 @@ $(DefaultExcludesInProjectFolder);assets/**/* console%3bverbosity=normal;trx%3bverbosity=diagnostic%3bLogFileName=$(MSBuildProjectName).trx $(VSTestCLIRunSettings);RunConfiguration.DotNetHostPath=$(DotnetTool) - - $(NoWarn);MSB3277 - - - - + + - - - - - - - - - + From d08df693a77171833cbffc8b734edec97783e69f Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 13 Jan 2025 03:01:32 +0000 Subject: [PATCH 094/193] Update dependencies from https://github.com/dotnet/templating build 20250112.4 Microsoft.SourceBuild.Intermediate.templating , Microsoft.TemplateEngine.Abstractions , Microsoft.TemplateEngine.Mocks From Version 10.0.100-alpha.1.25060.1 -> To Version 10.0.100-alpha.1.25062.4 --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a16f7a5422b4..7dbb45e5d5bf 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,18 +1,18 @@ - + https://github.com/dotnet/templating - d7f0bf0d7f983456641e7640708a62c4f0a63620 + 6edbb6f9de585c93a63c16cde3914021bc8ae4ef - + https://github.com/dotnet/templating - d7f0bf0d7f983456641e7640708a62c4f0a63620 + 6edbb6f9de585c93a63c16cde3914021bc8ae4ef - + https://github.com/dotnet/templating - d7f0bf0d7f983456641e7640708a62c4f0a63620 + 6edbb6f9de585c93a63c16cde3914021bc8ae4ef diff --git a/eng/Versions.props b/eng/Versions.props index c3275594ceb3..c1b53da1e003 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -192,13 +192,13 @@ - 10.0.100-alpha.1.25060.1 + 10.0.100-alpha.1.25062.4 $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) - 10.0.100-alpha.1.25060.1 + 10.0.100-alpha.1.25062.4 $(MicrosoftTemplateEngineMocksPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineMocksPackageVersion) From 9575984f60f1923c381d35c378c1b356ceb0f4ca Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 13 Jan 2025 05:05:28 +0000 Subject: [PATCH 095/193] Update dependencies from https://github.com/dotnet/msbuild build 20250113.1 Microsoft.SourceBuild.Intermediate.msbuild , Microsoft.Build , Microsoft.Build.Localization From Version 17.14.0-preview-25060-06 -> To Version 17.14.0-preview-25063-01 --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a16f7a5422b4..07ad8b69d334 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -73,18 +73,18 @@ 0de3165cb0d56323b6caaf8e9916d4d9e72da32d - + https://github.com/dotnet/msbuild - 07a83ea02160de9d22bc98ce69c884a840787140 + f69d764639f8b6f1d49d543b44f1fdbe24d38c37 - + https://github.com/dotnet/msbuild - 07a83ea02160de9d22bc98ce69c884a840787140 + f69d764639f8b6f1d49d543b44f1fdbe24d38c37 - + https://github.com/dotnet/msbuild - 07a83ea02160de9d22bc98ce69c884a840787140 + f69d764639f8b6f1d49d543b44f1fdbe24d38c37 diff --git a/eng/Versions.props b/eng/Versions.props index c3275594ceb3..cce5ddf32eee 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -185,8 +185,8 @@ At usage sites, either we use MicrosoftBuildMinimumVersion, or MicrosoftBuildVersion in source-only modes. Additionally, set the MinimumVSVersion for the installer UI that's required for targeting NetCurrent --> - 17.14.0-preview-25060-06 - 17.14.0-preview-25060-06 + 17.14.0-preview-25063-01 + 17.14.0-preview-25063-01 17.11.4 17.12 From 63f22888300e60d315a727b51f36c364d3f27114 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 13 Jan 2025 05:05:33 +0000 Subject: [PATCH 096/193] Update dependencies from https://github.com/dotnet/runtime build 20250112.3 Microsoft.SourceBuild.Intermediate.runtime.linux-x64 , Microsoft.Bcl.AsyncInterfaces , Microsoft.Extensions.DependencyModel , Microsoft.Extensions.FileProviders.Abstractions , Microsoft.Extensions.FileSystemGlobbing , Microsoft.Extensions.Logging , Microsoft.Extensions.Logging.Abstractions , Microsoft.Extensions.Logging.Console , Microsoft.NET.HostModel , Microsoft.NET.ILLink.Tasks , Microsoft.NETCore.App.Host.win-x64 , Microsoft.NETCore.App.Ref , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.Platforms , Microsoft.Win32.SystemEvents , System.CodeDom , System.Composition.AttributedModel , System.Composition.Convention , System.Composition.Hosting , System.Composition.Runtime , System.Composition.TypedParts , System.Configuration.ConfigurationManager , System.Formats.Asn1 , System.IO.Hashing , System.Reflection.MetadataLoadContext , System.Resources.Extensions , System.Security.Cryptography.Pkcs , System.Security.Cryptography.ProtectedData , System.Security.Cryptography.Xml , System.Security.Permissions , System.ServiceProcess.ServiceController , System.Text.Encoding.CodePages , System.Text.Json , System.Windows.Extensions , VS.Redist.Common.NetCore.SharedFramework.x64.10.0 , VS.Redist.Common.NetCore.TargetingPack.x64.10.0 From Version 10.0.0-alpha.1.25061.3 -> To Version 10.0.0-alpha.1.25062.3 --- eng/Version.Details.xml | 144 ++++++++++++++++++++-------------------- eng/Versions.props | 70 +++++++++---------- 2 files changed, 107 insertions(+), 107 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a16f7a5422b4..3ca752400542 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -15,46 +15,46 @@ d7f0bf0d7f983456641e7640708a62c4f0a63620 - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a @@ -230,29 +230,29 @@ bcef12d909709f13027afe1557c724f11bc8df05 - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a https://github.com/dotnet/windowsdesktop @@ -473,89 +473,89 @@ - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a https://github.com/dotnet/aspnetcore b2d50f7d2f36638fd2db5caf9cc8b759597058b7 - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a @@ -589,9 +589,9 @@ 98b4ae348fa01b99dc6fbfc8f601efd9b90090db - + https://github.com/dotnet/runtime - 82ab89241b90ca3d64b22971f3a1e248da72828a + 010e61a4f46d6d9b544cde169dc034417de7223a https://github.com/dotnet/arcade-services diff --git a/eng/Versions.props b/eng/Versions.props index c3275594ceb3..14442c9b0d60 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -87,43 +87,43 @@ - 10.0.0-alpha.1.25061.3 - 10.0.0-alpha.1.25061.3 - 10.0.0-alpha.1.25061.3 - 10.0.0-alpha.1.25061.3 - 10.0.0-alpha.1.25061.3 - 10.0.0-alpha.1.25061.3 - 10.0.0-alpha.1.25061.3 - 10.0.0-alpha.1.25061.3 - 10.0.0-alpha.1.25061.3 - 10.0.0-alpha.1.25061.3 - 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25062.3 8.0.0-rc.1.23414.4 - 10.0.0-alpha.1.25061.3 - 10.0.0-alpha.1.25061.3 - 10.0.0-alpha.1.25061.3 - 10.0.0-alpha.1.25061.3 - 10.0.0-alpha.1.25061.3 - 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25062.3 2.1.0 - 10.0.0-alpha.1.25061.3 - 10.0.0-alpha.1.25061.3 - 10.0.0-alpha.1.25061.3 - 10.0.0-alpha.1.25061.3 - 10.0.0-alpha.1.25061.3 - 10.0.0-alpha.1.25061.3 - 10.0.0-alpha.1.25061.3 - 10.0.0-alpha.1.25061.3 - 10.0.0-alpha.1.25061.3 - 10.0.0-alpha.1.25061.3 - 10.0.0-alpha.1.25061.3 - 10.0.0-alpha.1.25061.3 - 10.0.0-alpha.1.25061.3 - 10.0.0-alpha.1.25061.3 - 10.0.0-alpha.1.25061.3 - 10.0.0-alpha.1.25061.3 - 10.0.0-alpha.1.25061.3 - 10.0.0-alpha.1.25061.3 + 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25062.3 8.0.0 From 6e3ccd65050cc6addc2415761e5bcca50935a09d Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 13 Jan 2025 05:28:04 +0000 Subject: [PATCH 097/193] Update dependencies from https://github.com/dotnet/templating build 20250112.9 Microsoft.SourceBuild.Intermediate.templating , Microsoft.TemplateEngine.Abstractions , Microsoft.TemplateEngine.Mocks From Version 10.0.100-alpha.1.25060.1 -> To Version 10.0.100-alpha.1.25062.9 --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 7dbb45e5d5bf..9cec8f4891e8 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,18 +1,18 @@ - + https://github.com/dotnet/templating - 6edbb6f9de585c93a63c16cde3914021bc8ae4ef + 4a9cd8c45d20e89f5230050bf34492964f2260cb - + https://github.com/dotnet/templating - 6edbb6f9de585c93a63c16cde3914021bc8ae4ef + 4a9cd8c45d20e89f5230050bf34492964f2260cb - + https://github.com/dotnet/templating - 6edbb6f9de585c93a63c16cde3914021bc8ae4ef + 4a9cd8c45d20e89f5230050bf34492964f2260cb diff --git a/eng/Versions.props b/eng/Versions.props index c1b53da1e003..11ee86424ccd 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -192,13 +192,13 @@ - 10.0.100-alpha.1.25062.4 + 10.0.100-alpha.1.25062.9 $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) - 10.0.100-alpha.1.25062.4 + 10.0.100-alpha.1.25062.9 $(MicrosoftTemplateEngineMocksPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineMocksPackageVersion) From 818246b6f83c527ddf2233fd1f55a50fc07d819b Mon Sep 17 00:00:00 2001 From: Mariam Abdullah <122357303+mariam-abdulla@users.noreply.github.com> Date: Mon, 13 Jan 2025 14:46:13 +0100 Subject: [PATCH 098/193] Support --solution and --directory options in dotnet test (#45859) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Amaury Levé Co-authored-by: Viktor Hofer --- .../commands/dotnet-test/BuiltInOptions.cs | 7 - .../commands/dotnet-test/CliConstants.cs | 15 +- .../dotnet-test/LocalizableStrings.resx | 28 ++- .../commands/dotnet-test/MSBuildHandler.cs | 110 ++++++++++-- .../dotnet/commands/dotnet-test/Options.cs | 9 + .../dotnet-test/SolutionAndProjectUtility.cs | 77 ++++---- .../commands/dotnet-test/TestApplication.cs | 48 ++--- .../commands/dotnet-test/TestCommandParser.cs | 4 +- .../TestingPlatformCommand.Help.cs | 4 +- .../dotnet-test/TestingPlatformCommand.cs | 168 ++++++------------ .../dotnet-test/TestingPlatformOptions.cs | 12 ++ .../dotnet-test/xlf/LocalizableStrings.cs.xlf | 42 ++++- .../dotnet-test/xlf/LocalizableStrings.de.xlf | 42 ++++- .../dotnet-test/xlf/LocalizableStrings.es.xlf | 42 ++++- .../dotnet-test/xlf/LocalizableStrings.fr.xlf | 42 ++++- .../dotnet-test/xlf/LocalizableStrings.it.xlf | 42 ++++- .../dotnet-test/xlf/LocalizableStrings.ja.xlf | 42 ++++- .../dotnet-test/xlf/LocalizableStrings.ko.xlf | 42 ++++- .../dotnet-test/xlf/LocalizableStrings.pl.xlf | 42 ++++- .../xlf/LocalizableStrings.pt-BR.xlf | 42 ++++- .../dotnet-test/xlf/LocalizableStrings.ru.xlf | 42 ++++- .../dotnet-test/xlf/LocalizableStrings.tr.xlf | 42 ++++- .../xlf/LocalizableStrings.zh-Hans.xlf | 42 ++++- .../xlf/LocalizableStrings.zh-Hant.xlf | 42 ++++- 24 files changed, 745 insertions(+), 283 deletions(-) delete mode 100644 src/Cli/dotnet/commands/dotnet-test/BuiltInOptions.cs create mode 100644 src/Cli/dotnet/commands/dotnet-test/Options.cs diff --git a/src/Cli/dotnet/commands/dotnet-test/BuiltInOptions.cs b/src/Cli/dotnet/commands/dotnet-test/BuiltInOptions.cs deleted file mode 100644 index f3bc4c1419c5..000000000000 --- a/src/Cli/dotnet/commands/dotnet-test/BuiltInOptions.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -namespace Microsoft.DotNet.Cli -{ - internal record BuiltInOptions(bool HasNoRestore, bool HasNoBuild, string Configuration, string Architecture); -} diff --git a/src/Cli/dotnet/commands/dotnet-test/CliConstants.cs b/src/Cli/dotnet/commands/dotnet-test/CliConstants.cs index 8b8c4a33838c..8f578b5f31dc 100644 --- a/src/Cli/dotnet/commands/dotnet-test/CliConstants.cs +++ b/src/Cli/dotnet/commands/dotnet-test/CliConstants.cs @@ -13,8 +13,9 @@ internal static class CliConstants public const string ServerOptionValue = "dotnettestcli"; - public const string MSBuildExeName = "MSBuild.dll"; public const string ParametersSeparator = "--"; + public const string SemiColon = ";"; + public const string Colon = ":"; public const string VSTest = "VSTest"; public const string MicrosoftTestingPlatform = "MicrosoftTestingPlatform"; @@ -22,6 +23,18 @@ internal static class CliConstants public const string TestSectionKey = "test"; public const string RestoreCommand = "restore"; + + public static readonly string[] ProjectExtensions = { ".proj", ".csproj", ".vbproj", ".fsproj" }; + public static readonly string[] SolutionExtensions = { ".sln", ".slnx" }; + + public const string ProjectExtensionPattern = "*.*proj"; + public const string SolutionExtensionPattern = "*.sln"; + public const string SolutionXExtensionPattern = "*.slnx"; + + public const string BinLogFileName = "msbuild.binlog"; + + public const string TestingPlatformVsTestBridgeRunSettingsFileEnvVar = "TESTINGPLATFORM_VSTESTBRIDGE_RUNSETTINGS_FILE"; + public const string DLLExtension = "dll"; } internal static class TestStates diff --git a/src/Cli/dotnet/commands/dotnet-test/LocalizableStrings.resx b/src/Cli/dotnet/commands/dotnet-test/LocalizableStrings.resx index 92aaef39fd5c..1855e09972b5 100644 --- a/src/Cli/dotnet/commands/dotnet-test/LocalizableStrings.resx +++ b/src/Cli/dotnet/commands/dotnet-test/LocalizableStrings.resx @@ -187,6 +187,12 @@ Defines the path of the project file to run (folder name or full path). If not specified, it defaults to the current directory. + + Defines the path of the solution file to run. If not specified, it defaults to the current directory. + + + Defines the path of directory to run. If not specified, it defaults to the current directory. + The directory where the test results will be placed. The specified directory will be created if it does not exist. @@ -329,16 +335,28 @@ Examples: Test runner not supported: {0}. - - The provided project file path does not exist: {0}. + + The provided file path does not exist: {0}. + + + The provided directory path does not exist: {0}. - + Specify which project or solution file to use because this folder contains more than one project or solution file. - + Specify a project or solution file. The current working directory does not contain a project or solution file. - + Get projects properties with MSBuild didn't execute properly with exit code: {0}. + + The provided solution file has an invalid extension: {0}. + + + The provided project file has an invalid extension: {0}. + + + Specify either the project, solution or directory option. + diff --git a/src/Cli/dotnet/commands/dotnet-test/MSBuildHandler.cs b/src/Cli/dotnet/commands/dotnet-test/MSBuildHandler.cs index 40c2e4639cae..ed7e7401bc65 100644 --- a/src/Cli/dotnet/commands/dotnet-test/MSBuildHandler.cs +++ b/src/Cli/dotnet/commands/dotnet-test/MSBuildHandler.cs @@ -6,6 +6,7 @@ using Microsoft.Build.Execution; using Microsoft.Build.Framework; using Microsoft.Build.Logging; +using Microsoft.DotNet.Tools.Test; namespace Microsoft.DotNet.Cli { @@ -18,8 +19,6 @@ internal sealed class MSBuildHandler : IDisposable private readonly ConcurrentBag _testApplications = new(); private bool _areTestingPlatformApplications = true; - private const string BinLogFileName = "msbuild.binlog"; - private const string Separator = ";"; private static readonly Lock buildLock = new(); public MSBuildHandler(List args, TestApplicationActionQueue actionQueue, int degreeOfParallelism) @@ -29,9 +28,86 @@ public MSBuildHandler(List args, TestApplicationActionQueue actionQueue, _degreeOfParallelism = degreeOfParallelism; } - public async Task RunWithMSBuild() + public async Task RunMSBuild(BuildPathsOptions buildPathOptions) { - bool solutionOrProjectFileFound = SolutionAndProjectUtility.TryGetProjectOrSolutionFilePath(Directory.GetCurrentDirectory(), out string projectOrSolutionFilePath, out bool isSolution); + if (!ValidateBuildPathOptions(buildPathOptions)) + { + return false; + } + + int msbuildExitCode; + + if (!string.IsNullOrEmpty(buildPathOptions.ProjectPath)) + { + msbuildExitCode = await RunBuild(buildPathOptions.ProjectPath, isSolution: false); + } + else if (!string.IsNullOrEmpty(buildPathOptions.SolutionPath)) + { + msbuildExitCode = await RunBuild(buildPathOptions.SolutionPath, isSolution: true); + } + else + { + msbuildExitCode = await RunBuild(buildPathOptions.DirectoryPath ?? Directory.GetCurrentDirectory()); + } + + if (msbuildExitCode != ExitCodes.Success) + { + VSTestTrace.SafeWriteTrace(() => string.Format(LocalizableStrings.CmdMSBuildProjectsPropertiesErrorDescription, msbuildExitCode)); + return false; + } + + return true; + } + + private bool ValidateBuildPathOptions(BuildPathsOptions buildPathOptions) + { + if ((!string.IsNullOrEmpty(buildPathOptions.ProjectPath) && !string.IsNullOrEmpty(buildPathOptions.SolutionPath)) || + (!string.IsNullOrEmpty(buildPathOptions.ProjectPath) && !string.IsNullOrEmpty(buildPathOptions.DirectoryPath)) || + (!string.IsNullOrEmpty(buildPathOptions.SolutionPath) && !string.IsNullOrEmpty(buildPathOptions.DirectoryPath))) + { + VSTestTrace.SafeWriteTrace(() => LocalizableStrings.CmdMultipleBuildPathOptionsErrorDescription); + return false; + } + + if (!string.IsNullOrEmpty(buildPathOptions.ProjectPath)) + { + return ValidateFilePath(buildPathOptions.ProjectPath, CliConstants.ProjectExtensions, LocalizableStrings.CmdInvalidProjectFileExtensionErrorDescription); + } + + if (!string.IsNullOrEmpty(buildPathOptions.SolutionPath)) + { + return ValidateFilePath(buildPathOptions.SolutionPath, CliConstants.SolutionExtensions, LocalizableStrings.CmdInvalidSolutionFileExtensionErrorDescription); + } + + if (!string.IsNullOrEmpty(buildPathOptions.DirectoryPath) && !Directory.Exists(buildPathOptions.DirectoryPath)) + { + VSTestTrace.SafeWriteTrace(() => string.Format(LocalizableStrings.CmdNonExistentDirectoryErrorDescription, Path.GetFullPath(buildPathOptions.DirectoryPath))); + return false; + } + + return true; + } + + private static bool ValidateFilePath(string filePath, string[] validExtensions, string errorMessage) + { + if (!validExtensions.Contains(Path.GetExtension(filePath))) + { + VSTestTrace.SafeWriteTrace(() => string.Format(errorMessage, filePath)); + return false; + } + + if (!File.Exists(filePath)) + { + VSTestTrace.SafeWriteTrace(() => string.Format(LocalizableStrings.CmdNonExistentFileErrorDescription, Path.GetFullPath(filePath))); + return false; + } + + return true; + } + + private async Task RunBuild(string directoryPath) + { + bool solutionOrProjectFileFound = SolutionAndProjectUtility.TryGetProjectOrSolutionFilePath(directoryPath, out string projectOrSolutionFilePath, out bool isSolution); if (!solutionOrProjectFileFound) { @@ -45,9 +121,9 @@ public async Task RunWithMSBuild() return restored ? ExitCodes.Success : ExitCodes.GenericFailure; } - public async Task RunWithMSBuild(string filePath) + private async Task RunBuild(string filePath, bool isSolution) { - (IEnumerable modules, bool restored) = await GetProjectsProperties(filePath, false); + (IEnumerable modules, bool restored) = await GetProjectsProperties(filePath, isSolution); InitializeTestApplications(modules); @@ -92,7 +168,12 @@ public bool EnqueueTestApplications() if (isSolution) { - var projects = await SolutionAndProjectUtility.ParseSolution(solutionOrProjectFilePath); + string fileDirectory = Path.GetDirectoryName(solutionOrProjectFilePath); + string rootDirectory = string.IsNullOrEmpty(fileDirectory) + ? Directory.GetCurrentDirectory() + : fileDirectory; + + var projects = await SolutionAndProjectUtility.ParseSolution(solutionOrProjectFilePath, rootDirectory); ProcessProjectsInParallel(projects, allProjects, ref restored); } else @@ -178,7 +259,7 @@ private static IEnumerable ExtractModulesFromProject(Project project) } else { - var frameworks = targetFrameworks.Split(Separator, StringSplitOptions.RemoveEmptyEntries); + var frameworks = targetFrameworks.Split(CliConstants.SemiColon, StringSplitOptions.RemoveEmptyEntries); foreach (var framework in frameworks) { project.SetProperty(ProjectProperties.TargetFramework, framework); @@ -225,8 +306,7 @@ private static BuildResult RestoreProject(string projectFilePath, ProjectCollect private static bool IsBinaryLoggerEnabled(List args, out string binLogFileName) { - binLogFileName = BinLogFileName; - + binLogFileName = string.Empty; var binLogArgs = new List(); foreach (var arg in args) @@ -248,10 +328,16 @@ private static bool IsBinaryLoggerEnabled(List args, out string binLogFi // Get BinLog filename var binLogArg = binLogArgs.LastOrDefault(); - if (binLogArg.Contains(':')) + if (binLogArg.Contains(CliConstants.Colon)) { - binLogFileName = binLogArg.Split(':')[1]; + var parts = binLogArg.Split(CliConstants.Colon, 2); + binLogFileName = !string.IsNullOrEmpty(parts[1]) ? parts[1] : CliConstants.BinLogFileName; } + else + { + binLogFileName = CliConstants.BinLogFileName; + } + return true; } diff --git a/src/Cli/dotnet/commands/dotnet-test/Options.cs b/src/Cli/dotnet/commands/dotnet-test/Options.cs new file mode 100644 index 000000000000..43fdc3696ff9 --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-test/Options.cs @@ -0,0 +1,9 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace Microsoft.DotNet.Cli +{ + internal record BuildConfigurationOptions(bool HasNoRestore, bool HasNoBuild, string Configuration, string Architecture); + + internal record BuildPathsOptions(string ProjectPath, string SolutionPath, string DirectoryPath); +} diff --git a/src/Cli/dotnet/commands/dotnet-test/SolutionAndProjectUtility.cs b/src/Cli/dotnet/commands/dotnet-test/SolutionAndProjectUtility.cs index f050f135fcf8..a3ca1af6b4c6 100644 --- a/src/Cli/dotnet/commands/dotnet-test/SolutionAndProjectUtility.cs +++ b/src/Cli/dotnet/commands/dotnet-test/SolutionAndProjectUtility.cs @@ -21,21 +21,18 @@ public static bool TryGetProjectOrSolutionFilePath(string directory, out string return false; } - string[] possibleSolutionPaths = [ - ..Directory.GetFiles(directory, "*.sln", SearchOption.TopDirectoryOnly), - ..Directory.GetFiles(directory, "*.slnx", SearchOption.TopDirectoryOnly)]; + var possibleSolutionPaths = GetSolutionFilePaths(directory); - // If more than a single sln file is found, an error is thrown since we can't determine which one to choose. - if (possibleSolutionPaths.Length > 1) - { - VSTestTrace.SafeWriteTrace(() => string.Format(CommonLocalizableStrings.MoreThanOneSolutionInDirectory, directory)); - return false; - } - // If a single solution is found, use it. - else if (possibleSolutionPaths.Length == 1) - { - // Get project file paths to check if there are any projects in the directory - string[] possibleProjectPaths = GetProjectFilePaths(directory); + // If more than a single sln file is found, an error is thrown since we can't determine which one to choose. + if (possibleSolutionPaths.Length > 1) + { + VSTestTrace.SafeWriteTrace(() => string.Format(CommonLocalizableStrings.MoreThanOneSolutionInDirectory, directory)); + return false; + } + + if (possibleSolutionPaths.Length == 1) + { + var possibleProjectPaths = GetProjectFilePaths(directory); if (possibleProjectPaths.Length == 0) { @@ -43,58 +40,44 @@ public static bool TryGetProjectOrSolutionFilePath(string directory, out string isSolution = true; return true; } - else // If both solution and project files are found, return false - { - VSTestTrace.SafeWriteTrace(() => LocalizableStrings.CmdMultipleProjectOrSolutionFilesErrorMessage); - return false; - } + + VSTestTrace.SafeWriteTrace(() => LocalizableStrings.CmdMultipleProjectOrSolutionFilesErrorDescription); + return false; } - // If no solutions are found, look for a project file - else + else // If no solutions are found, look for a project file { string[] possibleProjectPath = GetProjectFilePaths(directory); - // No projects found throws an error that no sln nor projects were found if (possibleProjectPath.Length == 0) { - VSTestTrace.SafeWriteTrace(() => LocalizableStrings.CmdNoProjectOrSolutionFileErrorMessage); + VSTestTrace.SafeWriteTrace(() => LocalizableStrings.CmdNoProjectOrSolutionFileErrorDescription); return false; } - // A single project found, use it - else if (possibleProjectPath.Length == 1) + + if (possibleProjectPath.Length == 1) { projectOrSolutionFilePath = possibleProjectPath[0]; return true; } - // More than one project found. Not sure which one to choose - else - { - VSTestTrace.SafeWriteTrace(() => string.Format(CommonLocalizableStrings.MoreThanOneProjectInDirectory, directory)); - return false; - } + + VSTestTrace.SafeWriteTrace(() => string.Format(CommonLocalizableStrings.MoreThanOneProjectInDirectory, directory)); + + return false; } } - - private static string[] GetProjectFilePaths(string directory) + private static string[] GetSolutionFilePaths(string directory) { - var projectFiles = Directory.EnumerateFiles(directory, "*.*proj", SearchOption.TopDirectoryOnly) - .Where(IsProjectFile) + return Directory.EnumerateFiles(directory, CliConstants.SolutionExtensionPattern, SearchOption.TopDirectoryOnly) + .Concat(Directory.EnumerateFiles(directory, CliConstants.SolutionXExtensionPattern, SearchOption.TopDirectoryOnly)) .ToArray(); - - return projectFiles; } - private static bool IsProjectFile(string filePath) - { - var extension = Path.GetExtension(filePath); - return extension.Equals(".csproj", StringComparison.OrdinalIgnoreCase) || - extension.Equals(".vbproj", StringComparison.OrdinalIgnoreCase) || - extension.Equals(".fsproj", StringComparison.OrdinalIgnoreCase) || - extension.Equals(".proj", StringComparison.OrdinalIgnoreCase); - } + private static string[] GetProjectFilePaths(string directory) => [.. Directory.EnumerateFiles(directory, CliConstants.ProjectExtensionPattern, SearchOption.TopDirectoryOnly).Where(IsProjectFile)]; + + private static bool IsProjectFile(string filePath) => CliConstants.ProjectExtensions.Contains(Path.GetExtension(filePath), StringComparer.OrdinalIgnoreCase); - public static async Task> ParseSolution(string solutionFilePath) + public static async Task> ParseSolution(string solutionFilePath, string directory) { if (string.IsNullOrEmpty(solutionFilePath)) { @@ -119,7 +102,7 @@ public static async Task> ParseSolution(string solutionFileP if (solution is not null) { - projectsPaths = [.. solution.SolutionProjects.Select(project => Path.GetFullPath(project.FilePath))]; + projectsPaths.AddRange(solution.SolutionProjects.Select(project => Path.Combine(directory, project.FilePath))); } return projectsPaths; diff --git a/src/Cli/dotnet/commands/dotnet-test/TestApplication.cs b/src/Cli/dotnet/commands/dotnet-test/TestApplication.cs index 1c448328323c..ef1d4b0c7e5b 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestApplication.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestApplication.cs @@ -50,38 +50,46 @@ public void AddExecutionId(string executionId) _ = _executionIds.GetOrAdd(executionId, _ => string.Empty); } - public async Task RunAsync(bool isFilterMode, bool enableHelp, BuiltInOptions builtInOptions) + public async Task RunAsync(bool hasFilterMode, bool enableHelp, BuildConfigurationOptions buildConfigurationOptions) { Run?.Invoke(this, EventArgs.Empty); - if (isFilterMode && !ModulePathExists()) + if (hasFilterMode && !ModulePathExists()) { return 1; } - bool isDll = _module.DllOrExePath.HasExtension(DLLExtension); + bool isDll = _module.DllOrExePath.HasExtension(CliConstants.DLLExtension); + var processStartInfo = CreateProcessStartInfo(hasFilterMode, isDll, buildConfigurationOptions, enableHelp); - ProcessStartInfo processStartInfo = new() + _testAppPipeConnectionLoop = Task.Run(async () => await WaitConnectionAsync(_cancellationToken.Token), _cancellationToken.Token); + var testProcessResult = await StartProcess(processStartInfo); + + WaitOnTestApplicationPipeConnectionLoop(); + + return testProcessResult; + } + + + private ProcessStartInfo CreateProcessStartInfo(bool hasFilterMode, bool isDll, BuildConfigurationOptions buildConfigurationOptions, bool enableHelp) + { + var processStartInfo = new ProcessStartInfo { - FileName = isFilterMode ? isDll ? Environment.ProcessPath : _module.DllOrExePath : Environment.ProcessPath, - Arguments = isFilterMode ? BuildArgs(isDll) : BuildArgsWithDotnetRun(enableHelp, builtInOptions), + FileName = hasFilterMode ? (isDll ? Environment.ProcessPath : _module.DllOrExePath) : Environment.ProcessPath, + Arguments = hasFilterMode ? BuildArgs(isDll) : BuildArgsWithDotnetRun(enableHelp, buildConfigurationOptions), RedirectStandardOutput = true, RedirectStandardError = true }; if (!string.IsNullOrEmpty(_module.RunSettingsFilePath)) { - processStartInfo.EnvironmentVariables.Add(TestingPlatformVsTestBridgeRunSettingsFileEnvVar, _module.RunSettingsFilePath); + processStartInfo.EnvironmentVariables.Add(CliConstants.TestingPlatformVsTestBridgeRunSettingsFileEnvVar, _module.RunSettingsFilePath); } - _testAppPipeConnectionLoop = Task.Run(async () => await WaitConnectionAsync(_cancellationToken.Token), _cancellationToken.Token); - var result = await StartProcess(processStartInfo); - - WaitOnTestApplicationPipeConnectionLoop(); - - return result; + return processStartInfo; } + private void WaitOnTestApplicationPipeConnectionLoop() { _cancellationToken.Cancel(); @@ -248,30 +256,30 @@ private bool ModulePathExists() return true; } - private string BuildArgsWithDotnetRun(bool hasHelp, BuiltInOptions builtInOptions) + private string BuildArgsWithDotnetRun(bool hasHelp, BuildConfigurationOptions buildConfigurationOptions) { StringBuilder builder = new(); builder.Append($"{CliConstants.DotnetRunCommand} {TestingPlatformOptions.ProjectOption.Name} \"{_module.ProjectPath}\""); - if (builtInOptions.HasNoRestore) + if (buildConfigurationOptions.HasNoRestore) { builder.Append($" {TestingPlatformOptions.NoRestoreOption.Name}"); } - if (builtInOptions.HasNoBuild) + if (buildConfigurationOptions.HasNoBuild) { builder.Append($" {TestingPlatformOptions.NoBuildOption.Name}"); } - if (!string.IsNullOrEmpty(builtInOptions.Architecture)) + if (!string.IsNullOrEmpty(buildConfigurationOptions.Architecture)) { - builder.Append($" {TestingPlatformOptions.ArchitectureOption.Name} {builtInOptions.Architecture}"); + builder.Append($" {TestingPlatformOptions.ArchitectureOption.Name} {buildConfigurationOptions.Architecture}"); } - if (!string.IsNullOrEmpty(builtInOptions.Configuration)) + if (!string.IsNullOrEmpty(buildConfigurationOptions.Configuration)) { - builder.Append($" {TestingPlatformOptions.ConfigurationOption.Name} {builtInOptions.Configuration}"); + builder.Append($" {TestingPlatformOptions.ConfigurationOption.Name} {buildConfigurationOptions.Configuration}"); } if (!string.IsNullOrEmpty(_module.TargetFramework)) diff --git a/src/Cli/dotnet/commands/dotnet-test/TestCommandParser.cs b/src/Cli/dotnet/commands/dotnet-test/TestCommandParser.cs index 9c26e21111e2..42cfdb243f95 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestCommandParser.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestCommandParser.cs @@ -190,7 +190,7 @@ private static CliCommand ConstructCommand() private static CliCommand GetTestingPlatformCliCommand() { var command = new TestingPlatformCommand("test"); - command.SetAction(async (parseResult) => await command.Run(parseResult)); + command.SetAction(parseResult => command.Run(parseResult)); command.Options.Add(TestingPlatformOptions.MaxParallelTestModulesOption); command.Options.Add(TestingPlatformOptions.AdditionalMSBuildParametersOption); command.Options.Add(TestingPlatformOptions.TestModulesFilterOption); @@ -200,6 +200,8 @@ private static CliCommand GetTestingPlatformCliCommand() command.Options.Add(TestingPlatformOptions.ArchitectureOption); command.Options.Add(TestingPlatformOptions.ConfigurationOption); command.Options.Add(TestingPlatformOptions.ProjectOption); + command.Options.Add(TestingPlatformOptions.SolutionOption); + command.Options.Add(TestingPlatformOptions.DirectoryOption); return command; } diff --git a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.Help.cs b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.Help.cs index 838a74530384..6499eb074933 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.Help.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.Help.cs @@ -14,11 +14,11 @@ internal partial class TestingPlatformCommand public IEnumerable> CustomHelpLayout() { - yield return async (context) => + yield return (context) => { Console.WriteLine("Waiting for options and extensions..."); - await Run(context.ParseResult); + Run(context.ParseResult); if (_commandLineOptionNameToModuleNames.IsEmpty) { diff --git a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs index e51f8da017d7..84be6429fcdd 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs @@ -22,59 +22,14 @@ public TestingPlatformCommand(string name, string description = null) : base(nam TreatUnmatchedTokensAsErrors = false; } - public async Task Run(ParseResult parseResult) + public int Run(ParseResult parseResult) { bool hasFailed = false; try { - // User can decide what the degree of parallelism should be - // If not specified, we will default to the number of processors - if (!int.TryParse(parseResult.GetValue(TestingPlatformOptions.MaxParallelTestModulesOption), out int degreeOfParallelism)) - degreeOfParallelism = Environment.ProcessorCount; - - bool filterModeEnabled = parseResult.HasOption(TestingPlatformOptions.TestModulesFilterOption); - - if (filterModeEnabled && parseResult.HasOption(TestingPlatformOptions.ArchitectureOption)) - { - VSTestTrace.SafeWriteTrace(() => $"The --arch option is not supported yet."); - } - - BuiltInOptions builtInOptions = new( - parseResult.HasOption(TestingPlatformOptions.NoRestoreOption), - parseResult.HasOption(TestingPlatformOptions.NoBuildOption), - parseResult.GetValue(TestingPlatformOptions.ConfigurationOption), - parseResult.GetValue(TestingPlatformOptions.ArchitectureOption)); - - if (ContainsHelpOption(parseResult.GetArguments())) - { - _actionQueue = new(degreeOfParallelism, async (TestApplication testApp) => - { - testApp.HelpRequested += OnHelpRequested; - testApp.ErrorReceived += OnErrorReceived; - testApp.TestProcessExited += OnTestProcessExited; - testApp.Run += OnTestApplicationRun; - testApp.ExecutionIdReceived += OnExecutionIdReceived; - - return await testApp.RunAsync(filterModeEnabled, enableHelp: true, builtInOptions); - }); - } - else - { - _actionQueue = new(degreeOfParallelism, async (TestApplication testApp) => - { - testApp.HandshakeReceived += OnHandshakeReceived; - testApp.DiscoveredTestsReceived += OnDiscoveredTestsReceived; - testApp.TestResultsReceived += OnTestResultsReceived; - testApp.FileArtifactsReceived += OnFileArtifactsReceived; - testApp.SessionEventReceived += OnSessionEventReceived; - testApp.ErrorReceived += OnErrorReceived; - testApp.TestProcessExited += OnTestProcessExited; - testApp.Run += OnTestApplicationRun; - testApp.ExecutionIdReceived += OnExecutionIdReceived; - - return await testApp.RunAsync(filterModeEnabled, enableHelp: false, builtInOptions); - }); - } + int degreeOfParallelism = GetDegreeOfParallelism(parseResult); + BuildConfigurationOptions buildConfigurationOptions = GetBuildConfigurationOptions(parseResult); + InitializeActionQueue(parseResult, degreeOfParallelism, buildConfigurationOptions); _args = [.. parseResult.UnmatchedTokens]; _msBuildHandler = new(_args, _actionQueue, degreeOfParallelism); @@ -89,12 +44,12 @@ public async Task Run(ParseResult parseResult) } else { - if (!await RunMSBuild(parseResult)) + var buildPathOptions = GetBuildPathOptions(parseResult); + if (!_msBuildHandler.RunMSBuild(buildPathOptions).GetAwaiter().GetResult()) { return ExitCodes.GenericFailure; } - // If not all test projects have IsTestProject and IsTestingPlatformApplication properties set to true, we will simply return if (!_msBuildHandler.EnqueueTestApplications()) { VSTestTrace.SafeWriteTrace(() => LocalizableStrings.CmdUnsupportedVSTestTestApplicationsDescription); @@ -104,49 +59,69 @@ public async Task Run(ParseResult parseResult) _actionQueue.EnqueueCompleted(); hasFailed = _actionQueue.WaitAllActions(); - // Above line will block till we have all connections and all GetTestsProject msbuild task complete. } finally { - // Clean up everything CleanUp(); } return hasFailed ? ExitCodes.GenericFailure : ExitCodes.Success; } - private async Task RunMSBuild(ParseResult parseResult) + private static int GetDegreeOfParallelism(ParseResult parseResult) { - int msbuildExitCode; + if (!int.TryParse(parseResult.GetValue(TestingPlatformOptions.MaxParallelTestModulesOption), out int degreeOfParallelism) || degreeOfParallelism <= 0) + degreeOfParallelism = Environment.ProcessorCount; + return degreeOfParallelism; + } - if (parseResult.HasOption(TestingPlatformOptions.ProjectOption)) - { - string filePath = parseResult.GetValue(TestingPlatformOptions.ProjectOption); + private static BuildConfigurationOptions GetBuildConfigurationOptions(ParseResult parseResult) => + new(parseResult.HasOption(TestingPlatformOptions.NoRestoreOption), + parseResult.HasOption(TestingPlatformOptions.NoBuildOption), + parseResult.GetValue(TestingPlatformOptions.ConfigurationOption), + parseResult.GetValue(TestingPlatformOptions.ArchitectureOption)); - if (!File.Exists(filePath)) - { - VSTestTrace.SafeWriteTrace(() => string.Format(LocalizableStrings.CmdNonExistentProjectFilePathDescription, filePath)); - return false; - } + private static BuildPathsOptions GetBuildPathOptions(ParseResult parseResult) => + new(parseResult.GetValue(TestingPlatformOptions.ProjectOption), + parseResult.GetValue(TestingPlatformOptions.SolutionOption), + parseResult.GetValue(TestingPlatformOptions.DirectoryOption)); - msbuildExitCode = await _msBuildHandler.RunWithMSBuild(filePath); + private void InitializeActionQueue(ParseResult parseResult, int degreeOfParallelism, BuildConfigurationOptions buildConfigurationOptions) + { + if (!ContainsHelpOption(parseResult.GetArguments())) + { + _actionQueue = new(degreeOfParallelism, async (TestApplication testApp) => + { + testApp.HandshakeReceived += OnHandshakeReceived; + testApp.DiscoveredTestsReceived += OnDiscoveredTestsReceived; + testApp.TestResultsReceived += OnTestResultsReceived; + testApp.FileArtifactsReceived += OnFileArtifactsReceived; + testApp.SessionEventReceived += OnSessionEventReceived; + testApp.ErrorReceived += OnErrorReceived; + testApp.TestProcessExited += OnTestProcessExited; + testApp.Run += OnTestApplicationRun; + testApp.ExecutionIdReceived += OnExecutionIdReceived; + + return await testApp.RunAsync(hasFilterMode: false, enableHelp: false, buildConfigurationOptions); + }); } else { - // If no filter was provided neither the project using --project, - // MSBuild will get the test project paths in the current directory - msbuildExitCode = await _msBuildHandler.RunWithMSBuild(); - } + _actionQueue = new(degreeOfParallelism, async (TestApplication testApp) => + { + testApp.HelpRequested += OnHelpRequested; + testApp.ErrorReceived += OnErrorReceived; + testApp.TestProcessExited += OnTestProcessExited; + testApp.Run += OnTestApplicationRun; + testApp.ExecutionIdReceived += OnExecutionIdReceived; - if (msbuildExitCode != ExitCodes.Success) - { - VSTestTrace.SafeWriteTrace(() => string.Format(LocalizableStrings.CmdMSBuildProjectsPropertiesErrorMessage, msbuildExitCode)); - return false; + return await testApp.RunAsync(hasFilterMode: true, enableHelp: true, buildConfigurationOptions); + }); } - - return true; } + private static bool ContainsHelpOption(IEnumerable args) => args.Contains(CliConstants.HelpOptionKey) || args.Contains(CliConstants.HelpOptionKey.Substring(0, 2)); + private void CleanUp() { _msBuildHandler.Dispose(); @@ -158,14 +133,9 @@ private void CleanUp() private void OnHandshakeReceived(object sender, HandshakeArgs args) { - if (!VSTestTrace.TraceEnabled) - { - return; - } + if (!VSTestTrace.TraceEnabled) return; - var handshake = args.Handshake; - - foreach (var property in handshake.Properties) + foreach (var property in args.Handshake.Properties) { VSTestTrace.SafeWriteTrace(() => $"{property.Key}: {property.Value}"); } @@ -173,15 +143,10 @@ private void OnHandshakeReceived(object sender, HandshakeArgs args) private void OnDiscoveredTestsReceived(object sender, DiscoveredTestEventArgs args) { - if (!VSTestTrace.TraceEnabled) - { - return; - } - - var discoveredTestMessages = args.DiscoveredTests; + if (!VSTestTrace.TraceEnabled) return; VSTestTrace.SafeWriteTrace(() => $"DiscoveredTests Execution Id: {args.ExecutionId}"); - foreach (DiscoveredTest discoveredTestMessage in discoveredTestMessages) + foreach (var discoveredTestMessage in args.DiscoveredTests) { VSTestTrace.SafeWriteTrace(() => $"DiscoveredTest: {discoveredTestMessage.Uid}, {discoveredTestMessage.DisplayName}"); } @@ -189,10 +154,7 @@ private void OnDiscoveredTestsReceived(object sender, DiscoveredTestEventArgs ar private void OnTestResultsReceived(object sender, TestResultEventArgs args) { - if (!VSTestTrace.TraceEnabled) - { - return; - } + if (!VSTestTrace.TraceEnabled) return; VSTestTrace.SafeWriteTrace(() => $"TestResults Execution Id: {args.ExecutionId}"); @@ -213,10 +175,7 @@ private void OnTestResultsReceived(object sender, TestResultEventArgs args) private void OnFileArtifactsReceived(object sender, FileArtifactEventArgs args) { - if (!VSTestTrace.TraceEnabled) - { - return; - } + if (!VSTestTrace.TraceEnabled) return; VSTestTrace.SafeWriteTrace(() => $"FileArtifactMessages Execution Id: {args.ExecutionId}"); @@ -230,10 +189,7 @@ private void OnFileArtifactsReceived(object sender, FileArtifactEventArgs args) private void OnSessionEventReceived(object sender, SessionEventArgs args) { - if (!VSTestTrace.TraceEnabled) - { - return; - } + if (!VSTestTrace.TraceEnabled) return; var sessionEvent = args.SessionEvent; VSTestTrace.SafeWriteTrace(() => $"TestSessionEvent: {sessionEvent.SessionType}, {sessionEvent.SessionUid}, {sessionEvent.ExecutionId}"); @@ -241,20 +197,14 @@ private void OnSessionEventReceived(object sender, SessionEventArgs args) private void OnErrorReceived(object sender, ErrorEventArgs args) { - if (!VSTestTrace.TraceEnabled) - { - return; - } + if (!VSTestTrace.TraceEnabled) return; VSTestTrace.SafeWriteTrace(() => args.ErrorMessage); } private void OnTestProcessExited(object sender, TestProcessExitEventArgs args) { - if (!VSTestTrace.TraceEnabled) - { - return; - } + if (!VSTestTrace.TraceEnabled) return; if (args.ExitCode != ExitCodes.Success) { @@ -281,7 +231,5 @@ private void OnTestApplicationRun(object sender, EventArgs args) private void OnExecutionIdReceived(object sender, ExecutionEventArgs args) { } - - private static bool ContainsHelpOption(IEnumerable args) => args.Contains(CliConstants.HelpOptionKey) || args.Contains(CliConstants.HelpOptionKey.Substring(0, 2)); } } diff --git a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformOptions.cs b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformOptions.cs index f894c4cab66f..6e3b6e0e5484 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformOptions.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformOptions.cs @@ -57,5 +57,17 @@ internal static class TestingPlatformOptions Description = LocalizableStrings.CmdProjectDescription, Arity = ArgumentArity.ExactlyOne }; + + public static readonly CliOption SolutionOption = new("--solution") + { + Description = LocalizableStrings.CmdSolutionDescription, + Arity = ArgumentArity.ExactlyOne + }; + + public static readonly CliOption DirectoryOption = new("--directory") + { + Description = LocalizableStrings.CmdDirectoryDescription, + Arity = ArgumentArity.ExactlyOne + }; } } diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.cs.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.cs.xlf index 293bf2f6c922..a9fbaefb534a 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.cs.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.cs.xlf @@ -83,6 +83,11 @@ Pro MSTest před 2.2.4 se časový limit použije pro všechny testovací příp Defines the build configuration. The default for most projects is Debug, but you can override the build configuration settings in your project. + + Defines the path of directory to run. If not specified, it defaults to the current directory. + Defines the path of directory to run. If not specified, it defaults to the current directory. + + Sets the value of an environment variable. Creates the variable if it does not exist, overrides if it does. @@ -113,12 +118,22 @@ Příklady: NÁZEV="HODNOTA" + + The provided project file has an invalid extension: {0}. + The provided project file has an invalid extension: {0}. + + + + The provided solution file has an invalid extension: {0}. + The provided solution file has an invalid extension: {0}. + + Invalid test message state '{0}' Invalid test message state '{0}' {0} - test message state - + Get projects properties with MSBuild didn't execute properly with exit code: {0}. Get projects properties with MSBuild didn't execute properly with exit code: {0}. @@ -128,7 +143,12 @@ Příklady: Maximální počet testovacích modulů, které je možné spustit paralelně. - + + Specify either the project, solution or directory option. + Specify either the project, solution or directory option. + + + Specify which project or solution file to use because this folder contains more than one project or solution file. Specify which project or solution file to use because this folder contains more than one project or solution file. @@ -138,7 +158,7 @@ Příklady: Spustit testy bez zobrazení nápisu Microsoft Testplatform - + Specify a project or solution file. The current working directory does not contain a project or solution file. Specify a project or solution file. The current working directory does not contain a project or solution file. @@ -148,9 +168,14 @@ Příklady: Do not execute an implicit restore. - - The provided project file path does not exist: {0}. - The provided project file path does not exist: {0}. + + The provided directory path does not exist: {0}. + The provided directory path does not exist: {0}. + + + + The provided file path does not exist: {0}. + The provided file path does not exist: {0}. @@ -173,6 +198,11 @@ Příklady: Místo spuštění testů vypíše seznam zjištěných testů. + + Defines the path of the solution file to run. If not specified, it defaults to the current directory. + Defines the path of the solution file to run. If not specified, it defaults to the current directory. + + EXPRESSION EXPRESSION diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.de.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.de.xlf index ffdc27dd1298..4e49829eae4b 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.de.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.de.xlf @@ -83,6 +83,11 @@ für MSTest vor 2.2.4 wird das Timeout für alle Testfälle verwendet. Defines the build configuration. The default for most projects is Debug, but you can override the build configuration settings in your project. + + Defines the path of directory to run. If not specified, it defaults to the current directory. + Defines the path of directory to run. If not specified, it defaults to the current directory. + + Sets the value of an environment variable. Creates the variable if it does not exist, overrides if it does. @@ -113,12 +118,22 @@ Beispiele: NAME="WERT" + + The provided project file has an invalid extension: {0}. + The provided project file has an invalid extension: {0}. + + + + The provided solution file has an invalid extension: {0}. + The provided solution file has an invalid extension: {0}. + + Invalid test message state '{0}' Invalid test message state '{0}' {0} - test message state - + Get projects properties with MSBuild didn't execute properly with exit code: {0}. Get projects properties with MSBuild didn't execute properly with exit code: {0}. @@ -128,7 +143,12 @@ Beispiele: Die maximale Anzahl von Testmodulen, die parallel ausgeführt werden können. - + + Specify either the project, solution or directory option. + Specify either the project, solution or directory option. + + + Specify which project or solution file to use because this folder contains more than one project or solution file. Specify which project or solution file to use because this folder contains more than one project or solution file. @@ -138,7 +158,7 @@ Beispiele: Test(s) ohne Anzeige des Microsoft-Testplattformbanners ausführen - + Specify a project or solution file. The current working directory does not contain a project or solution file. Specify a project or solution file. The current working directory does not contain a project or solution file. @@ -148,9 +168,14 @@ Beispiele: Do not execute an implicit restore. - - The provided project file path does not exist: {0}. - The provided project file path does not exist: {0}. + + The provided directory path does not exist: {0}. + The provided directory path does not exist: {0}. + + + + The provided file path does not exist: {0}. + The provided file path does not exist: {0}. @@ -173,6 +198,11 @@ Beispiele: Hiermit werden die gefundenen Tests aufgelistet, anstatt sie auszuführen. + + Defines the path of the solution file to run. If not specified, it defaults to the current directory. + Defines the path of the solution file to run. If not specified, it defaults to the current directory. + + EXPRESSION EXPRESSION diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.es.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.es.xlf index 880eb9ad38b6..2c8e4e80afcd 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.es.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.es.xlf @@ -85,6 +85,11 @@ Para MSTest antes de 2.2.4, el tiempo de espera se usa para todos los casos de p Defines the build configuration. The default for most projects is Debug, but you can override the build configuration settings in your project. + + Defines the path of directory to run. If not specified, it defaults to the current directory. + Defines the path of directory to run. If not specified, it defaults to the current directory. + + Sets the value of an environment variable. Creates the variable if it does not exist, overrides if it does. @@ -115,12 +120,22 @@ Ejemplos: NAME="VALUE" + + The provided project file has an invalid extension: {0}. + The provided project file has an invalid extension: {0}. + + + + The provided solution file has an invalid extension: {0}. + The provided solution file has an invalid extension: {0}. + + Invalid test message state '{0}' Invalid test message state '{0}' {0} - test message state - + Get projects properties with MSBuild didn't execute properly with exit code: {0}. Get projects properties with MSBuild didn't execute properly with exit code: {0}. @@ -130,7 +145,12 @@ Ejemplos: Número máximo de módulos de prueba que se pueden ejecutar en paralelo. - + + Specify either the project, solution or directory option. + Specify either the project, solution or directory option. + + + Specify which project or solution file to use because this folder contains more than one project or solution file. Specify which project or solution file to use because this folder contains more than one project or solution file. @@ -140,7 +160,7 @@ Ejemplos: Ejecutar pruebas, sin mostrar la pancarta de Microsoft Testplatform - + Specify a project or solution file. The current working directory does not contain a project or solution file. Specify a project or solution file. The current working directory does not contain a project or solution file. @@ -150,9 +170,14 @@ Ejemplos: Do not execute an implicit restore. - - The provided project file path does not exist: {0}. - The provided project file path does not exist: {0}. + + The provided directory path does not exist: {0}. + The provided directory path does not exist: {0}. + + + + The provided file path does not exist: {0}. + The provided file path does not exist: {0}. @@ -175,6 +200,11 @@ Ejemplos: Enumera las pruebas detectadas en vez de ejecutar las pruebas. + + Defines the path of the solution file to run. If not specified, it defaults to the current directory. + Defines the path of the solution file to run. If not specified, it defaults to the current directory. + + EXPRESSION EXPRESSION diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.fr.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.fr.xlf index 809445d7303c..49049418f185 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.fr.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.fr.xlf @@ -83,6 +83,11 @@ Pour MSTest avant la version 2.2.4, le délai d’expiration est utilisé pour Defines the build configuration. The default for most projects is Debug, but you can override the build configuration settings in your project. + + Defines the path of directory to run. If not specified, it defaults to the current directory. + Defines the path of directory to run. If not specified, it defaults to the current directory. + + Sets the value of an environment variable. Creates the variable if it does not exist, overrides if it does. @@ -113,12 +118,22 @@ Exemples : NAME="VALUE" + + The provided project file has an invalid extension: {0}. + The provided project file has an invalid extension: {0}. + + + + The provided solution file has an invalid extension: {0}. + The provided solution file has an invalid extension: {0}. + + Invalid test message state '{0}' Invalid test message state '{0}' {0} - test message state - + Get projects properties with MSBuild didn't execute properly with exit code: {0}. Get projects properties with MSBuild didn't execute properly with exit code: {0}. @@ -128,7 +143,12 @@ Exemples : Nombre maximal de modules de test qui peuvent s’exécuter en parallèle. - + + Specify either the project, solution or directory option. + Specify either the project, solution or directory option. + + + Specify which project or solution file to use because this folder contains more than one project or solution file. Specify which project or solution file to use because this folder contains more than one project or solution file. @@ -138,7 +158,7 @@ Exemples : Exécute le ou les tests, sans afficher la bannière Microsoft Testplatform - + Specify a project or solution file. The current working directory does not contain a project or solution file. Specify a project or solution file. The current working directory does not contain a project or solution file. @@ -148,9 +168,14 @@ Exemples : Do not execute an implicit restore. - - The provided project file path does not exist: {0}. - The provided project file path does not exist: {0}. + + The provided directory path does not exist: {0}. + The provided directory path does not exist: {0}. + + + + The provided file path does not exist: {0}. + The provided file path does not exist: {0}. @@ -173,6 +198,11 @@ Exemples : Listez les tests découverts au lieu d'exécuter les tests. + + Defines the path of the solution file to run. If not specified, it defaults to the current directory. + Defines the path of the solution file to run. If not specified, it defaults to the current directory. + + EXPRESSION EXPRESSION diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.it.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.it.xlf index 497ec27cbeb3..3cd092f61652 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.it.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.it.xlf @@ -83,6 +83,11 @@ Per MSTest prima di 2.2.4, il timeout viene usato per tutti i test case.Defines the build configuration. The default for most projects is Debug, but you can override the build configuration settings in your project. + + Defines the path of directory to run. If not specified, it defaults to the current directory. + Defines the path of directory to run. If not specified, it defaults to the current directory. + + Sets the value of an environment variable. Creates the variable if it does not exist, overrides if it does. @@ -113,12 +118,22 @@ Esempi: NAME="VALORE" + + The provided project file has an invalid extension: {0}. + The provided project file has an invalid extension: {0}. + + + + The provided solution file has an invalid extension: {0}. + The provided solution file has an invalid extension: {0}. + + Invalid test message state '{0}' Invalid test message state '{0}' {0} - test message state - + Get projects properties with MSBuild didn't execute properly with exit code: {0}. Get projects properties with MSBuild didn't execute properly with exit code: {0}. @@ -128,7 +143,12 @@ Esempi: Numero massimo di moduli di test che possono essere eseguiti in parallelo. - + + Specify either the project, solution or directory option. + Specify either the project, solution or directory option. + + + Specify which project or solution file to use because this folder contains more than one project or solution file. Specify which project or solution file to use because this folder contains more than one project or solution file. @@ -138,7 +158,7 @@ Esempi: Esegui test senza visualizzare il banner di Microsoft Testplatform - + Specify a project or solution file. The current working directory does not contain a project or solution file. Specify a project or solution file. The current working directory does not contain a project or solution file. @@ -148,9 +168,14 @@ Esempi: Do not execute an implicit restore. - - The provided project file path does not exist: {0}. - The provided project file path does not exist: {0}. + + The provided directory path does not exist: {0}. + The provided directory path does not exist: {0}. + + + + The provided file path does not exist: {0}. + The provided file path does not exist: {0}. @@ -173,6 +198,11 @@ Esempi: Elenca i testi individuati invece di eseguirli. + + Defines the path of the solution file to run. If not specified, it defaults to the current directory. + Defines the path of the solution file to run. If not specified, it defaults to the current directory. + + EXPRESSION EXPRESSION diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ja.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ja.xlf index e569010555c7..5f02efcee8de 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ja.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ja.xlf @@ -83,6 +83,11 @@ MSTest 2.2.4 以前の場合、タイムアウトはすべてのテスト ケー Defines the build configuration. The default for most projects is Debug, but you can override the build configuration settings in your project. + + Defines the path of directory to run. If not specified, it defaults to the current directory. + Defines the path of directory to run. If not specified, it defaults to the current directory. + + Sets the value of an environment variable. Creates the variable if it does not exist, overrides if it does. @@ -113,12 +118,22 @@ Examples: NAME="VALUE" + + The provided project file has an invalid extension: {0}. + The provided project file has an invalid extension: {0}. + + + + The provided solution file has an invalid extension: {0}. + The provided solution file has an invalid extension: {0}. + + Invalid test message state '{0}' Invalid test message state '{0}' {0} - test message state - + Get projects properties with MSBuild didn't execute properly with exit code: {0}. Get projects properties with MSBuild didn't execute properly with exit code: {0}. @@ -128,7 +143,12 @@ Examples: 並列で実行できるテスト モジュールの最大数。 - + + Specify either the project, solution or directory option. + Specify either the project, solution or directory option. + + + Specify which project or solution file to use because this folder contains more than one project or solution file. Specify which project or solution file to use because this folder contains more than one project or solution file. @@ -138,7 +158,7 @@ Examples: Microsoft Testplatform バナーを表示せずにテストを実行する - + Specify a project or solution file. The current working directory does not contain a project or solution file. Specify a project or solution file. The current working directory does not contain a project or solution file. @@ -148,9 +168,14 @@ Examples: Do not execute an implicit restore. - - The provided project file path does not exist: {0}. - The provided project file path does not exist: {0}. + + The provided directory path does not exist: {0}. + The provided directory path does not exist: {0}. + + + + The provided file path does not exist: {0}. + The provided file path does not exist: {0}. @@ -173,6 +198,11 @@ Examples: テストを実行する代わりに、検出されたテストを一覧表示します。 + + Defines the path of the solution file to run. If not specified, it defaults to the current directory. + Defines the path of the solution file to run. If not specified, it defaults to the current directory. + + EXPRESSION EXPRESSION diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ko.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ko.xlf index 79a632e40db1..d8b479b39995 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ko.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ko.xlf @@ -83,6 +83,11 @@ For MSTest before 2.2.4, the timeout is used for all testcases. Defines the build configuration. The default for most projects is Debug, but you can override the build configuration settings in your project. + + Defines the path of directory to run. If not specified, it defaults to the current directory. + Defines the path of directory to run. If not specified, it defaults to the current directory. + + Sets the value of an environment variable. Creates the variable if it does not exist, overrides if it does. @@ -113,12 +118,22 @@ Examples: NAME="VALUE" + + The provided project file has an invalid extension: {0}. + The provided project file has an invalid extension: {0}. + + + + The provided solution file has an invalid extension: {0}. + The provided solution file has an invalid extension: {0}. + + Invalid test message state '{0}' Invalid test message state '{0}' {0} - test message state - + Get projects properties with MSBuild didn't execute properly with exit code: {0}. Get projects properties with MSBuild didn't execute properly with exit code: {0}. @@ -128,7 +143,12 @@ Examples: 병렬로 실행할 수 있는 최대 테스트 모듈 수입니다. - + + Specify either the project, solution or directory option. + Specify either the project, solution or directory option. + + + Specify which project or solution file to use because this folder contains more than one project or solution file. Specify which project or solution file to use because this folder contains more than one project or solution file. @@ -138,7 +158,7 @@ Examples: Microsoft Testplatform 배너를 표시하지 않고 테스트 실행 - + Specify a project or solution file. The current working directory does not contain a project or solution file. Specify a project or solution file. The current working directory does not contain a project or solution file. @@ -148,9 +168,14 @@ Examples: Do not execute an implicit restore. - - The provided project file path does not exist: {0}. - The provided project file path does not exist: {0}. + + The provided directory path does not exist: {0}. + The provided directory path does not exist: {0}. + + + + The provided file path does not exist: {0}. + The provided file path does not exist: {0}. @@ -173,6 +198,11 @@ Examples: 테스트 실행 대신 검색한 테스트를 나열합니다. + + Defines the path of the solution file to run. If not specified, it defaults to the current directory. + Defines the path of the solution file to run. If not specified, it defaults to the current directory. + + EXPRESSION EXPRESSION diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.pl.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.pl.xlf index 2d5a55fa0b94..b7a4dabc55f4 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.pl.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.pl.xlf @@ -83,6 +83,11 @@ W przypadku platformy MSTest przed wersją 2.2.4 limit czasu jest używany dla w Defines the build configuration. The default for most projects is Debug, but you can override the build configuration settings in your project. + + Defines the path of directory to run. If not specified, it defaults to the current directory. + Defines the path of directory to run. If not specified, it defaults to the current directory. + + Sets the value of an environment variable. Creates the variable if it does not exist, overrides if it does. @@ -113,12 +118,22 @@ Przykłady: NAZWA="WARTOŚĆ" + + The provided project file has an invalid extension: {0}. + The provided project file has an invalid extension: {0}. + + + + The provided solution file has an invalid extension: {0}. + The provided solution file has an invalid extension: {0}. + + Invalid test message state '{0}' Invalid test message state '{0}' {0} - test message state - + Get projects properties with MSBuild didn't execute properly with exit code: {0}. Get projects properties with MSBuild didn't execute properly with exit code: {0}. @@ -128,7 +143,12 @@ Przykłady: Maksymalna liczba modułów testowych, które mogą być uruchamiane równolegle. - + + Specify either the project, solution or directory option. + Specify either the project, solution or directory option. + + + Specify which project or solution file to use because this folder contains more than one project or solution file. Specify which project or solution file to use because this folder contains more than one project or solution file. @@ -138,7 +158,7 @@ Przykłady: Uruchom testy bez wyświetlania baneru platformy testowej firmy Microsoft - + Specify a project or solution file. The current working directory does not contain a project or solution file. Specify a project or solution file. The current working directory does not contain a project or solution file. @@ -148,9 +168,14 @@ Przykłady: Do not execute an implicit restore. - - The provided project file path does not exist: {0}. - The provided project file path does not exist: {0}. + + The provided directory path does not exist: {0}. + The provided directory path does not exist: {0}. + + + + The provided file path does not exist: {0}. + The provided file path does not exist: {0}. @@ -173,6 +198,11 @@ Przykłady: Wyświetl listę odnalezionych testów zamiast uruchamiać testy. + + Defines the path of the solution file to run. If not specified, it defaults to the current directory. + Defines the path of the solution file to run. If not specified, it defaults to the current directory. + + EXPRESSION EXPRESSION diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.pt-BR.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.pt-BR.xlf index d693799cad63..17f1821a040c 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.pt-BR.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.pt-BR.xlf @@ -83,6 +83,11 @@ Para MSTest antes de 2.2.4, o tempo limite é usado para todos os casos de teste Defines the build configuration. The default for most projects is Debug, but you can override the build configuration settings in your project. + + Defines the path of directory to run. If not specified, it defaults to the current directory. + Defines the path of directory to run. If not specified, it defaults to the current directory. + + Sets the value of an environment variable. Creates the variable if it does not exist, overrides if it does. @@ -113,12 +118,22 @@ Exemplos: NAME="VALUE" + + The provided project file has an invalid extension: {0}. + The provided project file has an invalid extension: {0}. + + + + The provided solution file has an invalid extension: {0}. + The provided solution file has an invalid extension: {0}. + + Invalid test message state '{0}' Invalid test message state '{0}' {0} - test message state - + Get projects properties with MSBuild didn't execute properly with exit code: {0}. Get projects properties with MSBuild didn't execute properly with exit code: {0}. @@ -128,7 +143,12 @@ Exemplos: O número máximo de módulos de teste que podem ser executados em paralelo. - + + Specify either the project, solution or directory option. + Specify either the project, solution or directory option. + + + Specify which project or solution file to use because this folder contains more than one project or solution file. Specify which project or solution file to use because this folder contains more than one project or solution file. @@ -138,7 +158,7 @@ Exemplos: Executar testes, sem exibir a faixa do Microsoft Testplatform - + Specify a project or solution file. The current working directory does not contain a project or solution file. Specify a project or solution file. The current working directory does not contain a project or solution file. @@ -148,9 +168,14 @@ Exemplos: Do not execute an implicit restore. - - The provided project file path does not exist: {0}. - The provided project file path does not exist: {0}. + + The provided directory path does not exist: {0}. + The provided directory path does not exist: {0}. + + + + The provided file path does not exist: {0}. + The provided file path does not exist: {0}. @@ -173,6 +198,11 @@ Exemplos: Listar os testes detectados em vez de executar os testes. + + Defines the path of the solution file to run. If not specified, it defaults to the current directory. + Defines the path of the solution file to run. If not specified, it defaults to the current directory. + + EXPRESSION EXPRESSION diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ru.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ru.xlf index c1d07c22765b..0180857c5c29 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ru.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ru.xlf @@ -83,6 +83,11 @@ For MSTest before 2.2.4, the timeout is used for all testcases. Defines the build configuration. The default for most projects is Debug, but you can override the build configuration settings in your project. + + Defines the path of directory to run. If not specified, it defaults to the current directory. + Defines the path of directory to run. If not specified, it defaults to the current directory. + + Sets the value of an environment variable. Creates the variable if it does not exist, overrides if it does. @@ -113,12 +118,22 @@ Examples: NAME="VALUE" + + The provided project file has an invalid extension: {0}. + The provided project file has an invalid extension: {0}. + + + + The provided solution file has an invalid extension: {0}. + The provided solution file has an invalid extension: {0}. + + Invalid test message state '{0}' Invalid test message state '{0}' {0} - test message state - + Get projects properties with MSBuild didn't execute properly with exit code: {0}. Get projects properties with MSBuild didn't execute properly with exit code: {0}. @@ -128,7 +143,12 @@ Examples: Максимальное число тестовых модулей, которые могут выполняться параллельно. - + + Specify either the project, solution or directory option. + Specify either the project, solution or directory option. + + + Specify which project or solution file to use because this folder contains more than one project or solution file. Specify which project or solution file to use because this folder contains more than one project or solution file. @@ -138,7 +158,7 @@ Examples: Запуск тестов без отображения баннера Testplatform Майкрософт - + Specify a project or solution file. The current working directory does not contain a project or solution file. Specify a project or solution file. The current working directory does not contain a project or solution file. @@ -148,9 +168,14 @@ Examples: Do not execute an implicit restore. - - The provided project file path does not exist: {0}. - The provided project file path does not exist: {0}. + + The provided directory path does not exist: {0}. + The provided directory path does not exist: {0}. + + + + The provided file path does not exist: {0}. + The provided file path does not exist: {0}. @@ -173,6 +198,11 @@ Examples: Вывод списка обнаруженных тестов вместо выполнения тестов. + + Defines the path of the solution file to run. If not specified, it defaults to the current directory. + Defines the path of the solution file to run. If not specified, it defaults to the current directory. + + EXPRESSION EXPRESSION diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.tr.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.tr.xlf index 24501aa00de8..2f0659ae58cd 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.tr.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.tr.xlf @@ -83,6 +83,11 @@ Zaman aşımı davranışı veri tabanlı testlerle birlikte kullanıldığında Defines the build configuration. The default for most projects is Debug, but you can override the build configuration settings in your project. + + Defines the path of directory to run. If not specified, it defaults to the current directory. + Defines the path of directory to run. If not specified, it defaults to the current directory. + + Sets the value of an environment variable. Creates the variable if it does not exist, overrides if it does. @@ -113,12 +118,22 @@ Bu bağımsız değişken, birden çok değişken sağlamak için birden çok ke AD="DEĞER" + + The provided project file has an invalid extension: {0}. + The provided project file has an invalid extension: {0}. + + + + The provided solution file has an invalid extension: {0}. + The provided solution file has an invalid extension: {0}. + + Invalid test message state '{0}' Invalid test message state '{0}' {0} - test message state - + Get projects properties with MSBuild didn't execute properly with exit code: {0}. Get projects properties with MSBuild didn't execute properly with exit code: {0}. @@ -128,7 +143,12 @@ Bu bağımsız değişken, birden çok değişken sağlamak için birden çok ke Paralel olarak çalıştırılabilecek test modüllerinin maksimum sayısı. - + + Specify either the project, solution or directory option. + Specify either the project, solution or directory option. + + + Specify which project or solution file to use because this folder contains more than one project or solution file. Specify which project or solution file to use because this folder contains more than one project or solution file. @@ -138,7 +158,7 @@ Bu bağımsız değişken, birden çok değişken sağlamak için birden çok ke Testleri Microsoft Testplatform bandını görüntülemeden çalıştır - + Specify a project or solution file. The current working directory does not contain a project or solution file. Specify a project or solution file. The current working directory does not contain a project or solution file. @@ -148,9 +168,14 @@ Bu bağımsız değişken, birden çok değişken sağlamak için birden çok ke Do not execute an implicit restore. - - The provided project file path does not exist: {0}. - The provided project file path does not exist: {0}. + + The provided directory path does not exist: {0}. + The provided directory path does not exist: {0}. + + + + The provided file path does not exist: {0}. + The provided file path does not exist: {0}. @@ -173,6 +198,11 @@ Bu bağımsız değişken, birden çok değişken sağlamak için birden çok ke Testleri çalıştırmak yerine bulunan testleri listeler. + + Defines the path of the solution file to run. If not specified, it defaults to the current directory. + Defines the path of the solution file to run. If not specified, it defaults to the current directory. + + EXPRESSION EXPRESSION diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.zh-Hans.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.zh-Hans.xlf index 379e4b89db5f..b178d24834a7 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.zh-Hans.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.zh-Hans.xlf @@ -83,6 +83,11 @@ For MSTest before 2.2.4, the timeout is used for all testcases. Defines the build configuration. The default for most projects is Debug, but you can override the build configuration settings in your project. + + Defines the path of directory to run. If not specified, it defaults to the current directory. + Defines the path of directory to run. If not specified, it defaults to the current directory. + + Sets the value of an environment variable. Creates the variable if it does not exist, overrides if it does. @@ -113,12 +118,22 @@ Examples: NAME="VALUE" + + The provided project file has an invalid extension: {0}. + The provided project file has an invalid extension: {0}. + + + + The provided solution file has an invalid extension: {0}. + The provided solution file has an invalid extension: {0}. + + Invalid test message state '{0}' Invalid test message state '{0}' {0} - test message state - + Get projects properties with MSBuild didn't execute properly with exit code: {0}. Get projects properties with MSBuild didn't execute properly with exit code: {0}. @@ -128,7 +143,12 @@ Examples: 可并行运行的测试模块的最大数目。 - + + Specify either the project, solution or directory option. + Specify either the project, solution or directory option. + + + Specify which project or solution file to use because this folder contains more than one project or solution file. Specify which project or solution file to use because this folder contains more than one project or solution file. @@ -138,7 +158,7 @@ Examples: 运行测试,而不显示 Microsoft Testplatform 版权标志 - + Specify a project or solution file. The current working directory does not contain a project or solution file. Specify a project or solution file. The current working directory does not contain a project or solution file. @@ -148,9 +168,14 @@ Examples: Do not execute an implicit restore. - - The provided project file path does not exist: {0}. - The provided project file path does not exist: {0}. + + The provided directory path does not exist: {0}. + The provided directory path does not exist: {0}. + + + + The provided file path does not exist: {0}. + The provided file path does not exist: {0}. @@ -173,6 +198,11 @@ Examples: 列出已发现的测试,而不是运行测试。 + + Defines the path of the solution file to run. If not specified, it defaults to the current directory. + Defines the path of the solution file to run. If not specified, it defaults to the current directory. + + EXPRESSION EXPRESSION diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.zh-Hant.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.zh-Hant.xlf index c6c681e48c47..bca91b0748e9 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.zh-Hant.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.zh-Hant.xlf @@ -83,6 +83,11 @@ For MSTest before 2.2.4, the timeout is used for all testcases. Defines the build configuration. The default for most projects is Debug, but you can override the build configuration settings in your project. + + Defines the path of directory to run. If not specified, it defaults to the current directory. + Defines the path of directory to run. If not specified, it defaults to the current directory. + + Sets the value of an environment variable. Creates the variable if it does not exist, overrides if it does. @@ -113,12 +118,22 @@ Examples: NAME="VALUE" + + The provided project file has an invalid extension: {0}. + The provided project file has an invalid extension: {0}. + + + + The provided solution file has an invalid extension: {0}. + The provided solution file has an invalid extension: {0}. + + Invalid test message state '{0}' Invalid test message state '{0}' {0} - test message state - + Get projects properties with MSBuild didn't execute properly with exit code: {0}. Get projects properties with MSBuild didn't execute properly with exit code: {0}. @@ -128,7 +143,12 @@ Examples: 可平行執行的測試模組數目上限。 - + + Specify either the project, solution or directory option. + Specify either the project, solution or directory option. + + + Specify which project or solution file to use because this folder contains more than one project or solution file. Specify which project or solution file to use because this folder contains more than one project or solution file. @@ -138,7 +158,7 @@ Examples: 執行測試,但不顯示 Microsoft Testplatform 橫幅 - + Specify a project or solution file. The current working directory does not contain a project or solution file. Specify a project or solution file. The current working directory does not contain a project or solution file. @@ -148,9 +168,14 @@ Examples: Do not execute an implicit restore. - - The provided project file path does not exist: {0}. - The provided project file path does not exist: {0}. + + The provided directory path does not exist: {0}. + The provided directory path does not exist: {0}. + + + + The provided file path does not exist: {0}. + The provided file path does not exist: {0}. @@ -173,6 +198,11 @@ Examples: 列出探索到的測試,而非執行測試。 + + Defines the path of the solution file to run. If not specified, it defaults to the current directory. + Defines the path of the solution file to run. If not specified, it defaults to the current directory. + + EXPRESSION EXPRESSION From 68b31a696f8d1a0a4b74910492814a4b89da7319 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 13 Jan 2025 21:17:38 +0000 Subject: [PATCH 099/193] Update dependencies from https://github.com/dotnet/windowsdesktop build 20250113.1 Microsoft.WindowsDesktop.App.Ref , Microsoft.WindowsDesktop.App.Runtime.win-x64 , VS.Redist.Common.WindowsDesktop.SharedFramework.x64.10.0 , VS.Redist.Common.WindowsDesktop.TargetingPack.x64.10.0 From Version 10.0.0-alpha.1.25061.1 -> To Version 10.0.0-alpha.1.25063.1 Dependency coherency updates Microsoft.NET.Sdk.WindowsDesktop,Microsoft.Dotnet.WinForms.ProjectTemplates,Microsoft.DotNet.Wpf.ProjectTemplates From Version 10.0.0-alpha.1.25060.3 -> To Version 10.0.0-alpha.1.25062.1 (parent: Microsoft.WindowsDesktop.App.Ref --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 12 ++++++------ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 567f4cf9b42b..6f53a557da25 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -254,26 +254,26 @@ https://github.com/dotnet/runtime 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/windowsdesktop - 2df543b48861c637219e80cebea9fcfdddc5e2ef + 595c07f04fab2c13c55390e5ba9bf131c29d6828 - + https://github.com/dotnet/windowsdesktop - 2df543b48861c637219e80cebea9fcfdddc5e2ef + 595c07f04fab2c13c55390e5ba9bf131c29d6828 - + https://github.com/dotnet/windowsdesktop - 2df543b48861c637219e80cebea9fcfdddc5e2ef + 595c07f04fab2c13c55390e5ba9bf131c29d6828 - + https://github.com/dotnet/windowsdesktop - 2df543b48861c637219e80cebea9fcfdddc5e2ef + 595c07f04fab2c13c55390e5ba9bf131c29d6828 - + https://github.com/dotnet/wpf - 1f10d776a73a6f6c729bf202c56aa052382957b8 + 0f380f765da88c10a361920bec87c4103cf47037 https://github.com/dotnet/aspnetcore @@ -360,13 +360,13 @@ b2d50f7d2f36638fd2db5caf9cc8b759597058b7 - + https://github.com/dotnet/winforms - 2261fa0fda3fcbe76f717263a7f19234c57587ae + 4406e6e4f870dd8c0b9032764d38df521ab652a5 - + https://github.com/dotnet/wpf - 1f10d776a73a6f6c729bf202c56aa052382957b8 + 0f380f765da88c10a361920bec87c4103cf47037 https://github.com/dotnet/xdt diff --git a/eng/Versions.props b/eng/Versions.props index 568ef68bf68c..c9ce72dce085 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -83,7 +83,7 @@ - 10.0.0-alpha.1.25060.4 + 10.0.0-alpha.1.25061.2 @@ -136,9 +136,9 @@ - 10.0.0-alpha.1.25061.1 - 10.0.0-alpha.1.25061.1 - 10.0.0-alpha.1.25061.1 + 10.0.0-alpha.1.25063.1 + 10.0.0-alpha.1.25063.1 + 10.0.0-alpha.1.25063.1 @@ -242,8 +242,8 @@ - 10.0.0-alpha.1.25060.3 - 10.0.0-alpha.1.25060.3 + 10.0.0-alpha.1.25062.1 + 10.0.0-alpha.1.25062.1 From 0eb8dac570097b705be27bdcd167fd6237cf9ba2 Mon Sep 17 00:00:00 2001 From: Jared Parsons Date: Mon, 13 Jan 2025 14:29:06 -0800 Subject: [PATCH 100/193] Pass missing compiler parameters (#45257) --- .../Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.targets | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.targets index 269f1a45c5d7..e171c56680b2 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.targets @@ -1235,6 +1235,8 @@ Copyright (c) .NET Foundation. All rights reserved. NoStandardLib="$(NoCompilerStandardLib)" Optimize="$(Optimize)" PublicSign="$(PublicSign)" + PathMap="$(PathMap)" + Features="$(Features)" DelaySign="$(DelaySign)" Deterministic="$(Deterministic)" DisabledWarnings="$(DisabledWarnings)" From 3bdc6cec0f681397bf2d1a8051ea904ff255ae69 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 13 Jan 2025 22:48:44 +0000 Subject: [PATCH 101/193] Update dependencies from https://github.com/dotnet/windowsdesktop build 20250113.2 Microsoft.WindowsDesktop.App.Ref , Microsoft.WindowsDesktop.App.Runtime.win-x64 , VS.Redist.Common.WindowsDesktop.SharedFramework.x64.10.0 , VS.Redist.Common.WindowsDesktop.TargetingPack.x64.10.0 From Version 10.0.0-alpha.1.25061.1 -> To Version 10.0.0-alpha.1.25063.2 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 6f53a557da25..1d8544cc19c2 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -254,22 +254,22 @@ https://github.com/dotnet/runtime 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/windowsdesktop - 595c07f04fab2c13c55390e5ba9bf131c29d6828 + 71acd576deb230a0654562d5e002a4b10f1adbba - + https://github.com/dotnet/windowsdesktop - 595c07f04fab2c13c55390e5ba9bf131c29d6828 + 71acd576deb230a0654562d5e002a4b10f1adbba - + https://github.com/dotnet/windowsdesktop - 595c07f04fab2c13c55390e5ba9bf131c29d6828 + 71acd576deb230a0654562d5e002a4b10f1adbba - + https://github.com/dotnet/windowsdesktop - 595c07f04fab2c13c55390e5ba9bf131c29d6828 + 71acd576deb230a0654562d5e002a4b10f1adbba https://github.com/dotnet/wpf diff --git a/eng/Versions.props b/eng/Versions.props index c9ce72dce085..42af24e86943 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -136,9 +136,9 @@ - 10.0.0-alpha.1.25063.1 - 10.0.0-alpha.1.25063.1 - 10.0.0-alpha.1.25063.1 + 10.0.0-alpha.1.25063.2 + 10.0.0-alpha.1.25063.2 + 10.0.0-alpha.1.25063.2 From f2a7b31e2318f1c458d4bb74e9555d273afda4dc Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Mon, 13 Jan 2025 15:16:35 -0800 Subject: [PATCH 102/193] Use a crossgen2 that runs on the host for R2Ring in a VMR build (#45463) --- src/SourceBuild/content/repo-projects/aspnetcore.proj | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/SourceBuild/content/repo-projects/aspnetcore.proj b/src/SourceBuild/content/repo-projects/aspnetcore.proj index 23b97ea1b3b4..b233630a252a 100644 --- a/src/SourceBuild/content/repo-projects/aspnetcore.proj +++ b/src/SourceBuild/content/repo-projects/aspnetcore.proj @@ -33,8 +33,6 @@ $(BuildArgs) $(FlagParameterPrefix)no-build-repo-tasks - - $(BuildArgs) /p:CrossgenOutput=false From 45657b70fc2794ea2caabed3de8dbd8ea333e7c7 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 14 Jan 2025 05:01:49 +0000 Subject: [PATCH 103/193] Update dependencies from https://github.com/dotnet/source-build-externals build 20250113.1 Microsoft.SourceBuild.Intermediate.source-build-externals From Version 10.0.605604 -> To Version 10.0.606301 --- eng/Version.Details.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 567f4cf9b42b..0cf2be5d48af 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -415,9 +415,9 @@ - + https://github.com/dotnet/source-build-externals - aea551f930d24442a37d2b64c279f97d19868b7b + c9e4423c80e00371e43e306ee6e2e97fd2196af9 From 98dfa10c735f5ae17b8c0d4b0749c07eee882eb6 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 14 Jan 2025 05:02:15 +0000 Subject: [PATCH 104/193] Update dependencies from https://github.com/dotnet/runtime build 20250113.12 Microsoft.SourceBuild.Intermediate.runtime.linux-x64 , Microsoft.Bcl.AsyncInterfaces , Microsoft.Extensions.DependencyModel , Microsoft.Extensions.FileProviders.Abstractions , Microsoft.Extensions.FileSystemGlobbing , Microsoft.Extensions.Logging , Microsoft.Extensions.Logging.Abstractions , Microsoft.Extensions.Logging.Console , Microsoft.NET.HostModel , Microsoft.NET.ILLink.Tasks , Microsoft.NETCore.App.Host.win-x64 , Microsoft.NETCore.App.Ref , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.Platforms , Microsoft.Win32.SystemEvents , System.CodeDom , System.Composition.AttributedModel , System.Composition.Convention , System.Composition.Hosting , System.Composition.Runtime , System.Composition.TypedParts , System.Configuration.ConfigurationManager , System.Formats.Asn1 , System.IO.Hashing , System.Reflection.MetadataLoadContext , System.Resources.Extensions , System.Security.Cryptography.Pkcs , System.Security.Cryptography.ProtectedData , System.Security.Cryptography.Xml , System.Security.Permissions , System.ServiceProcess.ServiceController , System.Text.Encoding.CodePages , System.Text.Json , System.Windows.Extensions , VS.Redist.Common.NetCore.SharedFramework.x64.10.0 , VS.Redist.Common.NetCore.TargetingPack.x64.10.0 From Version 10.0.0-alpha.1.25062.3 -> To Version 10.0.0-alpha.1.25063.12 --- eng/Version.Details.xml | 144 ++++++++++++++++++++-------------------- eng/Versions.props | 70 +++++++++---------- 2 files changed, 107 insertions(+), 107 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 567f4cf9b42b..c9931cf3dd21 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -15,46 +15,46 @@ 4a9cd8c45d20e89f5230050bf34492964f2260cb - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 @@ -230,29 +230,29 @@ bcef12d909709f13027afe1557c724f11bc8df05 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 https://github.com/dotnet/windowsdesktop @@ -473,89 +473,89 @@ - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 https://github.com/dotnet/aspnetcore b2d50f7d2f36638fd2db5caf9cc8b759597058b7 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 @@ -589,9 +589,9 @@ 98b4ae348fa01b99dc6fbfc8f601efd9b90090db - + https://github.com/dotnet/runtime - 010e61a4f46d6d9b544cde169dc034417de7223a + 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 https://github.com/dotnet/arcade-services diff --git a/eng/Versions.props b/eng/Versions.props index 568ef68bf68c..b42b7731c0cf 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -87,43 +87,43 @@ - 10.0.0-alpha.1.25062.3 - 10.0.0-alpha.1.25062.3 - 10.0.0-alpha.1.25062.3 - 10.0.0-alpha.1.25062.3 - 10.0.0-alpha.1.25062.3 - 10.0.0-alpha.1.25062.3 - 10.0.0-alpha.1.25062.3 - 10.0.0-alpha.1.25062.3 - 10.0.0-alpha.1.25062.3 - 10.0.0-alpha.1.25062.3 - 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25063.12 8.0.0-rc.1.23414.4 - 10.0.0-alpha.1.25062.3 - 10.0.0-alpha.1.25062.3 - 10.0.0-alpha.1.25062.3 - 10.0.0-alpha.1.25062.3 - 10.0.0-alpha.1.25062.3 - 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25063.12 2.1.0 - 10.0.0-alpha.1.25062.3 - 10.0.0-alpha.1.25062.3 - 10.0.0-alpha.1.25062.3 - 10.0.0-alpha.1.25062.3 - 10.0.0-alpha.1.25062.3 - 10.0.0-alpha.1.25062.3 - 10.0.0-alpha.1.25062.3 - 10.0.0-alpha.1.25062.3 - 10.0.0-alpha.1.25062.3 - 10.0.0-alpha.1.25062.3 - 10.0.0-alpha.1.25062.3 - 10.0.0-alpha.1.25062.3 - 10.0.0-alpha.1.25062.3 - 10.0.0-alpha.1.25062.3 - 10.0.0-alpha.1.25062.3 - 10.0.0-alpha.1.25062.3 - 10.0.0-alpha.1.25062.3 - 10.0.0-alpha.1.25062.3 + 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25063.12 8.0.0 From 7c9ebbec22970fb0e9054115cf8fc995d8e1a200 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 14 Jan 2025 05:02:26 +0000 Subject: [PATCH 105/193] Update dependencies from https://github.com/microsoft/testfx build 20250113.12 Microsoft.Testing.Platform , MSTest From Version 1.6.0-preview.25059.14 -> To Version 1.6.0-preview.25063.12 --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 567f4cf9b42b..de02620fa4f9 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -634,13 +634,13 @@ https://github.com/dotnet/runtime e77011b31a3e5c47d931248a64b47f9b2d47853d - + https://github.com/microsoft/testfx - 53488cf463d33882113ca7a6fbbb6f93e06251df + f9f7749a752c52664b737c3187fad5033ef8b437 - + https://github.com/microsoft/testfx - 53488cf463d33882113ca7a6fbbb6f93e06251df + f9f7749a752c52664b737c3187fad5033ef8b437 diff --git a/eng/Versions.props b/eng/Versions.props index 568ef68bf68c..20c08de24323 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -28,7 +28,7 @@ true 6.0.1 true - 1.6.0-preview.25059.14 + 1.6.0-preview.25063.12 30 @@ -285,7 +285,7 @@ 6.12.0 6.1.0 4.18.4 - 3.8.0-preview.25059.14 + 3.8.0-preview.25063.12 1.3.2 8.0.0-beta.23607.1 From 2515b856d3d419be66571757f3d29390c5710a34 Mon Sep 17 00:00:00 2001 From: Rick Anderson <3605364+Rick-Anderson@users.noreply.github.com> Date: Mon, 13 Jan 2025 19:06:57 -1000 Subject: [PATCH 106/193] Prevent copy/paste of password and warn (#44761) --- src/WebSdk/README.md | 46 ++++++++++++++++++++++++++++++-------------- 1 file changed, 32 insertions(+), 14 deletions(-) diff --git a/src/WebSdk/README.md b/src/WebSdk/README.md index 5b32697f7a50..758a29592b02 100644 --- a/src/WebSdk/README.md +++ b/src/WebSdk/README.md @@ -16,6 +16,24 @@ The `ProjectSystem` package defines the following for ASP.NET Core Web Projects: - Default [globs](https://learn.microsoft.com/dotnet/core/extensions/file-globbing) - Project Capabilities +Password best practices +====================== + +For production deployments: + +* Use MSBuild to create artifacts, but without deployment, so no credentials are required. Deploy apps as a separate non-MSBuild step that has fewer dependencies and is easier to audit. +* Use deployment keys with short expiration times. A server in a separate root of trust is used to manage the deployment keys. Secrets aren't exposed to the project, ensuring that even if the project is compromised, the root of trust remains secure. + +In this document, replace `` with the deployment password. + +[Azure Key Vault](https://learn.microsoft.com/azure/key-vault/general/overview) and [.NET Aspire](https://learn.microsoft.com/dotnet/aspire/get-started/aspire-overview) provide the most secure way to store and retrieve secrets. Azure Key Vault is a cloud service that safeguards encryption keys and secrets like certificates, connection strings, and passwords. For .NET Aspire, see [Secure communication between hosting and client integrations](https://learn.microsoft.com/dotnet/aspire/extensibility/secure-communication-between-integrations). + +Configuration data guidelines: + +* Never store passwords or other sensitive data in configuration provider code or in plain text configuration files. +* Don't use production secrets in development or test environments. +* Specify secrets outside of the project so that they can't be accidentally committed to a source code repository. + `Microsoft.NET.Sdk.Publish` ====================== @@ -63,13 +81,13 @@ MSDeploy Publish: Using MsBuild with the default profile: ``` -msbuild WebApplication.csproj /p:DeployOnBuild=true /p:WebPublishMethod=MSDeploy /p:MSDeployServiceURL= /p:DeployIisAppPath= /p:UserName= /p:Password= /p:PublishProfile=DefaultMSDeploy +msbuild WebApplication.csproj /p:DeployOnBuild=true /p:WebPublishMethod=MSDeploy /p:MSDeployServiceURL= /p:DeployIisAppPath= /p:UserName= /p:Password= /p:PublishProfile=DefaultMSDeploy ``` Using dotnet with the default profile: ``` -dotnet publish WebApplication.csproj /p:WebPublishMethod=MSDeploy /p:MSDeployServiceURL= /p:DeployIisAppPath= /p:UserName= /p:Password= /p:PublishProfile=DefaultMSDeploy +dotnet publish WebApplication.csproj /p:WebPublishMethod=MSDeploy /p:MSDeployServiceURL= /p:DeployIisAppPath= /p:UserName= /p:Password= /p:PublishProfile=DefaultMSDeploy ``` Profile can be added to the following location in the project /Properties/PublishProfiles/. MsDeploy Publish profile samples are available below: @@ -77,13 +95,13 @@ Profile can be added to the following location in the project /Properties/Publis Using MsBuild with a profile: ``` -msbuild WebApplication.csproj /p:DeployOnBuild=true /p:PublishProfile= /p:Password= +msbuild WebApplication.csproj /p:DeployOnBuild=true /p:PublishProfile= /p:Password= ``` Using dotnet with a profile: ``` -dotnet publish WebApplication.csproj /p:PublishProfile= /p:Password= +dotnet publish WebApplication.csproj /p:PublishProfile= /p:Password= ``` MsDeploy Package: @@ -121,13 +139,13 @@ Zip Deploy: Using MsBuild with the default profile: ``` -msbuild WebApplication.csproj /p:DeployOnBuild=true /p:WebPublishMethod=ZipDeploy /p:PublishUrl= /p:UserName= /p:Password= /p:PublishProfile=DefaultZipDeploy +msbuild WebApplication.csproj /p:DeployOnBuild=true /p:WebPublishMethod=ZipDeploy /p:PublishUrl= /p:UserName= /p:Password= /p:PublishProfile=DefaultZipDeploy ``` Using dotnet with the default profile: ``` -dotnet publish WebApplication.csproj /p:WebPublishMethod=ZipDeploy /p:PublishUrl= /p:UserName= /p:Password= /p:PublishProfile=DefaultZipDeploy +dotnet publish WebApplication.csproj /p:WebPublishMethod=ZipDeploy /p:PublishUrl= /p:UserName= /p:Password= /p:PublishProfile=DefaultZipDeploy ``` Profile can be added to the following location in the project /Properties/PublishProfiles/. @@ -135,13 +153,13 @@ Profile can be added to the following location in the project /Properties/Publis Using MsBuild with a profile: ``` -msbuild WebApplication.csproj /p:DeployOnBuild=true /p:PublishProfile= /p:Password= +msbuild WebApplication.csproj /p:DeployOnBuild=true /p:PublishProfile= /p:Password= ``` Using dotnet with a profile: ``` -dotnet publish WebApplication.csproj /p:PublishProfile= /p:Password= +dotnet publish WebApplication.csproj /p:PublishProfile= /p:Password= ``` One Deploy: @@ -151,7 +169,7 @@ Using dotnet with the default profile: ``` -dotnet publish WebJobApplication.csproj /p:WebPublishMethod=OneDeploy /p:PublishUrl= /p:UserName= /p:Password= /p:PublishProfile=DefaultWebJobOneDeploy +dotnet publish WebJobApplication.csproj /p:WebPublishMethod=OneDeploy /p:PublishUrl= /p:UserName= /p:Password= /p:PublishProfile=DefaultWebJobOneDeploy ``` Profile can be added to the following location in the project /Properties/PublishProfiles/. @@ -159,7 +177,7 @@ Profile can be added to the following location in the project /Properties/Publis Using dotnet with a profile: ``` -dotnet publish WebJobApplication.csproj /p:PublishProfile= /p:Password= +dotnet publish WebJobApplication.csproj /p:PublishProfile= /p:Password= ``` Sample folder profile: @@ -198,7 +216,7 @@ Sample MsDeploy Publish Profile: WMSVC True $vramakwebappwithdb - DeployPassword + ``` @@ -257,16 +275,16 @@ Sample MsDeploy Profile With Destination Connection String & EF Migrations: WMSVC True $vramakwebappwithdb - DeployPassword + - Data Source=tcp:dbserver.database.windows.net,1433;Initial Catalog=shoppingcartdbdb_db;User Id=appUser@dbserver;Password=password + Data Source=tcp:dbserver.database.windows.net,1433;Initial Catalog=shoppingcartdbdb_db;User Id=appUser@dbserver;Password= - Data Source=tcp:dbserver.database.windows.net,1433;Initial Catalog=shoppingcartdbdb_db;User Id=efMigrationUser@dbserver;Password=password + Data Source=tcp:dbserver.database.windows.net,1433;Initial Catalog=shoppingcartdbdb_db;User Id=efMigrationUser@dbserver;Password= From 26fd6d135ae2605cf618caeffe83b3be5e314ac5 Mon Sep 17 00:00:00 2001 From: William Godbe Date: Tue, 14 Jan 2025 01:31:40 -0800 Subject: [PATCH 107/193] Enable Hosting Bundle build in VMR (#45939) --- .../content/repo-projects/aspnetcore.proj | 1 + .../content/repo-projects/sdk.proj | 5 + ...nable-building-Hosting-Bundle-in-VMR.patch | 130 ++++++++++++++++++ 3 files changed, 136 insertions(+) create mode 100644 src/SourceBuild/patches/aspnetcore/0002-Enable-building-Hosting-Bundle-in-VMR.patch diff --git a/src/SourceBuild/content/repo-projects/aspnetcore.proj b/src/SourceBuild/content/repo-projects/aspnetcore.proj index b233630a252a..7108a2e27668 100644 --- a/src/SourceBuild/content/repo-projects/aspnetcore.proj +++ b/src/SourceBuild/content/repo-projects/aspnetcore.proj @@ -23,6 +23,7 @@ $(BuildArgs) $(FlagParameterPrefix)arch $(TargetArchitecture) $(BuildArgs) /p:TargetRuntimeIdentifier=$(TargetRid) $(BuildArgs) /p:PublicBaseURL=file:%2F%2F$(ArtifactsAssetsDir) + $(BuildArgs) /p:CrossArchitectureInstallerBasePath=$(ArtifactsAssetsDir) $(BuildArgs) /p:PgoInstrument=true diff --git a/src/SourceBuild/content/repo-projects/sdk.proj b/src/SourceBuild/content/repo-projects/sdk.proj index 6a14f437be1a..7f34a2f370f9 100644 --- a/src/SourceBuild/content/repo-projects/sdk.proj +++ b/src/SourceBuild/content/repo-projects/sdk.proj @@ -70,6 +70,11 @@ + + + + + ++ true + $(ArtifactsShippingPackagesDir) + + +diff --git a/eng/Build.props b/eng/Build.props +index 697c3d9ba0..87e19ef337 100644 +--- a/eng/Build.props ++++ b/eng/Build.props +@@ -59,7 +59,7 @@ + + + +- ++ + + +@@ -70,6 +70,14 @@ + + + ++ ++ ++ ++ Platform=x86 ++ $(DotNetBuildPass) ++ ++ ++ + + + +@@ -255,10 +263,6 @@ + + + +- +- +- +- + + + +diff --git a/eng/Publishing.props b/eng/Publishing.props +index 201e167159..a6a89bd0e9 100644 +--- a/eng/Publishing.props ++++ b/eng/Publishing.props +@@ -96,12 +96,13 @@ + + + +- + +- ++ + + +diff --git a/src/Installers/Windows/WindowsHostingBundle/WindowsHostingBundle.wixproj b/src/Installers/Windows/WindowsHostingBundle/WindowsHostingBundle.wixproj +index 3389f389a7..5ef4167757 100644 +--- a/src/Installers/Windows/WindowsHostingBundle/WindowsHostingBundle.wixproj ++++ b/src/Installers/Windows/WindowsHostingBundle/WindowsHostingBundle.wixproj +@@ -99,18 +99,27 @@ + $(BundleNameFull) + + ++ ++ ++ $([MSBuild]::NormalizeDirectory('$(CrossArchitectureInstallerBasePath)', 'aspnetcore', 'Runtime', '$(SharedFxMsiVersion)')) ++ ++ ++ ++ $(CrossArchitectureInstallerBasePath) ++ ++ + +- ++ + x64 + SharedFxRedistInstallerx64 + $(SharedFxPackageVersion) + +- ++ + x86 + SharedFxRedistInstallerx86 + $(SharedFxPackageVersion) + +- ++ + arm64 + SharedFxRedistInstallerarm64 + $(SharedFxPackageVersion) +@@ -127,7 +136,7 @@ + $(DefineConstants);BundleRegManufacturer=$(BundleRegManufacturer) + $(DefineConstants);BundleRegFamily=$(BundleRegFamily) + $(DefineConstants);BundleRegName=$(BundleRegName) +- $(DefineConstants);CrossArchitectureInstallerBasePath=$(CrossArchitectureInstallerBasePath) ++ $(DefineConstants);CrossArchitectureInstallerBasePath=$(CrossArchitectureInstallerBasePathNormalized) + + + + From 4a566a4d3fd57e414ae73116ab2e51ad69f7a509 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Jare=C5=A1?= Date: Tue, 14 Jan 2025 14:43:39 +0100 Subject: [PATCH 108/193] Dotnet test integration (first part) (#44268) Co-authored-by: Mariam Abdullah <122357303+mariam-abdulla@users.noreply.github.com> --- Directory.Packages.props | 2 - eng/Version.Details.xml | 6 +- eng/Versions.props | 1 - .../IPC/Models/TestResultMessages.cs | 4 +- .../dotnet-test/IPC/ObjectFieldIds.cs | 10 +- .../TestResultMessagesSerializer.cs | 89 +- .../dotnet-test/LocalizableStrings.resx | 112 +- src/Cli/dotnet/commands/dotnet-test/Models.cs | 4 +- .../dotnet/commands/dotnet-test/Options.cs | 2 +- .../dotnet-test/Terminal/AnsiCodes.cs | 144 +++ .../dotnet-test/Terminal/AnsiDetector.cs | 41 + .../dotnet-test/Terminal/AnsiTerminal.cs | 311 +++++ .../Terminal/AnsiTerminalTestProgressFrame.cs | 352 ++++++ .../dotnet-test/Terminal/ErrorMessage.cs | 9 + .../Terminal/ExceptionFlattener.cs | 52 + .../dotnet-test/Terminal/FileUtilities.cs | 37 + .../HumanReadableDurationFormatter.cs | 112 ++ .../commands/dotnet-test/Terminal/IColor.cs | 9 + .../commands/dotnet-test/Terminal/IConsole.cs | 48 + .../dotnet-test/Terminal/IProgressMessage.cs | 9 + .../dotnet-test/Terminal/IStopwatch.cs | 13 + .../dotnet-test/Terminal/ITerminal.cs | 44 + .../dotnet-test/Terminal/NativeMethods.cs | 122 ++ .../dotnet-test/Terminal/NonAnsiTerminal.cs | 254 ++++ .../dotnet-test/Terminal/SystemConsole.cs | 212 ++++ .../Terminal/SystemConsoleColor.cs | 15 + .../dotnet-test/Terminal/SystemStopwatch.cs | 25 + .../Terminal/TargetFrameworkParser.cs | 74 ++ .../dotnet-test/Terminal/TerminalColor.cs | 95 ++ .../Terminal/TerminalTestReporter.cs | 1019 +++++++++++++++++ .../Terminal/TerminalTestReporterOptions.cs | 54 + .../dotnet-test/Terminal/TestDetailState.cs | 37 + .../Terminal/TestNodeResultsState.cs | 63 + .../dotnet-test/Terminal/TestOutcome.cs | 40 + .../dotnet-test/Terminal/TestProgressState.cs | 57 + .../TestProgressStateAwareTerminal.cs | 205 ++++ .../dotnet-test/Terminal/TestRunArtifact.cs | 9 + .../dotnet-test/Terminal/WarningMessage.cs | 9 + .../commands/dotnet-test/TestApplication.cs | 7 +- .../commands/dotnet-test/TestCommandParser.cs | 1 + .../dotnet-test/TestingPlatformCommand.cs | 182 ++- .../dotnet-test/TestingPlatformOptions.cs | 6 + .../dotnet-test/xlf/LocalizableStrings.cs.xlf | 165 +++ .../dotnet-test/xlf/LocalizableStrings.de.xlf | 165 +++ .../dotnet-test/xlf/LocalizableStrings.es.xlf | 165 +++ .../dotnet-test/xlf/LocalizableStrings.fr.xlf | 165 +++ .../dotnet-test/xlf/LocalizableStrings.it.xlf | 165 +++ .../dotnet-test/xlf/LocalizableStrings.ja.xlf | 165 +++ .../dotnet-test/xlf/LocalizableStrings.ko.xlf | 165 +++ .../dotnet-test/xlf/LocalizableStrings.pl.xlf | 165 +++ .../xlf/LocalizableStrings.pt-BR.xlf | 165 +++ .../dotnet-test/xlf/LocalizableStrings.ru.xlf | 165 +++ .../dotnet-test/xlf/LocalizableStrings.tr.xlf | 165 +++ .../xlf/LocalizableStrings.zh-Hans.xlf | 165 +++ .../xlf/LocalizableStrings.zh-Hant.xlf | 165 +++ 55 files changed, 6011 insertions(+), 31 deletions(-) create mode 100644 src/Cli/dotnet/commands/dotnet-test/Terminal/AnsiCodes.cs create mode 100644 src/Cli/dotnet/commands/dotnet-test/Terminal/AnsiDetector.cs create mode 100644 src/Cli/dotnet/commands/dotnet-test/Terminal/AnsiTerminal.cs create mode 100644 src/Cli/dotnet/commands/dotnet-test/Terminal/AnsiTerminalTestProgressFrame.cs create mode 100644 src/Cli/dotnet/commands/dotnet-test/Terminal/ErrorMessage.cs create mode 100644 src/Cli/dotnet/commands/dotnet-test/Terminal/ExceptionFlattener.cs create mode 100644 src/Cli/dotnet/commands/dotnet-test/Terminal/FileUtilities.cs create mode 100644 src/Cli/dotnet/commands/dotnet-test/Terminal/HumanReadableDurationFormatter.cs create mode 100644 src/Cli/dotnet/commands/dotnet-test/Terminal/IColor.cs create mode 100644 src/Cli/dotnet/commands/dotnet-test/Terminal/IConsole.cs create mode 100644 src/Cli/dotnet/commands/dotnet-test/Terminal/IProgressMessage.cs create mode 100644 src/Cli/dotnet/commands/dotnet-test/Terminal/IStopwatch.cs create mode 100644 src/Cli/dotnet/commands/dotnet-test/Terminal/ITerminal.cs create mode 100644 src/Cli/dotnet/commands/dotnet-test/Terminal/NativeMethods.cs create mode 100644 src/Cli/dotnet/commands/dotnet-test/Terminal/NonAnsiTerminal.cs create mode 100644 src/Cli/dotnet/commands/dotnet-test/Terminal/SystemConsole.cs create mode 100644 src/Cli/dotnet/commands/dotnet-test/Terminal/SystemConsoleColor.cs create mode 100644 src/Cli/dotnet/commands/dotnet-test/Terminal/SystemStopwatch.cs create mode 100644 src/Cli/dotnet/commands/dotnet-test/Terminal/TargetFrameworkParser.cs create mode 100644 src/Cli/dotnet/commands/dotnet-test/Terminal/TerminalColor.cs create mode 100644 src/Cli/dotnet/commands/dotnet-test/Terminal/TerminalTestReporter.cs create mode 100644 src/Cli/dotnet/commands/dotnet-test/Terminal/TerminalTestReporterOptions.cs create mode 100644 src/Cli/dotnet/commands/dotnet-test/Terminal/TestDetailState.cs create mode 100644 src/Cli/dotnet/commands/dotnet-test/Terminal/TestNodeResultsState.cs create mode 100644 src/Cli/dotnet/commands/dotnet-test/Terminal/TestOutcome.cs create mode 100644 src/Cli/dotnet/commands/dotnet-test/Terminal/TestProgressState.cs create mode 100644 src/Cli/dotnet/commands/dotnet-test/Terminal/TestProgressStateAwareTerminal.cs create mode 100644 src/Cli/dotnet/commands/dotnet-test/Terminal/TestRunArtifact.cs create mode 100644 src/Cli/dotnet/commands/dotnet-test/Terminal/WarningMessage.cs diff --git a/Directory.Packages.props b/Directory.Packages.props index 37f12c935a34..2e3b4ae1f740 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -63,8 +63,6 @@ - - diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 3cf2b8776cc8..94871caeefb2 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -634,11 +634,7 @@ https://github.com/dotnet/runtime e77011b31a3e5c47d931248a64b47f9b2d47853d - - https://github.com/microsoft/testfx - 53488cf463d33882113ca7a6fbbb6f93e06251df - - + https://github.com/microsoft/testfx 53488cf463d33882113ca7a6fbbb6f93e06251df diff --git a/eng/Versions.props b/eng/Versions.props index 42af24e86943..468b45f140e1 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -28,7 +28,6 @@ true 6.0.1 true - 1.6.0-preview.25059.14 30 diff --git a/src/Cli/dotnet/commands/dotnet-test/IPC/Models/TestResultMessages.cs b/src/Cli/dotnet/commands/dotnet-test/IPC/Models/TestResultMessages.cs index 5882717301ff..af9ee626604c 100644 --- a/src/Cli/dotnet/commands/dotnet-test/IPC/Models/TestResultMessages.cs +++ b/src/Cli/dotnet/commands/dotnet-test/IPC/Models/TestResultMessages.cs @@ -5,7 +5,9 @@ namespace Microsoft.DotNet.Tools.Test { internal sealed record SuccessfulTestResultMessage(string? Uid, string? DisplayName, byte? State, long? Duration, string? Reason, string? StandardOutput, string? ErrorOutput, string? SessionUid); - internal sealed record FailedTestResultMessage(string? Uid, string? DisplayName, byte? State, long? Duration, string? Reason, string? ErrorMessage, string? ErrorStackTrace, string? StandardOutput, string? ErrorOutput, string? SessionUid); + internal sealed record FailedTestResultMessage(string? Uid, string? DisplayName, byte? State, long? Duration, string? Reason, ExceptionMessage[]? Exceptions, string? StandardOutput, string? ErrorOutput, string? SessionUid); + + internal sealed record ExceptionMessage(string? ErrorMessage, string? ErrorType, string? StackTrace); internal sealed record TestResultMessages(string? ExecutionId, SuccessfulTestResultMessage[] SuccessfulTestMessages, FailedTestResultMessage[] FailedTestMessages) : IRequest; } diff --git a/src/Cli/dotnet/commands/dotnet-test/IPC/ObjectFieldIds.cs b/src/Cli/dotnet/commands/dotnet-test/IPC/ObjectFieldIds.cs index e7f720c96fbb..01d38f3d9ec2 100644 --- a/src/Cli/dotnet/commands/dotnet-test/IPC/ObjectFieldIds.cs +++ b/src/Cli/dotnet/commands/dotnet-test/IPC/ObjectFieldIds.cs @@ -85,13 +85,19 @@ internal static class FailedTestResultMessageFieldsId public const ushort State = 3; public const ushort Duration = 4; public const ushort Reason = 5; - public const ushort ErrorMessage = 6; - public const ushort ErrorStackTrace = 7; + public const ushort ExceptionMessageList = 6; public const ushort StandardOutput = 8; public const ushort ErrorOutput = 9; public const ushort SessionUid = 10; } + internal static class ExceptionMessageFieldsId + { + public const ushort ErrorMessage = 1; + public const ushort ErrorType = 2; + public const ushort StackTrace = 3; + } + internal static class FileArtifactMessagesFieldsId { public const int MessagesSerializerId = 7; diff --git a/src/Cli/dotnet/commands/dotnet-test/IPC/Serializers/TestResultMessagesSerializer.cs b/src/Cli/dotnet/commands/dotnet-test/IPC/Serializers/TestResultMessagesSerializer.cs index 9726bec16ff7..329c54e23b1c 100644 --- a/src/Cli/dotnet/commands/dotnet-test/IPC/Serializers/TestResultMessagesSerializer.cs +++ b/src/Cli/dotnet/commands/dotnet-test/IPC/Serializers/TestResultMessagesSerializer.cs @@ -217,8 +217,8 @@ private static List ReadFailedTestMessagesPayload(Strea int length = ReadInt(stream); for (int i = 0; i < length; i++) { - string? uid = null, displayName = null, reason = null, sessionUid = null, - errorMessage = null, errorStackTrace = null, standardOutput = null, errorOutput = null; + string? uid = null, displayName = null, reason = null, sessionUid = null, standardOutput = null, errorOutput = null; + List exceptionMessages = []; byte? state = null; long? duration = null; @@ -251,13 +251,44 @@ private static List ReadFailedTestMessagesPayload(Strea reason = ReadStringValue(stream, fieldSize); break; - case FailedTestResultMessageFieldsId.ErrorMessage: - errorMessage = ReadStringValue(stream, fieldSize); - break; + case FailedTestResultMessageFieldsId.ExceptionMessageList: + { + int length2 = ReadInt(stream); + for (int k = 0; k < length2; k++) + { - case FailedTestResultMessageFieldsId.ErrorStackTrace: - errorStackTrace = ReadStringValue(stream, fieldSize); - break; + int fieldCount2 = ReadShort(stream); + + string? errorMessage = null; + string? errorType = null; + string? stackTrace = null; + + for (int l = 0; l < fieldCount2; l++) + { + int fieldId2 = ReadShort(stream); + int fieldSize2 = ReadInt(stream); + + switch (fieldId2) + { + case ExceptionMessageFieldsId.ErrorMessage: + errorMessage = ReadStringValue(stream, fieldSize2); + break; + + case ExceptionMessageFieldsId.ErrorType: + errorType = ReadStringValue(stream, fieldSize2); + break; + + case ExceptionMessageFieldsId.StackTrace: + stackTrace = ReadStringValue(stream, fieldSize2); + break; + } + } + + exceptionMessages.Add(new ExceptionMessage(errorMessage, errorType, stackTrace)); + } + + break; + } case FailedTestResultMessageFieldsId.StandardOutput: standardOutput = ReadStringValue(stream, fieldSize); @@ -277,7 +308,7 @@ private static List ReadFailedTestMessagesPayload(Strea } } - failedTestResultMessages.Add(new FailedTestResultMessage(uid, displayName, state, duration, reason, errorMessage, errorStackTrace, standardOutput, errorOutput, sessionUid)); + failedTestResultMessages.Add(new FailedTestResultMessage(uid, displayName, state, duration, reason, exceptionMessages.ToArray(), standardOutput, errorOutput, sessionUid)); } return failedTestResultMessages; @@ -354,8 +385,7 @@ private static void WriteFailedTestMessagesPayload(Stream stream, FailedTestResu WriteField(stream, FailedTestResultMessageFieldsId.State, failedTestResultMessage.State); WriteField(stream, FailedTestResultMessageFieldsId.Duration, failedTestResultMessage.Duration); WriteField(stream, FailedTestResultMessageFieldsId.Reason, failedTestResultMessage.Reason); - WriteField(stream, FailedTestResultMessageFieldsId.ErrorMessage, failedTestResultMessage.ErrorMessage); - WriteField(stream, FailedTestResultMessageFieldsId.ErrorStackTrace, failedTestResultMessage.ErrorStackTrace); + WriteExceptionMessagesPayload(stream, failedTestResultMessage.Exceptions); WriteField(stream, FailedTestResultMessageFieldsId.StandardOutput, failedTestResultMessage.StandardOutput); WriteField(stream, FailedTestResultMessageFieldsId.ErrorOutput, failedTestResultMessage.ErrorOutput); WriteField(stream, FailedTestResultMessageFieldsId.SessionUid, failedTestResultMessage.SessionUid); @@ -366,6 +396,35 @@ private static void WriteFailedTestMessagesPayload(Stream stream, FailedTestResu WriteAtPosition(stream, (int)(stream.Position - before), before - sizeof(int)); } + private static void WriteExceptionMessagesPayload(Stream stream, ExceptionMessage[]? exceptionMessages) + { + if (exceptionMessages is null || exceptionMessages.Length == 0) + { + return; + } + + WriteShort(stream, FailedTestResultMessageFieldsId.ExceptionMessageList); + + // We will reserve an int (4 bytes) + // so that we fill the size later, once we write the payload + WriteInt(stream, 0); + + long before = stream.Position; + WriteInt(stream, exceptionMessages.Length); + foreach (ExceptionMessage exceptionMessage in exceptionMessages) + { + WriteShort(stream, GetFieldCount(exceptionMessage)); + + WriteField(stream, ExceptionMessageFieldsId.ErrorMessage, exceptionMessage.ErrorMessage); + WriteField(stream, ExceptionMessageFieldsId.ErrorType, exceptionMessage.ErrorType); + WriteField(stream, ExceptionMessageFieldsId.StackTrace, exceptionMessage.StackTrace); + } + + // NOTE: We are able to seek only if we are using a MemoryStream + // thus, the seek operation is fast as we are only changing the value of a property + WriteAtPosition(stream, (int)(stream.Position - before), before - sizeof(int)); + } + private static ushort GetFieldCount(TestResultMessages testResultMessages) => (ushort)((testResultMessages.ExecutionId is null ? 0 : 1) + (IsNullOrEmpty(testResultMessages.SuccessfulTestMessages) ? 0 : 1) + @@ -387,10 +446,14 @@ private static ushort GetFieldCount(FailedTestResultMessage failedTestResultMess (failedTestResultMessage.State is null ? 0 : 1) + (failedTestResultMessage.Duration is null ? 0 : 1) + (failedTestResultMessage.Reason is null ? 0 : 1) + - (failedTestResultMessage.ErrorMessage is null ? 0 : 1) + - (failedTestResultMessage.ErrorStackTrace is null ? 0 : 1) + + (IsNullOrEmpty(failedTestResultMessage.Exceptions) ? 0 : 1) + (failedTestResultMessage.StandardOutput is null ? 0 : 1) + (failedTestResultMessage.ErrorOutput is null ? 0 : 1) + (failedTestResultMessage.SessionUid is null ? 0 : 1)); + + private static ushort GetFieldCount(ExceptionMessage exceptionMessage) => + (ushort)((exceptionMessage.ErrorMessage is null ? 0 : 1) + + (exceptionMessage.ErrorType is null ? 0 : 1) + + (exceptionMessage.StackTrace is null ? 0 : 1)); } } diff --git a/src/Cli/dotnet/commands/dotnet-test/LocalizableStrings.resx b/src/Cli/dotnet/commands/dotnet-test/LocalizableStrings.resx index 1855e09972b5..df9c46f2a035 100644 --- a/src/Cli/dotnet/commands/dotnet-test/LocalizableStrings.resx +++ b/src/Cli/dotnet/commands/dotnet-test/LocalizableStrings.resx @@ -304,10 +304,10 @@ Examples: NAME="VALUE" - No serializer registered with ID '{0}' + No serializer registered with ID '{0}' - No serializer registered with type '{0}' + No serializer registered with type '{0}' The max number of test modules that can run in parallel. @@ -332,6 +332,114 @@ Examples: Test application(s) that support VSTest are not supported. + + Aborted + + + {0} tests running + + + and {0} more + + + Actual + + + canceled + + + Canceling the test session... + + + Console is already in batching mode. + Exception that is thrown when console is already collecting input into a batch (into a string builder), and code asks to enable batching mode again. + + + Discovered {0} tests in assembly + 0 is count, the sentence is followed by the path of the assebly + + + Discovering tests from + + + Exit code + + + Expected + + + Failed + + + failed + + + failed with {0} error(s) + + + failed with {0} error(s) and {1} warning(s) + + + failed with {0} warning(s) + + + For test + is followed by test name + + + from + from followed by a file name to point to the file from which test is originating + + + In process file artifacts produced: + + + Minimum expected tests policy violation, tests ran {0}, minimum expected {1} + {0}, {1} number of tests + + + Out of process file artifacts produced: + + + Passed + + + passed + + + Running tests from + + + skipped + + + at + at that is used for a stack frame location in a stack trace, is followed by a class and method name + + + in + in that is used in stack frame it is followed by file name + + + Error output + + + Standard output + + + Discovered {0} tests in {1} assemblies. + 0 is number of tests, 1 is count of assemblies + + + Discovered {0} tests. + 0 is number of tests + + + Test run summary: + + + Zero tests ran + Test runner not supported: {0}. diff --git a/src/Cli/dotnet/commands/dotnet-test/Models.cs b/src/Cli/dotnet/commands/dotnet-test/Models.cs index 9f18391810c6..17ca6a4261ec 100644 --- a/src/Cli/dotnet/commands/dotnet-test/Models.cs +++ b/src/Cli/dotnet/commands/dotnet-test/Models.cs @@ -13,7 +13,9 @@ internal sealed record DiscoveredTest(string? Uid, string? DisplayName); internal sealed record SuccessfulTestResult(string? Uid, string? DisplayName, byte? State, long? Duration, string? Reason, string? StandardOutput, string? ErrorOutput, string? SessionUid); - internal sealed record FailedTestResult(string? Uid, string? DisplayName, byte? State, long? Duration, string? Reason, string? ErrorMessage, string? ErrorStackTrace, string? StandardOutput, string? ErrorOutput, string? SessionUid); + internal sealed record FailedTestResult(string? Uid, string? DisplayName, byte? State, long? Duration, string? Reason, FlatException[]? Exceptions, string? StandardOutput, string? ErrorOutput, string? SessionUid); + + internal sealed record FlatException(string? ErrorMessage, string? ErrorType, string? StackTrace); internal sealed record FileArtifact(string? FullPath, string? DisplayName, string? Description, string? TestUid, string? TestDisplayName, string? SessionUid); diff --git a/src/Cli/dotnet/commands/dotnet-test/Options.cs b/src/Cli/dotnet/commands/dotnet-test/Options.cs index 43fdc3696ff9..598e3cb7d722 100644 --- a/src/Cli/dotnet/commands/dotnet-test/Options.cs +++ b/src/Cli/dotnet/commands/dotnet-test/Options.cs @@ -3,7 +3,7 @@ namespace Microsoft.DotNet.Cli { - internal record BuildConfigurationOptions(bool HasNoRestore, bool HasNoBuild, string Configuration, string Architecture); + internal record BuildConfigurationOptions(bool HasNoRestore, bool HasNoBuild, bool HasListTests, string Configuration, string Architecture); internal record BuildPathsOptions(string ProjectPath, string SolutionPath, string DirectoryPath); } diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/AnsiCodes.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/AnsiCodes.cs new file mode 100644 index 000000000000..8e9543c9dbe3 --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/AnsiCodes.cs @@ -0,0 +1,144 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +namespace Microsoft.Testing.Platform.OutputDevice.Terminal; + +/// +/// A collection of standard ANSI/VT100 control codes. +/// +internal static class AnsiCodes +{ + /// + /// Escape character. + /// + public const string Esc = "\x1b"; + + /// + /// The control sequence introducer. + /// + public const string CSI = $"{Esc}["; + + /// + /// Select graphic rendition. + /// + /// + /// Print color-code to change text color. + /// + public const string SetColor = "m"; + + /// + /// Select graphic rendition - set bold mode. + /// + /// + /// Print to change text to bold. + /// + public const string SetBold = "1m"; + + /// + /// A shortcut to reset color back to normal. + /// + public const string SetDefaultColor = CSI + "m"; + + /// + /// Non-xterm extension to render a hyperlink. + /// + /// + /// Print urltext to render a hyperlink. + /// + public const string LinkPrefix = $"{Esc}]8;;"; + + /// + /// . + /// + public const string LinkInfix = $"{Esc}\\"; + + /// + /// . + /// + public const string LinkSuffix = $"{Esc}]8;;{Esc}\\"; + + /// + /// Moves up the specified number of lines and puts cursor at the beginning of the line. + /// + /// + /// Print N to move N lines up. + /// + public const string MoveUpToLineStart = "F"; + + /// + /// Moves forward (to the right) the specified number of characters. + /// + /// + /// Print N to move N characters forward. + /// + public const string MoveForward = "C"; + + /// + /// Moves backward (to the left) the specified number of characters. + /// + /// + /// Print N to move N characters backward. + /// + public const string MoveBackward = "D"; + + /// + /// Clears everything from cursor to end of screen. + /// + /// + /// Print to clear. + /// + public const string EraseInDisplay = "J"; + + /// + /// Clears everything from cursor to the end of the current line. + /// + /// + /// Print to clear. + /// + public const string EraseInLine = "K"; + + /// + /// Hides the cursor. + /// + public const string HideCursor = $"{Esc}[?25l"; + + /// + /// Shows/restores the cursor. + /// + public const string ShowCursor = $"{Esc}[?25h"; + + /// + /// Set progress state to a busy spinner.
+ /// Note: this code works only on ConEmu terminals, and conflicts with push a notification code on iTerm2. + ///
+ /// + /// ConEmu specific OSC codes.
+ /// iTerm2 proprietary escape codes. + ///
+ public const string SetBusySpinner = $"{Esc}]9;4;3;{Esc}\\"; + + /// + /// Remove progress state, restoring taskbar status to normal.
+ /// Note: this code works only on ConEmu terminals, and conflicts with push a notification code on iTerm2. + ///
+ /// + /// ConEmu specific OSC codes.
+ /// iTerm2 proprietary escape codes. + ///
+ public const string RemoveBusySpinner = $"{Esc}]9;4;0;{Esc}\\"; + + public static string Colorize(string? s, TerminalColor color) + => String.IsNullOrWhiteSpace(s) ? s ?? string.Empty : $"{CSI}{(int)color}{SetColor}{s}{SetDefaultColor}"; + + public static string MakeBold(string? s) + => String.IsNullOrWhiteSpace(s) ? s ?? string.Empty : $"{CSI}{SetBold}{s}{SetDefaultColor}"; + + public static string MoveCursorBackward(int count) => $"{CSI}{count}{MoveBackward}"; + + /// + /// Moves cursor to the specified column, or the rightmost column if is greater than the width of the terminal. + /// + /// Column index. + /// Control codes to set the desired position. + public static string SetCursorHorizontal(int column) => $"{CSI}{column}G"; +} diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/AnsiDetector.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/AnsiDetector.cs new file mode 100644 index 000000000000..3cb6c139e71a --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/AnsiDetector.cs @@ -0,0 +1,41 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +// Portions of the code in this file were ported from the spectre.console by Patrik Svensson, Phil Scott, Nils Andresen +// https://github.com/spectreconsole/spectre.console/blob/main/src/Spectre.Console/Internal/Backends/Ansi/AnsiDetector.cs +// and from the supports-ansi project by Qingrong Ke +// https://github.com/keqingrong/supports-ansi/blob/master/index.js + +using System.Text.RegularExpressions; + +namespace Microsoft.Testing.Platform.OutputDevice.Terminal; + +/// +/// Works together with the to figure out if the current console is capable of using ANSI output codes. +/// +internal static class AnsiDetector +{ + private static readonly Regex[] TerminalsRegexes = + { + new("^xterm"), // xterm, PuTTY, Mintty + new("^rxvt"), // RXVT + new("^(?!eterm-color).*eterm.*"), // Accepts eterm, but not eterm-color, which does not support moving the cursor, see #9950. + new("^screen"), // GNU screen, tmux + new("tmux"), // tmux + new("^vt100"), // DEC VT series + new("^vt102"), // DEC VT series + new("^vt220"), // DEC VT series + new("^vt320"), // DEC VT series + new("ansi"), // ANSI + new("scoansi"), // SCO ANSI + new("cygwin"), // Cygwin, MinGW + new("linux"), // Linux console + new("konsole"), // Konsole + new("bvterm"), // Bitvise SSH Client + new("^st-256color"), // Suckless Simple Terminal, st + new("alacritty"), // Alacritty + }; + + public static bool IsAnsiSupported(string? termType) + => !String.IsNullOrEmpty(termType) && TerminalsRegexes.Any(regex => regex.IsMatch(termType)); +} diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/AnsiTerminal.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/AnsiTerminal.cs new file mode 100644 index 000000000000..a52a8b951d17 --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/AnsiTerminal.cs @@ -0,0 +1,311 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +using System.Globalization; +using Microsoft.Testing.Platform.Helpers; +using LocalizableStrings = Microsoft.DotNet.Tools.Test.LocalizableStrings; + +namespace Microsoft.Testing.Platform.OutputDevice.Terminal; + +/// +/// Terminal writer that is used when writing ANSI is allowed. It is capable of batching as many updates as possible and writing them at the end, +/// because the terminal is responsible for rendering the colors and control codes. +/// +internal sealed class AnsiTerminal : ITerminal +{ + /// + /// File extensions that we will link to directly, all other files + /// are linked to their directory, to avoid opening dlls, or executables. + /// + private static readonly string[] KnownFileExtensions = new string[] + { + // code files + ".cs", + ".vb", + ".fs", + // logs + ".log", + ".txt", + // reports + ".coverage", + ".ctrf", + ".html", + ".junit", + ".nunit", + ".trx", + ".xml", + ".xunit", + }; + + private readonly IConsole _console; + private readonly string? _baseDirectory; + private readonly bool _useBusyIndicator; + private readonly StringBuilder _stringBuilder = new(); + private bool _isBatching; + private AnsiTerminalTestProgressFrame _currentFrame = new(0, 0); + + public AnsiTerminal(IConsole console, string? baseDirectory) + { + _console = console; + _baseDirectory = baseDirectory ?? Directory.GetCurrentDirectory(); + + // Output ansi code to get spinner on top of a terminal, to indicate in-progress task. + // https://github.com/dotnet/msbuild/issues/8958: iTerm2 treats ;9 code to post a notification instead, so disable progress reporting on Mac. + _useBusyIndicator = !RuntimeInformation.IsOSPlatform(OSPlatform.OSX); + } + + public int Width + => _console.IsOutputRedirected ? int.MaxValue : _console.BufferWidth; + + public int Height + => _console.IsOutputRedirected ? int.MaxValue : _console.BufferHeight; + + public void Append(char value) + { + if (_isBatching) + { + _stringBuilder.Append(value); + } + else + { + _console.Write(value); + } + } + + public void Append(string value) + { + if (_isBatching) + { + _stringBuilder.Append(value); + } + else + { + _console.Write(value); + } + } + + public void AppendLine() + { + if (_isBatching) + { + _stringBuilder.AppendLine(); + } + else + { + _console.WriteLine(); + } + } + + public void AppendLine(string value) + { + if (_isBatching) + { + _stringBuilder.AppendLine(value); + } + else + { + _console.WriteLine(value); + } + } + + public void SetColor(TerminalColor color) + { + string setColor = $"{AnsiCodes.CSI}{(int)color}{AnsiCodes.SetColor}"; + if (_isBatching) + { + _stringBuilder.Append(setColor); + } + else + { + _console.Write(setColor); + } + } + + public void ResetColor() + { + string resetColor = AnsiCodes.SetDefaultColor; + if (_isBatching) + { + _stringBuilder.Append(resetColor); + } + else + { + _console.Write(resetColor); + } + } + + public void ShowCursor() + { + if (_isBatching) + { + _stringBuilder.Append(AnsiCodes.ShowCursor); + } + else + { + _console.Write(AnsiCodes.ShowCursor); + } + } + + public void HideCursor() + { + if (_isBatching) + { + _stringBuilder.Append(AnsiCodes.HideCursor); + } + else + { + _console.Write(AnsiCodes.HideCursor); + } + } + + public void StartUpdate() + { + if (_isBatching) + { + throw new InvalidOperationException(LocalizableStrings.ConsoleIsAlreadyInBatchingMode); + } + + _stringBuilder.Clear(); + _isBatching = true; + } + + public void StopUpdate() + { + _console.Write(_stringBuilder.ToString()); + _isBatching = false; + } + + public void AppendLink(string? path, int? lineNumber) + { + if (String.IsNullOrWhiteSpace(path)) + { + return; + } + + // For non code files, point to the directory, so we don't end up running the + // exe by clicking at the link. + string? extension = Path.GetExtension(path); + bool linkToFile = !String.IsNullOrWhiteSpace(extension) && KnownFileExtensions.Contains(extension); + + bool knownNonExistingFile = path.StartsWith("/_/", ignoreCase: false, CultureInfo.CurrentCulture); + + string linkPath = path; + if (!linkToFile) + { + try + { + linkPath = Path.GetDirectoryName(linkPath) ?? linkPath; + } + catch + { + // Ignore all GetDirectoryName errors. + } + } + + // If the output path is under the initial working directory, make the console output relative to that to save space. + if (_baseDirectory != null && path.StartsWith(_baseDirectory, FileUtilities.PathComparison)) + { + if (path.Length > _baseDirectory.Length + && (path[_baseDirectory.Length] == Path.DirectorySeparatorChar + || path[_baseDirectory.Length] == Path.AltDirectorySeparatorChar)) + { + path = path[(_baseDirectory.Length + 1)..]; + } + } + + if (lineNumber != null) + { + path += $":{lineNumber}"; + } + + if (knownNonExistingFile) + { + Append(path); + return; + } + + // Generates file:// schema url string which is better handled by various Terminal clients than raw folder name. + if (Uri.TryCreate(linkPath, UriKind.Absolute, out Uri? uri)) + { + // url.ToString() un-escapes the URL which is needed for our case file:// + linkPath = uri.ToString(); + } + + SetColor(TerminalColor.DarkGray); + Append(AnsiCodes.LinkPrefix); + Append(linkPath); + Append(AnsiCodes.LinkInfix); + Append(path); + Append(AnsiCodes.LinkSuffix); + ResetColor(); + } + + public void MoveCursorUp(int lineCount) + { + string moveCursor = $"{AnsiCodes.CSI}{lineCount}{AnsiCodes.MoveUpToLineStart}"; + if (_isBatching) + { + _stringBuilder.AppendLine(moveCursor); + } + else + { + _console.WriteLine(moveCursor); + } + } + + public void SetCursorHorizontal(int position) + { + string setCursor = AnsiCodes.SetCursorHorizontal(position); + if (_isBatching) + { + _stringBuilder.Append(setCursor); + } + else + { + _console.Write(setCursor); + } + } + + /// + /// Erases the previously printed live node output. + /// + public void EraseProgress() + { + if (_currentFrame.RenderedLines == null || _currentFrame.RenderedLines.Count == 0) + { + return; + } + + AppendLine($"{AnsiCodes.CSI}{_currentFrame.RenderedLines.Count + 2}{AnsiCodes.MoveUpToLineStart}"); + Append($"{AnsiCodes.CSI}{AnsiCodes.EraseInDisplay}"); + _currentFrame.Clear(); + } + + public void RenderProgress(TestProgressState?[] progress) + { + AnsiTerminalTestProgressFrame newFrame = new(Width, Height); + newFrame.Render(_currentFrame, progress, terminal: this); + + _currentFrame = newFrame; + } + + public void StartBusyIndicator() + { + if (_useBusyIndicator) + { + Append(AnsiCodes.SetBusySpinner); + } + + HideCursor(); + } + + public void StopBusyIndicator() + { + if (_useBusyIndicator) + { + Append(AnsiCodes.RemoveBusySpinner); + } + + ShowCursor(); + } +} diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/AnsiTerminalTestProgressFrame.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/AnsiTerminalTestProgressFrame.cs new file mode 100644 index 000000000000..35cd1f7e3813 --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/AnsiTerminalTestProgressFrame.cs @@ -0,0 +1,352 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +using System.Globalization; + +namespace Microsoft.Testing.Platform.OutputDevice.Terminal; + +/// +/// Captures that was rendered to screen, so we can only partially update the screen on next update. +/// +internal sealed class AnsiTerminalTestProgressFrame +{ + private const int MaxColumn = 250; + + public int Width { get; } + + public int Height { get; } + + public List? RenderedLines { get; set; } + + public AnsiTerminalTestProgressFrame(int width, int height) + { + Width = Math.Min(width, MaxColumn); + Height = height; + } + + public void AppendTestWorkerProgress(TestProgressState progress, RenderedProgressItem currentLine, AnsiTerminal terminal) + { + string durationString = HumanReadableDurationFormatter.Render(progress.Stopwatch.Elapsed); + + currentLine.RenderedDurationLength = durationString.Length; + + int nonReservedWidth = Width - (durationString.Length + 2); + + int passed = progress.PassedTests; + int failed = progress.FailedTests; + int skipped = progress.SkippedTests; + int charsTaken = 0; + + terminal.Append('['); + charsTaken++; + terminal.SetColor(TerminalColor.Green); + terminal.Append('✓'); + charsTaken++; + string passedText = passed.ToString(CultureInfo.CurrentCulture); + terminal.Append(passedText); + charsTaken += passedText.Length; + terminal.ResetColor(); + + terminal.Append('/'); + charsTaken++; + + terminal.SetColor(TerminalColor.Red); + terminal.Append('x'); + charsTaken++; + string failedText = failed.ToString(CultureInfo.CurrentCulture); + terminal.Append(failedText); + charsTaken += failedText.Length; + terminal.ResetColor(); + + terminal.Append('/'); + charsTaken++; + + terminal.SetColor(TerminalColor.Yellow); + terminal.Append('↓'); + charsTaken++; + string skippedText = skipped.ToString(CultureInfo.CurrentCulture); + terminal.Append(skippedText); + charsTaken += skippedText.Length; + terminal.ResetColor(); + terminal.Append(']'); + charsTaken++; + + terminal.Append(' '); + charsTaken++; + AppendToWidth(terminal, progress.AssemblyName, nonReservedWidth, ref charsTaken); + + if (charsTaken < nonReservedWidth && (progress.TargetFramework != null || progress.Architecture != null)) + { + int lengthNeeded = 0; + + lengthNeeded++; // for '(' + if (progress.TargetFramework != null) + { + lengthNeeded += progress.TargetFramework.Length; + if (progress.Architecture != null) + { + lengthNeeded++; // for '|' + } + } + + if (progress.Architecture != null) + { + lengthNeeded += progress.Architecture.Length; + } + + lengthNeeded++; // for ')' + + if ((charsTaken + lengthNeeded) < nonReservedWidth) + { + terminal.Append(" ("); + if (progress.TargetFramework != null) + { + terminal.Append(progress.TargetFramework); + if (progress.Architecture != null) + { + terminal.Append('|'); + } + } + + if (progress.Architecture != null) + { + terminal.Append(progress.Architecture); + } + + terminal.Append(')'); + } + } + + terminal.SetCursorHorizontal(Width - durationString.Length); + terminal.Append(durationString); + } + + public void AppendTestWorkerDetail(TestDetailState detail, RenderedProgressItem currentLine, AnsiTerminal terminal) + { + string durationString = HumanReadableDurationFormatter.Render(detail.Stopwatch?.Elapsed); + + currentLine.RenderedDurationLength = durationString.Length; + + int nonReservedWidth = Width - (durationString.Length + 2); + int charsTaken = 0; + + terminal.Append(" "); + charsTaken += 2; + + AppendToWidth(terminal, detail.Text, nonReservedWidth, ref charsTaken); + + terminal.SetCursorHorizontal(Width - durationString.Length); + terminal.Append(durationString); + } + + private static void AppendToWidth(AnsiTerminal terminal, string text, int width, ref int charsTaken) + { + if (charsTaken + text.Length < width) + { + terminal.Append(text); + charsTaken += text.Length; + } + else + { + terminal.Append("..."); + charsTaken += 3; + if (charsTaken < width) + { + int charsToTake = width - charsTaken; + string cutText = text[^charsToTake..]; + terminal.Append(cutText); + charsTaken += charsToTake; + } + } + } + + /// + /// Render VT100 string to update from current to next frame. + /// + public void Render(AnsiTerminalTestProgressFrame previousFrame, TestProgressState?[] progress, AnsiTerminal terminal) + { + // Clear everything if Terminal width or height have changed. + if (Width != previousFrame.Width || Height != previousFrame.Height) + { + terminal.EraseProgress(); + } + + // At the end of the terminal we're going to print the live progress. + // We re-render this progress by moving the cursor to the beginning of the previous progress + // and then overwriting the lines that have changed. + // The assumption we do here is that: + // - Each rendered line is a single line, i.e. a single detail cannot span multiple lines. + // - Each rendered detail can be tracked via a unique ID and version, so that we can + // quickly determine if the detail has changed since the last render. + + // Don't go up if we did not render any lines in previous frame or we already cleared them. + if (previousFrame.RenderedLines != null && previousFrame.RenderedLines.Count > 0) + { + // Move cursor back to 1st line of progress. + // + 2 because we output and empty line right below. + terminal.MoveCursorUp(previousFrame.RenderedLines.Count + 2); + } + + // When there is nothing to render, don't write empty lines, e.g. when we start the test run, and then we kick off build + // in dotnet test, there is a long pause where we have no assemblies and no test results (yet). + if (progress.Length > 0) + { + terminal.AppendLine(); + } + + int i = 0; + RenderedLines = new List(progress.Length * 2); + List progresses = GenerateLinesToRender(progress); + + foreach (object item in progresses) + { + if (previousFrame.RenderedLines != null && previousFrame.RenderedLines.Count > i) + { + if (item is TestProgressState progressItem) + { + var currentLine = new RenderedProgressItem(progressItem.Id, progressItem.Version); + RenderedLines.Add(currentLine); + + // We have a line that was rendered previously, compare it and decide how to render. + RenderedProgressItem previouslyRenderedLine = previousFrame.RenderedLines[i]; + if (previouslyRenderedLine.ProgressId == progressItem.Id && false) + { + // This is the same progress item and it was not updated since we rendered it, only update the timestamp if possible to avoid flicker. + string durationString = HumanReadableDurationFormatter.Render(progressItem.Stopwatch.Elapsed); + + if (previouslyRenderedLine.RenderedDurationLength == durationString.Length) + { + // Duration is the same length rewrite just it. + terminal.SetCursorHorizontal(MaxColumn); + terminal.Append($"{AnsiCodes.SetCursorHorizontal(MaxColumn)}{AnsiCodes.MoveCursorBackward(durationString.Length)}{durationString}"); + currentLine.RenderedDurationLength = durationString.Length; + } + else + { + // Duration is not the same length (it is longer because time moves only forward), we need to re-render the whole line + // to avoid writing the duration over the last portion of text: my.dll (1s) -> my.d (1m 1s) + terminal.Append($"{AnsiCodes.CSI}{AnsiCodes.EraseInLine}"); + AppendTestWorkerProgress(progressItem, currentLine, terminal); + } + } + else + { + // These lines are different or the line was updated. Render the whole line. + terminal.Append($"{AnsiCodes.CSI}{AnsiCodes.EraseInLine}"); + AppendTestWorkerProgress(progressItem, currentLine, terminal); + } + } + + if (item is TestDetailState detailItem) + { + var currentLine = new RenderedProgressItem(detailItem.Id, detailItem.Version); + RenderedLines.Add(currentLine); + + // We have a line that was rendered previously, compare it and decide how to render. + RenderedProgressItem previouslyRenderedLine = previousFrame.RenderedLines[i]; + if (previouslyRenderedLine.ProgressId == detailItem.Id && previouslyRenderedLine.ProgressVersion == detailItem.Version) + { + // This is the same progress item and it was not updated since we rendered it, only update the timestamp if possible to avoid flicker. + string durationString = HumanReadableDurationFormatter.Render(detailItem.Stopwatch?.Elapsed); + + if (previouslyRenderedLine.RenderedDurationLength == durationString.Length) + { + // Duration is the same length rewrite just it. + terminal.SetCursorHorizontal(MaxColumn); + terminal.Append($"{AnsiCodes.SetCursorHorizontal(MaxColumn)}{AnsiCodes.MoveCursorBackward(durationString.Length)}{durationString}"); + currentLine.RenderedDurationLength = durationString.Length; + } + else + { + // Duration is not the same length (it is longer because time moves only forward), we need to re-render the whole line + // to avoid writing the duration over the last portion of text: my.dll (1s) -> my.d (1m 1s) + terminal.Append($"{AnsiCodes.CSI}{AnsiCodes.EraseInLine}"); + AppendTestWorkerDetail(detailItem, currentLine, terminal); + } + } + else + { + // These lines are different or the line was updated. Render the whole line. + terminal.Append($"{AnsiCodes.CSI}{AnsiCodes.EraseInLine}"); + AppendTestWorkerDetail(detailItem, currentLine, terminal); + } + } + } + else + { + // We are rendering more lines than we rendered in previous frame + if (item is TestProgressState progressItem) + { + var currentLine = new RenderedProgressItem(progressItem.Id, progressItem.Version); + RenderedLines.Add(currentLine); + AppendTestWorkerProgress(progressItem, currentLine, terminal); + } + + if (item is TestDetailState detailItem) + { + var currentLine = new RenderedProgressItem(detailItem.Id, detailItem.Version); + RenderedLines.Add(currentLine); + AppendTestWorkerDetail(detailItem, currentLine, terminal); + } + } + + // This makes the progress not stick to the last line on the command line, which is + // not what I would prefer. But also if someone writes to console, the message will + // start at the beginning of the new line. Not after the progress bar that is kept on screen. + terminal.AppendLine(); + } + + // We rendered more lines in previous frame. Clear them. + if (previousFrame.RenderedLines != null && i < previousFrame.RenderedLines.Count) + { + terminal.Append($"{AnsiCodes.CSI}{AnsiCodes.EraseInDisplay}"); + } + } + + private List GenerateLinesToRender(TestProgressState?[] progress) + { + var linesToRender = new List(progress.Length); + + // Note: We want to render the list of active tests, but this can easily fill up the full screen. + // As such, we should balance the number of active tests shown per project. + // We do this by distributing the remaining lines for each projects. + TestProgressState[] progressItems = progress.OfType().ToArray(); + int linesToDistribute = (int)(Height * 0.7) - 1 - progressItems.Length; + var detailItems = new IEnumerable[progressItems.Length]; + IEnumerable sortedItemsIndices = Enumerable.Range(0, progressItems.Length).OrderBy(i => progressItems[i].TestNodeResultsState?.Count ?? 0); + + foreach (int sortedItemIndex in sortedItemsIndices) + { + detailItems[sortedItemIndex] = progressItems[sortedItemIndex].TestNodeResultsState?.GetRunningTasks( + linesToDistribute / progressItems.Length) + ?? Array.Empty(); + } + + for (int progressI = 0; progressI < progressItems.Length; progressI++) + { + linesToRender.Add(progressItems[progressI]); + linesToRender.AddRange(detailItems[progressI]); + } + + return linesToRender; + } + + public void Clear() => RenderedLines?.Clear(); + + internal sealed class RenderedProgressItem + { + public RenderedProgressItem(long id, long version) + { + ProgressId = id; + ProgressVersion = version; + } + + public long ProgressId { get; } + + public long ProgressVersion { get; } + + public int RenderedHeight { get; set; } + + public int RenderedDurationLength { get; set; } + } +} diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/ErrorMessage.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/ErrorMessage.cs new file mode 100644 index 000000000000..f4e41aa43efa --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/ErrorMessage.cs @@ -0,0 +1,9 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +namespace Microsoft.Testing.Platform.OutputDevice.Terminal; + +/// +/// An error message that was sent to output during the build. +/// +internal sealed record ErrorMessage(string Text) : IProgressMessage; diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/ExceptionFlattener.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/ExceptionFlattener.cs new file mode 100644 index 000000000000..2578e0bada68 --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/ExceptionFlattener.cs @@ -0,0 +1,52 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +namespace Microsoft.Testing.Platform.OutputDevice.Terminal; + +internal sealed class ExceptionFlattener +{ + internal static FlatException[] Flatten(string? errorMessage, Exception? exception) + { + if (errorMessage is null && exception is null) + { + return Array.Empty(); + } + + string? message = !String.IsNullOrWhiteSpace(errorMessage) ? errorMessage : exception?.Message; + string? type = exception?.GetType().FullName; + string? stackTrace = exception?.StackTrace; + var flatException = new FlatException(message, type, stackTrace); + + List flatExceptions = new() + { + flatException, + }; + + // Add all inner exceptions. This will flatten top level AggregateExceptions, + // and all AggregateExceptions that are directly in AggregateExceptions, but won't expand + // AggregateExceptions that are in non-aggregate exception inner exceptions. + IEnumerable aggregateExceptions = exception switch + { + AggregateException aggregate => aggregate.Flatten().InnerExceptions, + _ => [exception?.InnerException], + }; + + foreach (Exception? aggregate in aggregateExceptions) + { + Exception? currentException = aggregate; + while (currentException is not null) + { + flatExceptions.Add(new FlatException( + aggregate?.Message, + aggregate?.GetType().FullName, + aggregate?.StackTrace)); + + currentException = currentException.InnerException; + } + } + + return flatExceptions.ToArray(); + } +} + +internal sealed record FlatException(string? ErrorMessage, string? ErrorType, string? StackTrace); diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/FileUtilities.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/FileUtilities.cs new file mode 100644 index 000000000000..41711363117b --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/FileUtilities.cs @@ -0,0 +1,37 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +using System.Diagnostics; + +namespace Microsoft.Testing.Platform.OutputDevice.Terminal; + +internal static class FileUtilities +{ + internal static readonly StringComparison PathComparison = GetIsFileSystemCaseSensitive() ? StringComparison.Ordinal : StringComparison.OrdinalIgnoreCase; + + internal static readonly StringComparer PathComparer = GetIsFileSystemCaseSensitive() ? StringComparer.Ordinal : StringComparer.OrdinalIgnoreCase; + + /// + /// Determines whether the file system is case sensitive. + /// Copied from https://github.com/dotnet/runtime/blob/73ba11f3015216b39cb866d9fb7d3d25e93489f2/src/libraries/Common/src/System/IO/PathInternal.CaseSensitivity.cs#L41-L59 . + /// + public static bool GetIsFileSystemCaseSensitive() + { + try + { + string pathWithUpperCase = Path.Combine(Path.GetTempPath(), "CASESENSITIVETEST" + Guid.NewGuid().ToString("N")); + using (new FileStream(pathWithUpperCase, FileMode.CreateNew, FileAccess.ReadWrite, FileShare.None, 0x1000, FileOptions.DeleteOnClose)) + { + string lowerCased = pathWithUpperCase.ToLowerInvariant(); + return !File.Exists(lowerCased); + } + } + catch (Exception exc) + { + // In case something goes terribly wrong, we don't want to fail just because + // of a casing test, so we assume case-insensitive-but-preserving. + Debug.Fail("Casing test failed: " + exc); + return false; + } + } +} diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/HumanReadableDurationFormatter.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/HumanReadableDurationFormatter.cs new file mode 100644 index 000000000000..97a43b6a15fe --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/HumanReadableDurationFormatter.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +using System.Globalization; + +namespace Microsoft.Testing.Platform.OutputDevice.Terminal; + +internal static class HumanReadableDurationFormatter +{ + public static void Append(ITerminal terminal, TimeSpan duration, bool wrapInParentheses = true) + { + bool hasParentValue = false; + + if (wrapInParentheses) + { + terminal.Append('('); + } + + if (duration.Days > 0) + { + terminal.Append($"{duration.Days}d"); + hasParentValue = true; + } + + if (duration.Hours > 0 || hasParentValue) + { + terminal.Append(GetFormattedPart(duration.Hours, hasParentValue, "h")); + hasParentValue = true; + } + + if (duration.Minutes > 0 || hasParentValue) + { + terminal.Append(GetFormattedPart(duration.Minutes, hasParentValue, "m")); + hasParentValue = true; + } + + if (duration.Seconds > 0 || hasParentValue) + { + terminal.Append(GetFormattedPart(duration.Seconds, hasParentValue, "s")); + hasParentValue = true; + } + + if (duration.Milliseconds >= 0 || hasParentValue) + { + terminal.Append(GetFormattedPart(duration.Milliseconds, hasParentValue, "ms", paddingWitdh: 3)); + } + + if (wrapInParentheses) + { + terminal.Append(')'); + } + } + + private static string GetFormattedPart(int value, bool hasParentValue, string suffix, int paddingWitdh = 2) + => $"{(hasParentValue ? " " : string.Empty)}{(hasParentValue ? value.ToString(CultureInfo.InvariantCulture).PadLeft(paddingWitdh, '0') : value.ToString(CultureInfo.InvariantCulture))}{suffix}"; + + public static string Render(TimeSpan? duration, bool wrapInParentheses = true, bool showMilliseconds = false) + { + if (duration is null) + { + return string.Empty; + } + + bool hasParentValue = false; + + var stringBuilder = new StringBuilder(); + + if (wrapInParentheses) + { + stringBuilder.Append('('); + } + + if (duration.Value.Days > 0) + { + stringBuilder.Append(CultureInfo.CurrentCulture, $"{duration.Value.Days}d"); + hasParentValue = true; + } + + if (duration.Value.Hours > 0 || hasParentValue) + { + stringBuilder.Append(GetFormattedPart(duration.Value.Hours, hasParentValue, "h")); + hasParentValue = true; + } + + if (duration.Value.Minutes > 0 || hasParentValue) + { + stringBuilder.Append(GetFormattedPart(duration.Value.Minutes, hasParentValue, "m")); + hasParentValue = true; + } + + if (duration.Value.Seconds > 0 || hasParentValue || !showMilliseconds) + { + stringBuilder.Append(GetFormattedPart(duration.Value.Seconds, hasParentValue, "s")); + hasParentValue = true; + } + + if (showMilliseconds) + { + if (duration.Value.Milliseconds >= 0 || hasParentValue) + { + stringBuilder.Append(GetFormattedPart(duration.Value.Milliseconds, hasParentValue, "ms", paddingWitdh: 3)); + } + } + + if (wrapInParentheses) + { + stringBuilder.Append(')'); + } + + return stringBuilder.ToString(); + } +} diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/IColor.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/IColor.cs new file mode 100644 index 000000000000..bfd6173af166 --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/IColor.cs @@ -0,0 +1,9 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +namespace Microsoft.Testing.Platform.OutputDevice; + +/// +/// Represents a color. +/// +public interface IColor; diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/IConsole.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/IConsole.cs new file mode 100644 index 000000000000..742d16083972 --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/IConsole.cs @@ -0,0 +1,48 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +namespace Microsoft.Testing.Platform.Helpers; + +/// +/// Wraps the static System.Console to be isolatable in tests. +/// +internal interface IConsole +{ + event ConsoleCancelEventHandler? CancelKeyPress; + + public int BufferHeight { get; } + + public int BufferWidth { get; } + + public bool IsOutputRedirected { get; } + + void SetForegroundColor(ConsoleColor color); + + void SetBackgroundColor(ConsoleColor color); + + ConsoleColor GetForegroundColor(); + + ConsoleColor GetBackgroundColor(); + + void WriteLine(); + + void WriteLine(string? value); + + void WriteLine(object? value); + + void WriteLine(string format, object? arg0); + + void WriteLine(string format, object? arg0, object? arg1); + + void WriteLine(string format, object? arg0, object? arg1, object? arg2); + + void WriteLine(string format, object?[]? args); + + void Write(string format, object?[]? args); + + void Write(string? value); + + void Write(char value); + + void Clear(); +} diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/IProgressMessage.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/IProgressMessage.cs new file mode 100644 index 000000000000..f8f331ab233c --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/IProgressMessage.cs @@ -0,0 +1,9 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +namespace Microsoft.Testing.Platform.OutputDevice.Terminal; + +/// +/// Error or warning message that was sent to screen during the test run. +/// +internal interface IProgressMessage; diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/IStopwatch.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/IStopwatch.cs new file mode 100644 index 000000000000..e85a0a5bd627 --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/IStopwatch.cs @@ -0,0 +1,13 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +namespace Microsoft.Testing.Platform.Helpers; + +internal interface IStopwatch +{ + void Start(); + + void Stop(); + + TimeSpan Elapsed { get; } +} diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/ITerminal.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/ITerminal.cs new file mode 100644 index 000000000000..8fe335e2a83a --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/ITerminal.cs @@ -0,0 +1,44 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +namespace Microsoft.Testing.Platform.OutputDevice.Terminal; + +/// +/// An ANSI or non-ANSI terminal that is capable of rendering the messages from . +/// +internal interface ITerminal +{ + int Width { get; } + + int Height { get; } + + void Append(char value); + + void Append(string value); + + void AppendLine(); + + void AppendLine(string value); + + void AppendLink(string path, int? lineNumber); + + void SetColor(TerminalColor color); + + void ResetColor(); + + void ShowCursor(); + + void HideCursor(); + + void StartUpdate(); + + void StopUpdate(); + + void EraseProgress(); + + void RenderProgress(TestProgressState?[] progress); + + void StartBusyIndicator(); + + void StopBusyIndicator(); +} diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/NativeMethods.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/NativeMethods.cs new file mode 100644 index 000000000000..0bd220fd5055 --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/NativeMethods.cs @@ -0,0 +1,122 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +namespace Microsoft.Testing.Platform.OutputDevice.Terminal; + +internal static class NativeMethods +{ + internal const uint FILE_TYPE_CHAR = 0x0002; + internal const int STD_OUTPUT_HANDLE = -11; + internal const int STD_ERROR_HANDLE = -12; + internal const uint ENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x0004; + + private static bool? s_isWindows; + + /// + /// Gets a value indicating whether we are running under some version of Windows. + /// + // TODO: [SupportedOSPlatformGuard("windows")] + internal static bool IsWindows + { + get + { + s_isWindows ??= RuntimeInformation.IsOSPlatform(OSPlatform.Windows); + return s_isWindows.Value; + } + } + + internal static (bool AcceptAnsiColorCodes, bool OutputIsScreen, uint? OriginalConsoleMode) QueryIsScreenAndTryEnableAnsiColorCodes(StreamHandleType handleType = StreamHandleType.StdOut) + { + if (Console.IsOutputRedirected) + { + // There's no ANSI terminal support if console output is redirected. + return (AcceptAnsiColorCodes: false, OutputIsScreen: false, OriginalConsoleMode: null); + } + + bool acceptAnsiColorCodes = false; + bool outputIsScreen = false; + uint? originalConsoleMode = null; + if (IsWindows) + { + try + { + nint outputStream = GetStdHandle((int)handleType); + if (GetConsoleMode(outputStream, out uint consoleMode)) + { + if ((consoleMode & ENABLE_VIRTUAL_TERMINAL_PROCESSING) == ENABLE_VIRTUAL_TERMINAL_PROCESSING) + { + // Console is already in required state. + acceptAnsiColorCodes = true; + } + else + { + originalConsoleMode = consoleMode; + consoleMode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING; + if (SetConsoleMode(outputStream, consoleMode) && GetConsoleMode(outputStream, out consoleMode)) + { + // We only know if vt100 is supported if the previous call actually set the new flag, older + // systems ignore the setting. + acceptAnsiColorCodes = (consoleMode & ENABLE_VIRTUAL_TERMINAL_PROCESSING) == ENABLE_VIRTUAL_TERMINAL_PROCESSING; + } + } + + uint fileType = GetFileType(outputStream); + // The std out is a char type (LPT or Console). + outputIsScreen = fileType == FILE_TYPE_CHAR; + acceptAnsiColorCodes &= outputIsScreen; + } + } + catch + { + // In the unlikely case that the above fails we just ignore and continue. + } + } + else + { + // On posix OSes detect whether the terminal supports VT100 from the value of the TERM environment variable. +#pragma warning disable RS0030 // Do not use banned APIs + acceptAnsiColorCodes = AnsiDetector.IsAnsiSupported(Environment.GetEnvironmentVariable("TERM")); +#pragma warning restore RS0030 // Do not use banned APIs + // It wasn't redirected as tested above so we assume output is screen/console + outputIsScreen = true; + } + + return (acceptAnsiColorCodes, outputIsScreen, originalConsoleMode); + } + + internal static void RestoreConsoleMode(uint? originalConsoleMode, StreamHandleType handleType = StreamHandleType.StdOut) + { + if (IsWindows && originalConsoleMode is not null) + { + nint stdOut = GetStdHandle((int)handleType); + _ = SetConsoleMode(stdOut, originalConsoleMode.Value); + } + } + + [DllImport("kernel32.dll")] + // TODO: [SupportedOSPlatform("windows")] + internal static extern nint GetStdHandle(int nStdHandle); + + [DllImport("kernel32.dll")] + // TODO: [SupportedOSPlatform("windows")] + internal static extern uint GetFileType(nint hFile); + + internal enum StreamHandleType + { + /// + /// StdOut. + /// + StdOut = STD_OUTPUT_HANDLE, + + /// + /// StdError. + /// + StdErr = STD_ERROR_HANDLE, + } + + [DllImport("kernel32.dll")] + internal static extern bool GetConsoleMode(nint hConsoleHandle, out uint lpMode); + + [DllImport("kernel32.dll")] + internal static extern bool SetConsoleMode(nint hConsoleHandle, uint dwMode); +} diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/NonAnsiTerminal.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/NonAnsiTerminal.cs new file mode 100644 index 000000000000..798b95e40df7 --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/NonAnsiTerminal.cs @@ -0,0 +1,254 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +using System.Globalization; +using Microsoft.Testing.Platform.Helpers; +using LocalizableStrings = Microsoft.DotNet.Tools.Test.LocalizableStrings; + +namespace Microsoft.Testing.Platform.OutputDevice.Terminal; + +/// +/// Non-ANSI terminal that writes text using the standard Console.Foreground color capabilities to stay compatible with +/// standard Windows command line, and other command lines that are not capable of ANSI, or when output is redirected. +/// +internal sealed class NonAnsiTerminal : ITerminal +{ + private readonly IConsole _console; + private readonly ConsoleColor _defaultForegroundColor; + private readonly StringBuilder _stringBuilder = new(); + private bool _isBatching; + + public NonAnsiTerminal(IConsole console) + { + _console = console; + _defaultForegroundColor = _console.GetForegroundColor(); + } + + public int Width => _console.IsOutputRedirected ? int.MaxValue : _console.BufferWidth; + + public int Height => _console.IsOutputRedirected ? int.MaxValue : _console.BufferHeight; + + public void Append(char value) + { + if (_isBatching) + { + _stringBuilder.Append(value); + } + else + { + _console.Write(value); + } + } + + public void Append(string value) + { + if (_isBatching) + { + _stringBuilder.Append(value); + } + else + { + _console.Write(value); + } + } + + public void AppendLine() + { + if (_isBatching) + { + _stringBuilder.AppendLine(); + } + else + { + _console.WriteLine(); + } + } + + public void AppendLine(string value) + { + if (_isBatching) + { + _stringBuilder.AppendLine(value); + } + else + { + _console.WriteLine(value); + } + } + + public void AppendLink(string path, int? lineNumber) + { + Append(path); + if (lineNumber.HasValue) + { + Append($":{lineNumber}"); + } + } + + public void SetColor(TerminalColor color) + { + if (_isBatching) + { + _console.Write(_stringBuilder.ToString()); + _stringBuilder.Clear(); + } + + _console.SetForegroundColor(ToConsoleColor(color)); + } + + public void ResetColor() + { + if (_isBatching) + { + _console.Write(_stringBuilder.ToString()); + _stringBuilder.Clear(); + } + + _console.SetForegroundColor(_defaultForegroundColor); + } + + public void ShowCursor() + { + // nop + } + + public void HideCursor() + { + // nop + } + + public void StartUpdate() + { + if (_isBatching) + { + throw new InvalidOperationException(LocalizableStrings.ConsoleIsAlreadyInBatchingMode); + } + + _stringBuilder.Clear(); + _isBatching = true; + } + + public void StopUpdate() + { + _console.Write(_stringBuilder.ToString()); + _isBatching = false; + } + + private ConsoleColor ToConsoleColor(TerminalColor color) => color switch + { + TerminalColor.Black => ConsoleColor.Black, + TerminalColor.DarkRed => ConsoleColor.DarkRed, + TerminalColor.DarkGreen => ConsoleColor.DarkGreen, + TerminalColor.DarkYellow => ConsoleColor.DarkYellow, + TerminalColor.DarkBlue => ConsoleColor.DarkBlue, + TerminalColor.DarkMagenta => ConsoleColor.DarkMagenta, + TerminalColor.DarkCyan => ConsoleColor.DarkCyan, + TerminalColor.Gray => ConsoleColor.White, + TerminalColor.Default => _defaultForegroundColor, + TerminalColor.DarkGray => ConsoleColor.Gray, + TerminalColor.Red => ConsoleColor.Red, + TerminalColor.Green => ConsoleColor.Green, + TerminalColor.Yellow => ConsoleColor.Yellow, + TerminalColor.Blue => ConsoleColor.Blue, + TerminalColor.Magenta => ConsoleColor.Magenta, + TerminalColor.Cyan => ConsoleColor.Cyan, + TerminalColor.White => ConsoleColor.White, + _ => _defaultForegroundColor, + }; + + public void EraseProgress() + { + // nop + } + + public void RenderProgress(TestProgressState?[] progress) + { + int count = 0; + foreach (TestProgressState? p in progress) + { + if (p == null) + { + continue; + } + + count++; + + string durationString = HumanReadableDurationFormatter.Render(p.Stopwatch.Elapsed); + + int passed = p.PassedTests; + int failed = p.FailedTests; + int skipped = p.SkippedTests; + + // Use just ascii here, so we don't put too many restrictions on fonts needing to + // properly show unicode, or logs being saved in particular encoding. + Append('['); + SetColor(TerminalColor.DarkGreen); + Append('+'); + Append(passed.ToString(CultureInfo.CurrentCulture)); + ResetColor(); + + Append('/'); + + SetColor(TerminalColor.DarkRed); + Append('x'); + Append(failed.ToString(CultureInfo.CurrentCulture)); + ResetColor(); + + Append('/'); + + SetColor(TerminalColor.DarkYellow); + Append('?'); + Append(skipped.ToString(CultureInfo.CurrentCulture)); + ResetColor(); + Append(']'); + + Append(' '); + Append(p.AssemblyName); + + if (p.TargetFramework != null || p.Architecture != null) + { + Append(" ("); + if (p.TargetFramework != null) + { + Append(p.TargetFramework); + Append('|'); + } + + if (p.Architecture != null) + { + Append(p.Architecture); + } + + Append(')'); + } + + TestDetailState? activeTest = p.TestNodeResultsState?.GetRunningTasks(1).FirstOrDefault(); + if (!String.IsNullOrWhiteSpace(activeTest?.Text)) + { + Append(" - "); + Append(activeTest.Text); + Append(' '); + } + + Append(durationString); + + AppendLine(); + } + + // Do not render empty lines when there is nothing to show. + if (count > 0) + { + AppendLine(); + } + } + + public void StartBusyIndicator() + { + // nop + } + + public void StopBusyIndicator() + { + // nop + } +} diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/SystemConsole.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/SystemConsole.cs new file mode 100644 index 000000000000..996ac44b1142 --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/SystemConsole.cs @@ -0,0 +1,212 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +namespace Microsoft.Testing.Platform.Helpers; + +internal sealed class SystemConsole : IConsole +{ + private const int WriteBufferSize = 256; + private static readonly StreamWriter CaptureConsoleOutWriter; + + /// + /// Gets the height of the buffer area. + /// + public int BufferHeight => Console.BufferHeight; + + /// + /// Gets the width of the buffer area. + /// + public int BufferWidth => Console.BufferWidth; + + /// + /// Gets a value indicating whether output has been redirected from the standard output stream. + /// + public bool IsOutputRedirected => Console.IsOutputRedirected; + + private bool _suppressOutput; + + static SystemConsole() => + // From https://github.com/dotnet/runtime/blob/main/src/libraries/System.Console/src/System/Console.cs#L236 + CaptureConsoleOutWriter = new StreamWriter( + stream: Console.OpenStandardOutput(), + encoding: Console.Out.Encoding, + bufferSize: WriteBufferSize, + leaveOpen: true) + { + AutoFlush = true, + }; + + // the following event does not make sense in the mobile scenarios, user cannot ctrl+c + // but can just kill the app in the device via a gesture + public event ConsoleCancelEventHandler? CancelKeyPress + { + add + { +#if NET8_0_OR_GREATER + if (RuntimeInformation.RuntimeIdentifier.Contains("ios") || + RuntimeInformation.RuntimeIdentifier.Contains("android")) + { + return; + } +#endif + +#pragma warning disable IDE0027 // Use expression body for accessor + Console.CancelKeyPress += value; +#pragma warning restore IDE0027 // Use expression body for accessor + } + + remove + { +#if NET8_0_OR_GREATER + if (RuntimeInformation.RuntimeIdentifier.Contains("ios") || + RuntimeInformation.RuntimeIdentifier.Contains("android")) + { + return; + } +#endif +#pragma warning disable IDE0027 // Use expression body for accessor + Console.CancelKeyPress -= value; +#pragma warning restore IDE0027 // Use expression body for accessor + } + } + + public void SuppressOutput() => _suppressOutput = true; + + public void WriteLine() + { + if (!_suppressOutput) + { + CaptureConsoleOutWriter.WriteLine(); + } + } + + public void WriteLine(string? value) + { + if (!_suppressOutput) + { + CaptureConsoleOutWriter.WriteLine(value); + } + } + + public void WriteLine(object? value) + { + if (!_suppressOutput) + { + CaptureConsoleOutWriter.WriteLine(value); + } + } + + public void WriteLine(string format, object? arg0) + { + if (!_suppressOutput) + { + CaptureConsoleOutWriter.WriteLine(format, arg0); + } + } + + public void WriteLine(string format, object? arg0, object? arg1) + { + if (!_suppressOutput) + { + CaptureConsoleOutWriter.WriteLine(format, arg0, arg1); + } + } + + public void WriteLine(string format, object? arg0, object? arg1, object? arg2) + { + if (!_suppressOutput) + { + CaptureConsoleOutWriter.WriteLine(format, arg0, arg1, arg2); + } + } + + public void WriteLine(string format, object?[]? args) + { + if (!_suppressOutput) + { + CaptureConsoleOutWriter.WriteLine(format, args!); + } + } + + public void Write(string format, object?[]? args) + { + if (!_suppressOutput) + { + CaptureConsoleOutWriter.Write(format, args!); + } + } + + public void Write(string? value) + { + if (!_suppressOutput) + { + CaptureConsoleOutWriter.Write(value); + } + } + + public void Write(char value) + { + if (!_suppressOutput) + { + CaptureConsoleOutWriter.Write(value); + } + } + + public void SetForegroundColor(ConsoleColor color) + { +#if NET8_0_OR_GREATER + if (RuntimeInformation.RuntimeIdentifier.Contains("ios") || + RuntimeInformation.RuntimeIdentifier.Contains("android")) + { + return; + } +#endif +#pragma warning disable IDE0022 // Use expression body for method + Console.ForegroundColor = color; +#pragma warning restore IDE0022 // Use expression body for method + } + + public void SetBackgroundColor(ConsoleColor color) + { +#if NET8_0_OR_GREATER + if (RuntimeInformation.RuntimeIdentifier.Contains("ios") || + RuntimeInformation.RuntimeIdentifier.Contains("android")) + { + return; + } +#endif +#pragma warning disable IDE0022 // Use expression body for method + Console.BackgroundColor = color; +#pragma warning restore IDE0022 // Use expression body for method + } + + public ConsoleColor GetForegroundColor() + { +#if NET8_0_OR_GREATER + if (RuntimeInformation.RuntimeIdentifier.Contains("ios") || + RuntimeInformation.RuntimeIdentifier.Contains("android")) + { + return ConsoleColor.Black; + } +#endif +#pragma warning disable IDE0022 // Use expression body for method + return Console.ForegroundColor; +#pragma warning restore IDE0022 // Use expression body for method + } + + public ConsoleColor GetBackgroundColor() + { +#if NET8_0_OR_GREATER + if (RuntimeInformation.RuntimeIdentifier.Contains("ios") || + RuntimeInformation.RuntimeIdentifier.Contains("android")) + { + return ConsoleColor.Black; + } +#endif +#pragma warning disable IDE0022 // Use expression body for method + return Console.BackgroundColor; +#pragma warning restore IDE0022 // Use expression body for method + } + + public void Clear() => Console.Clear(); +} diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/SystemConsoleColor.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/SystemConsoleColor.cs new file mode 100644 index 000000000000..e59363aa915e --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/SystemConsoleColor.cs @@ -0,0 +1,15 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +namespace Microsoft.Testing.Platform.OutputDevice; + +/// +/// Represents a system console color. +/// +public sealed class SystemConsoleColor : IColor +{ + /// + /// Gets or inits the console color. + /// + public ConsoleColor ConsoleColor { get; init; } +} diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/SystemStopwatch.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/SystemStopwatch.cs new file mode 100644 index 000000000000..210513d6093c --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/SystemStopwatch.cs @@ -0,0 +1,25 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +using System.Diagnostics; + +namespace Microsoft.Testing.Platform.Helpers; + +internal sealed class SystemStopwatch : IStopwatch +{ + private readonly Stopwatch _stopwatch = new(); + + public TimeSpan Elapsed => _stopwatch.Elapsed; + + public void Start() => _stopwatch.Start(); + + public void Stop() => _stopwatch.Stop(); + + public static IStopwatch StartNew() + { + SystemStopwatch wallClockStopwatch = new(); + wallClockStopwatch.Start(); + + return wallClockStopwatch; + } +} diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/TargetFrameworkParser.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/TargetFrameworkParser.cs new file mode 100644 index 000000000000..1e8e4ec7a5bb --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/TargetFrameworkParser.cs @@ -0,0 +1,74 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +using System.Globalization; + +namespace Microsoft.Testing.Platform.OutputDevice; + +internal static class TargetFrameworkParser +{ + public static string? GetShortTargetFramework(string? frameworkDescription) + { + if (frameworkDescription == null) + { + return null; + } + + // https://learn.microsoft.com/dotnet/api/system.runtime.interopservices.runtimeinformation.frameworkdescription + string netFramework = ".NET Framework"; + if (frameworkDescription.StartsWith(netFramework, ignoreCase: false, CultureInfo.InvariantCulture)) + { + // .NET Framework 4.7.2 + if (frameworkDescription.Length < (netFramework.Length + 6)) + { + return frameworkDescription; + } + + char major = frameworkDescription[netFramework.Length + 1]; + char minor = frameworkDescription[netFramework.Length + 3]; + char patch = frameworkDescription[netFramework.Length + 5]; + + if (major == '4' && minor == '6' && patch == '2') + { + return "net462"; + } + else if (major == '4' && minor == '7' && patch == '1') + { + return "net471"; + } + else if (major == '4' && minor == '7' && patch == '2') + { + return "net472"; + } + else if (major == '4' && minor == '8' && patch == '1') + { + return "net481"; + } + else + { + // Just return the first 2 numbers. + return $"net{major}{minor}"; + } + } + + string netCore = ".NET Core"; + if (frameworkDescription.StartsWith(netCore, ignoreCase: false, CultureInfo.InvariantCulture)) + { + // .NET Core 3.1 + return frameworkDescription.Length >= (netCore.Length + 4) + ? $"netcoreapp{frameworkDescription[netCore.Length + 1]}.{frameworkDescription[netCore.Length + 3]}" + : frameworkDescription; + } + + string net = ".NET"; + if (frameworkDescription.StartsWith(net, ignoreCase: false, CultureInfo.InvariantCulture)) + { + int firstDotInVersion = frameworkDescription.IndexOf('.', net.Length + 1); + return firstDotInVersion < 1 + ? frameworkDescription + : $"net{frameworkDescription.Substring(net.Length + 1, firstDotInVersion - net.Length - 1)}.{frameworkDescription[firstDotInVersion + 1]}"; + } + + return frameworkDescription; + } +} diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/TerminalColor.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/TerminalColor.cs new file mode 100644 index 000000000000..1120f47962b4 --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/TerminalColor.cs @@ -0,0 +1,95 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +namespace Microsoft.Testing.Platform.OutputDevice.Terminal; + +/// +/// Enumerates the text colors supported by VT100 terminal. +/// +internal enum TerminalColor +{ + /// + /// Black. + /// + Black = 30, + + /// + /// DarkRed. + /// + DarkRed = 31, + + /// + /// DarkGreen. + /// + DarkGreen = 32, + + /// + /// DarkYellow. + /// + DarkYellow = 33, + + /// + /// DarkBlue. + /// + DarkBlue = 34, + + /// + /// DarkMagenta. + /// + DarkMagenta = 35, + + /// + /// DarkCyan. + /// + DarkCyan = 36, + + /// + /// Gray. This entry looks out of order, but in reality 37 is dark white, which is lighter than bright black = Dark Gray in Console colors. + /// + Gray = 37, + + /// + /// Default. + /// + Default = 39, + + /// + /// DarkGray. This entry looks out of order, but in reality 90 is bright black, which is darker than dark white = Gray in Console colors. + /// + DarkGray = 90, + + /// + /// Red. + /// + Red = 91, + + /// + /// Green. + /// + Green = 92, + + /// + /// Yellow. + /// + Yellow = 93, + + /// + /// Blue. + /// + Blue = 94, + + /// + /// Magenta. + /// + Magenta = 95, + + /// + /// Cyan. + /// + Cyan = 96, + + /// + /// White. + /// + White = 97, +} diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/TerminalTestReporter.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/TerminalTestReporter.cs new file mode 100644 index 000000000000..38eda2d001cf --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/TerminalTestReporter.cs @@ -0,0 +1,1019 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +using System.Collections.Concurrent; +using System.Globalization; +using System.Text.RegularExpressions; +using Microsoft.Testing.Platform.Helpers; +using LocalizableStrings = Microsoft.DotNet.Tools.Test.LocalizableStrings; + +namespace Microsoft.Testing.Platform.OutputDevice.Terminal; + +/// +/// Terminal test reporter that outputs test progress and is capable of writing ANSI or non-ANSI output via the given terminal. +/// +internal sealed partial class TerminalTestReporter : IDisposable +{ + /// + /// The two directory separator characters to be passed to methods like . + /// + private static readonly string[] NewLineStrings = { "\r\n", "\n" }; + + internal const string SingleIndentation = " "; + + internal const string DoubleIndentation = $"{SingleIndentation}{SingleIndentation}"; + + internal Func CreateStopwatch { get; set; } = SystemStopwatch.StartNew; + + internal event EventHandler OnProgressStartUpdate + { + add => _terminalWithProgress.OnProgressStartUpdate += value; + remove => _terminalWithProgress.OnProgressStartUpdate -= value; + } + + internal event EventHandler OnProgressStopUpdate + { + add => _terminalWithProgress.OnProgressStopUpdate += value; + remove => _terminalWithProgress.OnProgressStopUpdate -= value; + } + + private readonly ConcurrentDictionary _assemblies = new(); + + private readonly List _artifacts = new(); + + private readonly TerminalTestReporterOptions _options; + + private readonly TestProgressStateAwareTerminal _terminalWithProgress; + + private readonly uint? _originalConsoleMode; + private bool _isDiscovery; + private DateTimeOffset? _testExecutionStartTime; + + private DateTimeOffset? _testExecutionEndTime; + + private int _buildErrorsCount; + + private bool _wasCancelled; + + private bool? _shouldShowPassedTests; + +#if NET7_0_OR_GREATER + // Specifying no timeout, the regex is linear. And the timeout does not measure the regex only, but measures also any + // thread suspends, so the regex gets blamed incorrectly. + [GeneratedRegex(@$"^ at ((?.+) in (?.+):line (?\d+)|(?.+))$", RegexOptions.ExplicitCapture)] + private static partial Regex GetFrameRegex(); +#else + private static Regex? s_regex; + + [MemberNotNull(nameof(s_regex))] + private static Regex GetFrameRegex() + { + if (s_regex != null) + { + return s_regex; + } + + string atResourceName = "Word_At"; + string inResourceName = "StackTrace_InFileLineNumber"; + + string? atString = null; + string? inString = null; + + // Grab words from localized resource, in case the stack trace is localized. + try + { + // Get these resources: https://github.com/dotnet/runtime/blob/main/src/libraries/System.Private.CoreLib/src/Resources/Strings.resx +#pragma warning disable RS0030 // Do not use banned APIs + MethodInfo? getResourceStringMethod = typeof(Environment).GetMethod( + "GetResourceString", + BindingFlags.Static | BindingFlags.NonPublic, null, [typeof(string)], null); +#pragma warning restore RS0030 // Do not use banned APIs + if (getResourceStringMethod is not null) + { + // at + atString = (string?)getResourceStringMethod.Invoke(null, [atResourceName]); + + // in {0}:line {1} + inString = (string?)getResourceStringMethod.Invoke(null, [inResourceName]); + } + } + catch + { + // If we fail, populate the defaults below. + } + + atString = atString == null || atString == atResourceName ? "at" : atString; + inString = inString == null || inString == inResourceName ? "in {0}:line {1}" : inString; + + string inPattern = string.Format(CultureInfo.InvariantCulture, inString, "(?.+)", @"(?\d+)"); + + // Specifying no timeout, the regex is linear. And the timeout does not measure the regex only, but measures also any + // thread suspends, so the regex gets blamed incorrectly. + s_regex = new Regex(@$"^ {atString} ((?.+) {inPattern}|(?.+))$", RegexOptions.Compiled | RegexOptions.ExplicitCapture); + return s_regex; + } +#endif + + private int _counter; + + /// + /// Initializes a new instance of the class with custom terminal and manual refresh for testing. + /// + public TerminalTestReporter(IConsole console, TerminalTestReporterOptions options) + { + _options = options; + + Func showProgress = _options.ShowProgress; + TestProgressStateAwareTerminal terminalWithProgress; + + // When not writing to ANSI we write the progress to screen and leave it there so we don't want to write it more often than every few seconds. + int nonAnsiUpdateCadenceInMs = 3_000; + // When writing to ANSI we update the progress in place and it should look responsive so we update every half second, because we only show seconds on the screen, so it is good enough. + int ansiUpdateCadenceInMs = 500; + if (!_options.UseAnsi || _options.ForceAnsi is false) + { + terminalWithProgress = new TestProgressStateAwareTerminal(new NonAnsiTerminal(console), showProgress, writeProgressImmediatelyAfterOutput: false, updateEvery: nonAnsiUpdateCadenceInMs); + } + else + { + // Autodetect. + (bool consoleAcceptsAnsiCodes, bool _, uint? originalConsoleMode) = NativeMethods.QueryIsScreenAndTryEnableAnsiColorCodes(); + _originalConsoleMode = originalConsoleMode; + terminalWithProgress = consoleAcceptsAnsiCodes || _options.ForceAnsi is true + ? new TestProgressStateAwareTerminal(new AnsiTerminal(console, _options.BaseDirectory), showProgress, writeProgressImmediatelyAfterOutput: true, updateEvery: ansiUpdateCadenceInMs) + : new TestProgressStateAwareTerminal(new NonAnsiTerminal(console), showProgress, writeProgressImmediatelyAfterOutput: false, updateEvery: nonAnsiUpdateCadenceInMs); + } + + _terminalWithProgress = terminalWithProgress; + } + + public void TestExecutionStarted(DateTimeOffset testStartTime, int workerCount, bool isDiscovery) + { + _isDiscovery = isDiscovery; + _testExecutionStartTime = testStartTime; + _terminalWithProgress.StartShowingProgress(workerCount); + } + + public void AssemblyRunStarted(string assembly, string? targetFramework, string? architecture, string? executionId) + { + if (_options.ShowAssembly && _options.ShowAssemblyStartAndComplete) + { + _terminalWithProgress.WriteToTerminal(terminal => + { + terminal.Append(_isDiscovery ? LocalizableStrings.DiscoveringTestsFrom : LocalizableStrings.RunningTestsFrom); + terminal.Append(' '); + AppendAssemblyLinkTargetFrameworkAndArchitecture(terminal, assembly, targetFramework, architecture); + terminal.AppendLine(); + }); + } + + GetOrAddAssemblyRun(assembly, targetFramework, architecture, executionId); + } + + private TestProgressState GetOrAddAssemblyRun(string assembly, string? targetFramework, string? architecture, string? executionId) + { + string key = $"{assembly}|{targetFramework}|{architecture}|{executionId}"; + return _assemblies.GetOrAdd(key, _ => + { + IStopwatch sw = CreateStopwatch(); + var assemblyRun = new TestProgressState(Interlocked.Increment(ref _counter), assembly, targetFramework, architecture, sw); + int slotIndex = _terminalWithProgress.AddWorker(assemblyRun); + assemblyRun.SlotIndex = slotIndex; + + return assemblyRun; + }); + } + + public void TestExecutionCompleted(DateTimeOffset endTime) + { + _testExecutionEndTime = endTime; + _terminalWithProgress.StopShowingProgress(); + + _terminalWithProgress.WriteToTerminal(_isDiscovery ? AppendTestDiscoverySummary : AppendTestRunSummary); + + NativeMethods.RestoreConsoleMode(_originalConsoleMode); + _assemblies.Clear(); + _buildErrorsCount = 0; + _testExecutionStartTime = null; + _testExecutionEndTime = null; + } + + private void AppendTestRunSummary(ITerminal terminal) + { + terminal.AppendLine(); + + IEnumerable> artifactGroups = _artifacts.GroupBy(a => a.OutOfProcess); + if (artifactGroups.Any()) + { + terminal.AppendLine(); + } + + foreach (IGrouping artifactGroup in artifactGroups) + { + terminal.Append(SingleIndentation); + terminal.AppendLine(artifactGroup.Key ? LocalizableStrings.OutOfProcessArtifactsProduced : LocalizableStrings.InProcessArtifactsProduced); + foreach (TestRunArtifact artifact in artifactGroup) + { + terminal.Append(DoubleIndentation); + terminal.Append("- "); + if (!String.IsNullOrWhiteSpace(artifact.TestName)) + { + terminal.Append(LocalizableStrings.ForTest); + terminal.Append(" '"); + terminal.Append(artifact.TestName); + terminal.Append("': "); + } + + terminal.AppendLink(artifact.Path, lineNumber: null); + terminal.AppendLine(); + } + } + + int totalTests = _assemblies.Values.Sum(a => a.TotalTests); + int totalFailedTests = _assemblies.Values.Sum(a => a.FailedTests); + int totalSkippedTests = _assemblies.Values.Sum(a => a.SkippedTests); + + bool notEnoughTests = totalTests < _options.MinimumExpectedTests; + bool allTestsWereSkipped = totalTests == 0 || totalTests == totalSkippedTests; + bool anyTestFailed = totalFailedTests > 0; + bool runFailed = anyTestFailed || notEnoughTests || allTestsWereSkipped || _wasCancelled; + terminal.SetColor(runFailed ? TerminalColor.Red : TerminalColor.Green); + + terminal.Append(LocalizableStrings.TestRunSummary); + terminal.Append(' '); + + if (_wasCancelled) + { + terminal.Append(LocalizableStrings.Aborted); + } + else if (notEnoughTests) + { + terminal.Append(string.Format(CultureInfo.CurrentCulture, LocalizableStrings.MinimumExpectedTestsPolicyViolation, totalTests, _options.MinimumExpectedTests)); + } + else if (allTestsWereSkipped) + { + terminal.Append(LocalizableStrings.ZeroTestsRan); + } + else if (anyTestFailed) + { + terminal.Append(string.Format(CultureInfo.CurrentCulture, "{0}!", LocalizableStrings.Failed)); + } + else + { + terminal.Append(string.Format(CultureInfo.CurrentCulture, "{0}!", LocalizableStrings.Passed)); + } + + if (!_options.ShowAssembly && _assemblies.Count == 1) + { + TestProgressState testProgressState = _assemblies.Values.Single(); + terminal.SetColor(TerminalColor.DarkGray); + terminal.Append(" - "); + terminal.ResetColor(); + AppendAssemblyLinkTargetFrameworkAndArchitecture(terminal, testProgressState.Assembly, testProgressState.TargetFramework, testProgressState.Architecture); + } + + terminal.AppendLine(); + + if (_options.ShowAssembly && _assemblies.Count > 1) + { + foreach (TestProgressState assemblyRun in _assemblies.Values) + { + terminal.Append(SingleIndentation); + AppendAssemblySummary(assemblyRun, terminal); + terminal.AppendLine(); + } + + terminal.AppendLine(); + } + + int total = _assemblies.Values.Sum(t => t.TotalTests); + int failed = _assemblies.Values.Sum(t => t.FailedTests); + int passed = _assemblies.Values.Sum(t => t.PassedTests); + int skipped = _assemblies.Values.Sum(t => t.SkippedTests); + TimeSpan runDuration = _testExecutionStartTime != null && _testExecutionEndTime != null ? (_testExecutionEndTime - _testExecutionStartTime).Value : TimeSpan.Zero; + + bool colorizeFailed = failed > 0; + bool colorizePassed = passed > 0 && _buildErrorsCount == 0 && failed == 0; + bool colorizeSkipped = skipped > 0 && skipped == total && _buildErrorsCount == 0 && failed == 0; + + string totalText = $"{SingleIndentation}total: {total}"; + string failedText = $"{SingleIndentation}failed: {failed}"; + string passedText = $"{SingleIndentation}succeeded: {passed}"; + string skippedText = $"{SingleIndentation}skipped: {skipped}"; + string durationText = $"{SingleIndentation}duration: "; + + terminal.ResetColor(); + terminal.AppendLine(totalText); + if (colorizeFailed) + { + terminal.SetColor(TerminalColor.Red); + } + + terminal.AppendLine(failedText); + + if (colorizeFailed) + { + terminal.ResetColor(); + } + + if (colorizePassed) + { + terminal.SetColor(TerminalColor.Green); + } + + terminal.AppendLine(passedText); + + if (colorizePassed) + { + terminal.ResetColor(); + } + + if (colorizeSkipped) + { + terminal.SetColor(TerminalColor.Yellow); + } + + terminal.AppendLine(skippedText); + + if (colorizeSkipped) + { + terminal.ResetColor(); + } + + terminal.Append(durationText); + AppendLongDuration(terminal, runDuration, wrapInParentheses: false, colorize: false); + terminal.AppendLine(); + } + + /// + /// Print a build result summary to the output. + /// + private static void AppendAssemblyResult(ITerminal terminal, bool succeeded, int countErrors, int countWarnings) + { + if (!succeeded) + { + terminal.SetColor(TerminalColor.Red); + // If the build failed, we print one of three red strings. + string text = (countErrors > 0, countWarnings > 0) switch + { + (true, true) => string.Format(CultureInfo.CurrentCulture, LocalizableStrings.FailedWithErrorsAndWarnings, countErrors, countWarnings), + (true, _) => string.Format(CultureInfo.CurrentCulture, LocalizableStrings.FailedWithErrors, countErrors), + (false, true) => string.Format(CultureInfo.CurrentCulture, LocalizableStrings.FailedWithWarnings, countWarnings), + _ => LocalizableStrings.FailedLowercase, + }; + terminal.Append(text); + terminal.ResetColor(); + } + else if (countWarnings > 0) + { + terminal.SetColor(TerminalColor.Yellow); + terminal.Append($"succeeded with {countWarnings} warning(s)"); + terminal.ResetColor(); + } + else + { + terminal.SetColor(TerminalColor.Green); + terminal.Append(LocalizableStrings.PassedLowercase); + terminal.ResetColor(); + } + } + + internal void TestCompleted( + string assembly, + string? targetFramework, + string? architecture, + string? executionId, + string testNodeUid, + string displayName, + TestOutcome outcome, + TimeSpan duration, + string? errorMessage, + Exception? exception, + string? expected, + string? actual, + string? standardOutput, + string? errorOutput) + { + FlatException[] flatExceptions = ExceptionFlattener.Flatten(errorMessage, exception); + TestCompleted( + assembly, + targetFramework, + architecture, + executionId, + testNodeUid, + displayName, + outcome, + duration, + flatExceptions, + expected, + actual, + standardOutput, + errorOutput); + } + + internal void TestCompleted( + string assembly, + string? targetFramework, + string? architecture, + string? executionId, + string testNodeUid, + string displayName, + TestOutcome outcome, + TimeSpan duration, + FlatException[] exceptions, + string? expected, + string? actual, + string? standardOutput, + string? errorOutput) + { + TestProgressState asm = _assemblies[$"{assembly}|{targetFramework}|{architecture}|{executionId}"]; + + if (_options.ShowActiveTests) + { + asm.TestNodeResultsState?.RemoveRunningTestNode(testNodeUid); + } + + switch (outcome) + { + case TestOutcome.Error: + case TestOutcome.Timeout: + case TestOutcome.Canceled: + case TestOutcome.Fail: + asm.FailedTests++; + asm.TotalTests++; + break; + case TestOutcome.Passed: + asm.PassedTests++; + asm.TotalTests++; + break; + case TestOutcome.Skipped: + asm.SkippedTests++; + asm.TotalTests++; + break; + } + + _terminalWithProgress.UpdateWorker(asm.SlotIndex); + if (outcome != TestOutcome.Passed || GetShowPassedTests()) + { + _terminalWithProgress.WriteToTerminal(terminal => RenderTestCompleted( + terminal, + assembly, + targetFramework, + architecture, + displayName, + outcome, + duration, + exceptions, + expected, + actual, + standardOutput, + errorOutput)); + } + } + + private bool GetShowPassedTests() + { + _shouldShowPassedTests ??= _options.ShowPassedTests(); + return _shouldShowPassedTests.Value; + } + + internal /* for testing */ void RenderTestCompleted( + ITerminal terminal, + string assembly, + string? targetFramework, + string? architecture, + string displayName, + TestOutcome outcome, + TimeSpan duration, + FlatException[] flatExceptions, + string? expected, + string? actual, + string? standardOutput, + string? errorOutput) + { + if (outcome == TestOutcome.Passed && !GetShowPassedTests()) + { + return; + } + + TerminalColor color = outcome switch + { + TestOutcome.Error or TestOutcome.Fail or TestOutcome.Canceled or TestOutcome.Timeout => TerminalColor.Red, + TestOutcome.Skipped => TerminalColor.Yellow, + TestOutcome.Passed => TerminalColor.Green, + _ => throw new NotSupportedException(), + }; + string outcomeText = outcome switch + { + TestOutcome.Fail or TestOutcome.Error => LocalizableStrings.FailedLowercase, + TestOutcome.Skipped => LocalizableStrings.SkippedLowercase, + TestOutcome.Canceled or TestOutcome.Timeout => $"{LocalizableStrings.FailedLowercase} ({LocalizableStrings.CancelledLowercase})", + TestOutcome.Passed => LocalizableStrings.PassedLowercase, + _ => throw new NotSupportedException(), + }; + + terminal.SetColor(color); + terminal.Append(outcomeText); + terminal.ResetColor(); + terminal.Append(' '); + terminal.Append(displayName); + terminal.SetColor(TerminalColor.DarkGray); + terminal.Append(' '); + AppendLongDuration(terminal, duration); + if (_options.ShowAssembly) + { + terminal.AppendLine(); + terminal.Append(SingleIndentation); + terminal.Append(LocalizableStrings.FromFile); + terminal.Append(' '); + AppendAssemblyLinkTargetFrameworkAndArchitecture(terminal, assembly, targetFramework, architecture); + } + + terminal.AppendLine(); + + FormatErrorMessage(terminal, flatExceptions, outcome, 0); + FormatExpectedAndActual(terminal, expected, actual); + FormatStackTrace(terminal, flatExceptions, 0); + FormatInnerExceptions(terminal, flatExceptions); + FormatStandardAndErrorOutput(terminal, standardOutput, errorOutput); + } + + private static void FormatInnerExceptions(ITerminal terminal, FlatException[] exceptions) + { + if (exceptions is null || exceptions.Length == 0) + { + return; + } + + for (int i = 1; i < exceptions.Length; i++) + { + terminal.SetColor(TerminalColor.Red); + terminal.Append(SingleIndentation); + terminal.Append("--->"); + FormatErrorMessage(terminal, exceptions, TestOutcome.Error, i); + FormatStackTrace(terminal, exceptions, i); + } + } + + private static void FormatErrorMessage(ITerminal terminal, FlatException[] exceptions, TestOutcome outcome, int index) + { + string? firstErrorMessage = GetStringFromIndexOrDefault(exceptions, e => e.ErrorMessage, index); + string? firstErrorType = GetStringFromIndexOrDefault(exceptions, e => e.ErrorType, index); + string? firstStackTrace = GetStringFromIndexOrDefault(exceptions, e => e.StackTrace, index); + if (String.IsNullOrWhiteSpace(firstErrorMessage) && String.IsNullOrWhiteSpace(firstErrorType) && String.IsNullOrWhiteSpace(firstStackTrace)) + { + return; + } + + terminal.SetColor(TerminalColor.Red); + + if (firstStackTrace is null) + { + AppendIndentedLine(terminal, firstErrorMessage, SingleIndentation); + } + else if (outcome == TestOutcome.Fail) + { + // For failed tests, we don't prefix the message with the exception type because it is most likely an assertion specific exception like AssertionFailedException, and we prefer to show that without the exception type to avoid additional noise. + AppendIndentedLine(terminal, firstErrorMessage, SingleIndentation); + } + else + { + AppendIndentedLine(terminal, $"{firstErrorType}: {firstErrorMessage}", SingleIndentation); + } + + terminal.ResetColor(); + } + + private static string? GetStringFromIndexOrDefault(FlatException[] exceptions, Func property, int index) => + exceptions != null && exceptions.Length >= index + 1 ? property(exceptions[index]) : null; + + private static void FormatExpectedAndActual(ITerminal terminal, string? expected, string? actual) + { + if (String.IsNullOrWhiteSpace(expected) && String.IsNullOrWhiteSpace(actual)) + { + return; + } + + terminal.SetColor(TerminalColor.Red); + terminal.Append(SingleIndentation); + terminal.AppendLine(LocalizableStrings.Expected); + AppendIndentedLine(terminal, expected, DoubleIndentation); + terminal.Append(SingleIndentation); + terminal.AppendLine(LocalizableStrings.Actual); + AppendIndentedLine(terminal, actual, DoubleIndentation); + terminal.ResetColor(); + } + + private static void FormatStackTrace(ITerminal terminal, FlatException[] exceptions, int index) + { + string? stackTrace = GetStringFromIndexOrDefault(exceptions, e => e.StackTrace, index); + if (String.IsNullOrWhiteSpace(stackTrace)) + { + return; + } + + terminal.SetColor(TerminalColor.DarkGray); + + string[] lines = stackTrace.Split(NewLineStrings, StringSplitOptions.None); + foreach (string line in lines) + { + AppendStackFrame(terminal, line); + } + + terminal.ResetColor(); + } + + private static void FormatStandardAndErrorOutput(ITerminal terminal, string? standardOutput, string? standardError) + { + if (String.IsNullOrWhiteSpace(standardOutput) && String.IsNullOrWhiteSpace(standardError)) + { + return; + } + + terminal.SetColor(TerminalColor.DarkGray); + terminal.Append(SingleIndentation); + terminal.AppendLine(LocalizableStrings.StandardOutput); + string? standardOutputWithoutSpecialChars = NormalizeSpecialCharacters(standardOutput); + AppendIndentedLine(terminal, standardOutputWithoutSpecialChars, DoubleIndentation); + terminal.Append(SingleIndentation); + terminal.AppendLine(LocalizableStrings.StandardError); + string? standardErrorWithoutSpecialChars = NormalizeSpecialCharacters(standardError); + AppendIndentedLine(terminal, standardErrorWithoutSpecialChars, DoubleIndentation); + terminal.ResetColor(); + } + + private static void AppendAssemblyLinkTargetFrameworkAndArchitecture(ITerminal terminal, string assembly, string? targetFramework, string? architecture) + { + terminal.AppendLink(assembly, lineNumber: null); + if (targetFramework != null || architecture != null) + { + terminal.Append(" ("); + if (targetFramework != null) + { + terminal.Append(targetFramework); + terminal.Append('|'); + } + + if (architecture != null) + { + terminal.Append(architecture); + } + + terminal.Append(')'); + } + } + + internal /* for testing */ static void AppendStackFrame(ITerminal terminal, string stackTraceLine) + { + terminal.Append(DoubleIndentation); + Match match = GetFrameRegex().Match(stackTraceLine); + if (match.Success) + { + bool weHaveFilePathAndCodeLine = !String.IsNullOrWhiteSpace(match.Groups["code"].Value); + terminal.Append(LocalizableStrings.StackFrameAt); + terminal.Append(' '); + + if (weHaveFilePathAndCodeLine) + { + terminal.Append(match.Groups["code"].Value); + } + else + { + terminal.Append(match.Groups["code1"].Value); + } + + if (weHaveFilePathAndCodeLine) + { + terminal.Append(' '); + terminal.Append(LocalizableStrings.StackFrameIn); + terminal.Append(' '); + if (!String.IsNullOrWhiteSpace(match.Groups["file"].Value)) + { + int line = int.TryParse(match.Groups["line"].Value, out int value) ? value : 0; + terminal.AppendLink(match.Groups["file"].Value, line); + + // AppendLink finishes by resetting color + terminal.SetColor(TerminalColor.DarkGray); + } + } + + terminal.AppendLine(); + } + else + { + terminal.AppendLine(stackTraceLine); + } + } + + private static void AppendIndentedLine(ITerminal terminal, string? message, string indent) + { + if (String.IsNullOrWhiteSpace(message)) + { + return; + } + + if (!message.Contains('\n')) + { + terminal.Append(indent); + terminal.AppendLine(message); + return; + } + + string[] lines = message.Split(NewLineStrings, StringSplitOptions.None); + foreach (string line in lines) + { + // Here we could check if the messages are longer than then line, and reflow them so a long line is split into multiple + // and prepended by the respective indentation. + // But this does not play nicely with ANSI escape codes. And if you + // run in narrow terminal and then widen it the text does not reflow correctly. And you also have harder time copying + // values when the assertion message is longer. + terminal.Append(indent); + terminal.Append(line); + terminal.AppendLine(); + } + } + + internal void AssemblyRunCompleted(string assembly, string? targetFramework, string? architecture, string? executionId, + // These parameters are useful only for "remote" runs in dotnet test, where we are reporting on multiple processes. + // In single process run, like with testing platform .exe we report these via messages, and run exit. + int? exitCode, string? outputData, string? errorData) + { + TestProgressState assemblyRun = GetOrAddAssemblyRun(assembly, targetFramework, architecture, executionId); + assemblyRun.Stopwatch.Stop(); + + _terminalWithProgress.RemoveWorker(assemblyRun.SlotIndex); + + if (!_isDiscovery && _options.ShowAssembly && _options.ShowAssemblyStartAndComplete) + { + _terminalWithProgress.WriteToTerminal(terminal => AppendAssemblySummary(assemblyRun, terminal)); + } + + if (exitCode is null or 0) + { + // Report nothing, we don't want to report on success, because then we will also report on test-discovery etc. + return; + } + + _terminalWithProgress.WriteToTerminal(terminal => + { + AppendExecutableSummary(terminal, exitCode, outputData, errorData); + terminal.AppendLine(); + }); + } + + private static void AppendExecutableSummary(ITerminal terminal, int? exitCode, string? outputData, string? errorData) + { + terminal.AppendLine(); + terminal.Append(LocalizableStrings.ExitCode); + terminal.Append(": "); + terminal.AppendLine(exitCode?.ToString(CultureInfo.CurrentCulture) ?? ""); + terminal.Append(LocalizableStrings.StandardOutput); + terminal.AppendLine(":"); + terminal.AppendLine(String.IsNullOrWhiteSpace(outputData) ? string.Empty : outputData); + terminal.Append(LocalizableStrings.StandardError); + terminal.AppendLine(":"); + terminal.AppendLine(String.IsNullOrWhiteSpace(errorData) ? string.Empty : errorData); + } + + private static string? NormalizeSpecialCharacters(string? text) + => text?.Replace('\0', '\x2400') + // escape char + .Replace('\x001b', '\x241b'); + + private static void AppendAssemblySummary(TestProgressState assemblyRun, ITerminal terminal) + { + int failedTests = assemblyRun.FailedTests; + int warnings = 0; + + AppendAssemblyLinkTargetFrameworkAndArchitecture(terminal, assemblyRun.Assembly, assemblyRun.TargetFramework, assemblyRun.Architecture); + terminal.Append(' '); + AppendAssemblyResult(terminal, assemblyRun.FailedTests == 0, failedTests, warnings); + terminal.Append(' '); + AppendLongDuration(terminal, assemblyRun.Stopwatch.Elapsed); + } + + /// + /// Appends a long duration in human readable format such as 1h 23m 500ms. + /// + private static void AppendLongDuration(ITerminal terminal, TimeSpan duration, bool wrapInParentheses = true, bool colorize = true) + { + if (colorize) + { + terminal.SetColor(TerminalColor.DarkGray); + } + + HumanReadableDurationFormatter.Append(terminal, duration, wrapInParentheses); + + if (colorize) + { + terminal.ResetColor(); + } + } + + public void Dispose() => _terminalWithProgress.Dispose(); + + public void ArtifactAdded(bool outOfProcess, string? assembly, string? targetFramework, string? architecture, string? executionId, string? testName, string path) + => _artifacts.Add(new TestRunArtifact(outOfProcess, assembly, targetFramework, architecture, executionId, testName, path)); + + /// + /// Let the user know that cancellation was triggered. + /// + public void StartCancelling() + { + _wasCancelled = true; + _terminalWithProgress.WriteToTerminal(terminal => + { + terminal.AppendLine(); + terminal.AppendLine(LocalizableStrings.CancellingTestSession); + terminal.AppendLine(); + }); + } + + internal void WriteErrorMessage(string assembly, string? targetFramework, string? architecture, string? executionId, string text, int? padding) + { + TestProgressState asm = GetOrAddAssemblyRun(assembly, targetFramework, architecture, executionId); + asm.AddError(text); + + _terminalWithProgress.WriteToTerminal(terminal => + { + terminal.SetColor(TerminalColor.Red); + if (padding == null) + { + terminal.AppendLine(text); + } + else + { + AppendIndentedLine(terminal, text, new string(' ', padding.Value)); + } + + terminal.ResetColor(); + }); + } + + internal void WriteWarningMessage(string assembly, string? targetFramework, string? architecture, string? executionId, string text, int? padding) + { + TestProgressState asm = GetOrAddAssemblyRun(assembly, targetFramework, architecture, executionId); + asm.AddWarning(text); + _terminalWithProgress.WriteToTerminal(terminal => + { + terminal.SetColor(TerminalColor.Yellow); + if (padding == null) + { + terminal.AppendLine(text); + } + else + { + AppendIndentedLine(terminal, text, new string(' ', padding.Value)); + } + + terminal.ResetColor(); + }); + } + + internal void WriteErrorMessage(string assembly, string? targetFramework, string? architecture, string? executionId, Exception exception) + => WriteErrorMessage(assembly, targetFramework, architecture, executionId, exception.ToString(), padding: null); + + public void WriteMessage(string text, SystemConsoleColor? color = null, int? padding = null) + { + if (color != null) + { + _terminalWithProgress.WriteToTerminal(terminal => + { + terminal.SetColor(ToTerminalColor(color.ConsoleColor)); + if (padding == null) + { + terminal.AppendLine(text); + } + else + { + AppendIndentedLine(terminal, text, new string(' ', padding.Value)); + } + + terminal.ResetColor(); + }); + } + else + { + _terminalWithProgress.WriteToTerminal(terminal => + { + if (padding == null) + { + terminal.AppendLine(text); + } + else + { + AppendIndentedLine(terminal, text, new string(' ', padding.Value)); + } + }); + } + } + + internal void TestDiscovered( + string assembly, + string? targetFramework, + string? architecture, + string? executionId, + string? displayName, + string? uid) + { + TestProgressState asm = _assemblies[$"{assembly}|{targetFramework}|{architecture}|{executionId}"]; + + // TODO: add mode for discovered tests to the progress bar - jajares + asm.PassedTests++; + asm.TotalTests++; + asm.DiscoveredTests.Add(new(displayName, uid)); + _terminalWithProgress.UpdateWorker(asm.SlotIndex); + } + + public void AppendTestDiscoverySummary(ITerminal terminal) + { + terminal.AppendLine(); + + var assemblies = _assemblies.Select(asm => asm.Value).OrderBy(a => a.Assembly).Where(a => a is not null).ToList(); + + int totalTests = _assemblies.Values.Sum(a => a.TotalTests); + bool runFailed = _wasCancelled; + + foreach (TestProgressState assembly in assemblies) + { + terminal.Append(string.Format(CultureInfo.CurrentCulture, LocalizableStrings.DiscoveredTestsInAssembly, assembly.DiscoveredTests.Count)); + terminal.Append(" - "); + AppendAssemblyLinkTargetFrameworkAndArchitecture(terminal, assembly.Assembly, assembly.TargetFramework, assembly.Architecture); + terminal.AppendLine(); + foreach ((string? displayName, string? uid) in assembly.DiscoveredTests) + { + if (displayName is not null) + { + terminal.Append(SingleIndentation); + terminal.AppendLine(displayName); + } + } + + terminal.AppendLine(); + } + + terminal.SetColor(runFailed ? TerminalColor.Red : TerminalColor.Green); + if (assemblies.Count <= 1) + { + terminal.AppendLine(string.Format(CultureInfo.CurrentCulture, LocalizableStrings.TestDiscoverySummarySingular, totalTests)); + } + else + { + terminal.AppendLine(string.Format(CultureInfo.CurrentCulture, LocalizableStrings.TestDiscoverySummary, totalTests, assemblies.Count)); + } + + terminal.ResetColor(); + terminal.AppendLine(); + + if (_wasCancelled) + { + terminal.Append(LocalizableStrings.Aborted); + terminal.AppendLine(); + } + } + + public void AssemblyDiscoveryCompleted(int testCount) => + _terminalWithProgress.WriteToTerminal(terminal => terminal.Append($"Found {testCount} tests")); + + private static TerminalColor ToTerminalColor(ConsoleColor consoleColor) + => consoleColor switch + { + ConsoleColor.Black => TerminalColor.Black, + ConsoleColor.DarkBlue => TerminalColor.DarkBlue, + ConsoleColor.DarkGreen => TerminalColor.DarkGreen, + ConsoleColor.DarkCyan => TerminalColor.DarkCyan, + ConsoleColor.DarkRed => TerminalColor.DarkRed, + ConsoleColor.DarkMagenta => TerminalColor.DarkMagenta, + ConsoleColor.DarkYellow => TerminalColor.DarkYellow, + ConsoleColor.DarkGray => TerminalColor.DarkGray, + ConsoleColor.Gray => TerminalColor.Gray, + ConsoleColor.Blue => TerminalColor.Blue, + ConsoleColor.Green => TerminalColor.Green, + ConsoleColor.Cyan => TerminalColor.Cyan, + ConsoleColor.Red => TerminalColor.Red, + ConsoleColor.Magenta => TerminalColor.Magenta, + ConsoleColor.Yellow => TerminalColor.Yellow, + ConsoleColor.White => TerminalColor.White, + _ => TerminalColor.Default, + }; + + public void TestInProgress( + string assembly, + string? targetFramework, + string? architecture, + string testNodeUid, + string displayName, + string? executionId) + { + TestProgressState asm = _assemblies[$"{assembly}|{targetFramework}|{architecture}|{executionId}"]; + + if (_options.ShowActiveTests) + { + asm.TestNodeResultsState ??= new(Interlocked.Increment(ref _counter)); + asm.TestNodeResultsState.AddRunningTestNode( + Interlocked.Increment(ref _counter), testNodeUid, displayName, CreateStopwatch()); + } + + _terminalWithProgress.UpdateWorker(asm.SlotIndex); + } +} diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/TerminalTestReporterOptions.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/TerminalTestReporterOptions.cs new file mode 100644 index 000000000000..478453758d30 --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/TerminalTestReporterOptions.cs @@ -0,0 +1,54 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +namespace Microsoft.Testing.Platform.OutputDevice.Terminal; + +internal sealed class TerminalTestReporterOptions +{ + /// + /// Gets path to which all other paths in output should be relative. + /// + public string? BaseDirectory { get; init; } + + /// + /// Gets a value indicating whether we should show passed tests. + /// + public Func ShowPassedTests { get; init; } = () => true; + + /// + /// Gets a value indicating whether we should show information about which assembly is the source of the data on screen. Turn this off when running directly from an exe to reduce noise, because the path will always be the same. + /// + public bool ShowAssembly { get; init; } + + /// + /// Gets a value indicating whether we should show information about which assembly started or completed. Turn this off when running directly from an exe to reduce noise, because the path will always be the same. + /// + public bool ShowAssemblyStartAndComplete { get; init; } + + /// + /// Gets minimum amount of tests to run. + /// + public int MinimumExpectedTests { get; init; } + + /// + /// Gets a value indicating whether we should write the progress periodically to screen. When ANSI is allowed we update the progress as often as we can. When ANSI is not allowed we update it every 3 seconds. + /// This is a callback to nullable bool, because we don't know if we are running as test host controller until after we setup the console. So we should be polling for the value, until we get non-null boolean + /// and then cache that value. + /// + public Func ShowProgress { get; init; } = () => true; + + /// + /// Gets a value indicating whether the active tests should be visible when the progress is shown. + /// + public bool ShowActiveTests { get; init; } + + /// + /// Gets a value indicating whether we should use ANSI escape codes or disable them. When true the capabilities of the console are autodetected. + /// + public bool UseAnsi { get; init; } + + /// + /// Gets a value indicating whether we should force ANSI escape codes. When true the ANSI is used without auto-detecting capabilities of the console. This is needed only for testing. + /// + internal /* for testing */ bool? ForceAnsi { get; init; } +} diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/TestDetailState.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/TestDetailState.cs new file mode 100644 index 000000000000..ad00e3ee42af --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/TestDetailState.cs @@ -0,0 +1,37 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +using Microsoft.Testing.Platform.Helpers; + +namespace Microsoft.Testing.Platform.OutputDevice.Terminal; + +internal sealed class TestDetailState +{ + private string _text; + + public TestDetailState(long id, IStopwatch? stopwatch, string text) + { + Id = id; + Stopwatch = stopwatch; + _text = text; + } + + public long Id { get; } + + public long Version { get; set; } + + public IStopwatch? Stopwatch { get; } + + public string Text + { + get => _text; + set + { + if (!_text.Equals(value, StringComparison.Ordinal)) + { + Version++; + _text = value; + } + } + } +} diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/TestNodeResultsState.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/TestNodeResultsState.cs new file mode 100644 index 000000000000..c7a6609e5410 --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/TestNodeResultsState.cs @@ -0,0 +1,63 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +using System.Collections.Concurrent; +using System.Globalization; +using Microsoft.Testing.Platform.Helpers; +using LocalizableStrings = Microsoft.DotNet.Tools.Test.LocalizableStrings; + +namespace Microsoft.Testing.Platform.OutputDevice.Terminal; + +internal sealed class TestNodeResultsState +{ + public TestNodeResultsState(long id) + { + Id = id; + _summaryDetail = new(id, stopwatch: null, text: string.Empty); + } + + public long Id { get; } + + private readonly TestDetailState _summaryDetail; + private readonly ConcurrentDictionary _testNodeProgressStates = new(); + + public int Count => _testNodeProgressStates.Count; + + public void AddRunningTestNode(int id, string uid, string name, IStopwatch stopwatch) => _testNodeProgressStates[uid] = new TestDetailState(id, stopwatch, name); + + public void RemoveRunningTestNode(string uid) => _testNodeProgressStates.TryRemove(uid, out _); + + public IEnumerable GetRunningTasks(int maxCount) + { + var sortedDetails = _testNodeProgressStates + .Select(d => d.Value) + .OrderByDescending(d => d.Stopwatch?.Elapsed ?? TimeSpan.Zero) + .ToList(); + + bool tooManyItems = sortedDetails.Count > maxCount; + + if (tooManyItems) + { + // Note: If there's too many items to display, the summary will take up one line. + // As such, we can only take maxCount - 1 items. + int itemsToTake = maxCount - 1; + _summaryDetail.Text = + itemsToTake == 0 + // Note: If itemsToTake is 0, then we only show two lines, the project summary and the number of running tests. + ? string.Format(CultureInfo.CurrentCulture, LocalizableStrings.ActiveTestsRunning_FullTestsCount, sortedDetails.Count) + // If itemsToTake is larger, then we show the project summary, active tests, and the number of active tests that are not shown. + : $"... {string.Format(CultureInfo.CurrentCulture, LocalizableStrings.ActiveTestsRunning_MoreTestsCount, sortedDetails.Count - itemsToTake)}"; + sortedDetails = sortedDetails.Take(itemsToTake).ToList(); + } + + foreach (TestDetailState? detail in sortedDetails) + { + yield return detail; + } + + if (tooManyItems) + { + yield return _summaryDetail; + } + } +} diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/TestOutcome.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/TestOutcome.cs new file mode 100644 index 000000000000..b60208af292e --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/TestOutcome.cs @@ -0,0 +1,40 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +namespace Microsoft.Testing.Platform.OutputDevice.Terminal; + +/// +/// Outcome of a test. +/// +internal enum TestOutcome +{ + /// + /// Error. + /// + Error, + + /// + /// Fail. + /// + Fail, + + /// + /// Passed. + /// + Passed, + + /// + /// Skipped. + /// + Skipped, + + /// + /// Timeout. + /// + Timeout, + + /// + /// Canceled. + /// + Canceled, +} diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/TestProgressState.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/TestProgressState.cs new file mode 100644 index 000000000000..7824e12bc0fa --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/TestProgressState.cs @@ -0,0 +1,57 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +using Microsoft.Testing.Platform.Helpers; + +namespace Microsoft.Testing.Platform.OutputDevice.Terminal; + +internal sealed class TestProgressState +{ + public TestProgressState(long id, string assembly, string? targetFramework, string? architecture, IStopwatch stopwatch) + { + Id = id; + Assembly = assembly; + TargetFramework = targetFramework; + Architecture = architecture; + Stopwatch = stopwatch; + AssemblyName = Path.GetFileName(assembly)!; + } + + public string Assembly { get; } + + public string AssemblyName { get; } + + public string? TargetFramework { get; } + + public string? Architecture { get; } + + public IStopwatch Stopwatch { get; } + + public List Attachments { get; } = new(); + + public List Messages { get; } = new(); + + public int FailedTests { get; internal set; } + + public int PassedTests { get; internal set; } + + public int SkippedTests { get; internal set; } + + public int TotalTests { get; internal set; } + + public TestNodeResultsState? TestNodeResultsState { get; internal set; } + + public int SlotIndex { get; internal set; } + + public long Id { get; internal set; } + + public long Version { get; internal set; } + + public List<(string? DisplayName, string? UID)> DiscoveredTests { get; internal set; } = new(); + + internal void AddError(string text) + => Messages.Add(new ErrorMessage(text)); + + internal void AddWarning(string text) + => Messages.Add(new WarningMessage(text)); +} diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/TestProgressStateAwareTerminal.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/TestProgressStateAwareTerminal.cs new file mode 100644 index 000000000000..d369d99059ed --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/TestProgressStateAwareTerminal.cs @@ -0,0 +1,205 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +namespace Microsoft.Testing.Platform.OutputDevice.Terminal; + +/// +/// Terminal that updates the progress in place when progress reporting is enabled. +/// +internal sealed partial class TestProgressStateAwareTerminal : IDisposable +{ + /// + /// A cancellation token to signal the rendering thread that it should exit. + /// + private readonly CancellationTokenSource _cts = new(); + + /// + /// Protects access to state shared between the logger callbacks and the rendering thread. + /// + private readonly Lock _lock = new(); + + private readonly ITerminal _terminal; + private readonly Func _showProgress; + private readonly bool _writeProgressImmediatelyAfterOutput; + private readonly int _updateEvery; + private TestProgressState?[] _progressItems = []; + private bool? _showProgressCached; + + /// + /// The thread that performs periodic refresh of the console output. + /// + private Thread? _refresher; + private long _counter; + + public event EventHandler? OnProgressStartUpdate; + + public event EventHandler? OnProgressStopUpdate; + + /// + /// The thread proc. + /// + private void ThreadProc() + { + try + { + while (!_cts.Token.WaitHandle.WaitOne(_updateEvery)) + { + lock (_lock) + { + OnProgressStartUpdate?.Invoke(this, EventArgs.Empty); + _terminal.StartUpdate(); + try + { + _terminal.RenderProgress(_progressItems); + } + finally + { + _terminal.StopUpdate(); + OnProgressStopUpdate?.Invoke(this, EventArgs.Empty); + } + } + } + } + catch (ObjectDisposedException) + { + // When we dispose _cts too early this will throw. + } + + _terminal.EraseProgress(); + } + + public TestProgressStateAwareTerminal(ITerminal terminal, Func showProgress, bool writeProgressImmediatelyAfterOutput, int updateEvery) + { + _terminal = terminal; + _showProgress = showProgress; + _writeProgressImmediatelyAfterOutput = writeProgressImmediatelyAfterOutput; + _updateEvery = updateEvery; + } + + public int AddWorker(TestProgressState testWorker) + { + if (GetShowProgress()) + { + for (int i = 0; i < _progressItems.Length; i++) + { + if (_progressItems[i] == null) + { + _progressItems[i] = testWorker; + return i; + } + } + + throw new InvalidOperationException("No empty slot found"); + } + + return 0; + } + + public void StartShowingProgress(int workerCount) + { + if (GetShowProgress()) + { + _progressItems = new TestProgressState[workerCount]; + _terminal.StartBusyIndicator(); + // If we crash unexpectedly without completing this thread we don't want it to keep the process running. + _refresher = new Thread(ThreadProc) { IsBackground = true }; + _refresher.Start(); + } + } + + internal void StopShowingProgress() + { + if (GetShowProgress()) + { + _cts.Cancel(); + _refresher?.Join(); + + _terminal.EraseProgress(); + _terminal.StopBusyIndicator(); + } + } + + public void Dispose() => + ((IDisposable)_cts).Dispose(); + + internal void WriteToTerminal(Action write) + { + if (GetShowProgress()) + { + lock (_lock) + { + try + { + _terminal.StartUpdate(); + _terminal.EraseProgress(); + write(_terminal); + if (_writeProgressImmediatelyAfterOutput) + { + _terminal.RenderProgress(_progressItems); + } + } + finally + { + _terminal.StopUpdate(); + } + } + } + else + { + lock (_lock) + { + try + { + _terminal.StartUpdate(); + write(_terminal); + } + finally + { + _terminal.StopUpdate(); + } + } + } + } + + internal void RemoveWorker(int slotIndex) + { + if (GetShowProgress()) + { + _progressItems[slotIndex] = null; + } + } + + internal void UpdateWorker(int slotIndex) + { + if (GetShowProgress()) + { + // We increase the counter to say that this version of data is newer than what we had before and + // it should be completely re-rendered. Another approach would be to use timestamps, or to replace the + // instance and compare that, but that means more objects floating around. + _counter++; + + TestProgressState? progress = _progressItems[slotIndex]; + if (progress != null) + { + progress.Version = _counter; + } + } + } + + private bool GetShowProgress() + { + if (_showProgressCached != null) + { + return _showProgressCached.Value; + } + + // Get the value from the func until we get the first non-null value. + bool? showProgress = _showProgress(); + if (showProgress != null) + { + _showProgressCached = showProgress; + } + + return showProgress == true; + } +} diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/TestRunArtifact.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/TestRunArtifact.cs new file mode 100644 index 000000000000..e8eba56edc34 --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/TestRunArtifact.cs @@ -0,0 +1,9 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +namespace Microsoft.Testing.Platform.OutputDevice.Terminal; + +/// +/// An artifact / attachment that was reported during run. +/// +internal sealed record TestRunArtifact(bool OutOfProcess, string? Assembly, string? TargetFramework, string? Architecture, string? ExecutionId, string? TestName, string Path); diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/WarningMessage.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/WarningMessage.cs new file mode 100644 index 000000000000..c938898aa76a --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/WarningMessage.cs @@ -0,0 +1,9 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +namespace Microsoft.Testing.Platform.OutputDevice.Terminal; + +/// +/// A warning message that was sent during run. +/// +internal sealed record WarningMessage(string Text) : IProgressMessage; diff --git a/src/Cli/dotnet/commands/dotnet-test/TestApplication.cs b/src/Cli/dotnet/commands/dotnet-test/TestApplication.cs index ef1d4b0c7e5b..6918d2bcc2a7 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestApplication.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestApplication.cs @@ -272,6 +272,11 @@ private string BuildArgsWithDotnetRun(bool hasHelp, BuildConfigurationOptions bu builder.Append($" {TestingPlatformOptions.NoBuildOption.Name}"); } + if (buildConfigurationOptions.HasListTests) + { + builder.Append($" {TestingPlatformOptions.ListTestsOption.Name}"); + } + if (!string.IsNullOrEmpty(buildConfigurationOptions.Architecture)) { builder.Append($" {TestingPlatformOptions.ArchitectureOption.Name} {buildConfigurationOptions.Architecture}"); @@ -351,7 +356,7 @@ internal void OnTestResultMessages(TestResultMessages testResultMessage) { ExecutionId = testResultMessage.ExecutionId, SuccessfulTestResults = testResultMessage.SuccessfulTestMessages.Select(message => new SuccessfulTestResult(message.Uid, message.DisplayName, message.State, message.Duration, message.Reason, message.StandardOutput, message.ErrorOutput, message.SessionUid)).ToArray(), - FailedTestResults = testResultMessage.FailedTestMessages.Select(message => new FailedTestResult(message.Uid, message.DisplayName, message.State, message.Duration, message.Reason, message.ErrorMessage, message.ErrorStackTrace, message.StandardOutput, message.ErrorOutput, message.SessionUid)).ToArray() + FailedTestResults = testResultMessage.FailedTestMessages.Select(message => new FailedTestResult(message.Uid, message.DisplayName, message.State, message.Duration, message.Reason, message.Exceptions.Select(e => new FlatException(e.ErrorMessage, e.ErrorType, e.StackTrace)).ToArray(), message.StandardOutput, message.ErrorOutput, message.SessionUid)).ToArray() }); } diff --git a/src/Cli/dotnet/commands/dotnet-test/TestCommandParser.cs b/src/Cli/dotnet/commands/dotnet-test/TestCommandParser.cs index 42cfdb243f95..df414cbfa4e9 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestCommandParser.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestCommandParser.cs @@ -200,6 +200,7 @@ private static CliCommand GetTestingPlatformCliCommand() command.Options.Add(TestingPlatformOptions.ArchitectureOption); command.Options.Add(TestingPlatformOptions.ConfigurationOption); command.Options.Add(TestingPlatformOptions.ProjectOption); + command.Options.Add(TestingPlatformOptions.ListTestsOption); command.Options.Add(TestingPlatformOptions.SolutionOption); command.Options.Add(TestingPlatformOptions.DirectoryOption); diff --git a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs index 84be6429fcdd..40f2d5adf6bc 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs @@ -1,10 +1,14 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System; using System.Collections.Concurrent; using System.CommandLine; using Microsoft.DotNet.Tools.Test; using Microsoft.TemplateEngine.Cli.Commands; +using Microsoft.Testing.Platform.Helpers; +using Microsoft.Testing.Platform.OutputDevice; +using Microsoft.Testing.Platform.OutputDevice.Terminal; namespace Microsoft.DotNet.Cli { @@ -14,8 +18,12 @@ internal partial class TestingPlatformCommand : CliCommand, ICustomHelp private MSBuildHandler _msBuildHandler; private TestModulesFilterHandler _testModulesFilterHandler; + private TerminalTestReporter _output; private TestApplicationActionQueue _actionQueue; private List _args; + private ConcurrentDictionary _executions = new(); + private byte _cancelled; + private bool _isDiscovery; public TestingPlatformCommand(string name, string description = null) : base(name, description) { @@ -27,10 +35,80 @@ public int Run(ParseResult parseResult) bool hasFailed = false; try { + Console.CancelKeyPress += (s, e) => + { + _output?.StartCancelling(); + CompleteRun(); + }; + int degreeOfParallelism = GetDegreeOfParallelism(parseResult); BuildConfigurationOptions buildConfigurationOptions = GetBuildConfigurationOptions(parseResult); InitializeActionQueue(parseResult, degreeOfParallelism, buildConfigurationOptions); + bool filterModeEnabled = parseResult.HasOption(TestingPlatformOptions.TestModulesFilterOption); + + if (filterModeEnabled && parseResult.HasOption(TestingPlatformOptions.ArchitectureOption)) + { + VSTestTrace.SafeWriteTrace(() => $"The --arch option is not supported yet."); + } + + if (parseResult.HasOption(TestingPlatformOptions.ListTestsOption)) + { + _isDiscovery = true; + } + + BuildConfigurationOptions builtInOptions = new( + parseResult.HasOption(TestingPlatformOptions.NoRestoreOption), + parseResult.HasOption(TestingPlatformOptions.NoBuildOption), + parseResult.HasOption(TestingPlatformOptions.ListTestsOption), + parseResult.GetValue(TestingPlatformOptions.ConfigurationOption), + parseResult.GetValue(TestingPlatformOptions.ArchitectureOption)); + + var console = new SystemConsole(); + var output = new TerminalTestReporter(console, new TerminalTestReporterOptions() + { + ShowPassedTests = Environment.GetEnvironmentVariable("SHOW_PASSED") == "1" ? () => true : () => false, + ShowProgress = () => Environment.GetEnvironmentVariable("NO_PROGRESS") != "1", + UseAnsi = Environment.GetEnvironmentVariable("NO_ANSI") != "1", + ShowAssembly = true, + ShowAssemblyStartAndComplete = true, + }); + _output = output; + _output.TestExecutionStarted(DateTimeOffset.Now, degreeOfParallelism, _isDiscovery); + + if (ContainsHelpOption(parseResult.GetArguments())) + { + _actionQueue = new(degreeOfParallelism, async (TestApplication testApp) => + { + testApp.HelpRequested += OnHelpRequested; + testApp.ErrorReceived += OnErrorReceived; + testApp.TestProcessExited += OnTestProcessExited; + testApp.Run += OnTestApplicationRun; + testApp.ExecutionIdReceived += OnExecutionIdReceived; + + var result = await testApp.RunAsync(filterModeEnabled, enableHelp: true, builtInOptions); + CompleteRun(); + return result; + }); + } + else + { + _actionQueue = new(degreeOfParallelism, async (TestApplication testApp) => + { + testApp.HandshakeReceived += OnHandshakeReceived; + testApp.DiscoveredTestsReceived += OnDiscoveredTestsReceived; + testApp.TestResultsReceived += OnTestResultsReceived; + testApp.FileArtifactsReceived += OnFileArtifactsReceived; + testApp.SessionEventReceived += OnSessionEventReceived; + testApp.ErrorReceived += OnErrorReceived; + testApp.TestProcessExited += OnTestProcessExited; + testApp.Run += OnTestApplicationRun; + testApp.ExecutionIdReceived += OnExecutionIdReceived; + + return await testApp.RunAsync(filterModeEnabled, enableHelp: false, builtInOptions); + }); + } + _args = [.. parseResult.UnmatchedTokens]; _msBuildHandler = new(_args, _actionQueue, degreeOfParallelism); _testModulesFilterHandler = new(_args, _actionQueue); @@ -39,6 +117,7 @@ public int Run(ParseResult parseResult) { if (!_testModulesFilterHandler.RunWithTestModulesFilter(parseResult)) { + CompleteRun(); return ExitCodes.GenericFailure; } } @@ -47,12 +126,14 @@ public int Run(ParseResult parseResult) var buildPathOptions = GetBuildPathOptions(parseResult); if (!_msBuildHandler.RunMSBuild(buildPathOptions).GetAwaiter().GetResult()) { + CompleteRun(); return ExitCodes.GenericFailure; } if (!_msBuildHandler.EnqueueTestApplications()) { VSTestTrace.SafeWriteTrace(() => LocalizableStrings.CmdUnsupportedVSTestTestApplicationsDescription); + CompleteRun(); return ExitCodes.GenericFailure; } } @@ -65,6 +146,7 @@ public int Run(ParseResult parseResult) CleanUp(); } + CompleteRun(); return hasFailed ? ExitCodes.GenericFailure : ExitCodes.Success; } @@ -78,6 +160,7 @@ private static int GetDegreeOfParallelism(ParseResult parseResult) private static BuildConfigurationOptions GetBuildConfigurationOptions(ParseResult parseResult) => new(parseResult.HasOption(TestingPlatformOptions.NoRestoreOption), parseResult.HasOption(TestingPlatformOptions.NoBuildOption), + parseResult.HasOption(TestingPlatformOptions.ListTestsOption), parseResult.GetValue(TestingPlatformOptions.ConfigurationOption), parseResult.GetValue(TestingPlatformOptions.ArchitectureOption)); @@ -122,6 +205,14 @@ private void InitializeActionQueue(ParseResult parseResult, int degreeOfParallel private static bool ContainsHelpOption(IEnumerable args) => args.Contains(CliConstants.HelpOptionKey) || args.Contains(CliConstants.HelpOptionKey.Substring(0, 2)); + private void CompleteRun() + { + if (Interlocked.CompareExchange(ref _cancelled, 1, 0) == 0) + { + _output?.TestExecutionCompleted(DateTimeOffset.Now); + } + } + private void CleanUp() { _msBuildHandler.Dispose(); @@ -133,6 +224,14 @@ private void CleanUp() private void OnHandshakeReceived(object sender, HandshakeArgs args) { + var testApplication = (TestApplication)sender; + var executionId = args.Handshake.Properties[HandshakeMessagePropertyNames.ExecutionId]; + var arch = args.Handshake.Properties[HandshakeMessagePropertyNames.Architecture]?.ToLower(); + var tfm = TargetFrameworkParser.GetShortTargetFramework(args.Handshake.Properties[HandshakeMessagePropertyNames.Framework]); + (string ModulePath, string TargetFramework, string Architecture, string ExecutionId) appInfo = new(testApplication.Module.DllOrExePath, tfm, arch, executionId); + _executions[testApplication] = appInfo; + _output.AssemblyRunStarted(appInfo.ModulePath, appInfo.TargetFramework, appInfo.Architecture, appInfo.ExecutionId); + if (!VSTestTrace.TraceEnabled) return; foreach (var property in args.Handshake.Properties) @@ -143,6 +242,16 @@ private void OnHandshakeReceived(object sender, HandshakeArgs args) private void OnDiscoveredTestsReceived(object sender, DiscoveredTestEventArgs args) { + var testApp = (TestApplication)sender; + var appInfo = _executions[testApp]; + + foreach (var test in args.DiscoveredTests) + { + _output.TestDiscovered(appInfo.ModulePath, appInfo.TargetFramework, appInfo.Architecture, appInfo.ExecutionId, + test.DisplayName, + test.Uid); + } + if (!VSTestTrace.TraceEnabled) return; VSTestTrace.SafeWriteTrace(() => $"DiscoveredTests Execution Id: {args.ExecutionId}"); @@ -154,6 +263,40 @@ private void OnDiscoveredTestsReceived(object sender, DiscoveredTestEventArgs ar private void OnTestResultsReceived(object sender, TestResultEventArgs args) { + foreach (var testResult in args.SuccessfulTestResults) + { + var testApp = (TestApplication)sender; + var appInfo = _executions[testApp]; + _output.TestCompleted(appInfo.ModulePath, appInfo.TargetFramework, appInfo.Architecture, appInfo.ExecutionId, + testResult.Uid, + testResult.DisplayName, + ToOutcome(testResult.State), + TimeSpan.FromTicks(testResult.Duration ?? 0), + exceptions: null, + expected: null, + actual: null, + standardOutput: null, + errorOutput: null); + } + + foreach (var testResult in args.FailedTestResults) + { + var testApp = (TestApplication)sender; + // TODO: expected + // TODO: actual + var appInfo = _executions[testApp]; + _output.TestCompleted(appInfo.ModulePath, appInfo.TargetFramework, appInfo.Architecture, appInfo.ExecutionId, + testResult.Uid, + testResult.DisplayName, + ToOutcome(testResult.State), + TimeSpan.FromTicks(testResult.Duration ?? 0), + exceptions: testResult.Exceptions.Select(fe => new Microsoft.Testing.Platform.OutputDevice.Terminal.FlatException(fe.ErrorMessage, fe.ErrorType, fe.StackTrace)).ToArray(), + expected: null, + actual: null, + standardOutput: null, + errorOutput: null); + } + if (!VSTestTrace.TraceEnabled) return; VSTestTrace.SafeWriteTrace(() => $"TestResults Execution Id: {args.ExecutionId}"); @@ -168,13 +311,39 @@ private void OnTestResultsReceived(object sender, TestResultEventArgs args) foreach (FailedTestResult failedTestResult in args.FailedTestResults) { VSTestTrace.SafeWriteTrace(() => $"FailedTestResult: {failedTestResult.Uid}, {failedTestResult.DisplayName}, " + - $"{failedTestResult.State}, {failedTestResult.Duration}, {failedTestResult.Reason}, {failedTestResult.ErrorMessage}," + - $"{failedTestResult.ErrorStackTrace}, {failedTestResult.StandardOutput}, {failedTestResult.ErrorOutput}, {failedTestResult.SessionUid}"); + $"{failedTestResult.State}, {failedTestResult.Duration}, {failedTestResult.Reason}, {string.Join(", ", failedTestResult.Exceptions?.Select(e => $"{e.ErrorMessage}, {e.ErrorType}, {e.StackTrace}"))}" + + $"{failedTestResult.StandardOutput}, {failedTestResult.ErrorOutput}, {failedTestResult.SessionUid}"); } } + public static TestOutcome ToOutcome(byte? testState) + { + return testState switch + { + TestStates.Passed => TestOutcome.Passed, + TestStates.Skipped => TestOutcome.Skipped, + TestStates.Failed => TestOutcome.Fail, + TestStates.Error => TestOutcome.Error, + TestStates.Timeout => TestOutcome.Timeout, + TestStates.Cancelled => TestOutcome.Canceled, + _ => throw new ArgumentOutOfRangeException(nameof(testState), $"Invalid test state value {testState}") + }; + } + private void OnFileArtifactsReceived(object sender, FileArtifactEventArgs args) { + var testApp = (TestApplication)sender; + var appInfo = _executions[testApp]; + + foreach (var artifact in args.FileArtifacts) + { + // TODO: Is artifact out of process + _output.ArtifactAdded( + outOfProcess: false, + appInfo.ModulePath, appInfo.TargetFramework, appInfo.Architecture, appInfo.ExecutionId, + artifact.TestDisplayName, artifact.FullPath); + } + if (!VSTestTrace.TraceEnabled) return; VSTestTrace.SafeWriteTrace(() => $"FileArtifactMessages Execution Id: {args.ExecutionId}"); @@ -204,6 +373,15 @@ private void OnErrorReceived(object sender, ErrorEventArgs args) private void OnTestProcessExited(object sender, TestProcessExitEventArgs args) { + var testApplication = (TestApplication)sender; + + // If the application exits too early we might not start the execution, + // e.g. if the parameter is incorrect. + if (_executions.TryGetValue(testApplication, out var appInfo)) + { + _output.AssemblyRunCompleted(appInfo.ModulePath, appInfo.TargetFramework, appInfo.Architecture, appInfo.ExecutionId, args.ExitCode, string.Join(Environment.NewLine, args.OutputData), string.Join(Environment.NewLine, args.ErrorData)); + } + if (!VSTestTrace.TraceEnabled) return; if (args.ExitCode != ExitCodes.Success) diff --git a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformOptions.cs b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformOptions.cs index 6e3b6e0e5484..dda8123146ba 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformOptions.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformOptions.cs @@ -58,6 +58,12 @@ internal static class TestingPlatformOptions Arity = ArgumentArity.ExactlyOne }; + public static readonly CliOption ListTestsOption = new("--list-tests") + { + Description = LocalizableStrings.CmdListTestsDescription, + Arity = ArgumentArity.Zero + }; + public static readonly CliOption SolutionOption = new("--solution") { Description = LocalizableStrings.CmdSolutionDescription, diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.cs.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.cs.xlf index a9fbaefb534a..1a467d0ffc2e 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.cs.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.cs.xlf @@ -2,6 +2,26 @@ + + Aborted + Aborted + + + + {0} tests running + {0} tests running + + + + and {0} more + and {0} more + + + + Actual + Actual + + .NET Test Driver Testovací ovladač .NET @@ -12,6 +32,16 @@ Testovací ovladač pro platformu .NET + + canceled + canceled + + + + Canceling the test session... + Canceling the test session... + + The additional msbuild parameters to pass. Další parametry msbuild, které se mají předat. @@ -315,11 +345,71 @@ Pokud zadaný adresář neexistuje, bude vytvořen. Test application(s) that support VSTest are not supported. + + Console is already in batching mode. + Console is already in batching mode. + Exception that is thrown when console is already collecting input into a batch (into a string builder), and code asks to enable batching mode again. + DUMP_TYPE DUMP_TYPE + + Discovered {0} tests in assembly + Discovered {0} tests in assembly + 0 is count, the sentence is followed by the path of the assebly + + + Discovering tests from + Discovering tests from + + + + Exit code + Exit code + + + + Expected + Expected + + + + Failed + Failed + + + + failed + failed + + + + failed with {0} error(s) + failed with {0} error(s) + + + + failed with {0} error(s) and {1} warning(s) + failed with {0} error(s) and {1} warning(s) + + + + failed with {0} warning(s) + failed with {0} warning(s) + + + + For test + For test + is followed by test name + + + from + from + from followed by a file name to point to the file from which test is originating + DUMP_TYPE DUMP_TYPE @@ -335,6 +425,16 @@ Pokud zadaný adresář neexistuje, bude vytvořen. Následující argumenty se ignorovaly: {0} + + In process file artifacts produced: + In process file artifacts produced: + + + + Minimum expected tests policy violation, tests ran {0}, minimum expected {1} + Minimum expected tests policy violation, tests ran {0}, minimum expected {1} + {0}, {1} number of tests + No serializer registered with ID '{0}' Není zaregistrovaný žádný serializátor s ID {0}. @@ -345,6 +445,21 @@ Pokud zadaný adresář neexistuje, bude vytvořen. Není zaregistrovaný žádný serializátor s typem {0}. + + Out of process file artifacts produced: + Out of process file artifacts produced: + + + + Passed + Passed + + + + passed + passed + + @@ -362,6 +477,56 @@ Argumenty RunSettings: Příklad: dotnet test -- MSTest.DeploymentEnabled=false MSTest.MapInconclusiveToFailed=True + + Running tests from + Running tests from + + + + skipped + skipped + + + + at + at + at that is used for a stack frame location in a stack trace, is followed by a class and method name + + + in + in + in that is used in stack frame it is followed by file name + + + Error output + Error output + + + + Standard output + Standard output + + + + Discovered {0} tests in {1} assemblies. + Discovered {0} tests in {1} assemblies. + 0 is number of tests, 1 is count of assemblies + + + Discovered {0} tests. + Discovered {0} tests. + 0 is number of tests + + + Test run summary: + Test run summary: + + + + Zero tests ran + Zero tests ran + + DATA_COLLECTOR_NAME DATA_COLLECTOR_NAME diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.de.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.de.xlf index 4e49829eae4b..7f363065066d 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.de.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.de.xlf @@ -2,6 +2,26 @@ + + Aborted + Aborted + + + + {0} tests running + {0} tests running + + + + and {0} more + and {0} more + + + + Actual + Actual + + .NET Test Driver .NET-Testtreiber @@ -12,6 +32,16 @@ Testtreiber für die .NET-Plattform + + canceled + canceled + + + + Canceling the test session... + Canceling the test session... + + The additional msbuild parameters to pass. Die zusätzlichen MSBuild-Parameter, die weitergegeben werden sollen. @@ -315,11 +345,71 @@ Das angegebene Verzeichnis wird erstellt, wenn es nicht vorhanden ist. Test application(s) that support VSTest are not supported. + + Console is already in batching mode. + Console is already in batching mode. + Exception that is thrown when console is already collecting input into a batch (into a string builder), and code asks to enable batching mode again. + DUMP_TYPE DUMP_TYPE + + Discovered {0} tests in assembly + Discovered {0} tests in assembly + 0 is count, the sentence is followed by the path of the assebly + + + Discovering tests from + Discovering tests from + + + + Exit code + Exit code + + + + Expected + Expected + + + + Failed + Failed + + + + failed + failed + + + + failed with {0} error(s) + failed with {0} error(s) + + + + failed with {0} error(s) and {1} warning(s) + failed with {0} error(s) and {1} warning(s) + + + + failed with {0} warning(s) + failed with {0} warning(s) + + + + For test + For test + is followed by test name + + + from + from + from followed by a file name to point to the file from which test is originating + DUMP_TYPE DUMP_TYPE @@ -335,6 +425,16 @@ Das angegebene Verzeichnis wird erstellt, wenn es nicht vorhanden ist. Die folgenden Argumente wurden ignoriert: {0} + + In process file artifacts produced: + In process file artifacts produced: + + + + Minimum expected tests policy violation, tests ran {0}, minimum expected {1} + Minimum expected tests policy violation, tests ran {0}, minimum expected {1} + {0}, {1} number of tests + No serializer registered with ID '{0}' Es ist kein Serialisierungsmodul mit der ID "{0}" registriert @@ -345,6 +445,21 @@ Das angegebene Verzeichnis wird erstellt, wenn es nicht vorhanden ist. Es ist kein Serialisierungsmodul mit dem Typ "{0}" registriert + + Out of process file artifacts produced: + Out of process file artifacts produced: + + + + Passed + Passed + + + + passed + passed + + @@ -362,6 +477,56 @@ RunSettings-Argumente: Beispiel: "dotnet test -- MSTest.DeploymentEnabled=false MSTest.MapInconclusiveToFailed=True" + + Running tests from + Running tests from + + + + skipped + skipped + + + + at + at + at that is used for a stack frame location in a stack trace, is followed by a class and method name + + + in + in + in that is used in stack frame it is followed by file name + + + Error output + Error output + + + + Standard output + Standard output + + + + Discovered {0} tests in {1} assemblies. + Discovered {0} tests in {1} assemblies. + 0 is number of tests, 1 is count of assemblies + + + Discovered {0} tests. + Discovered {0} tests. + 0 is number of tests + + + Test run summary: + Test run summary: + + + + Zero tests ran + Zero tests ran + + DATA_COLLECTOR_NAME DATA_COLLECTOR_NAME diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.es.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.es.xlf index 2c8e4e80afcd..759ad3d5c656 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.es.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.es.xlf @@ -2,6 +2,26 @@ + + Aborted + Aborted + + + + {0} tests running + {0} tests running + + + + and {0} more + and {0} more + + + + Actual + Actual + + .NET Test Driver Controlador de pruebas de .NET @@ -12,6 +32,16 @@ Controlador de pruebas para la plataforma .NET + + canceled + canceled + + + + Canceling the test session... + Canceling the test session... + + The additional msbuild parameters to pass. Parámetros adicionales de msbuild que se van a pasar. @@ -317,11 +347,71 @@ Si no existe, se creará el directorio especificado. Test application(s) that support VSTest are not supported. + + Console is already in batching mode. + Console is already in batching mode. + Exception that is thrown when console is already collecting input into a batch (into a string builder), and code asks to enable batching mode again. + DUMP_TYPE DUMP_TYPE + + Discovered {0} tests in assembly + Discovered {0} tests in assembly + 0 is count, the sentence is followed by the path of the assebly + + + Discovering tests from + Discovering tests from + + + + Exit code + Exit code + + + + Expected + Expected + + + + Failed + Failed + + + + failed + failed + + + + failed with {0} error(s) + failed with {0} error(s) + + + + failed with {0} error(s) and {1} warning(s) + failed with {0} error(s) and {1} warning(s) + + + + failed with {0} warning(s) + failed with {0} warning(s) + + + + For test + For test + is followed by test name + + + from + from + from followed by a file name to point to the file from which test is originating + DUMP_TYPE DUMP_TYPE @@ -337,6 +427,16 @@ Si no existe, se creará el directorio especificado. Se han omitido los argumentos siguientes: "{0}" + + In process file artifacts produced: + In process file artifacts produced: + + + + Minimum expected tests policy violation, tests ran {0}, minimum expected {1} + Minimum expected tests policy violation, tests ran {0}, minimum expected {1} + {0}, {1} number of tests + No serializer registered with ID '{0}' No hay ningún serializador registrado con el id. '{0}' @@ -347,6 +447,21 @@ Si no existe, se creará el directorio especificado. No hay ningún serializador registrado con el tipo '{0}' + + Out of process file artifacts produced: + Out of process file artifacts produced: + + + + Passed + Passed + + + + passed + passed + + @@ -364,6 +479,56 @@ Argumentos RunSettings: Ejemplo: dotnet test -- MSTest.DeploymentEnabled=false MSTest.MapInconclusiveToFailed=True + + Running tests from + Running tests from + + + + skipped + skipped + + + + at + at + at that is used for a stack frame location in a stack trace, is followed by a class and method name + + + in + in + in that is used in stack frame it is followed by file name + + + Error output + Error output + + + + Standard output + Standard output + + + + Discovered {0} tests in {1} assemblies. + Discovered {0} tests in {1} assemblies. + 0 is number of tests, 1 is count of assemblies + + + Discovered {0} tests. + Discovered {0} tests. + 0 is number of tests + + + Test run summary: + Test run summary: + + + + Zero tests ran + Zero tests ran + + DATA_COLLECTOR_NAME DATA_COLLECTOR_NAME diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.fr.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.fr.xlf index 49049418f185..158ab5127a98 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.fr.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.fr.xlf @@ -2,6 +2,26 @@ + + Aborted + Aborted + + + + {0} tests running + {0} tests running + + + + and {0} more + and {0} more + + + + Actual + Actual + + .NET Test Driver Pilote de test .NET @@ -12,6 +32,16 @@ Pilote de test pour la plateforme .NET + + canceled + canceled + + + + Canceling the test session... + Canceling the test session... + + The additional msbuild parameters to pass. Paramètres msbuild supplémentaires à transmettre. @@ -315,11 +345,71 @@ Le répertoire spécifié est créé, s'il n'existe pas déjà. Test application(s) that support VSTest are not supported. + + Console is already in batching mode. + Console is already in batching mode. + Exception that is thrown when console is already collecting input into a batch (into a string builder), and code asks to enable batching mode again. + DUMP_TYPE DUMP_TYPE + + Discovered {0} tests in assembly + Discovered {0} tests in assembly + 0 is count, the sentence is followed by the path of the assebly + + + Discovering tests from + Discovering tests from + + + + Exit code + Exit code + + + + Expected + Expected + + + + Failed + Failed + + + + failed + failed + + + + failed with {0} error(s) + failed with {0} error(s) + + + + failed with {0} error(s) and {1} warning(s) + failed with {0} error(s) and {1} warning(s) + + + + failed with {0} warning(s) + failed with {0} warning(s) + + + + For test + For test + is followed by test name + + + from + from + from followed by a file name to point to the file from which test is originating + DUMP_TYPE DUMP_TYPE @@ -335,6 +425,16 @@ Le répertoire spécifié est créé, s'il n'existe pas déjà. Les arguments suivants ont été ignorés : "{0}" + + In process file artifacts produced: + In process file artifacts produced: + + + + Minimum expected tests policy violation, tests ran {0}, minimum expected {1} + Minimum expected tests policy violation, tests ran {0}, minimum expected {1} + {0}, {1} number of tests + No serializer registered with ID '{0}' Aucun sérialiseur inscrit avec l’ID « {0} » @@ -345,6 +445,21 @@ Le répertoire spécifié est créé, s'il n'existe pas déjà. Aucun sérialiseur inscrit avec le type « {0} » + + Out of process file artifacts produced: + Out of process file artifacts produced: + + + + Passed + Passed + + + + passed + passed + + @@ -362,6 +477,56 @@ Arguments de RunSettings : Exemple : dotnet test -- MSTest.DeploymentEnabled=false MSTest.MapInconclusiveToFailed=True + + Running tests from + Running tests from + + + + skipped + skipped + + + + at + at + at that is used for a stack frame location in a stack trace, is followed by a class and method name + + + in + in + in that is used in stack frame it is followed by file name + + + Error output + Error output + + + + Standard output + Standard output + + + + Discovered {0} tests in {1} assemblies. + Discovered {0} tests in {1} assemblies. + 0 is number of tests, 1 is count of assemblies + + + Discovered {0} tests. + Discovered {0} tests. + 0 is number of tests + + + Test run summary: + Test run summary: + + + + Zero tests ran + Zero tests ran + + DATA_COLLECTOR_NAME DATA_COLLECTOR_NAME diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.it.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.it.xlf index 3cd092f61652..19be826da372 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.it.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.it.xlf @@ -2,6 +2,26 @@ + + Aborted + Aborted + + + + {0} tests running + {0} tests running + + + + and {0} more + and {0} more + + + + Actual + Actual + + .NET Test Driver Driver di test .NET @@ -12,6 +32,16 @@ Driver di test per la piattaforma .NET + + canceled + canceled + + + + Canceling the test session... + Canceling the test session... + + The additional msbuild parameters to pass. Parametri msbuild aggiuntivi da passare. @@ -315,11 +345,71 @@ Se non esiste, la directory specificata verrà creata. Test application(s) that support VSTest are not supported. + + Console is already in batching mode. + Console is already in batching mode. + Exception that is thrown when console is already collecting input into a batch (into a string builder), and code asks to enable batching mode again. + DUMP_TYPE DUMP_TYPE + + Discovered {0} tests in assembly + Discovered {0} tests in assembly + 0 is count, the sentence is followed by the path of the assebly + + + Discovering tests from + Discovering tests from + + + + Exit code + Exit code + + + + Expected + Expected + + + + Failed + Failed + + + + failed + failed + + + + failed with {0} error(s) + failed with {0} error(s) + + + + failed with {0} error(s) and {1} warning(s) + failed with {0} error(s) and {1} warning(s) + + + + failed with {0} warning(s) + failed with {0} warning(s) + + + + For test + For test + is followed by test name + + + from + from + from followed by a file name to point to the file from which test is originating + DUMP_TYPE DUMP_TYPE @@ -335,6 +425,16 @@ Se non esiste, la directory specificata verrà creata. Gli argomenti seguenti sono stati ignorati: "{0}" + + In process file artifacts produced: + In process file artifacts produced: + + + + Minimum expected tests policy violation, tests ran {0}, minimum expected {1} + Minimum expected tests policy violation, tests ran {0}, minimum expected {1} + {0}, {1} number of tests + No serializer registered with ID '{0}' Nessun serializzatore registrato con ID '{0}' @@ -345,6 +445,21 @@ Se non esiste, la directory specificata verrà creata. Nessun serializzatore registrato con tipo '{0}' + + Out of process file artifacts produced: + Out of process file artifacts produced: + + + + Passed + Passed + + + + passed + passed + + @@ -362,6 +477,56 @@ Argomenti di RunSettings: Esempio: dotnet test -- MSTest.DeploymentEnabled=false MSTest.MapInconclusiveToFailed=True + + Running tests from + Running tests from + + + + skipped + skipped + + + + at + at + at that is used for a stack frame location in a stack trace, is followed by a class and method name + + + in + in + in that is used in stack frame it is followed by file name + + + Error output + Error output + + + + Standard output + Standard output + + + + Discovered {0} tests in {1} assemblies. + Discovered {0} tests in {1} assemblies. + 0 is number of tests, 1 is count of assemblies + + + Discovered {0} tests. + Discovered {0} tests. + 0 is number of tests + + + Test run summary: + Test run summary: + + + + Zero tests ran + Zero tests ran + + DATA_COLLECTOR_NAME DATA_COLLECTOR_NAME diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ja.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ja.xlf index 5f02efcee8de..2a42214138ea 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ja.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ja.xlf @@ -2,6 +2,26 @@ + + Aborted + Aborted + + + + {0} tests running + {0} tests running + + + + and {0} more + and {0} more + + + + Actual + Actual + + .NET Test Driver .NET Test Driver @@ -12,6 +32,16 @@ .NET Platform 用テスト ドライバー + + canceled + canceled + + + + Canceling the test session... + Canceling the test session... + + The additional msbuild parameters to pass. 渡す追加の msbuild パラメーター。 @@ -315,11 +345,71 @@ The specified directory will be created if it does not exist. Test application(s) that support VSTest are not supported. + + Console is already in batching mode. + Console is already in batching mode. + Exception that is thrown when console is already collecting input into a batch (into a string builder), and code asks to enable batching mode again. + DUMP_TYPE DUMP_TYPE + + Discovered {0} tests in assembly + Discovered {0} tests in assembly + 0 is count, the sentence is followed by the path of the assebly + + + Discovering tests from + Discovering tests from + + + + Exit code + Exit code + + + + Expected + Expected + + + + Failed + Failed + + + + failed + failed + + + + failed with {0} error(s) + failed with {0} error(s) + + + + failed with {0} error(s) and {1} warning(s) + failed with {0} error(s) and {1} warning(s) + + + + failed with {0} warning(s) + failed with {0} warning(s) + + + + For test + For test + is followed by test name + + + from + from + from followed by a file name to point to the file from which test is originating + DUMP_TYPE DUMP_TYPE @@ -335,6 +425,16 @@ The specified directory will be created if it does not exist. 次の引数は無視されました: "{0}" + + In process file artifacts produced: + In process file artifacts produced: + + + + Minimum expected tests policy violation, tests ran {0}, minimum expected {1} + Minimum expected tests policy violation, tests ran {0}, minimum expected {1} + {0}, {1} number of tests + No serializer registered with ID '{0}' ID '{0}' で登録されたシリアライザーがありません @@ -345,6 +445,21 @@ The specified directory will be created if it does not exist. 型 '{0}' で登録されたシリアライザーがありません + + Out of process file artifacts produced: + Out of process file artifacts produced: + + + + Passed + Passed + + + + passed + passed + + @@ -362,6 +477,56 @@ RunSettings 引数: 例: dotnet test -- MSTest.DeploymentEnabled=false MSTest.MapInconclusiveToFailed=True + + Running tests from + Running tests from + + + + skipped + skipped + + + + at + at + at that is used for a stack frame location in a stack trace, is followed by a class and method name + + + in + in + in that is used in stack frame it is followed by file name + + + Error output + Error output + + + + Standard output + Standard output + + + + Discovered {0} tests in {1} assemblies. + Discovered {0} tests in {1} assemblies. + 0 is number of tests, 1 is count of assemblies + + + Discovered {0} tests. + Discovered {0} tests. + 0 is number of tests + + + Test run summary: + Test run summary: + + + + Zero tests ran + Zero tests ran + + DATA_COLLECTOR_NAME DATA_COLLECTOR_NAME diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ko.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ko.xlf index d8b479b39995..9d51e9159532 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ko.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ko.xlf @@ -2,6 +2,26 @@ + + Aborted + Aborted + + + + {0} tests running + {0} tests running + + + + and {0} more + and {0} more + + + + Actual + Actual + + .NET Test Driver .NET 테스트 드라이버 @@ -12,6 +32,16 @@ .NET 플랫폼용 테스트 드라이버입니다. + + canceled + canceled + + + + Canceling the test session... + Canceling the test session... + + The additional msbuild parameters to pass. 전달할 추가 msbuild 매개 변수입니다. @@ -315,11 +345,71 @@ The specified directory will be created if it does not exist. Test application(s) that support VSTest are not supported. + + Console is already in batching mode. + Console is already in batching mode. + Exception that is thrown when console is already collecting input into a batch (into a string builder), and code asks to enable batching mode again. + DUMP_TYPE DUMP_TYPE + + Discovered {0} tests in assembly + Discovered {0} tests in assembly + 0 is count, the sentence is followed by the path of the assebly + + + Discovering tests from + Discovering tests from + + + + Exit code + Exit code + + + + Expected + Expected + + + + Failed + Failed + + + + failed + failed + + + + failed with {0} error(s) + failed with {0} error(s) + + + + failed with {0} error(s) and {1} warning(s) + failed with {0} error(s) and {1} warning(s) + + + + failed with {0} warning(s) + failed with {0} warning(s) + + + + For test + For test + is followed by test name + + + from + from + from followed by a file name to point to the file from which test is originating + DUMP_TYPE DUMP_TYPE @@ -335,6 +425,16 @@ The specified directory will be created if it does not exist. "{0}" 인수가 무시되었습니다. + + In process file artifacts produced: + In process file artifacts produced: + + + + Minimum expected tests policy violation, tests ran {0}, minimum expected {1} + Minimum expected tests policy violation, tests ran {0}, minimum expected {1} + {0}, {1} number of tests + No serializer registered with ID '{0}' ID '{0}'(으)로 등록된 직렬 변환기가 없습니다. @@ -345,6 +445,21 @@ The specified directory will be created if it does not exist. '{0}' 형식으로 등록된 직렬 변환기가 없습니다. + + Out of process file artifacts produced: + Out of process file artifacts produced: + + + + Passed + Passed + + + + passed + passed + + @@ -362,6 +477,56 @@ RunSettings 인수: 예: dotnet test -- MSTest.DeploymentEnabled=false MSTest.MapInconclusiveToFailed=True + + Running tests from + Running tests from + + + + skipped + skipped + + + + at + at + at that is used for a stack frame location in a stack trace, is followed by a class and method name + + + in + in + in that is used in stack frame it is followed by file name + + + Error output + Error output + + + + Standard output + Standard output + + + + Discovered {0} tests in {1} assemblies. + Discovered {0} tests in {1} assemblies. + 0 is number of tests, 1 is count of assemblies + + + Discovered {0} tests. + Discovered {0} tests. + 0 is number of tests + + + Test run summary: + Test run summary: + + + + Zero tests ran + Zero tests ran + + DATA_COLLECTOR_NAME DATA_COLLECTOR_NAME diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.pl.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.pl.xlf index b7a4dabc55f4..b4ebe3500c92 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.pl.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.pl.xlf @@ -2,6 +2,26 @@ + + Aborted + Aborted + + + + {0} tests running + {0} tests running + + + + and {0} more + and {0} more + + + + Actual + Actual + + .NET Test Driver Sterownik testów platformy .NET @@ -12,6 +32,16 @@ Sterownik testów dla platformy .NET + + canceled + canceled + + + + Canceling the test session... + Canceling the test session... + + The additional msbuild parameters to pass. Dodatkowe parametry programu MSBuild do przekazania. @@ -315,11 +345,71 @@ Jeśli określony katalog nie istnieje, zostanie utworzony. Test application(s) that support VSTest are not supported. + + Console is already in batching mode. + Console is already in batching mode. + Exception that is thrown when console is already collecting input into a batch (into a string builder), and code asks to enable batching mode again. + DUMP_TYPE DUMP_TYPE + + Discovered {0} tests in assembly + Discovered {0} tests in assembly + 0 is count, the sentence is followed by the path of the assebly + + + Discovering tests from + Discovering tests from + + + + Exit code + Exit code + + + + Expected + Expected + + + + Failed + Failed + + + + failed + failed + + + + failed with {0} error(s) + failed with {0} error(s) + + + + failed with {0} error(s) and {1} warning(s) + failed with {0} error(s) and {1} warning(s) + + + + failed with {0} warning(s) + failed with {0} warning(s) + + + + For test + For test + is followed by test name + + + from + from + from followed by a file name to point to the file from which test is originating + DUMP_TYPE DUMP_TYPE @@ -335,6 +425,16 @@ Jeśli określony katalog nie istnieje, zostanie utworzony. Następujące argumenty zostały zignorowane: „{0}” + + In process file artifacts produced: + In process file artifacts produced: + + + + Minimum expected tests policy violation, tests ran {0}, minimum expected {1} + Minimum expected tests policy violation, tests ran {0}, minimum expected {1} + {0}, {1} number of tests + No serializer registered with ID '{0}' Nie zarejestrowano serializatora z identyfikatorem „{0}” @@ -345,6 +445,21 @@ Jeśli określony katalog nie istnieje, zostanie utworzony. Nie zarejestrowano serializatora z typem „{0}” + + Out of process file artifacts produced: + Out of process file artifacts produced: + + + + Passed + Passed + + + + passed + passed + + @@ -362,6 +477,56 @@ Argumenty RunSettings: Przykład: dotnet test -- MSTest.DeploymentEnabled=false MSTest.MapInconclusiveToFailed=True + + Running tests from + Running tests from + + + + skipped + skipped + + + + at + at + at that is used for a stack frame location in a stack trace, is followed by a class and method name + + + in + in + in that is used in stack frame it is followed by file name + + + Error output + Error output + + + + Standard output + Standard output + + + + Discovered {0} tests in {1} assemblies. + Discovered {0} tests in {1} assemblies. + 0 is number of tests, 1 is count of assemblies + + + Discovered {0} tests. + Discovered {0} tests. + 0 is number of tests + + + Test run summary: + Test run summary: + + + + Zero tests ran + Zero tests ran + + DATA_COLLECTOR_NAME DATA_COLLECTOR_NAME diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.pt-BR.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.pt-BR.xlf index 17f1821a040c..c4f3190d52e3 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.pt-BR.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.pt-BR.xlf @@ -2,6 +2,26 @@ + + Aborted + Aborted + + + + {0} tests running + {0} tests running + + + + and {0} more + and {0} more + + + + Actual + Actual + + .NET Test Driver Driver de Teste do .NET @@ -12,6 +32,16 @@ Driver de Teste para a Plataforma .NET + + canceled + canceled + + + + Canceling the test session... + Canceling the test session... + + The additional msbuild parameters to pass. Os parâmetros msbuild adicionais a serem aprovados. @@ -315,11 +345,71 @@ O diretório especificado será criado se ele ainda não existir. Test application(s) that support VSTest are not supported. + + Console is already in batching mode. + Console is already in batching mode. + Exception that is thrown when console is already collecting input into a batch (into a string builder), and code asks to enable batching mode again. + DUMP_TYPE DUMP_TYPE + + Discovered {0} tests in assembly + Discovered {0} tests in assembly + 0 is count, the sentence is followed by the path of the assebly + + + Discovering tests from + Discovering tests from + + + + Exit code + Exit code + + + + Expected + Expected + + + + Failed + Failed + + + + failed + failed + + + + failed with {0} error(s) + failed with {0} error(s) + + + + failed with {0} error(s) and {1} warning(s) + failed with {0} error(s) and {1} warning(s) + + + + failed with {0} warning(s) + failed with {0} warning(s) + + + + For test + For test + is followed by test name + + + from + from + from followed by a file name to point to the file from which test is originating + DUMP_TYPE DUMP_TYPE @@ -335,6 +425,16 @@ O diretório especificado será criado se ele ainda não existir. Os argumentos a seguir foram ignorados: "{0}" + + In process file artifacts produced: + In process file artifacts produced: + + + + Minimum expected tests policy violation, tests ran {0}, minimum expected {1} + Minimum expected tests policy violation, tests ran {0}, minimum expected {1} + {0}, {1} number of tests + No serializer registered with ID '{0}' Nenhum serializador registrado com a ID '{0}' @@ -345,6 +445,21 @@ O diretório especificado será criado se ele ainda não existir. Nenhum serializador registrado com o tipo '{0}' + + Out of process file artifacts produced: + Out of process file artifacts produced: + + + + Passed + Passed + + + + passed + passed + + @@ -362,6 +477,56 @@ Argumentos de RunSettings: Exemplo: dotnet test -- MSTest.DeploymentEnabled=false MSTest.MapInconclusiveToFailed=True + + Running tests from + Running tests from + + + + skipped + skipped + + + + at + at + at that is used for a stack frame location in a stack trace, is followed by a class and method name + + + in + in + in that is used in stack frame it is followed by file name + + + Error output + Error output + + + + Standard output + Standard output + + + + Discovered {0} tests in {1} assemblies. + Discovered {0} tests in {1} assemblies. + 0 is number of tests, 1 is count of assemblies + + + Discovered {0} tests. + Discovered {0} tests. + 0 is number of tests + + + Test run summary: + Test run summary: + + + + Zero tests ran + Zero tests ran + + DATA_COLLECTOR_NAME DATA_COLLECTOR_NAME diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ru.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ru.xlf index 0180857c5c29..74c94acd1e44 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ru.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.ru.xlf @@ -2,6 +2,26 @@ + + Aborted + Aborted + + + + {0} tests running + {0} tests running + + + + and {0} more + and {0} more + + + + Actual + Actual + + .NET Test Driver Драйвер тестов .NET @@ -12,6 +32,16 @@ Драйвер тестов для платформы .NET + + canceled + canceled + + + + Canceling the test session... + Canceling the test session... + + The additional msbuild parameters to pass. Дополнительные передаваемые параметры msbuild. @@ -315,11 +345,71 @@ The specified directory will be created if it does not exist. Test application(s) that support VSTest are not supported. + + Console is already in batching mode. + Console is already in batching mode. + Exception that is thrown when console is already collecting input into a batch (into a string builder), and code asks to enable batching mode again. + DUMP_TYPE DUMP_TYPE + + Discovered {0} tests in assembly + Discovered {0} tests in assembly + 0 is count, the sentence is followed by the path of the assebly + + + Discovering tests from + Discovering tests from + + + + Exit code + Exit code + + + + Expected + Expected + + + + Failed + Failed + + + + failed + failed + + + + failed with {0} error(s) + failed with {0} error(s) + + + + failed with {0} error(s) and {1} warning(s) + failed with {0} error(s) and {1} warning(s) + + + + failed with {0} warning(s) + failed with {0} warning(s) + + + + For test + For test + is followed by test name + + + from + from + from followed by a file name to point to the file from which test is originating + DUMP_TYPE DUMP_TYPE @@ -335,6 +425,16 @@ The specified directory will be created if it does not exist. Следующие аргументы пропущены: "{0}" + + In process file artifacts produced: + In process file artifacts produced: + + + + Minimum expected tests policy violation, tests ran {0}, minimum expected {1} + Minimum expected tests policy violation, tests ran {0}, minimum expected {1} + {0}, {1} number of tests + No serializer registered with ID '{0}' Не зарегистрирован сериализатор с ИД "{0}" @@ -345,6 +445,21 @@ The specified directory will be created if it does not exist. Не зарегистрирован сериализатор с типом "{0}" + + Out of process file artifacts produced: + Out of process file artifacts produced: + + + + Passed + Passed + + + + passed + passed + + @@ -362,6 +477,56 @@ RunSettings arguments: Пример: dotnet test -- MSTest.DeploymentEnabled=false MSTest.MapInconclusiveToFailed=True + + Running tests from + Running tests from + + + + skipped + skipped + + + + at + at + at that is used for a stack frame location in a stack trace, is followed by a class and method name + + + in + in + in that is used in stack frame it is followed by file name + + + Error output + Error output + + + + Standard output + Standard output + + + + Discovered {0} tests in {1} assemblies. + Discovered {0} tests in {1} assemblies. + 0 is number of tests, 1 is count of assemblies + + + Discovered {0} tests. + Discovered {0} tests. + 0 is number of tests + + + Test run summary: + Test run summary: + + + + Zero tests ran + Zero tests ran + + DATA_COLLECTOR_NAME DATA_COLLECTOR_NAME diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.tr.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.tr.xlf index 2f0659ae58cd..2f0947f5b3f6 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.tr.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.tr.xlf @@ -2,6 +2,26 @@ + + Aborted + Aborted + + + + {0} tests running + {0} tests running + + + + and {0} more + and {0} more + + + + Actual + Actual + + .NET Test Driver .NET Test Sürücüsü @@ -12,6 +32,16 @@ .NET Platformunun Test Sürücüsü + + canceled + canceled + + + + Canceling the test session... + Canceling the test session... + + The additional msbuild parameters to pass. Geçirilecek ek msbuild parametreleri. @@ -315,11 +345,71 @@ Belirtilen dizin yoksa oluşturulur. Test application(s) that support VSTest are not supported. + + Console is already in batching mode. + Console is already in batching mode. + Exception that is thrown when console is already collecting input into a batch (into a string builder), and code asks to enable batching mode again. + DUMP_TYPE DÖKÜM_TÜRÜ + + Discovered {0} tests in assembly + Discovered {0} tests in assembly + 0 is count, the sentence is followed by the path of the assebly + + + Discovering tests from + Discovering tests from + + + + Exit code + Exit code + + + + Expected + Expected + + + + Failed + Failed + + + + failed + failed + + + + failed with {0} error(s) + failed with {0} error(s) + + + + failed with {0} error(s) and {1} warning(s) + failed with {0} error(s) and {1} warning(s) + + + + failed with {0} warning(s) + failed with {0} warning(s) + + + + For test + For test + is followed by test name + + + from + from + from followed by a file name to point to the file from which test is originating + DUMP_TYPE DÖKÜM_TÜRÜ @@ -335,6 +425,16 @@ Belirtilen dizin yoksa oluşturulur. Şu bağımsız değişkenler yoksayıldı: "{0}" + + In process file artifacts produced: + In process file artifacts produced: + + + + Minimum expected tests policy violation, tests ran {0}, minimum expected {1} + Minimum expected tests policy violation, tests ran {0}, minimum expected {1} + {0}, {1} number of tests + No serializer registered with ID '{0}' '{0}' kimliğiyle kayıtlı seri hale getirici yok @@ -345,6 +445,21 @@ Belirtilen dizin yoksa oluşturulur. '{0}' türüyle kayıtlı seri hale getirici yok + + Out of process file artifacts produced: + Out of process file artifacts produced: + + + + Passed + Passed + + + + passed + passed + + @@ -362,6 +477,56 @@ RunSettings bağımsız değişkenleri: Örnek: dotnet test -- MSTest.DeploymentEnabled=false MSTest.MapInconclusiveToFailed=True + + Running tests from + Running tests from + + + + skipped + skipped + + + + at + at + at that is used for a stack frame location in a stack trace, is followed by a class and method name + + + in + in + in that is used in stack frame it is followed by file name + + + Error output + Error output + + + + Standard output + Standard output + + + + Discovered {0} tests in {1} assemblies. + Discovered {0} tests in {1} assemblies. + 0 is number of tests, 1 is count of assemblies + + + Discovered {0} tests. + Discovered {0} tests. + 0 is number of tests + + + Test run summary: + Test run summary: + + + + Zero tests ran + Zero tests ran + + DATA_COLLECTOR_NAME DATA_COLLECTOR_NAME diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.zh-Hans.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.zh-Hans.xlf index b178d24834a7..860e119ca0fc 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.zh-Hans.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.zh-Hans.xlf @@ -2,6 +2,26 @@ + + Aborted + Aborted + + + + {0} tests running + {0} tests running + + + + and {0} more + and {0} more + + + + Actual + Actual + + .NET Test Driver .NET 测试驱动程序 @@ -12,6 +32,16 @@ 适用于 .NET 平台的测试驱动程序 + + canceled + canceled + + + + Canceling the test session... + Canceling the test session... + + The additional msbuild parameters to pass. 要传递的其他 msbuild 参数。 @@ -315,11 +345,71 @@ The specified directory will be created if it does not exist. Test application(s) that support VSTest are not supported. + + Console is already in batching mode. + Console is already in batching mode. + Exception that is thrown when console is already collecting input into a batch (into a string builder), and code asks to enable batching mode again. + DUMP_TYPE DUMP_TYPE + + Discovered {0} tests in assembly + Discovered {0} tests in assembly + 0 is count, the sentence is followed by the path of the assebly + + + Discovering tests from + Discovering tests from + + + + Exit code + Exit code + + + + Expected + Expected + + + + Failed + Failed + + + + failed + failed + + + + failed with {0} error(s) + failed with {0} error(s) + + + + failed with {0} error(s) and {1} warning(s) + failed with {0} error(s) and {1} warning(s) + + + + failed with {0} warning(s) + failed with {0} warning(s) + + + + For test + For test + is followed by test name + + + from + from + from followed by a file name to point to the file from which test is originating + DUMP_TYPE DUMP_TYPE @@ -335,6 +425,16 @@ The specified directory will be created if it does not exist. 已忽略以下参数:“{0}” + + In process file artifacts produced: + In process file artifacts produced: + + + + Minimum expected tests policy violation, tests ran {0}, minimum expected {1} + Minimum expected tests policy violation, tests ran {0}, minimum expected {1} + {0}, {1} number of tests + No serializer registered with ID '{0}' 没有使用 ID“{0}”注册序列化程序 @@ -345,6 +445,21 @@ The specified directory will be created if it does not exist. 没有使用类型“{0}”注册序列化程序 + + Out of process file artifacts produced: + Out of process file artifacts produced: + + + + Passed + Passed + + + + passed + passed + + @@ -362,6 +477,56 @@ RunSettings 参数: 示例: dotnet test -- MSTest.DeploymentEnabled=false MSTest.MapInconclusiveToFailed=True + + Running tests from + Running tests from + + + + skipped + skipped + + + + at + at + at that is used for a stack frame location in a stack trace, is followed by a class and method name + + + in + in + in that is used in stack frame it is followed by file name + + + Error output + Error output + + + + Standard output + Standard output + + + + Discovered {0} tests in {1} assemblies. + Discovered {0} tests in {1} assemblies. + 0 is number of tests, 1 is count of assemblies + + + Discovered {0} tests. + Discovered {0} tests. + 0 is number of tests + + + Test run summary: + Test run summary: + + + + Zero tests ran + Zero tests ran + + DATA_COLLECTOR_NAME DATA_COLLECTOR_NAME diff --git a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.zh-Hant.xlf b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.zh-Hant.xlf index bca91b0748e9..c5553741971d 100644 --- a/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.zh-Hant.xlf +++ b/src/Cli/dotnet/commands/dotnet-test/xlf/LocalizableStrings.zh-Hant.xlf @@ -2,6 +2,26 @@ + + Aborted + Aborted + + + + {0} tests running + {0} tests running + + + + and {0} more + and {0} more + + + + Actual + Actual + + .NET Test Driver .NET 測試驅動程式 @@ -12,6 +32,16 @@ 適用於 .NET 平台的測試驅動程式 + + canceled + canceled + + + + Canceling the test session... + Canceling the test session... + + The additional msbuild parameters to pass. 要傳遞的其他 msbuild 參數。 @@ -315,11 +345,71 @@ The specified directory will be created if it does not exist. Test application(s) that support VSTest are not supported. + + Console is already in batching mode. + Console is already in batching mode. + Exception that is thrown when console is already collecting input into a batch (into a string builder), and code asks to enable batching mode again. + DUMP_TYPE DUMP_TYPE + + Discovered {0} tests in assembly + Discovered {0} tests in assembly + 0 is count, the sentence is followed by the path of the assebly + + + Discovering tests from + Discovering tests from + + + + Exit code + Exit code + + + + Expected + Expected + + + + Failed + Failed + + + + failed + failed + + + + failed with {0} error(s) + failed with {0} error(s) + + + + failed with {0} error(s) and {1} warning(s) + failed with {0} error(s) and {1} warning(s) + + + + failed with {0} warning(s) + failed with {0} warning(s) + + + + For test + For test + is followed by test name + + + from + from + from followed by a file name to point to the file from which test is originating + DUMP_TYPE DUMP_TYPE @@ -335,6 +425,16 @@ The specified directory will be created if it does not exist. 已忽略下列引數: "{0}" + + In process file artifacts produced: + In process file artifacts produced: + + + + Minimum expected tests policy violation, tests ran {0}, minimum expected {1} + Minimum expected tests policy violation, tests ran {0}, minimum expected {1} + {0}, {1} number of tests + No serializer registered with ID '{0}' 沒有使用識別碼 '{0}' 註冊的序列化程式 @@ -345,6 +445,21 @@ The specified directory will be created if it does not exist. 沒有使用類型 '{0}' 註冊的序列化程式 + + Out of process file artifacts produced: + Out of process file artifacts produced: + + + + Passed + Passed + + + + passed + passed + + @@ -362,6 +477,56 @@ RunSettings 引數: 範例: dotnet test -- MSTest.DeploymentEnabled=false MSTest.MapInconclusiveToFailed=True + + Running tests from + Running tests from + + + + skipped + skipped + + + + at + at + at that is used for a stack frame location in a stack trace, is followed by a class and method name + + + in + in + in that is used in stack frame it is followed by file name + + + Error output + Error output + + + + Standard output + Standard output + + + + Discovered {0} tests in {1} assemblies. + Discovered {0} tests in {1} assemblies. + 0 is number of tests, 1 is count of assemblies + + + Discovered {0} tests. + Discovered {0} tests. + 0 is number of tests + + + Test run summary: + Test run summary: + + + + Zero tests ran + Zero tests ran + + DATA_COLLECTOR_NAME DATA_COLLECTOR_NAME From 5826ca5257a6dd583903f6484835d3557da4afdc Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 14 Jan 2025 16:28:18 +0100 Subject: [PATCH 109/193] [main] Update dependencies from dotnet/aspnetcore (#45917) Co-authored-by: dotnet-maestro[bot] Co-authored-by: Viktor Hofer --- eng/Version.Details.xml | 76 +++++----- eng/Versions.props | 26 ++-- .../aspnetcore/0001-update-jdk-version.patch | 12 +- ...nable-building-Hosting-Bundle-in-VMR.patch | 130 ------------------ 4 files changed, 53 insertions(+), 191 deletions(-) delete mode 100644 src/SourceBuild/patches/aspnetcore/0002-Enable-building-Hosting-Bundle-in-VMR.patch diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 94871caeefb2..37c5fa8cae2b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -135,13 +135,13 @@ https://github.com/dotnet/roslyn 911cf5f462960bdd01df1ea3c0d0c217b3c3838b - + https://github.com/dotnet/aspnetcore - b2d50f7d2f36638fd2db5caf9cc8b759597058b7 + 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 - + https://github.com/dotnet/aspnetcore - b2d50f7d2f36638fd2db5caf9cc8b759597058b7 + 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 https://github.com/nuget/nuget.client @@ -275,54 +275,54 @@ https://github.com/dotnet/wpf 0f380f765da88c10a361920bec87c4103cf47037 - + https://github.com/dotnet/aspnetcore - b2d50f7d2f36638fd2db5caf9cc8b759597058b7 + 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 - + https://github.com/dotnet/aspnetcore - b2d50f7d2f36638fd2db5caf9cc8b759597058b7 + 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 - + https://github.com/dotnet/aspnetcore - b2d50f7d2f36638fd2db5caf9cc8b759597058b7 + 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 - + https://github.com/dotnet/aspnetcore - b2d50f7d2f36638fd2db5caf9cc8b759597058b7 + 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 - + https://github.com/dotnet/aspnetcore - b2d50f7d2f36638fd2db5caf9cc8b759597058b7 + 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 - + https://github.com/dotnet/aspnetcore - b2d50f7d2f36638fd2db5caf9cc8b759597058b7 + 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 - + https://github.com/dotnet/aspnetcore - b2d50f7d2f36638fd2db5caf9cc8b759597058b7 + 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 - + https://github.com/dotnet/aspnetcore - b2d50f7d2f36638fd2db5caf9cc8b759597058b7 + 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 - + https://github.com/dotnet/aspnetcore - b2d50f7d2f36638fd2db5caf9cc8b759597058b7 + 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 - + https://github.com/dotnet/aspnetcore - b2d50f7d2f36638fd2db5caf9cc8b759597058b7 + 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 - + https://github.com/dotnet/aspnetcore - b2d50f7d2f36638fd2db5caf9cc8b759597058b7 + 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 - + https://github.com/dotnet/aspnetcore - b2d50f7d2f36638fd2db5caf9cc8b759597058b7 + 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 @@ -343,21 +343,21 @@ 46efcec83821d7f0322c01bc9549de83e855dcac - + https://github.com/dotnet/aspnetcore - b2d50f7d2f36638fd2db5caf9cc8b759597058b7 + 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 - + https://github.com/dotnet/aspnetcore - b2d50f7d2f36638fd2db5caf9cc8b759597058b7 + 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 - + https://github.com/dotnet/aspnetcore - b2d50f7d2f36638fd2db5caf9cc8b759597058b7 + 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 - + https://github.com/dotnet/aspnetcore - b2d50f7d2f36638fd2db5caf9cc8b759597058b7 + 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 @@ -509,9 +509,9 @@ https://github.com/dotnet/runtime 010e61a4f46d6d9b544cde169dc034417de7223a - + https://github.com/dotnet/aspnetcore - b2d50f7d2f36638fd2db5caf9cc8b759597058b7 + 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 468b45f140e1..7a222f5fc0f5 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -219,19 +219,19 @@ - 10.0.0-alpha.2.25061.1 - 10.0.0-alpha.2.25061.1 - 10.0.0-alpha.2.25061.1 - 10.0.0-alpha.2.25061.1 - 10.0.0-alpha.2.25061.1 - 10.0.0-alpha.2.25061.1 - 10.0.0-alpha.2.25061.1 - 10.0.0-alpha.2.25061.1 - 10.0.0-alpha.2.25061.1 - 10.0.0-alpha.2.25061.1 - 10.0.0-alpha.2.25061.1 - 10.0.0-alpha.2.25061.1 - 10.0.0-alpha.2.25061.1 + 10.0.0-alpha.2.25064.1 + 10.0.0-alpha.2.25064.1 + 10.0.0-alpha.2.25064.1 + 10.0.0-alpha.2.25064.1 + 10.0.0-alpha.2.25064.1 + 10.0.0-alpha.2.25064.1 + 10.0.0-alpha.2.25064.1 + 10.0.0-alpha.2.25064.1 + 10.0.0-alpha.2.25064.1 + 10.0.0-alpha.2.25064.1 + 10.0.0-alpha.2.25064.1 + 10.0.0-alpha.2.25064.1 + 10.0.0-alpha.2.25064.1 diff --git a/src/SourceBuild/patches/aspnetcore/0001-update-jdk-version.patch b/src/SourceBuild/patches/aspnetcore/0001-update-jdk-version.patch index 5ca01e482b4e..d634b7b15161 100644 --- a/src/SourceBuild/patches/aspnetcore/0001-update-jdk-version.patch +++ b/src/SourceBuild/patches/aspnetcore/0001-update-jdk-version.patch @@ -14,25 +14,17 @@ diff --git a/global.json b/global.json index c1270224e3..bd7a41270d 100644 --- a/global.json +++ b/global.json -@@ -24,7 +24,7 @@ - "xcopy-msbuild": "17.8.5" - }, +@@ -26,3 +26,3 @@ "native-tools": { - "jdk": "11.0.24" + "jdk": "latest" }, - "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25056.1", diff --git a/src/SignalR/clients/java/signalr/build.gradle b/src/SignalR/clients/java/signalr/build.gradle index 895f8c4338..3e192445c9 100644 --- a/src/SignalR/clients/java/signalr/build.gradle +++ b/src/SignalR/clients/java/signalr/build.gradle -@@ -22,7 +22,7 @@ allprojects { - version project.findProperty('packageVersion') ?: "99.99.99-dev" - +@@ -24,3 +24,3 @@ allprojects { java { - sourceCompatibility = 1.8 + sourceCompatibility = 1.9 } - - repositories { diff --git a/src/SourceBuild/patches/aspnetcore/0002-Enable-building-Hosting-Bundle-in-VMR.patch b/src/SourceBuild/patches/aspnetcore/0002-Enable-building-Hosting-Bundle-in-VMR.patch deleted file mode 100644 index 9dd054340a73..000000000000 --- a/src/SourceBuild/patches/aspnetcore/0002-Enable-building-Hosting-Bundle-in-VMR.patch +++ /dev/null @@ -1,130 +0,0 @@ -From 6afaf38a1744e313bb6c10f7691bc55ced4dc3f1 Mon Sep 17 00:00:00 2001 -From: wtgodbe -Date: Mon, 13 Jan 2025 15:00:54 -0800 -Subject: [PATCH] Enable building Hosting Bundle in VMR - -Backport: https://github.com/dotnet/aspnetcore/pull/59857 - ---- - Directory.Build.props | 1 + - eng/Build.props | 14 +++++++++----- - eng/Publishing.props | 5 +++-- - .../WindowsHostingBundle.wixproj | 17 +++++++++++++---- - 4 files changed, 26 insertions(+), 11 deletions(-) - -diff --git a/Directory.Build.props b/Directory.Build.props -index 0321c8b193..b195586ed5 100644 ---- a/Directory.Build.props -+++ b/Directory.Build.props -@@ -239,6 +239,7 @@ - https://dotnetbuilds.blob.core.windows.net/public/ - https://dotnetbuilds.blob.core.windows.net/internal/ - -+ true - $(ArtifactsShippingPackagesDir) - - -diff --git a/eng/Build.props b/eng/Build.props -index 697c3d9ba0..87e19ef337 100644 ---- a/eng/Build.props -+++ b/eng/Build.props -@@ -59,7 +59,7 @@ - - - -- -+ - - -@@ -70,6 +70,14 @@ - - - -+ -+ -+ -+ Platform=x86 -+ $(DotNetBuildPass) -+ -+ -+ - - - -@@ -255,10 +263,6 @@ - - - -- -- -- -- - - - -diff --git a/eng/Publishing.props b/eng/Publishing.props -index 201e167159..a6a89bd0e9 100644 ---- a/eng/Publishing.props -+++ b/eng/Publishing.props -@@ -96,12 +96,13 @@ - - - -- - -- -+ - - -diff --git a/src/Installers/Windows/WindowsHostingBundle/WindowsHostingBundle.wixproj b/src/Installers/Windows/WindowsHostingBundle/WindowsHostingBundle.wixproj -index 3389f389a7..5ef4167757 100644 ---- a/src/Installers/Windows/WindowsHostingBundle/WindowsHostingBundle.wixproj -+++ b/src/Installers/Windows/WindowsHostingBundle/WindowsHostingBundle.wixproj -@@ -99,18 +99,27 @@ - $(BundleNameFull) - - -+ -+ -+ $([MSBuild]::NormalizeDirectory('$(CrossArchitectureInstallerBasePath)', 'aspnetcore', 'Runtime', '$(SharedFxMsiVersion)')) -+ -+ -+ -+ $(CrossArchitectureInstallerBasePath) -+ -+ - -- -+ - x64 - SharedFxRedistInstallerx64 - $(SharedFxPackageVersion) - -- -+ - x86 - SharedFxRedistInstallerx86 - $(SharedFxPackageVersion) - -- -+ - arm64 - SharedFxRedistInstallerarm64 - $(SharedFxPackageVersion) -@@ -127,7 +136,7 @@ - $(DefineConstants);BundleRegManufacturer=$(BundleRegManufacturer) - $(DefineConstants);BundleRegFamily=$(BundleRegFamily) - $(DefineConstants);BundleRegName=$(BundleRegName) -- $(DefineConstants);CrossArchitectureInstallerBasePath=$(CrossArchitectureInstallerBasePath) -+ $(DefineConstants);CrossArchitectureInstallerBasePath=$(CrossArchitectureInstallerBasePathNormalized) - - - - From 64a62de74fe420dd9360f7c2223f4d9367fdf3c8 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 14 Jan 2025 12:53:02 -0800 Subject: [PATCH 110/193] [main] Update dependencies from dotnet/aspnetcore (#45958) Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 76 ++++++++++++++++++++--------------------- eng/Versions.props | 26 +++++++------- 2 files changed, 51 insertions(+), 51 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 795af0ad362f..764422a8429a 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -135,13 +135,13 @@ https://github.com/dotnet/roslyn 911cf5f462960bdd01df1ea3c0d0c217b3c3838b - + https://github.com/dotnet/aspnetcore - 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 + d4880ed4160b476346850ac653ce4b829ab09c94 - + https://github.com/dotnet/aspnetcore - 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 + d4880ed4160b476346850ac653ce4b829ab09c94 https://github.com/nuget/nuget.client @@ -275,54 +275,54 @@ https://github.com/dotnet/wpf 0f380f765da88c10a361920bec87c4103cf47037 - + https://github.com/dotnet/aspnetcore - 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 + d4880ed4160b476346850ac653ce4b829ab09c94 - + https://github.com/dotnet/aspnetcore - 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 + d4880ed4160b476346850ac653ce4b829ab09c94 - + https://github.com/dotnet/aspnetcore - 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 + d4880ed4160b476346850ac653ce4b829ab09c94 - + https://github.com/dotnet/aspnetcore - 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 + d4880ed4160b476346850ac653ce4b829ab09c94 - + https://github.com/dotnet/aspnetcore - 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 + d4880ed4160b476346850ac653ce4b829ab09c94 - + https://github.com/dotnet/aspnetcore - 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 + d4880ed4160b476346850ac653ce4b829ab09c94 - + https://github.com/dotnet/aspnetcore - 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 + d4880ed4160b476346850ac653ce4b829ab09c94 - + https://github.com/dotnet/aspnetcore - 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 + d4880ed4160b476346850ac653ce4b829ab09c94 - + https://github.com/dotnet/aspnetcore - 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 + d4880ed4160b476346850ac653ce4b829ab09c94 - + https://github.com/dotnet/aspnetcore - 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 + d4880ed4160b476346850ac653ce4b829ab09c94 - + https://github.com/dotnet/aspnetcore - 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 + d4880ed4160b476346850ac653ce4b829ab09c94 - + https://github.com/dotnet/aspnetcore - 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 + d4880ed4160b476346850ac653ce4b829ab09c94 @@ -343,21 +343,21 @@ 46efcec83821d7f0322c01bc9549de83e855dcac - + https://github.com/dotnet/aspnetcore - 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 + d4880ed4160b476346850ac653ce4b829ab09c94 - + https://github.com/dotnet/aspnetcore - 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 + d4880ed4160b476346850ac653ce4b829ab09c94 - + https://github.com/dotnet/aspnetcore - 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 + d4880ed4160b476346850ac653ce4b829ab09c94 - + https://github.com/dotnet/aspnetcore - 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 + d4880ed4160b476346850ac653ce4b829ab09c94 @@ -509,9 +509,9 @@ https://github.com/dotnet/runtime 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/aspnetcore - 6ce45ab5b1ae650552e0cb6d41ed25261fa799c4 + d4880ed4160b476346850ac653ce4b829ab09c94 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 2a851872eff0..6d975c75dc92 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -219,19 +219,19 @@ - 10.0.0-alpha.2.25064.1 - 10.0.0-alpha.2.25064.1 - 10.0.0-alpha.2.25064.1 - 10.0.0-alpha.2.25064.1 - 10.0.0-alpha.2.25064.1 - 10.0.0-alpha.2.25064.1 - 10.0.0-alpha.2.25064.1 - 10.0.0-alpha.2.25064.1 - 10.0.0-alpha.2.25064.1 - 10.0.0-alpha.2.25064.1 - 10.0.0-alpha.2.25064.1 - 10.0.0-alpha.2.25064.1 - 10.0.0-alpha.2.25064.1 + 10.0.0-alpha.2.25064.2 + 10.0.0-alpha.2.25064.2 + 10.0.0-alpha.2.25064.2 + 10.0.0-alpha.2.25064.2 + 10.0.0-alpha.2.25064.2 + 10.0.0-alpha.2.25064.2 + 10.0.0-alpha.2.25064.2 + 10.0.0-alpha.2.25064.2 + 10.0.0-alpha.2.25064.2 + 10.0.0-alpha.2.25064.2 + 10.0.0-alpha.2.25064.2 + 10.0.0-alpha.2.25064.2 + 10.0.0-alpha.2.25064.2 From 60e9a46917ff91cc570272ecc83249497c99a79f Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 14 Jan 2025 12:53:14 -0800 Subject: [PATCH 111/193] [main] Update dependencies from dotnet/arcade-services (#45955) Co-authored-by: dotnet-maestro[bot] --- .config/dotnet-tools.json | 2 +- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index d21983af23ee..d20fe7f60048 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -3,7 +3,7 @@ "isRoot": true, "tools": { "microsoft.dotnet.darc": { - "version": "1.1.0-beta.25060.1", + "version": "1.1.0-beta.25064.2", "commands": [ "darc" ] diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 764422a8429a..69a261077d8e 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -593,13 +593,13 @@ https://github.com/dotnet/runtime 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/arcade-services - e38ee48c4ae68ebf65a3a4eab89320d730369cbd + 6c7cc1d1653051d35db84d40ef77ee6702d91436 - + https://github.com/dotnet/arcade-services - e38ee48c4ae68ebf65a3a4eab89320d730369cbd + 6c7cc1d1653051d35db84d40ef77ee6702d91436 https://github.com/dotnet/scenario-tests diff --git a/eng/Versions.props b/eng/Versions.props index 6d975c75dc92..57169f9e8c32 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -74,7 +74,7 @@ - 1.1.0-beta.25060.1 + 1.1.0-beta.25064.2 From b71240e92a10d74d00748d9009d72db3dba04cb3 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 14 Jan 2025 17:29:18 -0600 Subject: [PATCH 112/193] [main] Update dependencies from dotnet/source-build-reference-packages (#45945) Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 69a261077d8e..7345d21df9ff 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -421,9 +421,9 @@ - + https://github.com/dotnet/source-build-reference-packages - 1d0bf118044fc096231bfba85b0cd68aad0d1507 + 72a9d7fde1a2c29e94526085a3b981389da86eb3 From bf67e299e235ecea7b9d441115b09a7d8bfc86c2 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 15 Jan 2025 01:10:01 +0000 Subject: [PATCH 113/193] Update dependencies from https://github.com/dotnet/razor build 20250114.2 Microsoft.SourceBuild.Intermediate.razor , Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal , Microsoft.CodeAnalysis.Razor.Tooling.Internal , Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 9.0.0-preview.25058.6 -> To Version 9.0.0-preview.25064.2 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 7345d21df9ff..64412908644a 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -325,22 +325,22 @@ d4880ed4160b476346850ac653ce4b829ab09c94 - + https://github.com/dotnet/razor - 46efcec83821d7f0322c01bc9549de83e855dcac + d8ea3be41a6286de4ec5a017ec3e762c74aada76 - + https://github.com/dotnet/razor - 46efcec83821d7f0322c01bc9549de83e855dcac + d8ea3be41a6286de4ec5a017ec3e762c74aada76 - + https://github.com/dotnet/razor - 46efcec83821d7f0322c01bc9549de83e855dcac + d8ea3be41a6286de4ec5a017ec3e762c74aada76 - + https://github.com/dotnet/razor - 46efcec83821d7f0322c01bc9549de83e855dcac + d8ea3be41a6286de4ec5a017ec3e762c74aada76 diff --git a/eng/Versions.props b/eng/Versions.props index 57169f9e8c32..810fed4e1513 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -235,9 +235,9 @@ - 9.0.0-preview.25058.6 - 9.0.0-preview.25058.6 - 9.0.0-preview.25058.6 + 9.0.0-preview.25064.2 + 9.0.0-preview.25064.2 + 9.0.0-preview.25064.2 From 901d1fd0774e3164ffd8c4ae2321f0e452f419e9 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 15 Jan 2025 01:10:01 +0000 Subject: [PATCH 114/193] Update dependencies from https://github.com/dotnet/roslyn build 20250114.2 Microsoft.SourceBuild.Intermediate.roslyn , Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset , Microsoft.Net.Compilers.Toolset.Framework From Version 4.13.0-3.25057.3 -> To Version 4.14.0-1.25064.2 --- eng/Version.Details.xml | 36 ++++++++++++++++++------------------ eng/Versions.props | 16 ++++++++-------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 7345d21df9ff..776390617b8d 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -97,43 +97,43 @@ 63a09289745da5c256e7baf5f4194a750b1ec878 - + https://github.com/dotnet/roslyn - 911cf5f462960bdd01df1ea3c0d0c217b3c3838b + f6dc81ce8ee4d193934ed6d55a1f03eb2328698a - + https://github.com/dotnet/roslyn - 911cf5f462960bdd01df1ea3c0d0c217b3c3838b + f6dc81ce8ee4d193934ed6d55a1f03eb2328698a - + https://github.com/dotnet/roslyn - 911cf5f462960bdd01df1ea3c0d0c217b3c3838b + f6dc81ce8ee4d193934ed6d55a1f03eb2328698a - + https://github.com/dotnet/roslyn - 911cf5f462960bdd01df1ea3c0d0c217b3c3838b + f6dc81ce8ee4d193934ed6d55a1f03eb2328698a - + https://github.com/dotnet/roslyn - 911cf5f462960bdd01df1ea3c0d0c217b3c3838b + f6dc81ce8ee4d193934ed6d55a1f03eb2328698a - + https://github.com/dotnet/roslyn - 911cf5f462960bdd01df1ea3c0d0c217b3c3838b + f6dc81ce8ee4d193934ed6d55a1f03eb2328698a - + https://github.com/dotnet/roslyn - 911cf5f462960bdd01df1ea3c0d0c217b3c3838b + f6dc81ce8ee4d193934ed6d55a1f03eb2328698a - + https://github.com/dotnet/roslyn - 911cf5f462960bdd01df1ea3c0d0c217b3c3838b + f6dc81ce8ee4d193934ed6d55a1f03eb2328698a - + https://github.com/dotnet/roslyn - 911cf5f462960bdd01df1ea3c0d0c217b3c3838b + f6dc81ce8ee4d193934ed6d55a1f03eb2328698a https://github.com/dotnet/aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index 57169f9e8c32..0f61a337b906 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -208,14 +208,14 @@ - 4.13.0-3.25057.3 - 4.13.0-3.25057.3 - 4.13.0-3.25057.3 - 4.13.0-3.25057.3 - 4.13.0-3.25057.3 - 4.13.0-3.25057.3 - 4.13.0-3.25057.3 - 4.13.0-3.25057.3 + 4.14.0-1.25064.2 + 4.14.0-1.25064.2 + 4.14.0-1.25064.2 + 4.14.0-1.25064.2 + 4.14.0-1.25064.2 + 4.14.0-1.25064.2 + 4.14.0-1.25064.2 + 4.14.0-1.25064.2 From 509949304e1e0db0f33e37bc3809f879aba92d0a Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 15 Jan 2025 03:08:40 +0000 Subject: [PATCH 115/193] Update dependencies from https://github.com/dotnet/razor build 20250114.4 Microsoft.SourceBuild.Intermediate.razor , Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal , Microsoft.CodeAnalysis.Razor.Tooling.Internal , Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 9.0.0-preview.25058.6 -> To Version 9.0.0-preview.25064.4 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 64412908644a..96aab5b6b502 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -325,22 +325,22 @@ d4880ed4160b476346850ac653ce4b829ab09c94 - + https://github.com/dotnet/razor - d8ea3be41a6286de4ec5a017ec3e762c74aada76 + e076a7b300ad846caa80d5d4533c2afdf121ecd1 - + https://github.com/dotnet/razor - d8ea3be41a6286de4ec5a017ec3e762c74aada76 + e076a7b300ad846caa80d5d4533c2afdf121ecd1 - + https://github.com/dotnet/razor - d8ea3be41a6286de4ec5a017ec3e762c74aada76 + e076a7b300ad846caa80d5d4533c2afdf121ecd1 - + https://github.com/dotnet/razor - d8ea3be41a6286de4ec5a017ec3e762c74aada76 + e076a7b300ad846caa80d5d4533c2afdf121ecd1 diff --git a/eng/Versions.props b/eng/Versions.props index 810fed4e1513..6b22f7dbfb64 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -235,9 +235,9 @@ - 9.0.0-preview.25064.2 - 9.0.0-preview.25064.2 - 9.0.0-preview.25064.2 + 9.0.0-preview.25064.4 + 9.0.0-preview.25064.4 + 9.0.0-preview.25064.4 From 3c52096991a99591ab19a3587aed653f8efd3a17 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 15 Jan 2025 03:51:47 +0000 Subject: [PATCH 116/193] Update dependencies from https://github.com/dotnet/aspnetcore build 20250114.19 dotnet-dev-certs , dotnet-user-jwts , dotnet-user-secrets , Microsoft.AspNetCore.Analyzers , Microsoft.AspNetCore.App.Ref , Microsoft.AspNetCore.App.Ref.Internal , Microsoft.AspNetCore.App.Runtime.win-x64 , Microsoft.AspNetCore.Authorization , Microsoft.AspNetCore.Components.SdkAnalyzers , Microsoft.AspNetCore.Components.Web , Microsoft.AspNetCore.DeveloperCertificates.XPlat , Microsoft.AspNetCore.Mvc.Analyzers , Microsoft.AspNetCore.Mvc.Api.Analyzers , Microsoft.AspNetCore.TestHost , Microsoft.Extensions.FileProviders.Embedded , Microsoft.Extensions.ObjectPool , Microsoft.JSInterop , VS.Redist.Common.AspNetCore.SharedFramework.x64.10.0 , Microsoft.SourceBuild.Intermediate.aspnetcore From Version 10.0.0-alpha.2.25064.2 -> To Version 10.0.0-alpha.2.25064.19 --- eng/Version.Details.xml | 76 ++++++++++++++++++++--------------------- eng/Versions.props | 26 +++++++------- 2 files changed, 51 insertions(+), 51 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 7345d21df9ff..cb302345f132 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -135,13 +135,13 @@ https://github.com/dotnet/roslyn 911cf5f462960bdd01df1ea3c0d0c217b3c3838b - + https://github.com/dotnet/aspnetcore - d4880ed4160b476346850ac653ce4b829ab09c94 + 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 - + https://github.com/dotnet/aspnetcore - d4880ed4160b476346850ac653ce4b829ab09c94 + 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 https://github.com/nuget/nuget.client @@ -275,54 +275,54 @@ https://github.com/dotnet/wpf 0f380f765da88c10a361920bec87c4103cf47037 - + https://github.com/dotnet/aspnetcore - d4880ed4160b476346850ac653ce4b829ab09c94 + 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 - + https://github.com/dotnet/aspnetcore - d4880ed4160b476346850ac653ce4b829ab09c94 + 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 - + https://github.com/dotnet/aspnetcore - d4880ed4160b476346850ac653ce4b829ab09c94 + 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 - + https://github.com/dotnet/aspnetcore - d4880ed4160b476346850ac653ce4b829ab09c94 + 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 - + https://github.com/dotnet/aspnetcore - d4880ed4160b476346850ac653ce4b829ab09c94 + 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 - + https://github.com/dotnet/aspnetcore - d4880ed4160b476346850ac653ce4b829ab09c94 + 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 - + https://github.com/dotnet/aspnetcore - d4880ed4160b476346850ac653ce4b829ab09c94 + 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 - + https://github.com/dotnet/aspnetcore - d4880ed4160b476346850ac653ce4b829ab09c94 + 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 - + https://github.com/dotnet/aspnetcore - d4880ed4160b476346850ac653ce4b829ab09c94 + 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 - + https://github.com/dotnet/aspnetcore - d4880ed4160b476346850ac653ce4b829ab09c94 + 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 - + https://github.com/dotnet/aspnetcore - d4880ed4160b476346850ac653ce4b829ab09c94 + 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 - + https://github.com/dotnet/aspnetcore - d4880ed4160b476346850ac653ce4b829ab09c94 + 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 @@ -343,21 +343,21 @@ 46efcec83821d7f0322c01bc9549de83e855dcac - + https://github.com/dotnet/aspnetcore - d4880ed4160b476346850ac653ce4b829ab09c94 + 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 - + https://github.com/dotnet/aspnetcore - d4880ed4160b476346850ac653ce4b829ab09c94 + 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 - + https://github.com/dotnet/aspnetcore - d4880ed4160b476346850ac653ce4b829ab09c94 + 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 - + https://github.com/dotnet/aspnetcore - d4880ed4160b476346850ac653ce4b829ab09c94 + 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 @@ -509,9 +509,9 @@ https://github.com/dotnet/runtime 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/aspnetcore - d4880ed4160b476346850ac653ce4b829ab09c94 + 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 57169f9e8c32..8dd687ab965c 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -219,19 +219,19 @@ - 10.0.0-alpha.2.25064.2 - 10.0.0-alpha.2.25064.2 - 10.0.0-alpha.2.25064.2 - 10.0.0-alpha.2.25064.2 - 10.0.0-alpha.2.25064.2 - 10.0.0-alpha.2.25064.2 - 10.0.0-alpha.2.25064.2 - 10.0.0-alpha.2.25064.2 - 10.0.0-alpha.2.25064.2 - 10.0.0-alpha.2.25064.2 - 10.0.0-alpha.2.25064.2 - 10.0.0-alpha.2.25064.2 - 10.0.0-alpha.2.25064.2 + 10.0.0-alpha.2.25064.19 + 10.0.0-alpha.2.25064.19 + 10.0.0-alpha.2.25064.19 + 10.0.0-alpha.2.25064.19 + 10.0.0-alpha.2.25064.19 + 10.0.0-alpha.2.25064.19 + 10.0.0-alpha.2.25064.19 + 10.0.0-alpha.2.25064.19 + 10.0.0-alpha.2.25064.19 + 10.0.0-alpha.2.25064.19 + 10.0.0-alpha.2.25064.19 + 10.0.0-alpha.2.25064.19 + 10.0.0-alpha.2.25064.19 From e74cc77c619694a9a46668545d4d1c221d809f79 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 15 Jan 2025 05:02:16 +0000 Subject: [PATCH 117/193] Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250114.2 Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 10.0.606303 -> To Version 10.0.606402 --- eng/Version.Details.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 7345d21df9ff..50d6f7ddc751 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -421,9 +421,9 @@ - + https://github.com/dotnet/source-build-reference-packages - 72a9d7fde1a2c29e94526085a3b981389da86eb3 + 43f2c55c61e6233cc1a5c0d162359367aad8975b From d711370ce3ef92622ec0e73f5887c968403855fa Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 15 Jan 2025 05:02:45 +0000 Subject: [PATCH 118/193] Update dependencies from https://github.com/dotnet/roslyn build 20250114.9 Microsoft.SourceBuild.Intermediate.roslyn , Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset , Microsoft.Net.Compilers.Toolset.Framework From Version 4.13.0-3.25057.3 -> To Version 4.14.0-1.25064.9 --- eng/Version.Details.xml | 36 ++++++++++++++++++------------------ eng/Versions.props | 16 ++++++++-------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 776390617b8d..b5ed13ee08df 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -97,43 +97,43 @@ 63a09289745da5c256e7baf5f4194a750b1ec878 - + https://github.com/dotnet/roslyn - f6dc81ce8ee4d193934ed6d55a1f03eb2328698a + 6b364f666a4014bc8269131ef30df18c16a83511 - + https://github.com/dotnet/roslyn - f6dc81ce8ee4d193934ed6d55a1f03eb2328698a + 6b364f666a4014bc8269131ef30df18c16a83511 - + https://github.com/dotnet/roslyn - f6dc81ce8ee4d193934ed6d55a1f03eb2328698a + 6b364f666a4014bc8269131ef30df18c16a83511 - + https://github.com/dotnet/roslyn - f6dc81ce8ee4d193934ed6d55a1f03eb2328698a + 6b364f666a4014bc8269131ef30df18c16a83511 - + https://github.com/dotnet/roslyn - f6dc81ce8ee4d193934ed6d55a1f03eb2328698a + 6b364f666a4014bc8269131ef30df18c16a83511 - + https://github.com/dotnet/roslyn - f6dc81ce8ee4d193934ed6d55a1f03eb2328698a + 6b364f666a4014bc8269131ef30df18c16a83511 - + https://github.com/dotnet/roslyn - f6dc81ce8ee4d193934ed6d55a1f03eb2328698a + 6b364f666a4014bc8269131ef30df18c16a83511 - + https://github.com/dotnet/roslyn - f6dc81ce8ee4d193934ed6d55a1f03eb2328698a + 6b364f666a4014bc8269131ef30df18c16a83511 - + https://github.com/dotnet/roslyn - f6dc81ce8ee4d193934ed6d55a1f03eb2328698a + 6b364f666a4014bc8269131ef30df18c16a83511 https://github.com/dotnet/aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index 0f61a337b906..7456fa0ce095 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -208,14 +208,14 @@ - 4.14.0-1.25064.2 - 4.14.0-1.25064.2 - 4.14.0-1.25064.2 - 4.14.0-1.25064.2 - 4.14.0-1.25064.2 - 4.14.0-1.25064.2 - 4.14.0-1.25064.2 - 4.14.0-1.25064.2 + 4.14.0-1.25064.9 + 4.14.0-1.25064.9 + 4.14.0-1.25064.9 + 4.14.0-1.25064.9 + 4.14.0-1.25064.9 + 4.14.0-1.25064.9 + 4.14.0-1.25064.9 + 4.14.0-1.25064.9 From d99d09a7bf17adeba92f1b8b8492e7c2fa2e0f26 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 15 Jan 2025 05:03:03 +0000 Subject: [PATCH 119/193] Update dependencies from https://github.com/microsoft/testfx build 20250114.5 Microsoft.Testing.Platform , MSTest From Version 1.6.0-preview.25063.12 -> To Version 1.6.0-preview.25064.5 --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 2ec6f332f6ca..9c05e7984e88 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -634,13 +634,13 @@ https://github.com/dotnet/runtime e77011b31a3e5c47d931248a64b47f9b2d47853d - + https://github.com/microsoft/testfx - f9f7749a752c52664b737c3187fad5033ef8b437 + 260ef988f3e05e51c390cf77cbd4acf21b10c609 - + https://github.com/microsoft/testfx - f9f7749a752c52664b737c3187fad5033ef8b437 + 260ef988f3e05e51c390cf77cbd4acf21b10c609 diff --git a/eng/Versions.props b/eng/Versions.props index 0bf6bbdb769f..e9ec81e5d13e 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -28,7 +28,7 @@ true 6.0.1 true - 1.6.0-preview.25063.12 + 1.6.0-preview.25064.5 30 @@ -285,7 +285,7 @@ 6.12.0 6.1.0 4.18.4 - 3.8.0-preview.25063.12 + 3.8.0-preview.25064.5 1.3.2 8.0.0-beta.23607.1 From f22af8434d74fb36271d2283e275bac2391493d8 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 15 Jan 2025 06:14:26 +0000 Subject: [PATCH 120/193] Update dependencies from https://github.com/dotnet/aspnetcore build 20250114.20 dotnet-dev-certs , dotnet-user-jwts , dotnet-user-secrets , Microsoft.AspNetCore.Analyzers , Microsoft.AspNetCore.App.Ref , Microsoft.AspNetCore.App.Ref.Internal , Microsoft.AspNetCore.App.Runtime.win-x64 , Microsoft.AspNetCore.Authorization , Microsoft.AspNetCore.Components.SdkAnalyzers , Microsoft.AspNetCore.Components.Web , Microsoft.AspNetCore.DeveloperCertificates.XPlat , Microsoft.AspNetCore.Mvc.Analyzers , Microsoft.AspNetCore.Mvc.Api.Analyzers , Microsoft.AspNetCore.TestHost , Microsoft.Extensions.FileProviders.Embedded , Microsoft.Extensions.ObjectPool , Microsoft.JSInterop , VS.Redist.Common.AspNetCore.SharedFramework.x64.10.0 , Microsoft.SourceBuild.Intermediate.aspnetcore From Version 10.0.0-alpha.2.25064.2 -> To Version 10.0.0-alpha.2.25064.20 --- eng/Version.Details.xml | 76 ++++++++++++++++++++--------------------- eng/Versions.props | 26 +++++++------- 2 files changed, 51 insertions(+), 51 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index cb302345f132..244ac9516872 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -135,13 +135,13 @@ https://github.com/dotnet/roslyn 911cf5f462960bdd01df1ea3c0d0c217b3c3838b - + https://github.com/dotnet/aspnetcore - 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 + 4fc1a878c77a3b6568b716b9dcebc36447cedc7d - + https://github.com/dotnet/aspnetcore - 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 + 4fc1a878c77a3b6568b716b9dcebc36447cedc7d https://github.com/nuget/nuget.client @@ -275,54 +275,54 @@ https://github.com/dotnet/wpf 0f380f765da88c10a361920bec87c4103cf47037 - + https://github.com/dotnet/aspnetcore - 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 + 4fc1a878c77a3b6568b716b9dcebc36447cedc7d - + https://github.com/dotnet/aspnetcore - 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 + 4fc1a878c77a3b6568b716b9dcebc36447cedc7d - + https://github.com/dotnet/aspnetcore - 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 + 4fc1a878c77a3b6568b716b9dcebc36447cedc7d - + https://github.com/dotnet/aspnetcore - 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 + 4fc1a878c77a3b6568b716b9dcebc36447cedc7d - + https://github.com/dotnet/aspnetcore - 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 + 4fc1a878c77a3b6568b716b9dcebc36447cedc7d - + https://github.com/dotnet/aspnetcore - 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 + 4fc1a878c77a3b6568b716b9dcebc36447cedc7d - + https://github.com/dotnet/aspnetcore - 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 + 4fc1a878c77a3b6568b716b9dcebc36447cedc7d - + https://github.com/dotnet/aspnetcore - 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 + 4fc1a878c77a3b6568b716b9dcebc36447cedc7d - + https://github.com/dotnet/aspnetcore - 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 + 4fc1a878c77a3b6568b716b9dcebc36447cedc7d - + https://github.com/dotnet/aspnetcore - 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 + 4fc1a878c77a3b6568b716b9dcebc36447cedc7d - + https://github.com/dotnet/aspnetcore - 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 + 4fc1a878c77a3b6568b716b9dcebc36447cedc7d - + https://github.com/dotnet/aspnetcore - 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 + 4fc1a878c77a3b6568b716b9dcebc36447cedc7d @@ -343,21 +343,21 @@ 46efcec83821d7f0322c01bc9549de83e855dcac - + https://github.com/dotnet/aspnetcore - 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 + 4fc1a878c77a3b6568b716b9dcebc36447cedc7d - + https://github.com/dotnet/aspnetcore - 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 + 4fc1a878c77a3b6568b716b9dcebc36447cedc7d - + https://github.com/dotnet/aspnetcore - 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 + 4fc1a878c77a3b6568b716b9dcebc36447cedc7d - + https://github.com/dotnet/aspnetcore - 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 + 4fc1a878c77a3b6568b716b9dcebc36447cedc7d @@ -509,9 +509,9 @@ https://github.com/dotnet/runtime 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/aspnetcore - 8aec8fd9ce559aa3784d00dc68676ef1d6fe0c61 + 4fc1a878c77a3b6568b716b9dcebc36447cedc7d https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 8dd687ab965c..d8cf12bb9a19 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -219,19 +219,19 @@ - 10.0.0-alpha.2.25064.19 - 10.0.0-alpha.2.25064.19 - 10.0.0-alpha.2.25064.19 - 10.0.0-alpha.2.25064.19 - 10.0.0-alpha.2.25064.19 - 10.0.0-alpha.2.25064.19 - 10.0.0-alpha.2.25064.19 - 10.0.0-alpha.2.25064.19 - 10.0.0-alpha.2.25064.19 - 10.0.0-alpha.2.25064.19 - 10.0.0-alpha.2.25064.19 - 10.0.0-alpha.2.25064.19 - 10.0.0-alpha.2.25064.19 + 10.0.0-alpha.2.25064.20 + 10.0.0-alpha.2.25064.20 + 10.0.0-alpha.2.25064.20 + 10.0.0-alpha.2.25064.20 + 10.0.0-alpha.2.25064.20 + 10.0.0-alpha.2.25064.20 + 10.0.0-alpha.2.25064.20 + 10.0.0-alpha.2.25064.20 + 10.0.0-alpha.2.25064.20 + 10.0.0-alpha.2.25064.20 + 10.0.0-alpha.2.25064.20 + 10.0.0-alpha.2.25064.20 + 10.0.0-alpha.2.25064.20 From e06c0857fc8dfede49185fa865546a0427128577 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 15 Jan 2025 06:34:41 +0000 Subject: [PATCH 121/193] [main] Update dependencies from dotnet/templating (#45949) Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 7345d21df9ff..782869a10572 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,18 +1,18 @@ - + https://github.com/dotnet/templating - 4a9cd8c45d20e89f5230050bf34492964f2260cb + 8e895f2efee3203a8c134e3ba52da85305f7db7d - + https://github.com/dotnet/templating - 4a9cd8c45d20e89f5230050bf34492964f2260cb + 8e895f2efee3203a8c134e3ba52da85305f7db7d - + https://github.com/dotnet/templating - 4a9cd8c45d20e89f5230050bf34492964f2260cb + 8e895f2efee3203a8c134e3ba52da85305f7db7d diff --git a/eng/Versions.props b/eng/Versions.props index 57169f9e8c32..4c1f48a14add 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -191,13 +191,13 @@ - 10.0.100-alpha.1.25062.9 + 10.0.100-alpha.1.25063.5 $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) - 10.0.100-alpha.1.25062.9 + 10.0.100-alpha.1.25063.5 $(MicrosoftTemplateEngineMocksPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineMocksPackageVersion) From 1e1fb7d53045d4d6f1c16c5b6f6f2b85bc12e079 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 15 Jan 2025 06:38:35 +0000 Subject: [PATCH 122/193] Update dependencies from https://github.com/dotnet/templating build 20250114.3 Microsoft.SourceBuild.Intermediate.templating , Microsoft.TemplateEngine.Abstractions , Microsoft.TemplateEngine.Mocks From Version 10.0.100-alpha.1.25063.5 -> To Version 10.0.100-alpha.1.25064.3 --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 782869a10572..a05d74fb65ee 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,18 +1,18 @@ - + https://github.com/dotnet/templating - 8e895f2efee3203a8c134e3ba52da85305f7db7d + 130f01eed959cbfe329cab2abcde501a1699df50 - + https://github.com/dotnet/templating - 8e895f2efee3203a8c134e3ba52da85305f7db7d + 130f01eed959cbfe329cab2abcde501a1699df50 - + https://github.com/dotnet/templating - 8e895f2efee3203a8c134e3ba52da85305f7db7d + 130f01eed959cbfe329cab2abcde501a1699df50 diff --git a/eng/Versions.props b/eng/Versions.props index 4c1f48a14add..0d31e188d141 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -191,13 +191,13 @@ - 10.0.100-alpha.1.25063.5 + 10.0.100-alpha.1.25064.3 $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) - 10.0.100-alpha.1.25063.5 + 10.0.100-alpha.1.25064.3 $(MicrosoftTemplateEngineMocksPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineMocksPackageVersion) From 1fc00afc735c644e9585aeafc6bf5180133246b5 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 15 Jan 2025 07:01:42 +0000 Subject: [PATCH 123/193] [main] Update dependencies from dotnet/sourcelink (#45946) Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 12 ++++++------ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 782869a10572..75bb99fe8891 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -430,34 +430,34 @@ https://github.com/dotnet/deployment-tools c7bcd7d32f7744af89dfd031a9b2085e3004fd9c - + https://github.com/dotnet/sourcelink - 5ea73491228574eb803a676a7248b3fc9e602d4d + 36148468d5b0bd5041b3b8276b4706872fd07996 - + https://github.com/dotnet/sourcelink - 5ea73491228574eb803a676a7248b3fc9e602d4d + 36148468d5b0bd5041b3b8276b4706872fd07996 - + https://github.com/dotnet/sourcelink - 5ea73491228574eb803a676a7248b3fc9e602d4d + 36148468d5b0bd5041b3b8276b4706872fd07996 - + https://github.com/dotnet/sourcelink - 5ea73491228574eb803a676a7248b3fc9e602d4d + 36148468d5b0bd5041b3b8276b4706872fd07996 - + https://github.com/dotnet/sourcelink - 5ea73491228574eb803a676a7248b3fc9e602d4d + 36148468d5b0bd5041b3b8276b4706872fd07996 - + https://github.com/dotnet/sourcelink - 5ea73491228574eb803a676a7248b3fc9e602d4d + 36148468d5b0bd5041b3b8276b4706872fd07996 - + https://github.com/dotnet/sourcelink - 5ea73491228574eb803a676a7248b3fc9e602d4d + 36148468d5b0bd5041b3b8276b4706872fd07996 diff --git a/eng/Versions.props b/eng/Versions.props index 4c1f48a14add..2ae9fc8fde94 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -268,12 +268,12 @@ - 9.0.0-beta.25061.1 - 9.0.0-beta.25061.1 - 9.0.0-beta.25061.1 - 9.0.0-beta.25061.1 - 9.0.0-beta.25061.1 - 9.0.0-beta.25061.1 + 9.0.0-beta.25064.1 + 9.0.0-beta.25064.1 + 9.0.0-beta.25064.1 + 9.0.0-beta.25064.1 + 9.0.0-beta.25064.1 + 9.0.0-beta.25064.1 From b3aa66dd1af75d6d3e62f8767f9d1afa0484668c Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 15 Jan 2025 07:03:07 +0000 Subject: [PATCH 124/193] [main] Update dependencies from dotnet/msbuild (#45944) Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 75bb99fe8891..cc19b6ea49af 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -73,18 +73,18 @@ 0de3165cb0d56323b6caaf8e9916d4d9e72da32d - + https://github.com/dotnet/msbuild - f69d764639f8b6f1d49d543b44f1fdbe24d38c37 + 01477742a8fdabf862ae86e5da78ccbd201e89e1 - + https://github.com/dotnet/msbuild - f69d764639f8b6f1d49d543b44f1fdbe24d38c37 + 01477742a8fdabf862ae86e5da78ccbd201e89e1 - + https://github.com/dotnet/msbuild - f69d764639f8b6f1d49d543b44f1fdbe24d38c37 + 01477742a8fdabf862ae86e5da78ccbd201e89e1 diff --git a/eng/Versions.props b/eng/Versions.props index 2ae9fc8fde94..4e301026b55b 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -184,8 +184,8 @@ At usage sites, either we use MicrosoftBuildMinimumVersion, or MicrosoftBuildVersion in source-only modes. Additionally, set the MinimumVSVersion for the installer UI that's required for targeting NetCurrent --> - 17.14.0-preview-25063-01 - 17.14.0-preview-25063-01 + 17.14.0-preview-25064-11 + 17.14.0-preview-25064-11 17.11.4 17.12 From 409962504ad06f93ea56a91cb5b1f0752e49b5f7 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 15 Jan 2025 07:05:15 +0000 Subject: [PATCH 125/193] Update dependencies from https://github.com/dotnet/aspnetcore build 20250114.21 dotnet-dev-certs , dotnet-user-jwts , dotnet-user-secrets , Microsoft.AspNetCore.Analyzers , Microsoft.AspNetCore.App.Ref , Microsoft.AspNetCore.App.Ref.Internal , Microsoft.AspNetCore.App.Runtime.win-x64 , Microsoft.AspNetCore.Authorization , Microsoft.AspNetCore.Components.SdkAnalyzers , Microsoft.AspNetCore.Components.Web , Microsoft.AspNetCore.DeveloperCertificates.XPlat , Microsoft.AspNetCore.Mvc.Analyzers , Microsoft.AspNetCore.Mvc.Api.Analyzers , Microsoft.AspNetCore.TestHost , Microsoft.Extensions.FileProviders.Embedded , Microsoft.Extensions.ObjectPool , Microsoft.JSInterop , VS.Redist.Common.AspNetCore.SharedFramework.x64.10.0 , Microsoft.SourceBuild.Intermediate.aspnetcore From Version 10.0.0-alpha.2.25064.2 -> To Version 10.0.0-alpha.2.25064.21 --- eng/Version.Details.xml | 76 ++++++++++++++++++++--------------------- eng/Versions.props | 26 +++++++------- 2 files changed, 51 insertions(+), 51 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 244ac9516872..8a6195ba16ae 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -135,13 +135,13 @@ https://github.com/dotnet/roslyn 911cf5f462960bdd01df1ea3c0d0c217b3c3838b - + https://github.com/dotnet/aspnetcore - 4fc1a878c77a3b6568b716b9dcebc36447cedc7d + a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f - + https://github.com/dotnet/aspnetcore - 4fc1a878c77a3b6568b716b9dcebc36447cedc7d + a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f https://github.com/nuget/nuget.client @@ -275,54 +275,54 @@ https://github.com/dotnet/wpf 0f380f765da88c10a361920bec87c4103cf47037 - + https://github.com/dotnet/aspnetcore - 4fc1a878c77a3b6568b716b9dcebc36447cedc7d + a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f - + https://github.com/dotnet/aspnetcore - 4fc1a878c77a3b6568b716b9dcebc36447cedc7d + a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f - + https://github.com/dotnet/aspnetcore - 4fc1a878c77a3b6568b716b9dcebc36447cedc7d + a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f - + https://github.com/dotnet/aspnetcore - 4fc1a878c77a3b6568b716b9dcebc36447cedc7d + a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f - + https://github.com/dotnet/aspnetcore - 4fc1a878c77a3b6568b716b9dcebc36447cedc7d + a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f - + https://github.com/dotnet/aspnetcore - 4fc1a878c77a3b6568b716b9dcebc36447cedc7d + a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f - + https://github.com/dotnet/aspnetcore - 4fc1a878c77a3b6568b716b9dcebc36447cedc7d + a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f - + https://github.com/dotnet/aspnetcore - 4fc1a878c77a3b6568b716b9dcebc36447cedc7d + a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f - + https://github.com/dotnet/aspnetcore - 4fc1a878c77a3b6568b716b9dcebc36447cedc7d + a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f - + https://github.com/dotnet/aspnetcore - 4fc1a878c77a3b6568b716b9dcebc36447cedc7d + a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f - + https://github.com/dotnet/aspnetcore - 4fc1a878c77a3b6568b716b9dcebc36447cedc7d + a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f - + https://github.com/dotnet/aspnetcore - 4fc1a878c77a3b6568b716b9dcebc36447cedc7d + a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f @@ -343,21 +343,21 @@ 46efcec83821d7f0322c01bc9549de83e855dcac - + https://github.com/dotnet/aspnetcore - 4fc1a878c77a3b6568b716b9dcebc36447cedc7d + a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f - + https://github.com/dotnet/aspnetcore - 4fc1a878c77a3b6568b716b9dcebc36447cedc7d + a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f - + https://github.com/dotnet/aspnetcore - 4fc1a878c77a3b6568b716b9dcebc36447cedc7d + a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f - + https://github.com/dotnet/aspnetcore - 4fc1a878c77a3b6568b716b9dcebc36447cedc7d + a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f @@ -509,9 +509,9 @@ https://github.com/dotnet/runtime 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/aspnetcore - 4fc1a878c77a3b6568b716b9dcebc36447cedc7d + a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index d8cf12bb9a19..de4c1620b9f1 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -219,19 +219,19 @@ - 10.0.0-alpha.2.25064.20 - 10.0.0-alpha.2.25064.20 - 10.0.0-alpha.2.25064.20 - 10.0.0-alpha.2.25064.20 - 10.0.0-alpha.2.25064.20 - 10.0.0-alpha.2.25064.20 - 10.0.0-alpha.2.25064.20 - 10.0.0-alpha.2.25064.20 - 10.0.0-alpha.2.25064.20 - 10.0.0-alpha.2.25064.20 - 10.0.0-alpha.2.25064.20 - 10.0.0-alpha.2.25064.20 - 10.0.0-alpha.2.25064.20 + 10.0.0-alpha.2.25064.21 + 10.0.0-alpha.2.25064.21 + 10.0.0-alpha.2.25064.21 + 10.0.0-alpha.2.25064.21 + 10.0.0-alpha.2.25064.21 + 10.0.0-alpha.2.25064.21 + 10.0.0-alpha.2.25064.21 + 10.0.0-alpha.2.25064.21 + 10.0.0-alpha.2.25064.21 + 10.0.0-alpha.2.25064.21 + 10.0.0-alpha.2.25064.21 + 10.0.0-alpha.2.25064.21 + 10.0.0-alpha.2.25064.21 From 0b9636866cf094c2ca1e8b97e153079985e45623 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Jare=C5=A1?= Date: Wed, 15 Jan 2025 12:15:41 +0100 Subject: [PATCH 126/193] revert --- src/Cli/dotnet/Properties/launchSettings.json | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/Cli/dotnet/Properties/launchSettings.json b/src/Cli/dotnet/Properties/launchSettings.json index 4060061afe7a..8d0ebf35dc6f 100644 --- a/src/Cli/dotnet/Properties/launchSettings.json +++ b/src/Cli/dotnet/Properties/launchSettings.json @@ -1,13 +1,7 @@ { "profiles": { "dotnet": { - "commandName": "Project", - "commandLineArgs": "test --help", - "workingDirectory": "S:\\t\\mstest216", - "environmentVariables": { - "DOTNET_CLI_TESTINGPLATFORM_ENABLE": "1" - }, - "hotReloadEnabled": false + "commandName": "Project" } } -} +} \ No newline at end of file From 12166676db1667c26357864220d1fad11a248b8b Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 15 Jan 2025 11:22:28 +0000 Subject: [PATCH 127/193] Update dependencies from https://github.com/dotnet/aspnetcore build 20250115.1 dotnet-dev-certs , dotnet-user-jwts , dotnet-user-secrets , Microsoft.AspNetCore.Analyzers , Microsoft.AspNetCore.App.Ref , Microsoft.AspNetCore.App.Ref.Internal , Microsoft.AspNetCore.App.Runtime.win-x64 , Microsoft.AspNetCore.Authorization , Microsoft.AspNetCore.Components.SdkAnalyzers , Microsoft.AspNetCore.Components.Web , Microsoft.AspNetCore.DeveloperCertificates.XPlat , Microsoft.AspNetCore.Mvc.Analyzers , Microsoft.AspNetCore.Mvc.Api.Analyzers , Microsoft.AspNetCore.TestHost , Microsoft.Extensions.FileProviders.Embedded , Microsoft.Extensions.ObjectPool , Microsoft.JSInterop , VS.Redist.Common.AspNetCore.SharedFramework.x64.10.0 , Microsoft.SourceBuild.Intermediate.aspnetcore From Version 10.0.0-alpha.2.25064.2 -> To Version 10.0.0-alpha.2.25065.1 --- eng/Version.Details.xml | 76 ++++++++++++++++++++--------------------- eng/Versions.props | 26 +++++++------- 2 files changed, 51 insertions(+), 51 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 8a6195ba16ae..25f66aa715ef 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -135,13 +135,13 @@ https://github.com/dotnet/roslyn 911cf5f462960bdd01df1ea3c0d0c217b3c3838b - + https://github.com/dotnet/aspnetcore - a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f + e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f - + https://github.com/dotnet/aspnetcore - a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f + e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f https://github.com/nuget/nuget.client @@ -275,54 +275,54 @@ https://github.com/dotnet/wpf 0f380f765da88c10a361920bec87c4103cf47037 - + https://github.com/dotnet/aspnetcore - a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f + e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f - + https://github.com/dotnet/aspnetcore - a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f + e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f - + https://github.com/dotnet/aspnetcore - a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f + e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f - + https://github.com/dotnet/aspnetcore - a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f + e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f - + https://github.com/dotnet/aspnetcore - a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f + e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f - + https://github.com/dotnet/aspnetcore - a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f + e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f - + https://github.com/dotnet/aspnetcore - a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f + e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f - + https://github.com/dotnet/aspnetcore - a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f + e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f - + https://github.com/dotnet/aspnetcore - a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f + e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f - + https://github.com/dotnet/aspnetcore - a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f + e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f - + https://github.com/dotnet/aspnetcore - a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f + e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f - + https://github.com/dotnet/aspnetcore - a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f + e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f @@ -343,21 +343,21 @@ 46efcec83821d7f0322c01bc9549de83e855dcac - + https://github.com/dotnet/aspnetcore - a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f + e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f - + https://github.com/dotnet/aspnetcore - a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f + e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f - + https://github.com/dotnet/aspnetcore - a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f + e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f - + https://github.com/dotnet/aspnetcore - a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f + e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f @@ -509,9 +509,9 @@ https://github.com/dotnet/runtime 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/aspnetcore - a7c124aaf9bebc6969ed91e0daf7928ef67d3e1f + e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index de4c1620b9f1..923f4e1f14db 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -219,19 +219,19 @@ - 10.0.0-alpha.2.25064.21 - 10.0.0-alpha.2.25064.21 - 10.0.0-alpha.2.25064.21 - 10.0.0-alpha.2.25064.21 - 10.0.0-alpha.2.25064.21 - 10.0.0-alpha.2.25064.21 - 10.0.0-alpha.2.25064.21 - 10.0.0-alpha.2.25064.21 - 10.0.0-alpha.2.25064.21 - 10.0.0-alpha.2.25064.21 - 10.0.0-alpha.2.25064.21 - 10.0.0-alpha.2.25064.21 - 10.0.0-alpha.2.25064.21 + 10.0.0-alpha.2.25065.1 + 10.0.0-alpha.2.25065.1 + 10.0.0-alpha.2.25065.1 + 10.0.0-alpha.2.25065.1 + 10.0.0-alpha.2.25065.1 + 10.0.0-alpha.2.25065.1 + 10.0.0-alpha.2.25065.1 + 10.0.0-alpha.2.25065.1 + 10.0.0-alpha.2.25065.1 + 10.0.0-alpha.2.25065.1 + 10.0.0-alpha.2.25065.1 + 10.0.0-alpha.2.25065.1 + 10.0.0-alpha.2.25065.1 From d51c1473c09a7ae07bcaaf2adbbc53c87bfa207c Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Wed, 15 Jan 2025 03:36:48 -0800 Subject: [PATCH 128/193] Use live ILC and Crossgen2 in the SDK's build (#45973) --- Directory.Build.targets | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index cc4e6cd24fea..220f28ba67e1 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -3,7 +3,7 @@ + 1.5.0-preview.24602.2 + 10.0.0-preview.24629.1 diff --git a/src/Cli/dotnet/commands/dotnet-test/IPC/ObjectFieldIds.cs b/src/Cli/dotnet/commands/dotnet-test/IPC/ObjectFieldIds.cs index 01d38f3d9ec2..7aa8a164554d 100644 --- a/src/Cli/dotnet/commands/dotnet-test/IPC/ObjectFieldIds.cs +++ b/src/Cli/dotnet/commands/dotnet-test/IPC/ObjectFieldIds.cs @@ -86,9 +86,9 @@ internal static class FailedTestResultMessageFieldsId public const ushort Duration = 4; public const ushort Reason = 5; public const ushort ExceptionMessageList = 6; - public const ushort StandardOutput = 8; - public const ushort ErrorOutput = 9; - public const ushort SessionUid = 10; + public const ushort StandardOutput = 7; + public const ushort ErrorOutput = 8; + public const ushort SessionUid = 9; } internal static class ExceptionMessageFieldsId diff --git a/src/Cli/dotnet/commands/dotnet-test/IPC/Serializers/TestResultMessagesSerializer.cs b/src/Cli/dotnet/commands/dotnet-test/IPC/Serializers/TestResultMessagesSerializer.cs index 329c54e23b1c..a7bc71aafd7b 100644 --- a/src/Cli/dotnet/commands/dotnet-test/IPC/Serializers/TestResultMessagesSerializer.cs +++ b/src/Cli/dotnet/commands/dotnet-test/IPC/Serializers/TestResultMessagesSerializer.cs @@ -1,8 +1,5 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -#if NETCOREAPP -#endif +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. using System.Diagnostics; @@ -218,7 +215,7 @@ private static List ReadFailedTestMessagesPayload(Strea for (int i = 0; i < length; i++) { string? uid = null, displayName = null, reason = null, sessionUid = null, standardOutput = null, errorOutput = null; - List exceptionMessages = []; + ExceptionMessage[] exceptionMessages = []; byte? state = null; long? duration = null; @@ -252,43 +249,8 @@ private static List ReadFailedTestMessagesPayload(Strea break; case FailedTestResultMessageFieldsId.ExceptionMessageList: - { - int length2 = ReadInt(stream); - for (int k = 0; k < length2; k++) - { - - int fieldCount2 = ReadShort(stream); - - string? errorMessage = null; - string? errorType = null; - string? stackTrace = null; - - for (int l = 0; l < fieldCount2; l++) - { - int fieldId2 = ReadShort(stream); - int fieldSize2 = ReadInt(stream); - - switch (fieldId2) - { - case ExceptionMessageFieldsId.ErrorMessage: - errorMessage = ReadStringValue(stream, fieldSize2); - break; - - case ExceptionMessageFieldsId.ErrorType: - errorType = ReadStringValue(stream, fieldSize2); - break; - - case ExceptionMessageFieldsId.StackTrace: - stackTrace = ReadStringValue(stream, fieldSize2); - break; - } - } - - exceptionMessages.Add(new ExceptionMessage(errorMessage, errorType, stackTrace)); - } - - break; - } + exceptionMessages = ReadExceptionMessagesPayload(stream); + break; case FailedTestResultMessageFieldsId.StandardOutput: standardOutput = ReadStringValue(stream, fieldSize); @@ -308,12 +270,52 @@ private static List ReadFailedTestMessagesPayload(Strea } } - failedTestResultMessages.Add(new FailedTestResultMessage(uid, displayName, state, duration, reason, exceptionMessages.ToArray(), standardOutput, errorOutput, sessionUid)); + failedTestResultMessages.Add(new FailedTestResultMessage(uid, displayName, state, duration, reason, exceptionMessages, standardOutput, errorOutput, sessionUid)); } return failedTestResultMessages; } + private static ExceptionMessage[] ReadExceptionMessagesPayload(Stream stream) + { + var exceptionMessages = new List(); + + int length = ReadInt(stream); + for (int i = 0; i < length; i++) + { + int fieldCount = ReadShort(stream); + + string? errorMessage = null; + string? errorType = null; + string? stackTrace = null; + + for (int j = 0; j < fieldCount; j++) + { + int fieldId = ReadShort(stream); + int fieldSize = ReadInt(stream); + + switch (fieldId) + { + case ExceptionMessageFieldsId.ErrorMessage: + errorMessage = ReadStringValue(stream, fieldSize); + break; + + case ExceptionMessageFieldsId.ErrorType: + errorType = ReadStringValue(stream, fieldSize); + break; + + case ExceptionMessageFieldsId.StackTrace: + stackTrace = ReadStringValue(stream, fieldSize); + break; + } + } + + exceptionMessages.Add(new ExceptionMessage(errorMessage, errorType, stackTrace)); + } + + return exceptionMessages.ToArray(); + } + public void Serialize(object objectToSerialize, Stream stream) { Debug.Assert(stream.CanSeek, "We expect a seekable stream."); diff --git a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs index 40f2d5adf6bc..526fb1803586 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs @@ -19,6 +19,7 @@ internal partial class TestingPlatformCommand : CliCommand, ICustomHelp private MSBuildHandler _msBuildHandler; private TestModulesFilterHandler _testModulesFilterHandler; private TerminalTestReporter _output; + private bool _isHelp; private TestApplicationActionQueue _actionQueue; private List _args; private ConcurrentDictionary _executions = new(); @@ -74,10 +75,11 @@ public int Run(ParseResult parseResult) ShowAssemblyStartAndComplete = true, }); _output = output; - _output.TestExecutionStarted(DateTimeOffset.Now, degreeOfParallelism, _isDiscovery); + _isHelp = false; if (ContainsHelpOption(parseResult.GetArguments())) { + _isHelp = true; _actionQueue = new(degreeOfParallelism, async (TestApplication testApp) => { testApp.HelpRequested += OnHelpRequested; @@ -87,12 +89,13 @@ public int Run(ParseResult parseResult) testApp.ExecutionIdReceived += OnExecutionIdReceived; var result = await testApp.RunAsync(filterModeEnabled, enableHelp: true, builtInOptions); - CompleteRun(); return result; }); } else { + _output.TestExecutionStarted(DateTimeOffset.Now, degreeOfParallelism, _isDiscovery); + _actionQueue = new(degreeOfParallelism, async (TestApplication testApp) => { testApp.HandshakeReceived += OnHandshakeReceived; @@ -209,7 +212,10 @@ private void CompleteRun() { if (Interlocked.CompareExchange(ref _cancelled, 1, 0) == 0) { - _output?.TestExecutionCompleted(DateTimeOffset.Now); + if (!_isHelp) + { + _output?.TestExecutionCompleted(DateTimeOffset.Now); + } } } From d009b24177d12fe469eeaee31d626acf1fd5da24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Jare=C5=A1?= Date: Wed, 15 Jan 2025 15:50:34 +0100 Subject: [PATCH 130/193] Fix spaces --- .../dotnet-test/Terminal/AnsiTerminalTestProgressFrame.cs | 4 +++- src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs | 1 + src/Cli/dotnet/commands/dotnet-test/VSTestTrace.cs | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/AnsiTerminalTestProgressFrame.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/AnsiTerminalTestProgressFrame.cs index 35cd1f7e3813..0e8dbfb3c42a 100644 --- a/src/Cli/dotnet/commands/dotnet-test/Terminal/AnsiTerminalTestProgressFrame.cs +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/AnsiTerminalTestProgressFrame.cs @@ -189,7 +189,9 @@ public void Render(AnsiTerminalTestProgressFrame previousFrame, TestProgressStat // When there is nothing to render, don't write empty lines, e.g. when we start the test run, and then we kick off build // in dotnet test, there is a long pause where we have no assemblies and no test results (yet). - if (progress.Length > 0) + // + // We do pre-allocate the array so it is full of nulls once we allocate it but don't have any items to render yet. + if (progress.Length > 0 && progress.Any(i => i != null)) { terminal.AppendLine(); } diff --git a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs index 526fb1803586..dc3bf4b2de7e 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Concurrent; using System.CommandLine; +using System.Diagnostics; using Microsoft.DotNet.Tools.Test; using Microsoft.TemplateEngine.Cli.Commands; using Microsoft.Testing.Platform.Helpers; diff --git a/src/Cli/dotnet/commands/dotnet-test/VSTestTrace.cs b/src/Cli/dotnet/commands/dotnet-test/VSTestTrace.cs index 7cf88d06fbc9..1e902f7f8801 100644 --- a/src/Cli/dotnet/commands/dotnet-test/VSTestTrace.cs +++ b/src/Cli/dotnet/commands/dotnet-test/VSTestTrace.cs @@ -27,7 +27,7 @@ public static void SafeWriteTrace(Func messageLog) try { - string message = $"[dotnet test - {DateTimeOffset.UtcNow}]{messageLog()}"; + string message = $"[dotnet test - {DateTimeOffset.UtcNow.ToString(format: "MM/dd/yyyy HH:mm:ss.fff")}]{messageLog()}"; if (!string.IsNullOrEmpty(s_traceFilePath)) { lock (s_traceFilePath) From a8667233deaacbef1a43aac0acdb3b486de0e43c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Jare=C5=A1?= Date: Wed, 15 Jan 2025 15:51:48 +0100 Subject: [PATCH 131/193] revert --- src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs index dc3bf4b2de7e..526fb1803586 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs @@ -4,7 +4,6 @@ using System; using System.Collections.Concurrent; using System.CommandLine; -using System.Diagnostics; using Microsoft.DotNet.Tools.Test; using Microsoft.TemplateEngine.Cli.Commands; using Microsoft.Testing.Platform.Helpers; From 225a18fc082213465b162dd176e552f4b3a42e23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Jare=C5=A1?= Date: Wed, 15 Jan 2025 15:56:04 +0100 Subject: [PATCH 132/193] Fix white color after help --- .../dotnet/commands/dotnet-test/TestingPlatformCommand.Help.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.Help.cs b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.Help.cs index 6499eb074933..f3eb09b1f575 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.Help.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.Help.cs @@ -16,6 +16,7 @@ public IEnumerable> CustomHelpLayout() { yield return (context) => { + var originalOutputColor = Console.ForegroundColor; Console.WriteLine("Waiting for options and extensions..."); Run(context.ParseResult); @@ -34,7 +35,7 @@ public IEnumerable> CustomHelpLayout() WriteModulesToMissingOptionsToConsole(moduleToMissingOptions); Console.WriteLine(); - Console.ForegroundColor = ConsoleColor.White; + Console.ForegroundColor = originalOutputColor; }; } From a7be5c7b02d05326b5905ac7a8adf601beb8a797 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Jare=C5=A1?= Date: Wed, 15 Jan 2025 17:50:09 +0100 Subject: [PATCH 133/193] Fix dotnet test integration for testing.platform (#45996) Co-authored-by: Mariam Abdullah <122357303+mariam-abdulla@users.noreply.github.com> --- .../dotnet-test/Terminal/AnsiTerminalTestProgressFrame.cs | 4 +++- .../commands/dotnet-test/TestingPlatformCommand.Help.cs | 3 ++- src/Cli/dotnet/commands/dotnet-test/VSTestTrace.cs | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/AnsiTerminalTestProgressFrame.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/AnsiTerminalTestProgressFrame.cs index 35cd1f7e3813..0e8dbfb3c42a 100644 --- a/src/Cli/dotnet/commands/dotnet-test/Terminal/AnsiTerminalTestProgressFrame.cs +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/AnsiTerminalTestProgressFrame.cs @@ -189,7 +189,9 @@ public void Render(AnsiTerminalTestProgressFrame previousFrame, TestProgressStat // When there is nothing to render, don't write empty lines, e.g. when we start the test run, and then we kick off build // in dotnet test, there is a long pause where we have no assemblies and no test results (yet). - if (progress.Length > 0) + // + // We do pre-allocate the array so it is full of nulls once we allocate it but don't have any items to render yet. + if (progress.Length > 0 && progress.Any(i => i != null)) { terminal.AppendLine(); } diff --git a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.Help.cs b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.Help.cs index 6499eb074933..f3eb09b1f575 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.Help.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.Help.cs @@ -16,6 +16,7 @@ public IEnumerable> CustomHelpLayout() { yield return (context) => { + var originalOutputColor = Console.ForegroundColor; Console.WriteLine("Waiting for options and extensions..."); Run(context.ParseResult); @@ -34,7 +35,7 @@ public IEnumerable> CustomHelpLayout() WriteModulesToMissingOptionsToConsole(moduleToMissingOptions); Console.WriteLine(); - Console.ForegroundColor = ConsoleColor.White; + Console.ForegroundColor = originalOutputColor; }; } diff --git a/src/Cli/dotnet/commands/dotnet-test/VSTestTrace.cs b/src/Cli/dotnet/commands/dotnet-test/VSTestTrace.cs index 7cf88d06fbc9..1e902f7f8801 100644 --- a/src/Cli/dotnet/commands/dotnet-test/VSTestTrace.cs +++ b/src/Cli/dotnet/commands/dotnet-test/VSTestTrace.cs @@ -27,7 +27,7 @@ public static void SafeWriteTrace(Func messageLog) try { - string message = $"[dotnet test - {DateTimeOffset.UtcNow}]{messageLog()}"; + string message = $"[dotnet test - {DateTimeOffset.UtcNow.ToString(format: "MM/dd/yyyy HH:mm:ss.fff")}]{messageLog()}"; if (!string.IsNullOrEmpty(s_traceFilePath)) { lock (s_traceFilePath) From 2bd2ac7cf7b08ab3633d7643cb918f5bd613097c Mon Sep 17 00:00:00 2001 From: Eduardo Villalpando Mello Date: Wed, 15 Jan 2025 10:58:53 -0600 Subject: [PATCH 134/193] Fix broken sln (#45977) --- sdk.sln | 1 + 1 file changed, 1 insertion(+) diff --git a/sdk.sln b/sdk.sln index d95872ed1bfc..2480a90d380b 100644 --- a/sdk.sln +++ b/sdk.sln @@ -512,6 +512,7 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.WebTools.AspireService.Tests", "test\Microsoft.WebTools.AspireService.Tests\Microsoft.WebTools.AspireService.Tests.csproj", "{1F0B4B3C-DC88-4740-B04F-1707102E9930}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VSMSBuildExtensions", "src\VSMSBuildExtensions\VSMSBuildExtensions.proj", "{D9617F63-15F4-4CA2-8ECF-728A94B45D82}" +EndProject Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Microsoft.DotNet.HotReload.Agent", "src\BuiltInTools\HotReloadAgent\Microsoft.DotNet.HotReload.Agent.shproj", "{418B10BD-CA42-49F3-8F4A-D8CC90C8A17D}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.DotNet.HotReload.Agent.Package", "src\BuiltInTools\HotReloadAgent\Microsoft.DotNet.HotReload.Agent.Package.csproj", "{2FF79F82-60C1-349A-4726-7783D5A6D5DF}" From 01dc1d2739b1b26c125dd7520abae886f143d649 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 15 Jan 2025 17:30:46 +0000 Subject: [PATCH 135/193] Update dependencies from https://github.com/dotnet/aspnetcore build 20250115.2 dotnet-dev-certs , dotnet-user-jwts , dotnet-user-secrets , Microsoft.AspNetCore.Analyzers , Microsoft.AspNetCore.App.Ref , Microsoft.AspNetCore.App.Ref.Internal , Microsoft.AspNetCore.App.Runtime.win-x64 , Microsoft.AspNetCore.Authorization , Microsoft.AspNetCore.Components.SdkAnalyzers , Microsoft.AspNetCore.Components.Web , Microsoft.AspNetCore.DeveloperCertificates.XPlat , Microsoft.AspNetCore.Mvc.Analyzers , Microsoft.AspNetCore.Mvc.Api.Analyzers , Microsoft.AspNetCore.TestHost , Microsoft.Extensions.FileProviders.Embedded , Microsoft.Extensions.ObjectPool , Microsoft.JSInterop , VS.Redist.Common.AspNetCore.SharedFramework.x64.10.0 , Microsoft.SourceBuild.Intermediate.aspnetcore From Version 10.0.0-alpha.2.25064.2 -> To Version 10.0.0-alpha.2.25065.2 --- eng/Version.Details.xml | 76 ++++++++++++++++++++--------------------- eng/Versions.props | 26 +++++++------- 2 files changed, 51 insertions(+), 51 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 25f66aa715ef..7e1b4eaeb14f 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -135,13 +135,13 @@ https://github.com/dotnet/roslyn 911cf5f462960bdd01df1ea3c0d0c217b3c3838b - + https://github.com/dotnet/aspnetcore - e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f + c4c8d3a692d2ea94e945276825bb4e7a0b564a3d - + https://github.com/dotnet/aspnetcore - e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f + c4c8d3a692d2ea94e945276825bb4e7a0b564a3d https://github.com/nuget/nuget.client @@ -275,54 +275,54 @@ https://github.com/dotnet/wpf 0f380f765da88c10a361920bec87c4103cf47037 - + https://github.com/dotnet/aspnetcore - e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f + c4c8d3a692d2ea94e945276825bb4e7a0b564a3d - + https://github.com/dotnet/aspnetcore - e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f + c4c8d3a692d2ea94e945276825bb4e7a0b564a3d - + https://github.com/dotnet/aspnetcore - e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f + c4c8d3a692d2ea94e945276825bb4e7a0b564a3d - + https://github.com/dotnet/aspnetcore - e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f + c4c8d3a692d2ea94e945276825bb4e7a0b564a3d - + https://github.com/dotnet/aspnetcore - e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f + c4c8d3a692d2ea94e945276825bb4e7a0b564a3d - + https://github.com/dotnet/aspnetcore - e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f + c4c8d3a692d2ea94e945276825bb4e7a0b564a3d - + https://github.com/dotnet/aspnetcore - e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f + c4c8d3a692d2ea94e945276825bb4e7a0b564a3d - + https://github.com/dotnet/aspnetcore - e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f + c4c8d3a692d2ea94e945276825bb4e7a0b564a3d - + https://github.com/dotnet/aspnetcore - e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f + c4c8d3a692d2ea94e945276825bb4e7a0b564a3d - + https://github.com/dotnet/aspnetcore - e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f + c4c8d3a692d2ea94e945276825bb4e7a0b564a3d - + https://github.com/dotnet/aspnetcore - e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f + c4c8d3a692d2ea94e945276825bb4e7a0b564a3d - + https://github.com/dotnet/aspnetcore - e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f + c4c8d3a692d2ea94e945276825bb4e7a0b564a3d @@ -343,21 +343,21 @@ 46efcec83821d7f0322c01bc9549de83e855dcac - + https://github.com/dotnet/aspnetcore - e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f + c4c8d3a692d2ea94e945276825bb4e7a0b564a3d - + https://github.com/dotnet/aspnetcore - e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f + c4c8d3a692d2ea94e945276825bb4e7a0b564a3d - + https://github.com/dotnet/aspnetcore - e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f + c4c8d3a692d2ea94e945276825bb4e7a0b564a3d - + https://github.com/dotnet/aspnetcore - e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f + c4c8d3a692d2ea94e945276825bb4e7a0b564a3d @@ -509,9 +509,9 @@ https://github.com/dotnet/runtime 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/aspnetcore - e9d445e66138b9b1ec4c266fdd2ac8becfb3c03f + c4c8d3a692d2ea94e945276825bb4e7a0b564a3d https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 923f4e1f14db..6c53f5ce2114 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -219,19 +219,19 @@ - 10.0.0-alpha.2.25065.1 - 10.0.0-alpha.2.25065.1 - 10.0.0-alpha.2.25065.1 - 10.0.0-alpha.2.25065.1 - 10.0.0-alpha.2.25065.1 - 10.0.0-alpha.2.25065.1 - 10.0.0-alpha.2.25065.1 - 10.0.0-alpha.2.25065.1 - 10.0.0-alpha.2.25065.1 - 10.0.0-alpha.2.25065.1 - 10.0.0-alpha.2.25065.1 - 10.0.0-alpha.2.25065.1 - 10.0.0-alpha.2.25065.1 + 10.0.0-alpha.2.25065.2 + 10.0.0-alpha.2.25065.2 + 10.0.0-alpha.2.25065.2 + 10.0.0-alpha.2.25065.2 + 10.0.0-alpha.2.25065.2 + 10.0.0-alpha.2.25065.2 + 10.0.0-alpha.2.25065.2 + 10.0.0-alpha.2.25065.2 + 10.0.0-alpha.2.25065.2 + 10.0.0-alpha.2.25065.2 + 10.0.0-alpha.2.25065.2 + 10.0.0-alpha.2.25065.2 + 10.0.0-alpha.2.25065.2 From 757d99d1b03ed5ee456189182a33ac483a4808c6 Mon Sep 17 00:00:00 2001 From: Jonathan Peppers Date: Wed, 15 Jan 2025 13:10:22 -0600 Subject: [PATCH 136/193] [darc] add ASP.NET dependency for use in dotnet/maui (#45998) In .NET 10, we are facing some errors due to MSBuild files containing mismatched versions: packages\microsoft.aspnetcore.app.internal.assets\10.0.0-alpha.2.25061.1\build\Microsoft.AspNetCore.App.Internal.Assets.targets packages\microsoft.aspnetcore.components.webview\10.0.0-alpha.2.25062.2\build\Microsoft.AspNetCore.Components.WebView.props The version of the first is controlled by the .NET SDK, while the second by the version of the `Microsoft.AspNetCore.Components.WebView` package. To align this, we could add `CoherentParentDependency`: https://github.com/dotnet/aspnetcore a869e316fd72bd8b94dfee3704266260b9c547ab However, this results in an error such as: > darc update-dependencies --coherency-only Checking for coherency updates... fail: Coherency updates failed for the following dependencies: Unable to update Microsoft.AspNetCore.Components.WebView to have coherency with Microsoft.NET.Sdk: https://github.com/dotnet/sdk @ 60e9a46917ff91cc570272ecc83249497c99a79f does not contain dependency Microsoft.AspNetCore.Components.WebView - Add the dependency to https://github.com/dotnet/sdk. To solve this, we can add dependency to dotnet/sdk and dotnet/maui can align these version numbers going forward. It should also make it so for dotnet/maui gets the proper ASP.NET versions for release branches. I added several packages that are used by dotnet/maui. --- eng/Version.Details.xml | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 79094c4a7c9a..d066004208d2 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -307,10 +307,51 @@ https://github.com/dotnet/aspnetcore d4880ed4160b476346850ac653ce4b829ab09c94 + + + https://github.com/dotnet/aspnetcore + d4880ed4160b476346850ac653ce4b829ab09c94 + + + https://github.com/dotnet/aspnetcore + d4880ed4160b476346850ac653ce4b829ab09c94 + + + https://github.com/dotnet/aspnetcore + d4880ed4160b476346850ac653ce4b829ab09c94 + + + https://github.com/dotnet/aspnetcore + d4880ed4160b476346850ac653ce4b829ab09c94 + + + https://github.com/dotnet/aspnetcore + d4880ed4160b476346850ac653ce4b829ab09c94 + + + https://github.com/dotnet/aspnetcore + d4880ed4160b476346850ac653ce4b829ab09c94 + + + https://github.com/dotnet/aspnetcore + d4880ed4160b476346850ac653ce4b829ab09c94 + + + https://github.com/dotnet/aspnetcore + d4880ed4160b476346850ac653ce4b829ab09c94 + https://github.com/dotnet/aspnetcore d4880ed4160b476346850ac653ce4b829ab09c94 + + https://github.com/dotnet/aspnetcore + d4880ed4160b476346850ac653ce4b829ab09c94 + + + https://github.com/dotnet/aspnetcore + d4880ed4160b476346850ac653ce4b829ab09c94 + https://github.com/dotnet/aspnetcore d4880ed4160b476346850ac653ce4b829ab09c94 From 1cfb4ea37baf876f0d48d1884845730cce90bfdf Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 16 Jan 2025 01:51:18 +0000 Subject: [PATCH 137/193] Update dependencies from https://github.com/dotnet/razor build 20250115.1 Microsoft.SourceBuild.Intermediate.razor , Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal , Microsoft.CodeAnalysis.Razor.Tooling.Internal , Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 9.0.0-preview.25058.6 -> To Version 9.0.0-preview.25065.1 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 96aab5b6b502..6a5d53130dfc 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -325,22 +325,22 @@ d4880ed4160b476346850ac653ce4b829ab09c94 - + https://github.com/dotnet/razor - e076a7b300ad846caa80d5d4533c2afdf121ecd1 + a88b5165fecc5cfb98f513fc2b743bf05df6fc6f - + https://github.com/dotnet/razor - e076a7b300ad846caa80d5d4533c2afdf121ecd1 + a88b5165fecc5cfb98f513fc2b743bf05df6fc6f - + https://github.com/dotnet/razor - e076a7b300ad846caa80d5d4533c2afdf121ecd1 + a88b5165fecc5cfb98f513fc2b743bf05df6fc6f - + https://github.com/dotnet/razor - e076a7b300ad846caa80d5d4533c2afdf121ecd1 + a88b5165fecc5cfb98f513fc2b743bf05df6fc6f diff --git a/eng/Versions.props b/eng/Versions.props index 6b22f7dbfb64..64759b6344ed 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -235,9 +235,9 @@ - 9.0.0-preview.25064.4 - 9.0.0-preview.25064.4 - 9.0.0-preview.25064.4 + 9.0.0-preview.25065.1 + 9.0.0-preview.25065.1 + 9.0.0-preview.25065.1 From 2b2195f1b0e244e1e27429cda4926d50ab06b44e Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 15 Jan 2025 20:41:19 -0800 Subject: [PATCH 138/193] [main] Update dependencies from dotnet/windowsdesktop (#46008) Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 12 ++++++------ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 001397f8d727..63059f235917 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -254,26 +254,26 @@ https://github.com/dotnet/runtime 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/windowsdesktop - 71acd576deb230a0654562d5e002a4b10f1adbba + 40823e831e408a9b6edf15587e0a14a34851db73 - + https://github.com/dotnet/windowsdesktop - 71acd576deb230a0654562d5e002a4b10f1adbba + 40823e831e408a9b6edf15587e0a14a34851db73 - + https://github.com/dotnet/windowsdesktop - 71acd576deb230a0654562d5e002a4b10f1adbba + 40823e831e408a9b6edf15587e0a14a34851db73 - + https://github.com/dotnet/windowsdesktop - 71acd576deb230a0654562d5e002a4b10f1adbba + 40823e831e408a9b6edf15587e0a14a34851db73 - + https://github.com/dotnet/wpf - 0f380f765da88c10a361920bec87c4103cf47037 + 2fa8170912e376da061c5c4f3deeebaa795911d7 https://github.com/dotnet/aspnetcore @@ -401,13 +401,13 @@ d4880ed4160b476346850ac653ce4b829ab09c94 - + https://github.com/dotnet/winforms - 4406e6e4f870dd8c0b9032764d38df521ab652a5 + 92f6da9cb051207ad7ea054ca43a6521fe31b38b - + https://github.com/dotnet/wpf - 0f380f765da88c10a361920bec87c4103cf47037 + 2fa8170912e376da061c5c4f3deeebaa795911d7 https://github.com/dotnet/xdt diff --git a/eng/Versions.props b/eng/Versions.props index 04fbcb14cc5f..1a87c698d01a 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -83,7 +83,7 @@ - 10.0.0-alpha.1.25061.2 + 10.0.0-alpha.1.25064.7 @@ -136,9 +136,9 @@ - 10.0.0-alpha.1.25063.2 - 10.0.0-alpha.1.25063.2 - 10.0.0-alpha.1.25063.2 + 10.0.0-alpha.1.25065.1 + 10.0.0-alpha.1.25065.1 + 10.0.0-alpha.1.25065.1 @@ -246,8 +246,8 @@ - 10.0.0-alpha.1.25062.1 - 10.0.0-alpha.1.25062.1 + 10.0.0-alpha.1.25065.2 + 10.0.0-alpha.1.25065.2 From cb086ccb7654f8839bd321146574a19fbe99d0a8 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 16 Jan 2025 05:01:30 +0000 Subject: [PATCH 139/193] Update dependencies from https://github.com/dotnet/msbuild build 20250115.1 Microsoft.SourceBuild.Intermediate.msbuild , Microsoft.Build , Microsoft.Build.Localization From Version 17.14.0-preview-25064-11 -> To Version 17.14.0-preview-25065-01 --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 63059f235917..b2481cde8ae5 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -73,18 +73,18 @@ 0de3165cb0d56323b6caaf8e9916d4d9e72da32d - + https://github.com/dotnet/msbuild - 01477742a8fdabf862ae86e5da78ccbd201e89e1 + ec6b2a31a9388c298c4cab5be34ec2402372c5ce - + https://github.com/dotnet/msbuild - 01477742a8fdabf862ae86e5da78ccbd201e89e1 + ec6b2a31a9388c298c4cab5be34ec2402372c5ce - + https://github.com/dotnet/msbuild - 01477742a8fdabf862ae86e5da78ccbd201e89e1 + ec6b2a31a9388c298c4cab5be34ec2402372c5ce diff --git a/eng/Versions.props b/eng/Versions.props index 1a87c698d01a..dc8b36c119aa 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -189,8 +189,8 @@ At usage sites, either we use MicrosoftBuildMinimumVersion, or MicrosoftBuildVersion in source-only modes. Additionally, set the MinimumVSVersion for the installer UI that's required for targeting NetCurrent --> - 17.14.0-preview-25064-11 - 17.14.0-preview-25064-11 + 17.14.0-preview-25065-01 + 17.14.0-preview-25065-01 17.11.4 17.12 From d97b00de35e1954599e5b16e08d95b4712c449da Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 16 Jan 2025 05:01:31 +0000 Subject: [PATCH 140/193] Update dependencies from https://github.com/dotnet/sourcelink build 20250115.1 Microsoft.SourceBuild.Intermediate.sourcelink , Microsoft.Build.Tasks.Git , Microsoft.SourceLink.AzureRepos.Git , Microsoft.SourceLink.Bitbucket.Git , Microsoft.SourceLink.Common , Microsoft.SourceLink.GitHub , Microsoft.SourceLink.GitLab From Version 9.0.0-beta.25064.1 -> To Version 9.0.0-beta.25065.1 --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 12 ++++++------ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 63059f235917..e96d0e367b2d 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -471,34 +471,34 @@ https://github.com/dotnet/deployment-tools c7bcd7d32f7744af89dfd031a9b2085e3004fd9c - + https://github.com/dotnet/sourcelink - 36148468d5b0bd5041b3b8276b4706872fd07996 + 1b47023f07d3c19a1b3c6866ca922b9c913a5fff - + https://github.com/dotnet/sourcelink - 36148468d5b0bd5041b3b8276b4706872fd07996 + 1b47023f07d3c19a1b3c6866ca922b9c913a5fff - + https://github.com/dotnet/sourcelink - 36148468d5b0bd5041b3b8276b4706872fd07996 + 1b47023f07d3c19a1b3c6866ca922b9c913a5fff - + https://github.com/dotnet/sourcelink - 36148468d5b0bd5041b3b8276b4706872fd07996 + 1b47023f07d3c19a1b3c6866ca922b9c913a5fff - + https://github.com/dotnet/sourcelink - 36148468d5b0bd5041b3b8276b4706872fd07996 + 1b47023f07d3c19a1b3c6866ca922b9c913a5fff - + https://github.com/dotnet/sourcelink - 36148468d5b0bd5041b3b8276b4706872fd07996 + 1b47023f07d3c19a1b3c6866ca922b9c913a5fff - + https://github.com/dotnet/sourcelink - 36148468d5b0bd5041b3b8276b4706872fd07996 + 1b47023f07d3c19a1b3c6866ca922b9c913a5fff diff --git a/eng/Versions.props b/eng/Versions.props index 1a87c698d01a..0da31e0701f0 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -273,12 +273,12 @@ - 9.0.0-beta.25064.1 - 9.0.0-beta.25064.1 - 9.0.0-beta.25064.1 - 9.0.0-beta.25064.1 - 9.0.0-beta.25064.1 - 9.0.0-beta.25064.1 + 9.0.0-beta.25065.1 + 9.0.0-beta.25065.1 + 9.0.0-beta.25065.1 + 9.0.0-beta.25065.1 + 9.0.0-beta.25065.1 + 9.0.0-beta.25065.1 From e66e96e74dda069cb1bb440c67dda4aa779af94e Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 16 Jan 2025 05:01:48 +0000 Subject: [PATCH 141/193] Update dependencies from https://github.com/dotnet/roslyn build 20250115.10 Microsoft.SourceBuild.Intermediate.roslyn , Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset , Microsoft.Net.Compilers.Toolset.Framework From Version 4.14.0-1.25064.9 -> To Version 4.14.0-1.25065.10 --- eng/Version.Details.xml | 36 ++++++++++++++++++------------------ eng/Versions.props | 16 ++++++++-------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 63059f235917..c4ddc0919710 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -97,43 +97,43 @@ 63a09289745da5c256e7baf5f4194a750b1ec878 - + https://github.com/dotnet/roslyn - 6b364f666a4014bc8269131ef30df18c16a83511 + 8c05cc8bf6ed417cdf93806301d835571da6aff2 - + https://github.com/dotnet/roslyn - 6b364f666a4014bc8269131ef30df18c16a83511 + 8c05cc8bf6ed417cdf93806301d835571da6aff2 - + https://github.com/dotnet/roslyn - 6b364f666a4014bc8269131ef30df18c16a83511 + 8c05cc8bf6ed417cdf93806301d835571da6aff2 - + https://github.com/dotnet/roslyn - 6b364f666a4014bc8269131ef30df18c16a83511 + 8c05cc8bf6ed417cdf93806301d835571da6aff2 - + https://github.com/dotnet/roslyn - 6b364f666a4014bc8269131ef30df18c16a83511 + 8c05cc8bf6ed417cdf93806301d835571da6aff2 - + https://github.com/dotnet/roslyn - 6b364f666a4014bc8269131ef30df18c16a83511 + 8c05cc8bf6ed417cdf93806301d835571da6aff2 - + https://github.com/dotnet/roslyn - 6b364f666a4014bc8269131ef30df18c16a83511 + 8c05cc8bf6ed417cdf93806301d835571da6aff2 - + https://github.com/dotnet/roslyn - 6b364f666a4014bc8269131ef30df18c16a83511 + 8c05cc8bf6ed417cdf93806301d835571da6aff2 - + https://github.com/dotnet/roslyn - 6b364f666a4014bc8269131ef30df18c16a83511 + 8c05cc8bf6ed417cdf93806301d835571da6aff2 https://github.com/dotnet/aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index 1a87c698d01a..4dd26345ae57 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -213,14 +213,14 @@ - 4.14.0-1.25064.9 - 4.14.0-1.25064.9 - 4.14.0-1.25064.9 - 4.14.0-1.25064.9 - 4.14.0-1.25064.9 - 4.14.0-1.25064.9 - 4.14.0-1.25064.9 - 4.14.0-1.25064.9 + 4.14.0-1.25065.10 + 4.14.0-1.25065.10 + 4.14.0-1.25065.10 + 4.14.0-1.25065.10 + 4.14.0-1.25065.10 + 4.14.0-1.25065.10 + 4.14.0-1.25065.10 + 4.14.0-1.25065.10 From 33e4e14a0649de0716dd6d907c1e4f9b48bcca4b Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 16 Jan 2025 05:02:16 +0000 Subject: [PATCH 142/193] Update dependencies from https://github.com/microsoft/testfx build 20250115.17 Microsoft.Testing.Platform , MSTest From Version 1.6.0-preview.25064.5 -> To Version 1.6.0-preview.25065.17 --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 63059f235917..2e528b821df6 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -675,13 +675,13 @@ https://github.com/dotnet/runtime e77011b31a3e5c47d931248a64b47f9b2d47853d - + https://github.com/microsoft/testfx - 260ef988f3e05e51c390cf77cbd4acf21b10c609 + f1995d7f35d960443efd1a7a6a713a41eaf35235 - + https://github.com/microsoft/testfx - 260ef988f3e05e51c390cf77cbd4acf21b10c609 + f1995d7f35d960443efd1a7a6a713a41eaf35235 diff --git a/eng/Versions.props b/eng/Versions.props index 1a87c698d01a..b50a9d403310 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -28,7 +28,7 @@ true 6.0.1 true - 1.6.0-preview.25064.5 + 1.6.0-preview.25065.17 30 @@ -289,7 +289,7 @@ 6.12.0 6.1.0 4.18.4 - 3.8.0-preview.25064.5 + 3.8.0-preview.25065.17 1.3.2 8.0.0-beta.23607.1 From b16adfd8382d73a2966955ffba1749fa26917472 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 16 Jan 2025 05:53:06 +0000 Subject: [PATCH 143/193] Update dependencies from https://github.com/dotnet/windowsdesktop build 20250115.2 Microsoft.WindowsDesktop.App.Ref , Microsoft.WindowsDesktop.App.Runtime.win-x64 , VS.Redist.Common.WindowsDesktop.SharedFramework.x64.10.0 , VS.Redist.Common.WindowsDesktop.TargetingPack.x64.10.0 From Version 10.0.0-alpha.1.25065.1 -> To Version 10.0.0-alpha.1.25065.2 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 63059f235917..c2088a42f8d3 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -254,22 +254,22 @@ https://github.com/dotnet/runtime 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/windowsdesktop - 40823e831e408a9b6edf15587e0a14a34851db73 + c2787203d23b0e9ed3da79c8e6b82a4b1b1fa42a - + https://github.com/dotnet/windowsdesktop - 40823e831e408a9b6edf15587e0a14a34851db73 + c2787203d23b0e9ed3da79c8e6b82a4b1b1fa42a - + https://github.com/dotnet/windowsdesktop - 40823e831e408a9b6edf15587e0a14a34851db73 + c2787203d23b0e9ed3da79c8e6b82a4b1b1fa42a - + https://github.com/dotnet/windowsdesktop - 40823e831e408a9b6edf15587e0a14a34851db73 + c2787203d23b0e9ed3da79c8e6b82a4b1b1fa42a https://github.com/dotnet/wpf diff --git a/eng/Versions.props b/eng/Versions.props index 1a87c698d01a..1293bfbb2456 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -136,9 +136,9 @@ - 10.0.0-alpha.1.25065.1 - 10.0.0-alpha.1.25065.1 - 10.0.0-alpha.1.25065.1 + 10.0.0-alpha.1.25065.2 + 10.0.0-alpha.1.25065.2 + 10.0.0-alpha.1.25065.2 From 50417538fd57d35f8a0b42a3f0c076044a99e95c Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 16 Jan 2025 07:36:20 +0000 Subject: [PATCH 144/193] Update dependencies from https://github.com/dotnet/templating build 20250115.5 Microsoft.SourceBuild.Intermediate.templating , Microsoft.TemplateEngine.Abstractions , Microsoft.TemplateEngine.Mocks From Version 10.0.100-alpha.1.25064.3 -> To Version 10.0.100-alpha.1.25065.5 --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 63059f235917..9d8c2feaa852 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,18 +1,18 @@ - + https://github.com/dotnet/templating - 130f01eed959cbfe329cab2abcde501a1699df50 + 89529dbcb814dce93183c66956d7a435d11803d9 - + https://github.com/dotnet/templating - 130f01eed959cbfe329cab2abcde501a1699df50 + 89529dbcb814dce93183c66956d7a435d11803d9 - + https://github.com/dotnet/templating - 130f01eed959cbfe329cab2abcde501a1699df50 + 89529dbcb814dce93183c66956d7a435d11803d9 diff --git a/eng/Versions.props b/eng/Versions.props index 1a87c698d01a..a209788ee36c 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -196,13 +196,13 @@ - 10.0.100-alpha.1.25064.3 + 10.0.100-alpha.1.25065.5 $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) - 10.0.100-alpha.1.25064.3 + 10.0.100-alpha.1.25065.5 $(MicrosoftTemplateEngineMocksPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineMocksPackageVersion) From a2c11ff26593b938e7a5119508478b3f46aa4c67 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 16 Jan 2025 08:21:56 +0000 Subject: [PATCH 145/193] Update dependencies from https://github.com/dotnet/aspnetcore build 20250115.5 dotnet-dev-certs , dotnet-user-jwts , dotnet-user-secrets , Microsoft.AspNetCore.Analyzers , Microsoft.AspNetCore.App.Ref , Microsoft.AspNetCore.App.Ref.Internal , Microsoft.AspNetCore.App.Runtime.win-x64 , Microsoft.AspNetCore.Authentication.Facebook , Microsoft.AspNetCore.Authentication.Google , Microsoft.AspNetCore.Authentication.MicrosoftAccount , Microsoft.AspNetCore.Authorization , Microsoft.AspNetCore.Components , Microsoft.AspNetCore.Components.Analyzers , Microsoft.AspNetCore.Components.Forms , Microsoft.AspNetCore.Components.SdkAnalyzers , Microsoft.AspNetCore.Components.Web , Microsoft.AspNetCore.Components.WebAssembly , Microsoft.AspNetCore.Components.WebAssembly.Server , Microsoft.AspNetCore.Components.WebView , Microsoft.AspNetCore.DeveloperCertificates.XPlat , Microsoft.AspNetCore.Metadata , Microsoft.AspNetCore.Mvc.Analyzers , Microsoft.AspNetCore.Mvc.Api.Analyzers , Microsoft.AspNetCore.TestHost , Microsoft.Extensions.FileProviders.Embedded , Microsoft.Extensions.ObjectPool , Microsoft.JSInterop , VS.Redist.Common.AspNetCore.SharedFramework.x64.10.0 , Microsoft.SourceBuild.Intermediate.aspnetcore From Version 10.0.0-alpha.2.25064.2 -> To Version 10.0.0-alpha.2.25065.5 --- eng/Version.Details.xml | 116 ++++++++++++++++++++-------------------- eng/Versions.props | 26 ++++----- 2 files changed, 71 insertions(+), 71 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index c34dafcf297a..fc2904573869 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -135,13 +135,13 @@ https://github.com/dotnet/roslyn 6b364f666a4014bc8269131ef30df18c16a83511 - + https://github.com/dotnet/aspnetcore - c4c8d3a692d2ea94e945276825bb4e7a0b564a3d + dc2a6fe48cbcf06246a6d308087d58289772574c - + https://github.com/dotnet/aspnetcore - c4c8d3a692d2ea94e945276825bb4e7a0b564a3d + dc2a6fe48cbcf06246a6d308087d58289772574c https://github.com/nuget/nuget.client @@ -275,95 +275,95 @@ https://github.com/dotnet/wpf 0f380f765da88c10a361920bec87c4103cf47037 - + https://github.com/dotnet/aspnetcore - c4c8d3a692d2ea94e945276825bb4e7a0b564a3d + dc2a6fe48cbcf06246a6d308087d58289772574c - + https://github.com/dotnet/aspnetcore - c4c8d3a692d2ea94e945276825bb4e7a0b564a3d + dc2a6fe48cbcf06246a6d308087d58289772574c - + https://github.com/dotnet/aspnetcore - c4c8d3a692d2ea94e945276825bb4e7a0b564a3d + dc2a6fe48cbcf06246a6d308087d58289772574c - + https://github.com/dotnet/aspnetcore - c4c8d3a692d2ea94e945276825bb4e7a0b564a3d + dc2a6fe48cbcf06246a6d308087d58289772574c - + https://github.com/dotnet/aspnetcore - c4c8d3a692d2ea94e945276825bb4e7a0b564a3d + dc2a6fe48cbcf06246a6d308087d58289772574c - + https://github.com/dotnet/aspnetcore - c4c8d3a692d2ea94e945276825bb4e7a0b564a3d + dc2a6fe48cbcf06246a6d308087d58289772574c - + https://github.com/dotnet/aspnetcore - c4c8d3a692d2ea94e945276825bb4e7a0b564a3d + dc2a6fe48cbcf06246a6d308087d58289772574c - + https://github.com/dotnet/aspnetcore - c4c8d3a692d2ea94e945276825bb4e7a0b564a3d + dc2a6fe48cbcf06246a6d308087d58289772574c - + https://github.com/dotnet/aspnetcore - d4880ed4160b476346850ac653ce4b829ab09c94 + dc2a6fe48cbcf06246a6d308087d58289772574c - + https://github.com/dotnet/aspnetcore - d4880ed4160b476346850ac653ce4b829ab09c94 + dc2a6fe48cbcf06246a6d308087d58289772574c - + https://github.com/dotnet/aspnetcore - d4880ed4160b476346850ac653ce4b829ab09c94 + dc2a6fe48cbcf06246a6d308087d58289772574c - + https://github.com/dotnet/aspnetcore - d4880ed4160b476346850ac653ce4b829ab09c94 + dc2a6fe48cbcf06246a6d308087d58289772574c - + https://github.com/dotnet/aspnetcore - d4880ed4160b476346850ac653ce4b829ab09c94 + dc2a6fe48cbcf06246a6d308087d58289772574c - + https://github.com/dotnet/aspnetcore - d4880ed4160b476346850ac653ce4b829ab09c94 + dc2a6fe48cbcf06246a6d308087d58289772574c - + https://github.com/dotnet/aspnetcore - d4880ed4160b476346850ac653ce4b829ab09c94 + dc2a6fe48cbcf06246a6d308087d58289772574c - + https://github.com/dotnet/aspnetcore - d4880ed4160b476346850ac653ce4b829ab09c94 + dc2a6fe48cbcf06246a6d308087d58289772574c - + https://github.com/dotnet/aspnetcore - c4c8d3a692d2ea94e945276825bb4e7a0b564a3d + dc2a6fe48cbcf06246a6d308087d58289772574c - + https://github.com/dotnet/aspnetcore - d4880ed4160b476346850ac653ce4b829ab09c94 + dc2a6fe48cbcf06246a6d308087d58289772574c - + https://github.com/dotnet/aspnetcore - d4880ed4160b476346850ac653ce4b829ab09c94 + dc2a6fe48cbcf06246a6d308087d58289772574c - + https://github.com/dotnet/aspnetcore - c4c8d3a692d2ea94e945276825bb4e7a0b564a3d + dc2a6fe48cbcf06246a6d308087d58289772574c - + https://github.com/dotnet/aspnetcore - c4c8d3a692d2ea94e945276825bb4e7a0b564a3d + dc2a6fe48cbcf06246a6d308087d58289772574c - + https://github.com/dotnet/aspnetcore - c4c8d3a692d2ea94e945276825bb4e7a0b564a3d + dc2a6fe48cbcf06246a6d308087d58289772574c @@ -384,21 +384,21 @@ 46efcec83821d7f0322c01bc9549de83e855dcac - + https://github.com/dotnet/aspnetcore - c4c8d3a692d2ea94e945276825bb4e7a0b564a3d + dc2a6fe48cbcf06246a6d308087d58289772574c - + https://github.com/dotnet/aspnetcore - c4c8d3a692d2ea94e945276825bb4e7a0b564a3d + dc2a6fe48cbcf06246a6d308087d58289772574c - + https://github.com/dotnet/aspnetcore - c4c8d3a692d2ea94e945276825bb4e7a0b564a3d + dc2a6fe48cbcf06246a6d308087d58289772574c - + https://github.com/dotnet/aspnetcore - c4c8d3a692d2ea94e945276825bb4e7a0b564a3d + dc2a6fe48cbcf06246a6d308087d58289772574c @@ -550,9 +550,9 @@ https://github.com/dotnet/runtime 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/aspnetcore - c4c8d3a692d2ea94e945276825bb4e7a0b564a3d + dc2a6fe48cbcf06246a6d308087d58289772574c https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 0d76fb548e4f..69b9e7f30995 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -224,19 +224,19 @@ - 10.0.0-alpha.2.25065.2 - 10.0.0-alpha.2.25065.2 - 10.0.0-alpha.2.25065.2 - 10.0.0-alpha.2.25065.2 - 10.0.0-alpha.2.25065.2 - 10.0.0-alpha.2.25065.2 - 10.0.0-alpha.2.25065.2 - 10.0.0-alpha.2.25065.2 - 10.0.0-alpha.2.25065.2 - 10.0.0-alpha.2.25065.2 - 10.0.0-alpha.2.25065.2 - 10.0.0-alpha.2.25065.2 - 10.0.0-alpha.2.25065.2 + 10.0.0-alpha.2.25065.5 + 10.0.0-alpha.2.25065.5 + 10.0.0-alpha.2.25065.5 + 10.0.0-alpha.2.25065.5 + 10.0.0-alpha.2.25065.5 + 10.0.0-alpha.2.25065.5 + 10.0.0-alpha.2.25065.5 + 10.0.0-alpha.2.25065.5 + 10.0.0-alpha.2.25065.5 + 10.0.0-alpha.2.25065.5 + 10.0.0-alpha.2.25065.5 + 10.0.0-alpha.2.25065.5 + 10.0.0-alpha.2.25065.5 From 71bdb913f9cda81557c2ab659fb9323246e7a6cd Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 16 Jan 2025 10:12:14 +0000 Subject: [PATCH 146/193] Update dependencies from https://github.com/dotnet/templating build 20250116.5 Microsoft.SourceBuild.Intermediate.templating , Microsoft.TemplateEngine.Abstractions , Microsoft.TemplateEngine.Mocks From Version 10.0.100-alpha.1.25064.3 -> To Version 10.0.100-alpha.1.25066.5 --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 9d8c2feaa852..ff81d1d4dda5 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,18 +1,18 @@ - + https://github.com/dotnet/templating - 89529dbcb814dce93183c66956d7a435d11803d9 + a61b164d9e1e1c85a2cf52b397d6a8d381f448e8 - + https://github.com/dotnet/templating - 89529dbcb814dce93183c66956d7a435d11803d9 + a61b164d9e1e1c85a2cf52b397d6a8d381f448e8 - + https://github.com/dotnet/templating - 89529dbcb814dce93183c66956d7a435d11803d9 + a61b164d9e1e1c85a2cf52b397d6a8d381f448e8 diff --git a/eng/Versions.props b/eng/Versions.props index a209788ee36c..6075b34f8019 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -196,13 +196,13 @@ - 10.0.100-alpha.1.25065.5 + 10.0.100-alpha.1.25066.5 $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) - 10.0.100-alpha.1.25065.5 + 10.0.100-alpha.1.25066.5 $(MicrosoftTemplateEngineMocksPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineMocksPackageVersion) From cd25da573bde197fd50df1bcf4894c23be620c81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Jare=C5=A1?= Date: Thu, 16 Jan 2025 12:22:25 +0100 Subject: [PATCH 147/193] Check on test projects for mixed mode --- .../commands/dotnet-test/MSBuildHandler.cs | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/Cli/dotnet/commands/dotnet-test/MSBuildHandler.cs b/src/Cli/dotnet/commands/dotnet-test/MSBuildHandler.cs index ed7e7401bc65..73861f7e6ed2 100644 --- a/src/Cli/dotnet/commands/dotnet-test/MSBuildHandler.cs +++ b/src/Cli/dotnet/commands/dotnet-test/MSBuildHandler.cs @@ -134,15 +134,22 @@ private void InitializeTestApplications(IEnumerable modules) { foreach (Module module in modules) { - if (module.IsTestProject && module.IsTestingPlatformApplication) + if (module.IsTestProject) { - var testApp = new TestApplication(module, _args); - _testApplications.Add(testApp); + if (module.IsTestingPlatformApplication) + { + var testApp = new TestApplication(module, _args); + _testApplications.Add(testApp); + } + else // If one test app has IsTestingPlatformApplication set to false, then we will not run any of the test apps + { + _areTestingPlatformApplications = false; + return; + } } - else // If one test app has IsTestingPlatformApplication set to false, then we will not run any of the test apps + else { - _areTestingPlatformApplications = false; - return; + // Non test projects, like the projects that include production code are skipped over, we won't run them. } } } @@ -335,7 +342,7 @@ private static bool IsBinaryLoggerEnabled(List args, out string binLogFi } else { - binLogFileName = CliConstants.BinLogFileName; + binLogFileName = $"msbuild_{Guid.NewGuid().ToString()}.binlog"; } return true; From b44d16857049adf2361af7f5ed27eb8426b2b41a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Jare=C5=A1?= Date: Thu, 16 Jan 2025 12:24:27 +0100 Subject: [PATCH 148/193] fix --- src/Cli/dotnet/commands/dotnet-test/MSBuildHandler.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Cli/dotnet/commands/dotnet-test/MSBuildHandler.cs b/src/Cli/dotnet/commands/dotnet-test/MSBuildHandler.cs index 73861f7e6ed2..9a8dd5073945 100644 --- a/src/Cli/dotnet/commands/dotnet-test/MSBuildHandler.cs +++ b/src/Cli/dotnet/commands/dotnet-test/MSBuildHandler.cs @@ -342,7 +342,7 @@ private static bool IsBinaryLoggerEnabled(List args, out string binLogFi } else { - binLogFileName = $"msbuild_{Guid.NewGuid().ToString()}.binlog"; + binLogFileName = CliConstants.BinLogFileName; } return true; From 5f2a0af754ef5b224c58d605227e4fba72b8fa7b Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Thu, 16 Jan 2025 14:16:22 +0100 Subject: [PATCH 149/193] Remove razor patches --- .../razor/0001-Remove-unused-fields.patch | 45 ------------- ...ld-in-RazorContentTypeChangeListener.patch | 63 ------------------- .../razor/0003-Remove-unnecessary-using.patch | 23 ------- 3 files changed, 131 deletions(-) delete mode 100644 src/SourceBuild/patches/razor/0001-Remove-unused-fields.patch delete mode 100644 src/SourceBuild/patches/razor/0002-Remove-unused-field-in-RazorContentTypeChangeListener.patch delete mode 100644 src/SourceBuild/patches/razor/0003-Remove-unnecessary-using.patch diff --git a/src/SourceBuild/patches/razor/0001-Remove-unused-fields.patch b/src/SourceBuild/patches/razor/0001-Remove-unused-fields.patch deleted file mode 100644 index e710243f76d6..000000000000 --- a/src/SourceBuild/patches/razor/0001-Remove-unused-fields.patch +++ /dev/null @@ -1,45 +0,0 @@ -From faa695199c8b8886c0d923f25a57c9728afeafbf Mon Sep 17 00:00:00 2001 -From: Matt Thalman -Date: Tue, 7 Jan 2025 14:48:06 -0600 -Subject: [PATCH] Remove unused fields - -Backport: https://github.com/dotnet/razor/pull/11358 ---- - .../Microsoft.AspNetCore.Razor.LanguageServer/LspServices.cs | 4 +--- - .../AutoInsert/RemoteAutoInsertService.cs | 1 - - 2 files changed, 1 insertion(+), 4 deletions(-) - -diff --git a/src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/LspServices.cs b/src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/LspServices.cs -index 43a17a0402..01bf4ada70 100644 ---- a/src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/LspServices.cs -+++ b/src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/LspServices.cs -@@ -14,16 +14,14 @@ namespace Microsoft.AspNetCore.Razor.LanguageServer; - internal class LspServices : ILspServices - { - private readonly IServiceProvider _serviceProvider; -- private readonly IEnumerable _startupServices; - public bool IsDisposed = false; - - public LspServices(IServiceCollection serviceCollection) - { - serviceCollection.AddSingleton(this); - _serviceProvider = serviceCollection.BuildServiceProvider(); -- - // Create all startup services -- _startupServices = _serviceProvider.GetServices(); -+ _serviceProvider.GetServices(); - } - - public ImmutableArray GetRegisteredServices() -diff --git a/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/AutoInsert/RemoteAutoInsertService.cs b/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/AutoInsert/RemoteAutoInsertService.cs -index 27dcc78952..f8ab749b66 100644 ---- a/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/AutoInsert/RemoteAutoInsertService.cs -+++ b/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/AutoInsert/RemoteAutoInsertService.cs -@@ -32,7 +32,6 @@ internal sealed class RemoteAutoInsertService(in ServiceArgs args) - } - - private readonly IAutoInsertService _autoInsertService = args.ExportProvider.GetExportedValue(); -- private readonly IFilePathService _filePathService = args.ExportProvider.GetExportedValue(); - private readonly IRazorFormattingService _razorFormattingService = args.ExportProvider.GetExportedValue(); - - protected override IDocumentPositionInfoStrategy DocumentPositionInfoStrategy => PreferHtmlInAttributeValuesDocumentPositionInfoStrategy.Instance; diff --git a/src/SourceBuild/patches/razor/0002-Remove-unused-field-in-RazorContentTypeChangeListener.patch b/src/SourceBuild/patches/razor/0002-Remove-unused-field-in-RazorContentTypeChangeListener.patch deleted file mode 100644 index 8c7dcd117401..000000000000 --- a/src/SourceBuild/patches/razor/0002-Remove-unused-field-in-RazorContentTypeChangeListener.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 1d6f0ce17c97fcf541b5f45b000b4f54356e8f25 Mon Sep 17 00:00:00 2001 -From: Matt Thalman -Date: Tue, 7 Jan 2025 18:28:41 -0600 -Subject: [PATCH] Remove unused field in RazorContentTypeChangeListener - -Backport: https://github.com/dotnet/razor/pull/11361 ---- - .../LanguageClient/RazorContentTypeChangeListener.cs | 8 -------- - .../LanguageClient/RazorContentTypeChangeListenerTest.cs | 1 - - 2 files changed, 9 deletions(-) - -diff --git a/src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/LanguageClient/RazorContentTypeChangeListener.cs b/src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/LanguageClient/RazorContentTypeChangeListener.cs -index dcc90c5787..13fb4b0696 100644 ---- a/src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/LanguageClient/RazorContentTypeChangeListener.cs -+++ b/src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/LanguageClient/RazorContentTypeChangeListener.cs -@@ -18,7 +18,6 @@ internal class RazorContentTypeChangeListener : ITextBufferContentTypeListener - private readonly TrackingLSPDocumentManager _lspDocumentManager; - private readonly ITextDocumentFactoryService _textDocumentFactory; - private readonly ILspEditorFeatureDetector _lspEditorFeatureDetector; -- private readonly IEditorOptionsFactoryService _editorOptionsFactory; - private readonly IFileToContentTypeService _fileToContentTypeService; - - [ImportingConstructor] -@@ -26,7 +25,6 @@ internal class RazorContentTypeChangeListener : ITextBufferContentTypeListener - ITextDocumentFactoryService textDocumentFactory, - LSPDocumentManager lspDocumentManager, - ILspEditorFeatureDetector lspEditorFeatureDetector, -- IEditorOptionsFactoryService editorOptionsFactory, - IFileToContentTypeService fileToContentTypeService) - { - if (textDocumentFactory is null) -@@ -44,11 +42,6 @@ internal class RazorContentTypeChangeListener : ITextBufferContentTypeListener - throw new ArgumentNullException(nameof(lspEditorFeatureDetector)); - } - -- if (editorOptionsFactory is null) -- { -- throw new ArgumentNullException(nameof(editorOptionsFactory)); -- } -- - if (fileToContentTypeService is null) - { - throw new ArgumentNullException(nameof(fileToContentTypeService)); -@@ -63,7 +56,6 @@ internal class RazorContentTypeChangeListener : ITextBufferContentTypeListener - - _textDocumentFactory = textDocumentFactory; - _lspEditorFeatureDetector = lspEditorFeatureDetector; -- _editorOptionsFactory = editorOptionsFactory; - _fileToContentTypeService = fileToContentTypeService; - } - -diff --git a/src/Razor/test/Microsoft.VisualStudio.LanguageServices.Razor.Test/LanguageClient/RazorContentTypeChangeListenerTest.cs b/src/Razor/test/Microsoft.VisualStudio.LanguageServices.Razor.Test/LanguageClient/RazorContentTypeChangeListenerTest.cs -index d01ea46d5c..d6afae6491 100644 ---- a/src/Razor/test/Microsoft.VisualStudio.LanguageServices.Razor.Test/LanguageClient/RazorContentTypeChangeListenerTest.cs -+++ b/src/Razor/test/Microsoft.VisualStudio.LanguageServices.Razor.Test/LanguageClient/RazorContentTypeChangeListenerTest.cs -@@ -226,7 +226,6 @@ public class RazorContentTypeChangeListenerTest : ToolingTestBase - textDocumentFactory, - lspDocumentManager, - lspEditorFeatureDetector, -- Mock.Of(s => s.GetOptions(It.IsAny()) == Mock.Of(MockBehavior.Strict), MockBehavior.Strict), - fileToContentTypeService); - - return listener; diff --git a/src/SourceBuild/patches/razor/0003-Remove-unnecessary-using.patch b/src/SourceBuild/patches/razor/0003-Remove-unnecessary-using.patch deleted file mode 100644 index 2ad84ab1351c..000000000000 --- a/src/SourceBuild/patches/razor/0003-Remove-unnecessary-using.patch +++ /dev/null @@ -1,23 +0,0 @@ -From fa8b9938dfaa72c790a1bf4a657af77ef2de5f13 Mon Sep 17 00:00:00 2001 -From: David Wengier -Date: Wed, 8 Jan 2025 12:03:12 +1100 -Subject: [PATCH] Remove using - -Backport: https://github.com/dotnet/razor/pull/11361 - ---- - .../LanguageClient/RazorContentTypeChangeListener.cs | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/LanguageClient/RazorContentTypeChangeListener.cs b/src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/LanguageClient/RazorContentTypeChangeListener.cs -index 13fb4b0696..535223227b 100644 ---- a/src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/LanguageClient/RazorContentTypeChangeListener.cs -+++ b/src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/LanguageClient/RazorContentTypeChangeListener.cs -@@ -5,7 +5,6 @@ using System; - using System.ComponentModel.Composition; - using Microsoft.VisualStudio.LanguageServer.ContainedLanguage; - using Microsoft.VisualStudio.Text; --using Microsoft.VisualStudio.Text.Editor; - using Microsoft.VisualStudio.Utilities; - - namespace Microsoft.VisualStudio.Razor.LanguageClient; From b2e97fa4ec00ec2fa375bee7d3aeb21afb6c55cc Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Thu, 16 Jan 2025 16:01:06 +0100 Subject: [PATCH 150/193] Revert "Use Windows scouting image in VMR to unblock builds" (#46049) --- eng/pipelines/templates/variables/vmr-build.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/eng/pipelines/templates/variables/vmr-build.yml b/eng/pipelines/templates/variables/vmr-build.yml index 575a5964d61d..b689b821f8e6 100644 --- a/eng/pipelines/templates/variables/vmr-build.yml +++ b/eng/pipelines/templates/variables/vmr-build.yml @@ -150,9 +150,8 @@ variables: value: Docker-Linux-Arm-Public - name: poolImage_Mac value: macos-13 - # TODO: Change back to preview image when it has a recent enough version of VS installed. - name: poolImage_Windows - value: windows.vs2022preview.scout.amd64.open + value: windows.vs2022preview.amd64.open - ${{ else }}: - ${{ if in(variables['Build.Reason'], 'PullRequest') }}: - name: defaultPoolName From 504cc383d080be89030b0874b30fee3d06fbb018 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Jare=C5=A1?= Date: Thu, 16 Jan 2025 16:23:43 +0100 Subject: [PATCH 151/193] Invert ifs --- .../commands/dotnet-test/MSBuildHandler.cs | 24 +++++++++---------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/src/Cli/dotnet/commands/dotnet-test/MSBuildHandler.cs b/src/Cli/dotnet/commands/dotnet-test/MSBuildHandler.cs index 9a8dd5073945..b1adead6ad14 100644 --- a/src/Cli/dotnet/commands/dotnet-test/MSBuildHandler.cs +++ b/src/Cli/dotnet/commands/dotnet-test/MSBuildHandler.cs @@ -134,23 +134,21 @@ private void InitializeTestApplications(IEnumerable modules) { foreach (Module module in modules) { - if (module.IsTestProject) + if (!module.IsTestProject) { - if (module.IsTestingPlatformApplication) - { - var testApp = new TestApplication(module, _args); - _testApplications.Add(testApp); - } - else // If one test app has IsTestingPlatformApplication set to false, then we will not run any of the test apps - { - _areTestingPlatformApplications = false; - return; - } + // Non test projects, like the projects that include production code are skipped over, we won't run them. + return; } - else + + if (!module.IsTestingPlatformApplication) { - // Non test projects, like the projects that include production code are skipped over, we won't run them. + // If one test app has IsTestingPlatformApplication set to false, then we will not run any of the test apps + _areTestingPlatformApplications = false; + return; } + + var testApp = new TestApplication(module, _args); + _testApplications.Add(testApp); } } From 1c442e5bcb6d56647640060735463b97d0f7840e Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 16 Jan 2025 16:14:13 +0000 Subject: [PATCH 152/193] [main] Update dependencies from dotnet/source-build-reference-packages (#46023) Co-authored-by: dotnet-maestro[bot] Co-authored-by: Michael Simons --- eng/Version.Details.xml | 4 ++-- .../repo-projects/source-build-reference-packages.proj | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index c86e0a2678dc..da507659a16f 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -462,9 +462,9 @@ - + https://github.com/dotnet/source-build-reference-packages - 43f2c55c61e6233cc1a5c0d162359367aad8975b + be366997dfae0aa6e3c9a78bad10bfb3f79cbde1 diff --git a/src/SourceBuild/content/repo-projects/source-build-reference-packages.proj b/src/SourceBuild/content/repo-projects/source-build-reference-packages.proj index 063856e8a7ec..cff920467b56 100644 --- a/src/SourceBuild/content/repo-projects/source-build-reference-packages.proj +++ b/src/SourceBuild/content/repo-projects/source-build-reference-packages.proj @@ -12,6 +12,7 @@ $(BuildArgs) /p:MicrosoftNetCoreIlasmPackageRuntimeId=$(NETCoreSdkRuntimeIdentifier) $(BuildArgs) /p:LocalNuGetPackageCacheDirectory=$(LocalNuGetPackageCacheDirectory) + $(BuildArgs) /p:VmrReferencePackagesDir=$(ReferencePackagesDir) From c94df04493b2d98828ec40041c495b4260e461e2 Mon Sep 17 00:00:00 2001 From: Wenwen <53243232+Winniexu01@users.noreply.github.com> Date: Thu, 16 Jan 2025 16:47:56 +0000 Subject: [PATCH 153/193] Allow wpf test binary in VMR (#46044) --- src/SourceBuild/content/eng/allowed-vmr-binaries.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/SourceBuild/content/eng/allowed-vmr-binaries.txt b/src/SourceBuild/content/eng/allowed-vmr-binaries.txt index 7a1aeec70e39..b46c85c8269f 100644 --- a/src/SourceBuild/content/eng/allowed-vmr-binaries.txt +++ b/src/SourceBuild/content/eng/allowed-vmr-binaries.txt @@ -152,3 +152,4 @@ src/wpf/src/Microsoft.DotNet.Wpf/src/PresentationFramework/Resources/Hyphenation src/wpf/src/Microsoft.DotNet.Wpf/src/PresentationFramework/Resources/Hyphenation/Hyphen_en.hdict src/wpf/src/Microsoft.DotNet.Wpf/src/Shared/Tracing/resources/*.BIN src/wpf/src/Microsoft.DotNet.Wpf/src/Shared/Tracing/resources/*.bin +src/wpf/src/Microsoft.DotNet.Wpf/tests/UnitTests/WindowsBase.Tests/Resources/Invalid_1.xps From f6b43af808e6f8f3ff209d95b8321bf5e5e2e884 Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Thu, 16 Jan 2025 19:04:48 +0100 Subject: [PATCH 154/193] Don't restore baseline package when project isn't packable (#46046) --- .../targets/Microsoft.NET.ApiCompat.targets | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.ApiCompat.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.ApiCompat.targets index c59aae3df11e..194667dbf7f4 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.ApiCompat.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.ApiCompat.targets @@ -16,6 +16,7 @@ Copyright (c) .NET Foundation. All rights reserved. From 358e6bb5b2b189a77cd18bc099451502e9f68dc9 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 16 Jan 2025 19:50:58 +0000 Subject: [PATCH 155/193] Update dependencies from https://github.com/dotnet/templating build 20250116.6 Microsoft.SourceBuild.Intermediate.templating , Microsoft.TemplateEngine.Abstractions , Microsoft.TemplateEngine.Mocks From Version 10.0.100-alpha.1.25064.3 -> To Version 10.0.100-alpha.1.25066.6 --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index ff81d1d4dda5..35aa98869727 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,18 +1,18 @@ - + https://github.com/dotnet/templating - a61b164d9e1e1c85a2cf52b397d6a8d381f448e8 + 99a77a412e3cd0838fa7986ef7cbc14f29a29706 - + https://github.com/dotnet/templating - a61b164d9e1e1c85a2cf52b397d6a8d381f448e8 + 99a77a412e3cd0838fa7986ef7cbc14f29a29706 - + https://github.com/dotnet/templating - a61b164d9e1e1c85a2cf52b397d6a8d381f448e8 + 99a77a412e3cd0838fa7986ef7cbc14f29a29706 diff --git a/eng/Versions.props b/eng/Versions.props index 6075b34f8019..96c929a5c601 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -196,13 +196,13 @@ - 10.0.100-alpha.1.25066.5 + 10.0.100-alpha.1.25066.6 $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) - 10.0.100-alpha.1.25066.5 + 10.0.100-alpha.1.25066.6 $(MicrosoftTemplateEngineMocksPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineMocksPackageVersion) From 442da03711264a08239ba04dce9a70f55d6f8e42 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 16 Jan 2025 19:54:01 +0000 Subject: [PATCH 156/193] Update dependencies from https://github.com/dotnet/windowsdesktop build 20250116.1 Microsoft.WindowsDesktop.App.Ref , Microsoft.WindowsDesktop.App.Runtime.win-x64 , VS.Redist.Common.WindowsDesktop.SharedFramework.x64.10.0 , VS.Redist.Common.WindowsDesktop.TargetingPack.x64.10.0 From Version 10.0.0-alpha.1.25065.1 -> To Version 10.0.0-alpha.1.25066.1 Dependency coherency updates Microsoft.NET.Sdk.WindowsDesktop,Microsoft.DotNet.Wpf.ProjectTemplates From Version 10.0.0-alpha.1.25065.2 -> To Version 10.0.0-alpha.1.25065.3 (parent: Microsoft.WindowsDesktop.App.Ref --- eng/Version.Details.xml | 24 ++++++++++++------------ eng/Versions.props | 10 +++++----- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index c2088a42f8d3..f59fdf5ec114 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -254,26 +254,26 @@ https://github.com/dotnet/runtime 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/windowsdesktop - c2787203d23b0e9ed3da79c8e6b82a4b1b1fa42a + 7da5574368c45752f272f11af3d5a5491425e657 - + https://github.com/dotnet/windowsdesktop - c2787203d23b0e9ed3da79c8e6b82a4b1b1fa42a + 7da5574368c45752f272f11af3d5a5491425e657 - + https://github.com/dotnet/windowsdesktop - c2787203d23b0e9ed3da79c8e6b82a4b1b1fa42a + 7da5574368c45752f272f11af3d5a5491425e657 - + https://github.com/dotnet/windowsdesktop - c2787203d23b0e9ed3da79c8e6b82a4b1b1fa42a + 7da5574368c45752f272f11af3d5a5491425e657 - + https://github.com/dotnet/wpf - 2fa8170912e376da061c5c4f3deeebaa795911d7 + aa1aa9703c49e330ab5eb9c39d81ab365422de1d https://github.com/dotnet/aspnetcore @@ -405,9 +405,9 @@ https://github.com/dotnet/winforms 92f6da9cb051207ad7ea054ca43a6521fe31b38b - + https://github.com/dotnet/wpf - 2fa8170912e376da061c5c4f3deeebaa795911d7 + aa1aa9703c49e330ab5eb9c39d81ab365422de1d https://github.com/dotnet/xdt diff --git a/eng/Versions.props b/eng/Versions.props index 1293bfbb2456..8d3216b674cd 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -136,9 +136,9 @@ - 10.0.0-alpha.1.25065.2 - 10.0.0-alpha.1.25065.2 - 10.0.0-alpha.1.25065.2 + 10.0.0-alpha.1.25066.1 + 10.0.0-alpha.1.25066.1 + 10.0.0-alpha.1.25066.1 @@ -246,8 +246,8 @@ - 10.0.0-alpha.1.25065.2 - 10.0.0-alpha.1.25065.2 + 10.0.0-alpha.1.25065.3 + 10.0.0-alpha.1.25065.3 From 7c243edb0d87999538867b8c00a7a2bafee80805 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 16 Jan 2025 20:17:40 +0000 Subject: [PATCH 157/193] Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20250116.1 Microsoft.SourceBuild.Intermediate.roslyn-analyzers , Microsoft.CodeAnalysis.NetAnalyzers , Microsoft.CodeAnalysis.PublicApiAnalyzers From Version 3.12.0-beta1.24629.1 -> To Version 3.12.0-beta1.25066.1 --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index da507659a16f..1da5403f7c36 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -419,18 +419,18 @@ 63ae81154c50a1cf9287cc47d8351d55b4289e6d - + https://github.com/dotnet/roslyn-analyzers - 5ed336762c6260a83ece35cd1f6749251452bad0 + 45caa455b34553e7ef3ff7cb1def454eef78037c - + https://github.com/dotnet/roslyn-analyzers - 5ed336762c6260a83ece35cd1f6749251452bad0 + 45caa455b34553e7ef3ff7cb1def454eef78037c - + https://github.com/dotnet/roslyn-analyzers - 5ed336762c6260a83ece35cd1f6749251452bad0 + 45caa455b34553e7ef3ff7cb1def454eef78037c diff --git a/eng/Versions.props b/eng/Versions.props index 3f3527ac5671..ab414e6172e5 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -167,8 +167,8 @@ - 10.0.0-preview.24629.1 - 3.12.0-beta1.24629.1 + 10.0.0-preview.25066.1 + 3.12.0-beta1.25066.1 From 0b84be0f818c6ba4ee52c9ed8c2f831034526740 Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Thu, 16 Jan 2025 13:26:38 -0800 Subject: [PATCH 158/193] Fix unwanted transitive updates to compile only references (#46019) --- .../Microsoft.DotNet.ApiCompat.Task.csproj | 2 ++ .../Microsoft.DotNet.ApiCompatibility.csproj | 2 ++ .../Microsoft.DotNet.PackageValidation.csproj | 2 ++ .../Microsoft.DotNet.ApiSymbolExtensions.csproj | 2 ++ 4 files changed, 8 insertions(+) diff --git a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompat.Task/Microsoft.DotNet.ApiCompat.Task.csproj b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompat.Task/Microsoft.DotNet.ApiCompat.Task.csproj index d8ff37c6e19d..6f8af2b0a1a0 100644 --- a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompat.Task/Microsoft.DotNet.ApiCompat.Task.csproj +++ b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompat.Task/Microsoft.DotNet.ApiCompat.Task.csproj @@ -2,6 +2,8 @@ $(NetToolMinimum);$(NetFrameworkToolCurrent) + + false true true false diff --git a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/Microsoft.DotNet.ApiCompatibility.csproj b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/Microsoft.DotNet.ApiCompatibility.csproj index 661e119cb4ba..47be721aea8e 100644 --- a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/Microsoft.DotNet.ApiCompatibility.csproj +++ b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/Microsoft.DotNet.ApiCompatibility.csproj @@ -2,6 +2,8 @@ $(NetToolMinimum);$(NetFrameworkToolCurrent) + + false $(NoWarn);RS1024 diff --git a/src/Compatibility/ApiCompat/Microsoft.DotNet.PackageValidation/Microsoft.DotNet.PackageValidation.csproj b/src/Compatibility/ApiCompat/Microsoft.DotNet.PackageValidation/Microsoft.DotNet.PackageValidation.csproj index b4ad02f6b6fe..df6d72669520 100644 --- a/src/Compatibility/ApiCompat/Microsoft.DotNet.PackageValidation/Microsoft.DotNet.PackageValidation.csproj +++ b/src/Compatibility/ApiCompat/Microsoft.DotNet.PackageValidation/Microsoft.DotNet.PackageValidation.csproj @@ -2,6 +2,8 @@ $(NetToolMinimum);$(NetFrameworkToolCurrent) + + false diff --git a/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/Microsoft.DotNet.ApiSymbolExtensions.csproj b/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/Microsoft.DotNet.ApiSymbolExtensions.csproj index c9d256170375..d46302ee0ce5 100644 --- a/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/Microsoft.DotNet.ApiSymbolExtensions.csproj +++ b/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/Microsoft.DotNet.ApiSymbolExtensions.csproj @@ -2,6 +2,8 @@ $(NetToolMinimum);$(NetFrameworkToolCurrent) + + false From 26fac7feb1cc31fdd7715061e70a559c7394055b Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 16 Jan 2025 22:40:56 +0000 Subject: [PATCH 159/193] Update dependencies from https://github.com/dotnet/razor build 20250116.1 Microsoft.SourceBuild.Intermediate.razor , Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal , Microsoft.CodeAnalysis.Razor.Tooling.Internal , Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 9.0.0-preview.25058.6 -> To Version 9.0.0-preview.25066.1 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 6a5d53130dfc..67522e18b418 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -325,22 +325,22 @@ d4880ed4160b476346850ac653ce4b829ab09c94 - + https://github.com/dotnet/razor - a88b5165fecc5cfb98f513fc2b743bf05df6fc6f + 9b1e979b6c3fe7cfbe30f595b9b0994d20bd482c - + https://github.com/dotnet/razor - a88b5165fecc5cfb98f513fc2b743bf05df6fc6f + 9b1e979b6c3fe7cfbe30f595b9b0994d20bd482c - + https://github.com/dotnet/razor - a88b5165fecc5cfb98f513fc2b743bf05df6fc6f + 9b1e979b6c3fe7cfbe30f595b9b0994d20bd482c - + https://github.com/dotnet/razor - a88b5165fecc5cfb98f513fc2b743bf05df6fc6f + 9b1e979b6c3fe7cfbe30f595b9b0994d20bd482c diff --git a/eng/Versions.props b/eng/Versions.props index 64759b6344ed..1c52db1a52e0 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -235,9 +235,9 @@ - 9.0.0-preview.25065.1 - 9.0.0-preview.25065.1 - 9.0.0-preview.25065.1 + 9.0.0-preview.25066.1 + 9.0.0-preview.25066.1 + 9.0.0-preview.25066.1 From 712c5747e6d9aef597a03d5fb752b392204b3290 Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Fri, 17 Jan 2025 03:28:32 +0100 Subject: [PATCH 160/193] Correctly respect NoWarn CLI/Task options in Compatibility logging interface (#46061) --- .../SuppressibleMSBuildLog.cs | 3 ++- .../ValidateAssembliesTask.cs | 2 +- .../ValidatePackageTask.cs | 2 +- .../Program.cs | 4 ++-- .../SuppressibleConsoleLog.cs | 3 ++- .../Logging/SuppressionEngine.cs | 2 +- .../Logging/ConsoleLog.cs | 20 ++++++++++++++++--- .../Logging/MSBuildLog.cs | 8 ++++++-- 8 files changed, 32 insertions(+), 12 deletions(-) diff --git a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompat.Task/SuppressibleMSBuildLog.cs b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompat.Task/SuppressibleMSBuildLog.cs index 0dda7cfe46cc..57e2ff4748cf 100644 --- a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompat.Task/SuppressibleMSBuildLog.cs +++ b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompat.Task/SuppressibleMSBuildLog.cs @@ -10,7 +10,8 @@ namespace Microsoft.DotNet.ApiCompat.Task /// Class that can log Suppressions in an MSBuild task, by implementing MSBuildLog and ISuppressibleLog. /// internal sealed class SuppressibleMSBuildLog(NET.Build.Tasks.Logger log, - ISuppressionEngine suppressionEngine) : MSBuildLog(log), ISuppressibleLog + ISuppressionEngine suppressionEngine, + string? noWarn = null) : MSBuildLog(log, noWarn), ISuppressibleLog { /// public bool HasLoggedErrorSuppressions { get; private set; } diff --git a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompat.Task/ValidateAssembliesTask.cs b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompat.Task/ValidateAssembliesTask.cs index 650245dae575..424d81b4862a 100644 --- a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompat.Task/ValidateAssembliesTask.cs +++ b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompat.Task/ValidateAssembliesTask.cs @@ -132,7 +132,7 @@ public override bool Execute() protected override void ExecuteCore() { - SuppressibleMSBuildLog logFactory(ISuppressionEngine suppressionEngine) => new(Log, suppressionEngine); + SuppressibleMSBuildLog logFactory(ISuppressionEngine suppressionEngine) => new(Log, suppressionEngine, NoWarn); ValidateAssemblies.Run(logFactory, GenerateSuppressionFile, PreserveUnnecessarySuppressions, diff --git a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompat.Task/ValidatePackageTask.cs b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompat.Task/ValidatePackageTask.cs index b839ca1d4325..196d90c47272 100644 --- a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompat.Task/ValidatePackageTask.cs +++ b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompat.Task/ValidatePackageTask.cs @@ -140,7 +140,7 @@ public override bool Execute() protected override void ExecuteCore() { - SuppressibleMSBuildLog logFactory(ISuppressionEngine suppressionEngine) => new(Log, suppressionEngine); + SuppressibleMSBuildLog logFactory(ISuppressionEngine suppressionEngine) => new(Log, suppressionEngine, NoWarn); ValidatePackage.Run(logFactory, GenerateSuppressionFile, PreserveUnnecessarySuppressions, diff --git a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompat.Tool/Program.cs b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompat.Tool/Program.cs index cb248930e153..1cf403f061f1 100644 --- a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompat.Tool/Program.cs +++ b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompat.Tool/Program.cs @@ -196,7 +196,7 @@ static int Main(string[] args) (string, string)[]? leftAssembliesTransformationPattern = parseResult.GetValue(leftAssembliesTransformationPatternOption); (string, string)[]? rightAssembliesTransformationPattern = parseResult.GetValue(rightAssembliesTransformationPatternOption); - SuppressibleConsoleLog logFactory(ISuppressionEngine suppressionEngine) => new(suppressionEngine, verbosity); + SuppressibleConsoleLog logFactory(ISuppressionEngine suppressionEngine) => new(suppressionEngine, verbosity, noWarn); int exitCode = ValidateAssemblies.Run(logFactory, generateSuppressionFile, preserveUnnecessarySuppressions, @@ -320,7 +320,7 @@ static int Main(string[] args) Dictionary>? baselinePackageAssemblyReferences = parseResult.GetValue(baselinePackageAssemblyReferencesOption); string[]? baselinePackageFrameworksToIgnore = parseResult.GetValue(baselinePackageFrameworksToIgnoreOption); - SuppressibleConsoleLog logFactory(ISuppressionEngine suppressionEngine) => new(suppressionEngine, verbosity); + SuppressibleConsoleLog logFactory(ISuppressionEngine suppressionEngine) => new(suppressionEngine, verbosity, noWarn); int exitCode = ValidatePackage.Run(logFactory, generateSuppressionFile, preserveUnnecessarySuppressions, diff --git a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompat.Tool/SuppressibleConsoleLog.cs b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompat.Tool/SuppressibleConsoleLog.cs index 4bda2be1f799..5d2222e45a58 100644 --- a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompat.Tool/SuppressibleConsoleLog.cs +++ b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompat.Tool/SuppressibleConsoleLog.cs @@ -10,7 +10,8 @@ namespace Microsoft.DotNet.ApiCompat.Tool /// Class that can log Suppressions to the Console, by implementing ConsoleLog and ISuppressibleLog. /// internal sealed class SuppressibleConsoleLog(ISuppressionEngine suppressionEngine, - MessageImportance messageImportance) : ConsoleLog(messageImportance), ISuppressibleLog + MessageImportance messageImportance, + string? noWarn = null) : ConsoleLog(messageImportance, noWarn), ISuppressibleLog { /// public bool HasLoggedErrorSuppressions { get; private set; } diff --git a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/Logging/SuppressionEngine.cs b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/Logging/SuppressionEngine.cs index fef506d21bbf..8fbfbc69c1ae 100644 --- a/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/Logging/SuppressionEngine.cs +++ b/src/Compatibility/ApiCompat/Microsoft.DotNet.ApiCompatibility/Logging/SuppressionEngine.cs @@ -17,7 +17,7 @@ public class SuppressionEngine(string? noWarn = null, bool baselineAllErrors = f protected const string DiagnosticIdDocumentationComment = " https://learn.microsoft.com/dotnet/fundamentals/package-validation/diagnostic-ids "; private readonly HashSet _baselineSuppressions = []; private readonly HashSet _suppressions = []; - private readonly HashSet _noWarn = string.IsNullOrEmpty(noWarn) ? [] : new(noWarn!.Split(';')); + private readonly HashSet _noWarn = string.IsNullOrEmpty(noWarn) ? [] : new(noWarn!.Split(';'), StringComparer.OrdinalIgnoreCase); /// public bool BaselineAllErrors { get; } = baselineAllErrors; diff --git a/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/Logging/ConsoleLog.cs b/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/Logging/ConsoleLog.cs index fd380e6c1214..41754fadcfa2 100644 --- a/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/Logging/ConsoleLog.cs +++ b/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/Logging/ConsoleLog.cs @@ -6,8 +6,10 @@ namespace Microsoft.DotNet.ApiSymbolExtensions.Logging /// /// Class to define common logging abstraction to the console across the APICompat and GenAPI codebases. /// - public class ConsoleLog(MessageImportance messageImportance) : ILog + public class ConsoleLog(MessageImportance messageImportance, string? noWarn = null) : ILog { + private readonly HashSet _noWarn = string.IsNullOrEmpty(noWarn) ? [] : new(noWarn!.Split(';'), StringComparer.OrdinalIgnoreCase); + /// public bool HasLoggedErrors { get; private set; } @@ -30,8 +32,20 @@ public virtual void LogWarning(string message) => Console.WriteLine(message); /// - public virtual void LogWarning(string code, string message) => - Console.WriteLine($"{code}: {message}"); + public virtual void LogWarning(string code, string message) + { + string messageTextWithCode = $"{code}: {message}"; + + // Mimic MSBuild which logs suppressed warnings as low importance messages. + if (_noWarn.Contains(code)) + { + LogMessage(MessageImportance.Low, messageTextWithCode); + } + else + { + Console.WriteLine(messageTextWithCode); + } + } /// public virtual void LogMessage(string message) => diff --git a/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/Logging/MSBuildLog.cs b/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/Logging/MSBuildLog.cs index 2d85e521ecad..cd2eb8e5bc05 100644 --- a/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/Logging/MSBuildLog.cs +++ b/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/Logging/MSBuildLog.cs @@ -8,8 +8,11 @@ namespace Microsoft.DotNet.ApiSymbolExtensions.Logging /// /// Class to define common logging abstraction for MSBuild tasks across the APICompat and GenAPI codebases. /// - internal class MSBuildLog(Logger log) : ILog + internal class MSBuildLog(Logger log, string? noWarn = null) : ILog { + // Remove passing in NoWarn when MSBuild respects it correctly in outer-builds: https://github.com/dotnet/msbuild/issues/10873 + private readonly HashSet _noWarn = string.IsNullOrEmpty(noWarn) ? [] : new(noWarn!.Split(';'), StringComparer.OrdinalIgnoreCase); + /// public bool HasLoggedErrors => log.HasLoggedErrors; @@ -27,7 +30,8 @@ public virtual void LogWarning(string message) => /// public virtual void LogWarning(string code, string message) => - LogCore(MessageLevel.Warning, code, message); + // Mimic MSBuild which logs suppressed warnings as low importance messages. + LogCore(_noWarn.Contains(code) ? MessageLevel.LowImportance : MessageLevel.Warning, code, message); /// public virtual void LogMessage(string message) => From c1bea4d0264ea7afe9e9e283b99842324e01673d Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 17 Jan 2025 05:01:41 +0000 Subject: [PATCH 161/193] Update dependencies from https://github.com/dotnet/msbuild build 20250116.10 Microsoft.SourceBuild.Intermediate.msbuild , Microsoft.Build , Microsoft.Build.Localization From Version 17.14.0-preview-25065-01 -> To Version 17.14.0-preview-25066-10 --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 114685867d5a..3fb8f379ef54 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -73,18 +73,18 @@ 0de3165cb0d56323b6caaf8e9916d4d9e72da32d - + https://github.com/dotnet/msbuild - ec6b2a31a9388c298c4cab5be34ec2402372c5ce + e645f1d4a8cecfb389bacf826e761fbba85d1872 - + https://github.com/dotnet/msbuild - ec6b2a31a9388c298c4cab5be34ec2402372c5ce + e645f1d4a8cecfb389bacf826e761fbba85d1872 - + https://github.com/dotnet/msbuild - ec6b2a31a9388c298c4cab5be34ec2402372c5ce + e645f1d4a8cecfb389bacf826e761fbba85d1872 diff --git a/eng/Versions.props b/eng/Versions.props index ae5c80cc2f5c..668cfc8dc427 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -189,8 +189,8 @@ At usage sites, either we use MicrosoftBuildMinimumVersion, or MicrosoftBuildVersion in source-only modes. Additionally, set the MinimumVSVersion for the installer UI that's required for targeting NetCurrent --> - 17.14.0-preview-25065-01 - 17.14.0-preview-25065-01 + 17.14.0-preview-25066-10 + 17.14.0-preview-25066-10 17.11.4 17.12 From 805047a33f869f02afce45f89043716980d9967e Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 17 Jan 2025 05:01:42 +0000 Subject: [PATCH 162/193] Update dependencies from https://github.com/dotnet/sourcelink build 20250116.1 Microsoft.SourceBuild.Intermediate.sourcelink , Microsoft.Build.Tasks.Git , Microsoft.SourceLink.AzureRepos.Git , Microsoft.SourceLink.Bitbucket.Git , Microsoft.SourceLink.Common , Microsoft.SourceLink.GitHub , Microsoft.SourceLink.GitLab From Version 9.0.0-beta.25065.1 -> To Version 9.0.0-beta.25066.1 --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 12 ++++++------ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 114685867d5a..202a513afe08 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -471,34 +471,34 @@ https://github.com/dotnet/deployment-tools c7bcd7d32f7744af89dfd031a9b2085e3004fd9c - + https://github.com/dotnet/sourcelink - 1b47023f07d3c19a1b3c6866ca922b9c913a5fff + 762b0e8b055fe9f203755b651e67c829e759f44d - + https://github.com/dotnet/sourcelink - 1b47023f07d3c19a1b3c6866ca922b9c913a5fff + 762b0e8b055fe9f203755b651e67c829e759f44d - + https://github.com/dotnet/sourcelink - 1b47023f07d3c19a1b3c6866ca922b9c913a5fff + 762b0e8b055fe9f203755b651e67c829e759f44d - + https://github.com/dotnet/sourcelink - 1b47023f07d3c19a1b3c6866ca922b9c913a5fff + 762b0e8b055fe9f203755b651e67c829e759f44d - + https://github.com/dotnet/sourcelink - 1b47023f07d3c19a1b3c6866ca922b9c913a5fff + 762b0e8b055fe9f203755b651e67c829e759f44d - + https://github.com/dotnet/sourcelink - 1b47023f07d3c19a1b3c6866ca922b9c913a5fff + 762b0e8b055fe9f203755b651e67c829e759f44d - + https://github.com/dotnet/sourcelink - 1b47023f07d3c19a1b3c6866ca922b9c913a5fff + 762b0e8b055fe9f203755b651e67c829e759f44d diff --git a/eng/Versions.props b/eng/Versions.props index ae5c80cc2f5c..f4cd439dc6de 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -273,12 +273,12 @@ - 9.0.0-beta.25065.1 - 9.0.0-beta.25065.1 - 9.0.0-beta.25065.1 - 9.0.0-beta.25065.1 - 9.0.0-beta.25065.1 - 9.0.0-beta.25065.1 + 9.0.0-beta.25066.1 + 9.0.0-beta.25066.1 + 9.0.0-beta.25066.1 + 9.0.0-beta.25066.1 + 9.0.0-beta.25066.1 + 9.0.0-beta.25066.1 From 7094baa43ec35f15d5401c7ef747c1377061f0b5 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 17 Jan 2025 05:02:03 +0000 Subject: [PATCH 163/193] Update dependencies from https://github.com/dotnet/roslyn build 20250116.8 Microsoft.SourceBuild.Intermediate.roslyn , Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset , Microsoft.Net.Compilers.Toolset.Framework From Version 4.14.0-1.25064.9 -> To Version 4.14.0-1.25066.8 --- eng/Version.Details.xml | 36 ++++++++++++++++++------------------ eng/Versions.props | 16 ++++++++-------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index c4ddc0919710..e6d1a2632d7b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -97,43 +97,43 @@ 63a09289745da5c256e7baf5f4194a750b1ec878 - + https://github.com/dotnet/roslyn - 8c05cc8bf6ed417cdf93806301d835571da6aff2 + 6d6ca0ffccc112d337cd54b03d33ebb42ba35063 - + https://github.com/dotnet/roslyn - 8c05cc8bf6ed417cdf93806301d835571da6aff2 + 6d6ca0ffccc112d337cd54b03d33ebb42ba35063 - + https://github.com/dotnet/roslyn - 8c05cc8bf6ed417cdf93806301d835571da6aff2 + 6d6ca0ffccc112d337cd54b03d33ebb42ba35063 - + https://github.com/dotnet/roslyn - 8c05cc8bf6ed417cdf93806301d835571da6aff2 + 6d6ca0ffccc112d337cd54b03d33ebb42ba35063 - + https://github.com/dotnet/roslyn - 8c05cc8bf6ed417cdf93806301d835571da6aff2 + 6d6ca0ffccc112d337cd54b03d33ebb42ba35063 - + https://github.com/dotnet/roslyn - 8c05cc8bf6ed417cdf93806301d835571da6aff2 + 6d6ca0ffccc112d337cd54b03d33ebb42ba35063 - + https://github.com/dotnet/roslyn - 8c05cc8bf6ed417cdf93806301d835571da6aff2 + 6d6ca0ffccc112d337cd54b03d33ebb42ba35063 - + https://github.com/dotnet/roslyn - 8c05cc8bf6ed417cdf93806301d835571da6aff2 + 6d6ca0ffccc112d337cd54b03d33ebb42ba35063 - + https://github.com/dotnet/roslyn - 8c05cc8bf6ed417cdf93806301d835571da6aff2 + 6d6ca0ffccc112d337cd54b03d33ebb42ba35063 https://github.com/dotnet/aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index 4dd26345ae57..12545a14cba8 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -213,14 +213,14 @@ - 4.14.0-1.25065.10 - 4.14.0-1.25065.10 - 4.14.0-1.25065.10 - 4.14.0-1.25065.10 - 4.14.0-1.25065.10 - 4.14.0-1.25065.10 - 4.14.0-1.25065.10 - 4.14.0-1.25065.10 + 4.14.0-1.25066.8 + 4.14.0-1.25066.8 + 4.14.0-1.25066.8 + 4.14.0-1.25066.8 + 4.14.0-1.25066.8 + 4.14.0-1.25066.8 + 4.14.0-1.25066.8 + 4.14.0-1.25066.8 From 3794d364cd5129821ae0519c405e606b91f03f19 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 17 Jan 2025 05:02:16 +0000 Subject: [PATCH 164/193] Update dependencies from https://github.com/microsoft/testfx build 20250116.11 Microsoft.Testing.Platform , MSTest From Version 1.6.0-preview.25065.17 -> To Version 1.6.0-preview.25066.11 --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 114685867d5a..e536e85cf839 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -675,13 +675,13 @@ https://github.com/dotnet/runtime e77011b31a3e5c47d931248a64b47f9b2d47853d - + https://github.com/microsoft/testfx - f1995d7f35d960443efd1a7a6a713a41eaf35235 + b9b7f768cd89eec461ba64ee3b016083bc9614fa - + https://github.com/microsoft/testfx - f1995d7f35d960443efd1a7a6a713a41eaf35235 + b9b7f768cd89eec461ba64ee3b016083bc9614fa diff --git a/eng/Versions.props b/eng/Versions.props index ae5c80cc2f5c..1a0ca250a6bd 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -28,7 +28,7 @@ true 6.0.1 true - 1.6.0-preview.25065.17 + 1.6.0-preview.25066.11 30 @@ -289,7 +289,7 @@ 6.12.0 6.1.0 4.18.4 - 3.8.0-preview.25065.17 + 3.8.0-preview.25066.11 1.3.2 8.0.0-beta.23607.1 From f92b272db4d41ecaff136ef09f1e06e9b7be017a Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 17 Jan 2025 06:32:54 +0000 Subject: [PATCH 165/193] Update dependencies from https://github.com/dotnet/templating build 20250116.10 Microsoft.SourceBuild.Intermediate.templating , Microsoft.TemplateEngine.Abstractions , Microsoft.TemplateEngine.Mocks From Version 10.0.100-alpha.1.25066.6 -> To Version 10.0.100-alpha.1.25066.10 --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index b55886c047c3..50dcf7638cfe 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,18 +1,18 @@ - + https://github.com/dotnet/templating - 99a77a412e3cd0838fa7986ef7cbc14f29a29706 + 6a6c089abc661bd597b32a63e41a9bd2a011950e - + https://github.com/dotnet/templating - 99a77a412e3cd0838fa7986ef7cbc14f29a29706 + 6a6c089abc661bd597b32a63e41a9bd2a011950e - + https://github.com/dotnet/templating - 99a77a412e3cd0838fa7986ef7cbc14f29a29706 + 6a6c089abc661bd597b32a63e41a9bd2a011950e diff --git a/eng/Versions.props b/eng/Versions.props index fbb97c807545..38029f69ebb6 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -196,13 +196,13 @@ - 10.0.100-alpha.1.25066.6 + 10.0.100-alpha.1.25066.10 $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) - 10.0.100-alpha.1.25066.6 + 10.0.100-alpha.1.25066.10 $(MicrosoftTemplateEngineMocksPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineMocksPackageVersion) From eeb86e9106c718cae33b303f873e66555c288299 Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Fri, 17 Jan 2025 14:31:17 +0100 Subject: [PATCH 166/193] Ignore internal .NET Framework assemblies in AssemblySymbolLoader (#46059) Co-authored-by: Eric StJohn --- .../AssemblySymbolLoader.cs | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/AssemblySymbolLoader.cs b/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/AssemblySymbolLoader.cs index 1d6921dd1f92..f90efb19f4ad 100644 --- a/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/AssemblySymbolLoader.cs +++ b/src/Compatibility/Microsoft.DotNet.ApiSymbolExtensions/AssemblySymbolLoader.cs @@ -16,6 +16,22 @@ namespace Microsoft.DotNet.ApiSymbolExtensions /// public class AssemblySymbolLoader : IAssemblySymbolLoader { + // This is a list of dangling .NET Framework internal assemblies that should never get loaded. + private static readonly HashSet s_assembliesToIgnore = [ + "System.ServiceModel.Internals", + "Microsoft.Internal.Tasks.Dataflow", + "MSDATASRC", + "ADODB", + "Microsoft.StdFormat", + "stdole", + "PresentationUI", + "Microsoft.VisualBasic.Activities.Compiler", + "SMDiagnostics", + "System.Xaml.Hosting", + "Microsoft.Transactions.Bridge", + "Microsoft.Workflow.Compiler" + ]; + private readonly ILog _log; // Dictionary that holds the paths to help loading dependencies. Keys will be assembly name and // value are the containing folder. @@ -339,13 +355,18 @@ private void ResolveReferences(PEReader peReader, ImmutableHashSet? refe foreach (AssemblyReferenceHandle handle in reader.AssemblyReferences) { AssemblyReference reference = reader.GetAssemblyReference(handle); - string name = $"{reader.GetString(reference.Name)}.dll"; + string nameWithoutExtension = reader.GetString(reference.Name); + + // Skip assemblies that should never get loaded because they are purely internal + if (s_assembliesToIgnore.Contains(nameWithoutExtension)) + continue; + + string name = nameWithoutExtension + ".dll"; // Skip reference assemblies that are loaded later. if (referenceAssemblyNamesToIgnore != null && referenceAssemblyNamesToIgnore.Contains(name)) continue; - // If the assembly reference is already loaded, don't do anything. if (_loadedAssemblies.ContainsKey(name)) continue; From 1a0425fcc5bc9003e843ef21a43d3793cdeb1462 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Jare=C5=A1?= Date: Fri, 17 Jan 2025 14:41:23 +0100 Subject: [PATCH 167/193] Fix not failing when build fails (#46051) --- .../Terminal/TerminalTestReporter.cs | 24 +++++++++++++++---- .../dotnet-test/Terminal/TestProgressState.cs | 2 ++ .../dotnet-test/TestingPlatformCommand.cs | 4 ++++ 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/TerminalTestReporter.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/TerminalTestReporter.cs index 38eda2d001cf..d9c621862c39 100644 --- a/src/Cli/dotnet/commands/dotnet-test/Terminal/TerminalTestReporter.cs +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/TerminalTestReporter.cs @@ -236,7 +236,8 @@ private void AppendTestRunSummary(ITerminal terminal) bool notEnoughTests = totalTests < _options.MinimumExpectedTests; bool allTestsWereSkipped = totalTests == 0 || totalTests == totalSkippedTests; bool anyTestFailed = totalFailedTests > 0; - bool runFailed = anyTestFailed || notEnoughTests || allTestsWereSkipped || _wasCancelled; + bool anyAssemblyFailed = _assemblies.Values.Any(a => !a.Success); + bool runFailed = anyAssemblyFailed || anyTestFailed || notEnoughTests || allTestsWereSkipped || _wasCancelled; terminal.SetColor(runFailed ? TerminalColor.Red : TerminalColor.Green); terminal.Append(LocalizableStrings.TestRunSummary); @@ -254,7 +255,7 @@ private void AppendTestRunSummary(ITerminal terminal) { terminal.Append(LocalizableStrings.ZeroTestsRan); } - else if (anyTestFailed) + else if (anyTestFailed || anyAssemblyFailed) { terminal.Append(string.Format(CultureInfo.CurrentCulture, "{0}!", LocalizableStrings.Failed)); } @@ -290,18 +291,29 @@ private void AppendTestRunSummary(ITerminal terminal) int failed = _assemblies.Values.Sum(t => t.FailedTests); int passed = _assemblies.Values.Sum(t => t.PassedTests); int skipped = _assemblies.Values.Sum(t => t.SkippedTests); + int error = _assemblies.Values.Sum(t => !t.Success && (t.TotalTests == 0 || t.FailedTests == 0) ? 1 : 0); TimeSpan runDuration = _testExecutionStartTime != null && _testExecutionEndTime != null ? (_testExecutionEndTime - _testExecutionStartTime).Value : TimeSpan.Zero; bool colorizeFailed = failed > 0; - bool colorizePassed = passed > 0 && _buildErrorsCount == 0 && failed == 0; - bool colorizeSkipped = skipped > 0 && skipped == total && _buildErrorsCount == 0 && failed == 0; + bool colorizeError = error > 0; + bool colorizePassed = passed > 0 && _buildErrorsCount == 0 && failed == 0 && error == 0; + bool colorizeSkipped = skipped > 0 && skipped == total && _buildErrorsCount == 0 && failed == 0 && error == 0; + string errorText = $"{SingleIndentation}error: {error}"; string totalText = $"{SingleIndentation}total: {total}"; string failedText = $"{SingleIndentation}failed: {failed}"; string passedText = $"{SingleIndentation}succeeded: {passed}"; string skippedText = $"{SingleIndentation}skipped: {skipped}"; string durationText = $"{SingleIndentation}duration: "; + if (error > 0) + { + terminal.SetColor(TerminalColor.Red); + terminal.AppendLine(errorText); + terminal.ResetColor(); + terminal.AppendLine(); + } + terminal.ResetColor(); terminal.AppendLine(totalText); if (colorizeFailed) @@ -739,6 +751,8 @@ internal void AssemblyRunCompleted(string assembly, string? targetFramework, str int? exitCode, string? outputData, string? errorData) { TestProgressState assemblyRun = GetOrAddAssemblyRun(assembly, targetFramework, architecture, executionId); + assemblyRun.ExitCode = exitCode; + assemblyRun.Success = exitCode == 0 && assemblyRun.FailedTests == 0; assemblyRun.Stopwatch.Stop(); _terminalWithProgress.RemoveWorker(assemblyRun.SlotIndex); @@ -787,7 +801,7 @@ private static void AppendAssemblySummary(TestProgressState assemblyRun, ITermin AppendAssemblyLinkTargetFrameworkAndArchitecture(terminal, assemblyRun.Assembly, assemblyRun.TargetFramework, assemblyRun.Architecture); terminal.Append(' '); - AppendAssemblyResult(terminal, assemblyRun.FailedTests == 0, failedTests, warnings); + AppendAssemblyResult(terminal, assemblyRun.Success, failedTests, warnings); terminal.Append(' '); AppendLongDuration(terminal, assemblyRun.Stopwatch.Elapsed); } diff --git a/src/Cli/dotnet/commands/dotnet-test/Terminal/TestProgressState.cs b/src/Cli/dotnet/commands/dotnet-test/Terminal/TestProgressState.cs index 7824e12bc0fa..aa1291e6d097 100644 --- a/src/Cli/dotnet/commands/dotnet-test/Terminal/TestProgressState.cs +++ b/src/Cli/dotnet/commands/dotnet-test/Terminal/TestProgressState.cs @@ -48,6 +48,8 @@ public TestProgressState(long id, string assembly, string? targetFramework, stri public long Version { get; internal set; } public List<(string? DisplayName, string? UID)> DiscoveredTests { get; internal set; } = new(); + public int? ExitCode { get; internal set; } + public bool Success { get; internal set; } internal void AddError(string text) => Messages.Add(new ErrorMessage(text)); diff --git a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs index 526fb1803586..e73dddebf244 100644 --- a/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs +++ b/src/Cli/dotnet/commands/dotnet-test/TestingPlatformCommand.cs @@ -387,6 +387,10 @@ private void OnTestProcessExited(object sender, TestProcessExitEventArgs args) { _output.AssemblyRunCompleted(appInfo.ModulePath, appInfo.TargetFramework, appInfo.Architecture, appInfo.ExecutionId, args.ExitCode, string.Join(Environment.NewLine, args.OutputData), string.Join(Environment.NewLine, args.ErrorData)); } + else + { + _output.AssemblyRunCompleted(testApplication.Module.DllOrExePath ?? testApplication.Module.ProjectPath, testApplication.Module.TargetFramework, architecture: null, null, args.ExitCode, string.Join(Environment.NewLine, args.OutputData), string.Join(Environment.NewLine, args.ErrorData)); + } if (!VSTestTrace.TraceEnabled) return; From 1b7971d7c26c7e593d26df122843e74ecbad897a Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Fri, 17 Jan 2025 09:41:22 -0800 Subject: [PATCH 168/193] Add error for incorrect aot publish (#46070) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For the following project (note it uses the nativeaot runtime pack): ```xml Exe net10.0 enable enable true true true ``` This command produces an error: ``` > dotnet build -t:Publish Restore complete (0.6s) You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy project failed with 2 error(s) (0.7s) → bin/Debug/net10.0/linux-x64/project.dll EXEC : error : Failed to load assembly 'System.Private.StackTraceMetadata' .nuget/packages/microsoft.dotnet.ilcompiler/10.0.0-alpha.1.25052.4/build/Microsoft.NETCore.Native.targets(316,5): error MSB3073: The command "".nuget/packages/runtime.linux-x64.microsoft.dotnet.ilcompiler/10.0.0-alpha.1.25052.4/tools/ilc" @"obj/Debug/net10.0/linux-x64/native/project.ilc.rsp"" exited with code 1. ``` This is due to ILC being passed assemblies from the coreclr runtime pack (which doesn't include S.P.StackTraceMetadata) instead of the nativeaot framework assemblies. This adds a better error message for this unsupported scenario. --- src/Tasks/Common/Resources/Strings.resx | 7 +++++-- src/Tasks/Common/Resources/xlf/Strings.cs.xlf | 5 +++++ src/Tasks/Common/Resources/xlf/Strings.de.xlf | 5 +++++ src/Tasks/Common/Resources/xlf/Strings.es.xlf | 5 +++++ src/Tasks/Common/Resources/xlf/Strings.fr.xlf | 5 +++++ src/Tasks/Common/Resources/xlf/Strings.it.xlf | 5 +++++ src/Tasks/Common/Resources/xlf/Strings.ja.xlf | 5 +++++ src/Tasks/Common/Resources/xlf/Strings.ko.xlf | 5 +++++ src/Tasks/Common/Resources/xlf/Strings.pl.xlf | 5 +++++ src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf | 5 +++++ src/Tasks/Common/Resources/xlf/Strings.ru.xlf | 5 +++++ src/Tasks/Common/Resources/xlf/Strings.tr.xlf | 5 +++++ src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf | 5 +++++ src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf | 5 +++++ .../targets/Microsoft.NET.Publish.targets | 6 ++++++ 15 files changed, 76 insertions(+), 2 deletions(-) diff --git a/src/Tasks/Common/Resources/Strings.resx b/src/Tasks/Common/Resources/Strings.resx index 3bd60a9c395b..527418c3a435 100644 --- a/src/Tasks/Common/Resources/Strings.resx +++ b/src/Tasks/Common/Resources/Strings.resx @@ -977,10 +977,13 @@ You may need to build the project on another operating system or architecture, o NETSDK1223: Targeting .NET 9.0 or higher in Visual Studio 2022 17.11 is not supported. {StrBegins="NETSDK1223: "} - NETSDK1224: ASP.NET Core framework assets are not supported for the target framework. {StrBegins="NETSDK1224: "} - + + + NETSDK1225: Native compilation is not supported when invoking the Publish target directly. Try running dotnet publish. + {StrBegins="NETSDK1225: "} + diff --git a/src/Tasks/Common/Resources/xlf/Strings.cs.xlf b/src/Tasks/Common/Resources/xlf/Strings.cs.xlf index fda8d37a56e1..dab129a08c52 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.cs.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.cs.xlf @@ -646,6 +646,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1115: Aktuální sada .NET SDK nepodporuje .NET Framework bez použití výchozích nastavení .NET SDK. Pravděpodobně došlo k neshodě mezi vlastnostmi CLRSupport projektu C++/CLI a TargetFramework. {StrBegins="NETSDK1115: "} + + NETSDK1225: Native compilation is not supported when invoking the Publish target directly. Try running dotnet publish. + NETSDK1225: Native compilation is not supported when invoking the Publish target directly. Try running dotnet publish. + {StrBegins="NETSDK1225: "} + NETSDK1223: Targeting .NET 9.0 or higher in Visual Studio 2022 17.11 is not supported. NETSDK1223: Cílení na .NET 9.0 nebo vyšší se v sadě Visual Studio 2022 17.11 nepodporuje. diff --git a/src/Tasks/Common/Resources/xlf/Strings.de.xlf b/src/Tasks/Common/Resources/xlf/Strings.de.xlf index 6961622fd6ba..9e39c2d5bd3e 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.de.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.de.xlf @@ -646,6 +646,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1115: Das aktuelle .NET SDK unterstützt das .NET Framework nur, wenn .NET SDK-Standardwerte verwendet werden. Wahrscheinlich liegt ein Konflikt zwischen der CLRSupport-Eigenschaft des C++-/CLI-Projekts und TargetFramework vor. {StrBegins="NETSDK1115: "} + + NETSDK1225: Native compilation is not supported when invoking the Publish target directly. Try running dotnet publish. + NETSDK1225: Native compilation is not supported when invoking the Publish target directly. Try running dotnet publish. + {StrBegins="NETSDK1225: "} + NETSDK1223: Targeting .NET 9.0 or higher in Visual Studio 2022 17.11 is not supported. NETSDK1223: Die Ausrichtung auf .NET 9.0 oder höher in Visual Studio 2022 17.11 wird nicht unterstützt. diff --git a/src/Tasks/Common/Resources/xlf/Strings.es.xlf b/src/Tasks/Common/Resources/xlf/Strings.es.xlf index 45143292fc41..ea92a565fb71 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.es.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.es.xlf @@ -646,6 +646,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1115: El SDK de .NET actual no admite .NET Framework sin usar los valores predeterminados de dicho SDK. Posiblemente se deba a la falta de coincidencia entre la propiedad CLRSupport del proyecto de C++/CLI y TargetFramework. {StrBegins="NETSDK1115: "} + + NETSDK1225: Native compilation is not supported when invoking the Publish target directly. Try running dotnet publish. + NETSDK1225: Native compilation is not supported when invoking the Publish target directly. Try running dotnet publish. + {StrBegins="NETSDK1225: "} + NETSDK1223: Targeting .NET 9.0 or higher in Visual Studio 2022 17.11 is not supported. NETSDK1223: no se admite el destino de .NET 9.0 o posterior en Visual Studio 2022 17.11. diff --git a/src/Tasks/Common/Resources/xlf/Strings.fr.xlf b/src/Tasks/Common/Resources/xlf/Strings.fr.xlf index 0d02fc82625e..2ad426ab793a 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.fr.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.fr.xlf @@ -646,6 +646,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1115: Le SDK .NET actuel ne prend pas en charge le .NET Framework avec des valeurs du SDK .NET autres que celles par défaut. Cela est probablement dû à une incompatibilité entre la propriété CLRSupport du projet C++/CLI et TargetFramework. {StrBegins="NETSDK1115: "} + + NETSDK1225: Native compilation is not supported when invoking the Publish target directly. Try running dotnet publish. + NETSDK1225: Native compilation is not supported when invoking the Publish target directly. Try running dotnet publish. + {StrBegins="NETSDK1225: "} + NETSDK1223: Targeting .NET 9.0 or higher in Visual Studio 2022 17.11 is not supported. NETSDK1223: Le ciblage de .NET 9.0 ou version ultérieure dans Visual Studio 2022 17.11 n’est pas pris en charge. diff --git a/src/Tasks/Common/Resources/xlf/Strings.it.xlf b/src/Tasks/Common/Resources/xlf/Strings.it.xlf index d28e78aacd2c..1319141e2c98 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.it.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.it.xlf @@ -646,6 +646,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1115: l'istanza corrente di .NET SDK non supporta .NET Framework senza usare le impostazioni predefinite di .NET SDK. Il problema dipende probabilmente da una mancata corrispondenza tra la proprietà CLRSupport del progetto C++/CLI e TargetFramework. {StrBegins="NETSDK1115: "} + + NETSDK1225: Native compilation is not supported when invoking the Publish target directly. Try running dotnet publish. + NETSDK1225: Native compilation is not supported when invoking the Publish target directly. Try running dotnet publish. + {StrBegins="NETSDK1225: "} + NETSDK1223: Targeting .NET 9.0 or higher in Visual Studio 2022 17.11 is not supported. NETSDK1223: la destinazione .NET 9.0 o versione successiva in Visual Studio 2022 17.11 non è supportata. diff --git a/src/Tasks/Common/Resources/xlf/Strings.ja.xlf b/src/Tasks/Common/Resources/xlf/Strings.ja.xlf index 80dce12a1fb7..2098ed8a25df 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.ja.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.ja.xlf @@ -646,6 +646,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1115: 現在の .NET SDK では、.NET SDK の既定値を使用せずに .NET Framework をサポートすることはできません。これは、C++/CLI プロジェクトの CLRSupport プロパティと TargetFramework の間の不一致が原因と考えられます。 {StrBegins="NETSDK1115: "} + + NETSDK1225: Native compilation is not supported when invoking the Publish target directly. Try running dotnet publish. + NETSDK1225: Native compilation is not supported when invoking the Publish target directly. Try running dotnet publish. + {StrBegins="NETSDK1225: "} + NETSDK1223: Targeting .NET 9.0 or higher in Visual Studio 2022 17.11 is not supported. NETSDK1223: Visual Studio 2022 17.11 では .NET 9.0 以上をターゲットにすることはできません。 diff --git a/src/Tasks/Common/Resources/xlf/Strings.ko.xlf b/src/Tasks/Common/Resources/xlf/Strings.ko.xlf index f5c0e0c0fabb..81883f27da98 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.ko.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.ko.xlf @@ -646,6 +646,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1115: 현재 .NET SDK는 .NET SDK 기본값을 사용하지 않는 .NET Framework를 지원하지 않습니다. C++/CLI 프로젝트 CLRSupport 속성과 TargetFramework 사이의 불일치 때문일 수 있습니다. {StrBegins="NETSDK1115: "} + + NETSDK1225: Native compilation is not supported when invoking the Publish target directly. Try running dotnet publish. + NETSDK1225: Native compilation is not supported when invoking the Publish target directly. Try running dotnet publish. + {StrBegins="NETSDK1225: "} + NETSDK1223: Targeting .NET 9.0 or higher in Visual Studio 2022 17.11 is not supported. NETSDK1223: Visual Studio 2022 17.11에서 .NET 9.0 이상을 대상으로 지정하는 것은 지원되지 않습니다. diff --git a/src/Tasks/Common/Resources/xlf/Strings.pl.xlf b/src/Tasks/Common/Resources/xlf/Strings.pl.xlf index 610c88dc27be..60213f327eba 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.pl.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.pl.xlf @@ -646,6 +646,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1115: Bieżący zestaw .NET SDK nie obsługuje programu .NET Framework bez użycia wartości domyślnych zestawu .NET SDK. Prawdopodobna przyczyna to niezgodność między właściwością CLRSupport projektu C++/CLI i elementu TargetFramework. {StrBegins="NETSDK1115: "} + + NETSDK1225: Native compilation is not supported when invoking the Publish target directly. Try running dotnet publish. + NETSDK1225: Native compilation is not supported when invoking the Publish target directly. Try running dotnet publish. + {StrBegins="NETSDK1225: "} + NETSDK1223: Targeting .NET 9.0 or higher in Visual Studio 2022 17.11 is not supported. NETSDK1223: platforma docelowa .NET 9.0 lub nowsza w programie Visual Studio 2022 17.11 nie jest obsługiwana. diff --git a/src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf b/src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf index 3800d3318f43..f2f9ab663c41 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf @@ -646,6 +646,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1115: o SDK do .NET atual não dá suporte ao .NET Framework sem o uso de Padrões do SDK do .NET. O motivo é provavelmente uma incompatibilidade entre a propriedade CLRSupport do projeto C++/CLI e a TargetFramework. {StrBegins="NETSDK1115: "} + + NETSDK1225: Native compilation is not supported when invoking the Publish target directly. Try running dotnet publish. + NETSDK1225: Native compilation is not supported when invoking the Publish target directly. Try running dotnet publish. + {StrBegins="NETSDK1225: "} + NETSDK1223: Targeting .NET 9.0 or higher in Visual Studio 2022 17.11 is not supported. NETSDK1223: não há suporte para o direcionamento do .NET 9.0 ou superior no Visual Studio 2022 17.11. diff --git a/src/Tasks/Common/Resources/xlf/Strings.ru.xlf b/src/Tasks/Common/Resources/xlf/Strings.ru.xlf index ccb1f5be5440..8991f7c09817 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.ru.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.ru.xlf @@ -646,6 +646,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1115: The current .NET SDK does not support .NET Framework without using .NET SDK Defaults. It is likely due to a mismatch between C++/CLI project CLRSupport property and TargetFramework. {StrBegins="NETSDK1115: "} + + NETSDK1225: Native compilation is not supported when invoking the Publish target directly. Try running dotnet publish. + NETSDK1225: Native compilation is not supported when invoking the Publish target directly. Try running dotnet publish. + {StrBegins="NETSDK1225: "} + NETSDK1223: Targeting .NET 9.0 or higher in Visual Studio 2022 17.11 is not supported. NETSDK1223: Нацеливание на .NET 9.0 или более поздней версии в Visual Studio 2022 17.11 не поддерживается. diff --git a/src/Tasks/Common/Resources/xlf/Strings.tr.xlf b/src/Tasks/Common/Resources/xlf/Strings.tr.xlf index 03d10ce034cd..5dd830aee234 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.tr.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.tr.xlf @@ -646,6 +646,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1115: Geçerli .NET SDK, .NET SDK Varsayılanlarını kullanmadan .NET Framework'ü desteklemiyor. C++/CLI projesi CLRSupport özelliği ve TargetFramework arasındaki uyuşmazlık bu duruma neden olabilir. {StrBegins="NETSDK1115: "} + + NETSDK1225: Native compilation is not supported when invoking the Publish target directly. Try running dotnet publish. + NETSDK1225: Native compilation is not supported when invoking the Publish target directly. Try running dotnet publish. + {StrBegins="NETSDK1225: "} + NETSDK1223: Targeting .NET 9.0 or higher in Visual Studio 2022 17.11 is not supported. NETSDK1223: Visual Studio 2022 17.11'de .NET 9.0 veya daha üst sürümünü hedefleme desteklenmiyor. diff --git a/src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf b/src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf index 1c839c9546b4..2fd1f72f629e 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf @@ -646,6 +646,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1115: 未使用 .NET SDK 默认设置的情况下,当前 .NET SDK 不支持 .NET Framework。很可能是因为 C++/CLI 项目的 CLRSupport 属性和 TargetFramework 之间存在不匹配情况。 {StrBegins="NETSDK1115: "} + + NETSDK1225: Native compilation is not supported when invoking the Publish target directly. Try running dotnet publish. + NETSDK1225: Native compilation is not supported when invoking the Publish target directly. Try running dotnet publish. + {StrBegins="NETSDK1225: "} + NETSDK1223: Targeting .NET 9.0 or higher in Visual Studio 2022 17.11 is not supported. NETSDK1223: 不支持在 Visual Studio 2022 17.11 中以 .NET 9.0 或更高版本为目标。 diff --git a/src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf b/src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf index afe51f9cdf17..9085e387657e 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf @@ -646,6 +646,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1115: 目前的 .NET SDK 不支援在不使用 .NET SDK 預設的情形下使用 .NET Framework。這可能是因為 C++/CLI 專案 CLRSupport 屬性與 TargetFramework 不相符所致。 {StrBegins="NETSDK1115: "} + + NETSDK1225: Native compilation is not supported when invoking the Publish target directly. Try running dotnet publish. + NETSDK1225: Native compilation is not supported when invoking the Publish target directly. Try running dotnet publish. + {StrBegins="NETSDK1225: "} + NETSDK1223: Targeting .NET 9.0 or higher in Visual Studio 2022 17.11 is not supported. NETSDK1223: 不支援在 Visual Studio 2022 17.11 中以 .NET 9.0 或更高版本為目標。 diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Publish.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Publish.targets index 4166601d326a..6c484d0c4c16 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Publish.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Publish.targets @@ -219,6 +219,12 @@ Copyright (c) .NET Foundation. All rights reserved. ResourceName="SolutionProjectConfigurationsConflict" FormatArguments="PublishRelease;$(ProjectName)"/> + + $(PublishDir)\ From bec5f97effe9de20d413c925fda8c59d29025901 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 17 Jan 2025 18:15:52 +0000 Subject: [PATCH 169/193] Update dependencies from https://github.com/dotnet/fsharp build 20250117.2 Microsoft.SourceBuild.Intermediate.fsharp , Microsoft.FSharp.Compiler From Version 9.0.200-beta.25056.5 -> To Version 9.0.300-beta.25067.2 --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 23fe310fdce6..9ad8354056d8 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -87,14 +87,14 @@ e645f1d4a8cecfb389bacf826e761fbba85d1872 - + https://github.com/dotnet/fsharp - 63a09289745da5c256e7baf5f4194a750b1ec878 + f4710e30f913b910ab468f0ca19dc67b7e561727 - + https://github.com/dotnet/fsharp - 63a09289745da5c256e7baf5f4194a750b1ec878 + f4710e30f913b910ab468f0ca19dc67b7e561727 diff --git a/eng/Versions.props b/eng/Versions.props index 5a756e56069e..bc328d168d35 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -209,7 +209,7 @@ - 13.9.200-beta.25056.5 + 13.9.300-beta.25067.2 From 3bd59c1068e7c4c5d918dd784c0805c223bc3667 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 17 Jan 2025 10:31:52 -0800 Subject: [PATCH 170/193] [main] Update dependencies from dotnet/windowsdesktop (#46084) Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 23fe310fdce6..a9cb46ed501b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -254,22 +254,22 @@ https://github.com/dotnet/runtime 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/windowsdesktop - 7da5574368c45752f272f11af3d5a5491425e657 + 346c8fa11140225e30d5d293fc937a27edbfe782 - + https://github.com/dotnet/windowsdesktop - 7da5574368c45752f272f11af3d5a5491425e657 + 346c8fa11140225e30d5d293fc937a27edbfe782 - + https://github.com/dotnet/windowsdesktop - 7da5574368c45752f272f11af3d5a5491425e657 + 346c8fa11140225e30d5d293fc937a27edbfe782 - + https://github.com/dotnet/windowsdesktop - 7da5574368c45752f272f11af3d5a5491425e657 + 346c8fa11140225e30d5d293fc937a27edbfe782 https://github.com/dotnet/wpf diff --git a/eng/Versions.props b/eng/Versions.props index 5a756e56069e..12fdae91da5f 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -136,9 +136,9 @@ - 10.0.0-alpha.1.25066.1 - 10.0.0-alpha.1.25066.1 - 10.0.0-alpha.1.25066.1 + 10.0.0-alpha.1.25066.2 + 10.0.0-alpha.1.25066.2 + 10.0.0-alpha.1.25066.2 From b58cc9adf271eab0ee43fc7bcee17bccba070a23 Mon Sep 17 00:00:00 2001 From: Ella Hathaway <67609881+ellahathaway@users.noreply.github.com> Date: Fri, 17 Jan 2025 10:53:52 -0800 Subject: [PATCH 171/193] Append `_Attempt$(System.JobAttempt)` to artifact name on failure (#46064) Co-authored-by: Michael Simons Co-authored-by: Matt Thalman --- eng/pipelines/templates/jobs/vmr-build.yml | 37 ++++++++++++++++++---- 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/eng/pipelines/templates/jobs/vmr-build.yml b/eng/pipelines/templates/jobs/vmr-build.yml index ec44a4f6cf3f..c13e5347fa83 100644 --- a/eng/pipelines/templates/jobs/vmr-build.yml +++ b/eng/pipelines/templates/jobs/vmr-build.yml @@ -187,6 +187,12 @@ jobs: - name: artifactsStagingDir value: $(Build.ArtifactStagingDirectory)/artifacts + - name: successfulJobArtifactName + value: $(Agent.JobName)_Artifacts + + - name: failedJobArtifactName + value: $(successfulJobArtifactName)_Attempt$(System.JobAttempt) + # manually disable CodeQL until https://dev.azure.com/mseng/1ES/_workitems/edit/2211548 is implemented # CodeQL doesn't work on arm64 macOS, see https://portal.microsofticm.com/imp/v5/incidents/details/532165079/summary - ${{ if eq(parameters.pool.os, 'macOS') }}: @@ -203,11 +209,21 @@ jobs: artifactName: $(Agent.JobName)_BuildLogs_Attempt$(System.JobAttempt) sbomEnabled: false + # Both publishing steps are necessary to ensure artifacts are published on both success and failure. + # This prevents overwrite conflicts in the event of a failed build followed by a rerun. + # Additionally, the 'Download Previous Build *' steps depend on a fixed name to acquire specific assets in multi-stage builds. - output: pipelineArtifact path: $(artifactsStagingDir) - artifact: $(Agent.JobName)_Artifacts - displayName: Publish Artifacts - condition: succeededOrFailed() + artifact: $(successfulJobArtifactName) + displayName: Publish Artifacts (On Success) + condition: succeeded() + sbomEnabled: true + + - output: pipelineArtifact + path: $(artifactsStagingDir) + artifact: $(failedJobArtifactName) + displayName: Publish Artifacts (On Failure) + condition: failed() sbomEnabled: true # Using build artifacts to enable publishing the vertical manifests to a single artifact from different jobs @@ -602,10 +618,19 @@ jobs: testRunTitle: ScenarioTests_$(Agent.JobName) - ${{ if or(ne(variables['System.TeamProject'], 'internal'), eq(variables['Build.Reason'], 'PullRequest')) }}: + # Both publishing steps are necessary to ensure artifacts are published on both success and failure. + # This prevents overwrite conflicts in the event of a failed build followed by a rerun. + # Additionally, the 'Download Previous Build *' steps depend on a fixed name to acquire specific assets in multi-stage builds. - publish: $(artifactsStagingDir) - artifact: $(Agent.JobName)_Artifacts - displayName: Publish Artifacts - condition: succeededOrFailed() + artifact: $(successfulJobArtifactName) + displayName: Publish Artifacts (On Success) + condition: succeeded() + continueOnError: true + + - publish: $(artifactsStagingDir) + artifact: $(failedJobArtifactName) + displayName: Publish Artifacts (On Failure) + condition: failed() continueOnError: true # Using build artifacts to enable publishing the vertical manifests to a single artifact from different jobs From 51df77b6c506511c4956e70e891ec8da365f2b59 Mon Sep 17 00:00:00 2001 From: Matt Mitchell Date: Fri, 17 Jan 2025 11:18:25 -0800 Subject: [PATCH 172/193] Collapse windows command line (#46092) --- eng/pipelines/templates/jobs/vmr-build.yml | 77 ++++++++++++++++------ 1 file changed, 57 insertions(+), 20 deletions(-) diff --git a/eng/pipelines/templates/jobs/vmr-build.yml b/eng/pipelines/templates/jobs/vmr-build.yml index c13e5347fa83..342dc5dcc8f4 100644 --- a/eng/pipelines/templates/jobs/vmr-build.yml +++ b/eng/pipelines/templates/jobs/vmr-build.yml @@ -161,13 +161,6 @@ jobs: - name: runTestsTimeout value: 30 - - ${{ if or(eq(parameters.useDevVersions, 'True'), eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}: - - name: _SignType - value: '' - - ${{ else }}: - - name: _SignType - value: real - - ${{ if parameters.isBuiltFromVmr }}: - name: vmrPath value: $(Build.SourcesDirectory) @@ -199,6 +192,54 @@ jobs: - name: ONEES_ENFORCED_CODEQL_ENABLED value: false + # Build up the command line variables. We avoid doing this in the script sections below + # because AzDO will not echo command lines if they are more than a single line. + + ## Build command line - Windows + - ${{ if eq(parameters.targetOS, 'windows') }}: + ## Basic arguments + - name: baseArguments + value: -ci -cleanWhileBuilding -prepareMachine /p:VerticalName=$(Agent.JobName) /p:ArtifactsStagingDir=$(artifactsStagingDir) + + - name: configArguments + value: -c ${{ parameters.configuration }} + + - name: targetArguments + value: /p:TargetOS=${{ parameters.targetOS }} /p:TargetArchitecture=${{ parameters.targetArchitecture }} + + ### Dev versions variables + - ${{ if eq(parameters.useDevVersions, 'True') }}: + - name: devArguments + value: -dev + - ${{ else }}: + - name: devArguments + value: '' + + ### Signing variables + - ${{ if eq(parameters.sign, 'True') }}: + - ${{ if or(eq(parameters.useDevVersions, 'True'), eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}: + # The _SignType variable is used by microbuild installation + - name: _SignType + value: '' + - name: signArguments + value: -sign /p:ForceDryRunSigning=true + - ${{ else }}: + - name: _SignType + value: real + - name: signArguments + value: -sign /p:DotNetSignType=real /p:TeamName=$(_TeamName) + - ${{ else }}: + - name: signArguments + value: '' + + ### Build Pass + - ${{ if ne(parameters.buildPass, '') }}: + - name: buildPassArguments + value: /p:DotNetBuildPass=${{ parameters.buildPass }} + - ${{ else }}: + - name: buildPassArguments + value: '' + templateContext: outputParentDirectory: $(Build.ArtifactStagingDirectory) outputs: @@ -323,7 +364,7 @@ jobs: parameters: enableMicrobuild: true enableMicrobuildForMacAndLinux: true - + - ${{ if eq(parameters.targetOS, 'windows') }}: # Node 20.x is a toolset dependency to build aspnetcore # Keep in sync with aspnetcore: https://github.com/dotnet/aspnetcore/blob/7d5309210d8f7bae8fa074da495e9d009d67f1b4/.azure/pipelines/ci.yml#L719-L722 @@ -332,18 +373,14 @@ jobs: inputs: versionSpec: 20.x - - script: | - set extraBuildArguments= - - set signArgs=/p:ForceDryRunSigning=true - if /I '$(_SignType)'=='real' set signArgs=/p:DotNetSignType=real /p:TeamName=$(_TeamName) - if /I '$(_SignType)'=='test' set signArgs=/p:DotNetSignType=test /p:TeamName=$(_TeamName) - if /I '${{ parameters.sign }}'=='True' if /I NOT '${{ parameters.buildSourceOnly }}'=='True' set extraBuildArguments=%extraBuildArguments% -sign %signArgs% - - if /I '${{ parameters.useDevVersions }}'=='True' set extraBuildArguments=%extraBuildArguments% -dev - set extraBuildProperties= - if not [${{ parameters.buildPass }}]==[] set extraBuildProperties=%extraBuildProperties% /p:DotNetBuildPass=${{ parameters.buildPass }} - call build.cmd -ci -cleanWhileBuilding -prepareMachine %extraBuildArguments% -c ${{ parameters.configuration }} /p:TargetOS=${{ parameters.targetOS }} /p:TargetArchitecture=${{ parameters.targetArchitecture }} /p:VerticalName=$(Agent.JobName) /p:ArtifactsStagingDir=$(artifactsStagingDir) %extraBuildProperties% ${{ parameters.extraProperties }} + - script: build.cmd + $(baseArguments) + $(configArguments) + $(targetArguments) + $(devArguments) + $(signArguments) + $(buildPassArguments) + ${{ parameters.extraProperties }} displayName: Build workingDirectory: ${{ variables.sourcesPath }} From e684019c11ba79c50d695cfcad31a41287b5ef97 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 17 Jan 2025 19:52:00 +0000 Subject: [PATCH 173/193] Update dependencies from https://github.com/dotnet/windowsdesktop build 20250117.5 Microsoft.WindowsDesktop.App.Ref , Microsoft.WindowsDesktop.App.Runtime.win-x64 , VS.Redist.Common.WindowsDesktop.SharedFramework.x64.10.0 , VS.Redist.Common.WindowsDesktop.TargetingPack.x64.10.0 From Version 10.0.0-alpha.1.25066.2 -> To Version 10.0.0-alpha.1.25067.5 Dependency coherency updates Microsoft.NET.Sdk.WindowsDesktop,Microsoft.Dotnet.WinForms.ProjectTemplates,Microsoft.DotNet.Wpf.ProjectTemplates From Version 10.0.0-alpha.1.25065.3 -> To Version 10.0.0-alpha.1.25067.3 (parent: Microsoft.WindowsDesktop.App.Ref --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 12 ++++++------ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a9cb46ed501b..183337215e0f 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -254,26 +254,26 @@ https://github.com/dotnet/runtime 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/windowsdesktop - 346c8fa11140225e30d5d293fc937a27edbfe782 + 8412ed8fb5535fd2e6c3c4b81e4fc7cd366c03a6 - + https://github.com/dotnet/windowsdesktop - 346c8fa11140225e30d5d293fc937a27edbfe782 + 8412ed8fb5535fd2e6c3c4b81e4fc7cd366c03a6 - + https://github.com/dotnet/windowsdesktop - 346c8fa11140225e30d5d293fc937a27edbfe782 + 8412ed8fb5535fd2e6c3c4b81e4fc7cd366c03a6 - + https://github.com/dotnet/windowsdesktop - 346c8fa11140225e30d5d293fc937a27edbfe782 + 8412ed8fb5535fd2e6c3c4b81e4fc7cd366c03a6 - + https://github.com/dotnet/wpf - aa1aa9703c49e330ab5eb9c39d81ab365422de1d + 3ce8132a0e8d6c8a9078d52383d6852b93c981c3 https://github.com/dotnet/aspnetcore @@ -401,13 +401,13 @@ dc2a6fe48cbcf06246a6d308087d58289772574c - + https://github.com/dotnet/winforms - 92f6da9cb051207ad7ea054ca43a6521fe31b38b + f0026e791faecab516dc9bd3d16872cd75cdbdb8 - + https://github.com/dotnet/wpf - aa1aa9703c49e330ab5eb9c39d81ab365422de1d + 3ce8132a0e8d6c8a9078d52383d6852b93c981c3 https://github.com/dotnet/xdt diff --git a/eng/Versions.props b/eng/Versions.props index 12fdae91da5f..f577bff6dcdb 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -83,7 +83,7 @@ - 10.0.0-alpha.1.25064.7 + 10.0.0-alpha.1.25066.5 @@ -136,9 +136,9 @@ - 10.0.0-alpha.1.25066.2 - 10.0.0-alpha.1.25066.2 - 10.0.0-alpha.1.25066.2 + 10.0.0-alpha.1.25067.5 + 10.0.0-alpha.1.25067.5 + 10.0.0-alpha.1.25067.5 @@ -246,8 +246,8 @@ - 10.0.0-alpha.1.25065.3 - 10.0.0-alpha.1.25065.3 + 10.0.0-alpha.1.25067.3 + 10.0.0-alpha.1.25067.3 From b119ba9c16db1e202457ac2a6d86cf3d967238f8 Mon Sep 17 00:00:00 2001 From: Ella Hathaway <67609881+ellahathaway@users.noreply.github.com> Date: Fri, 17 Jan 2025 13:04:29 -0800 Subject: [PATCH 174/193] Remove alpine n-1 leg (#46065) --- eng/pipelines/templates/jobs/vmr-build.yml | 2 +- eng/pipelines/templates/stages/vmr-build.yml | 72 +++++++------------ .../templates/variables/vmr-build.yml | 19 ++--- src/SourceBuild/content/eng/pipelines/ci.yml | 7 +- .../pipelines/source-build-sdk-diff-tests.yml | 4 +- 5 files changed, 35 insertions(+), 69 deletions(-) diff --git a/eng/pipelines/templates/jobs/vmr-build.yml b/eng/pipelines/templates/jobs/vmr-build.yml index 342dc5dcc8f4..a85476f6dc5d 100644 --- a/eng/pipelines/templates/jobs/vmr-build.yml +++ b/eng/pipelines/templates/jobs/vmr-build.yml @@ -408,7 +408,7 @@ jobs: fi if [[ '${{ parameters.withPreviousSDK }}' == 'True' ]]; then - # Source-built artifacts are from CentOS 9 Stream or Alpine 3.19. We want to download them without + # Source-built artifacts are from CentOS 9 Stream. We want to download them without # downloading portable versions from the internet. customPrepArgs="${customPrepArgs} --no-sdk --no-bootstrap" prepSdk=false diff --git a/eng/pipelines/templates/stages/vmr-build.yml b/eng/pipelines/templates/stages/vmr-build.yml index bf59dff17caa..bdede627acf5 100644 --- a/eng/pipelines/templates/stages/vmr-build.yml +++ b/eng/pipelines/templates/stages/vmr-build.yml @@ -126,28 +126,6 @@ stages: ### Additional jobs for lite/full builds ### - ${{ if in(parameters.scope, 'lite', 'full') }}: - # Disabled due to https://github.com/dotnet/source-build/issues/4819 - # - template: ../jobs/vmr-build.yml - # parameters: - # # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline - # buildName: ${{ format('{0}_Offline_PreviousSourceBuiltSdk', variables.alpinePreviousName) }} - # isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - # vmrBranch: ${{ variables.VmrBranch }} - # targetArchitecture: x64 - # artifactsRid: ${{ variables.alpinePreviousX64Rid }} - # pool: ${{ parameters.pool_Linux }} - # container: - # name: ${{ variables.alpinePreviousContainerName }} - # image: ${{ variables.alpinePreviousContainerImage }} - # targetRid: ${{ variables.alpinePreviousX64Rid }} - # buildFromArchive: false # 🚫 - # buildSourceOnly: true # ✅ - # enablePoison: true # ✅ - # excludeOmniSharpTests: true # ✅ - # runOnline: false # 🚫 - # useMonoRuntime: false # 🚫 - # withPreviousSDK: true # ✅ - - template: ../jobs/vmr-build.yml parameters: # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline @@ -167,6 +145,26 @@ stages: useMonoRuntime: false # 🚫 withPreviousSDK: false # 🚫 + - template: ../jobs/vmr-build.yml + parameters: + # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline + buildName: ${{ format('{0}_Offline_PreviousSourceBuiltSdk', variables.centOSStreamName) }} + isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} + vmrBranch: ${{ variables.VmrBranch }} + targetArchitecture: x64 + artifactsRid: ${{ variables.centOSStreamX64Rid }} + pool: ${{ parameters.pool_Linux }} + container: + name: ${{ variables.centOSStreamContainerName }} + image: ${{ variables.centOSStreamContainerImage }} + buildFromArchive: false # 🚫 + buildSourceOnly: true # ✅ + enablePoison: true # ✅ + excludeOmniSharpTests: true # ✅ + runOnline: false # 🚫 + useMonoRuntime: false # 🚫 + withPreviousSDK: true # ✅ + ### Additional jobs for full build ### - ${{ if in(parameters.scope, 'full') }}: @@ -194,20 +192,20 @@ stages: - template: ../jobs/vmr-build.yml parameters: # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline - buildName: ${{ format('{0}_Online_MsftSdk', variables.alpineLatestName) }} + buildName: ${{ format('{0}_Offline_MsftSdk', variables.alpineName) }} isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} vmrBranch: ${{ variables.VmrBranch }} targetArchitecture: x64 pool: ${{ parameters.pool_Linux }} container: - name: ${{ variables.alpineLatestContainerName }} - image: ${{ variables.alpineLatestContainerImage }} - targetRid: ${{ variables.alpineLatestX64Rid }} + name: ${{ variables.alpineContainerName }} + image: ${{ variables.alpineContainerImage }} + targetRid: ${{ variables.alpineX64Rid }} buildFromArchive: false # 🚫 buildSourceOnly: true # ✅ enablePoison: false # 🚫 excludeOmniSharpTests: true # ✅ - runOnline: true # ✅ + runOnline: false # 🚫 useMonoRuntime: false # 🚫 withPreviousSDK: false # 🚫 @@ -250,26 +248,6 @@ stages: useMonoRuntime: false # 🚫 withPreviousSDK: true # ✅ - - template: ../jobs/vmr-build.yml - parameters: - # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline - buildName: ${{ format('{0}_Offline_PreviousSourceBuiltSdk', variables.centOSStreamName) }} - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - targetArchitecture: x64 - artifactsRid: ${{ variables.centOSStreamX64Rid }} - pool: ${{ parameters.pool_Linux }} - container: - name: ${{ variables.centOSStreamContainerName }} - image: ${{ variables.centOSStreamContainerImage }} - buildFromArchive: false # 🚫 - buildSourceOnly: true # ✅ - enablePoison: false # 🚫 - excludeOmniSharpTests: true # ✅ - runOnline: false # 🚫 - useMonoRuntime: false # 🚫 - withPreviousSDK: true # ✅ - - template: ../jobs/vmr-build.yml parameters: # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline diff --git a/eng/pipelines/templates/variables/vmr-build.yml b/eng/pipelines/templates/variables/vmr-build.yml index b689b821f8e6..935c01099a5b 100644 --- a/eng/pipelines/templates/variables/vmr-build.yml +++ b/eng/pipelines/templates/variables/vmr-build.yml @@ -23,16 +23,11 @@ variables: - name: almaLinuxContainerImage value: mcr.microsoft.com/dotnet-buildtools/prereqs:almalinux-8-source-build -- name: alpineLatestContainerName - value: alpineLatestContainer -- name: alpineLatestContainerImage +- name: alpineContainerName + value: alpineContainer +- name: alpineContainerImage value: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.21-amd64 -- name: alpinePreviousContainerName - value: alpinePreviousContainer -- name: alpinePreviousContainerImage - value: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.20-withnode - - name: centOSStreamContainerName value: centOSStreamContainer - name: centOSStreamContainerImage @@ -105,10 +100,8 @@ variables: - name: almaLinuxName value: AlmaLinux8 -- name: alpineLatestName +- name: alpineName value: Alpine321 -- name: alpinePreviousName - value: Alpine320 - name: centOSStreamName value: CentOSStream9 - name: fedoraName @@ -124,10 +117,8 @@ variables: value: linux-musl-arm - name: linuxMuslArm64Rid value: linux-musl-arm64 -- name: alpineLatestX64Rid +- name: alpineX64Rid value: alpine.3.21-x64 -- name: alpinePreviousX64Rid - value: alpine.3.20-x64 - name: centOSStreamX64Rid value: centos.9-x64 - name: fedoraX64Rid diff --git a/src/SourceBuild/content/eng/pipelines/ci.yml b/src/SourceBuild/content/eng/pipelines/ci.yml index 647c938ec264..b90953c3b857 100644 --- a/src/SourceBuild/content/eng/pipelines/ci.yml +++ b/src/SourceBuild/content/eng/pipelines/ci.yml @@ -79,11 +79,8 @@ extends: ${{ variables.almaLinuxContainerName }}: image: ${{ variables.almaLinuxContainerImage }} options: ${{ variables.defaultContainerOptions }} - ${{ variables.alpineLatestContainerName }}: - image: ${{ variables.alpineLatestContainerImage }} - options: ${{ variables.defaultContainerOptions }} - ${{ variables.alpinePreviousContainerName }}: - image: ${{ variables.alpinePreviousContainerImage }} + ${{ variables.alpineContainerName }}: + image: ${{ variables.alpineContainerImage }} options: ${{ variables.defaultContainerOptions }} ${{ variables.centOSStreamContainerName }}: image: ${{ variables.centOSStreamContainerImage }} diff --git a/src/SourceBuild/content/eng/pipelines/source-build-sdk-diff-tests.yml b/src/SourceBuild/content/eng/pipelines/source-build-sdk-diff-tests.yml index ff8c9b16df0a..c3c65c78a0ae 100644 --- a/src/SourceBuild/content/eng/pipelines/source-build-sdk-diff-tests.yml +++ b/src/SourceBuild/content/eng/pipelines/source-build-sdk-diff-tests.yml @@ -73,8 +73,8 @@ extends: - template: /eng/pipelines/templates/jobs/sdk-diff-tests.yml@self parameters: - buildName: ${{ format('{0}_Online_MsftSdk', variables.alpineLatestName) }} - targetRid: ${{ variables.alpineLatestX64Rid }} + buildName: ${{ format('{0}_Offline_MsftSdk', variables.alpineName) }} + targetRid: ${{ variables.alpineX64Rid }} architecture: x64 dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }} From 62fde216b9fc9e7502b2e60fc3cddd441af12c0e Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 17 Jan 2025 14:26:41 -0800 Subject: [PATCH 175/193] [main] Update dependencies from dotnet/xdt (#46091) Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a9cb46ed501b..bc11f11093cd 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -409,14 +409,14 @@ https://github.com/dotnet/wpf aa1aa9703c49e330ab5eb9c39d81ab365422de1d - + https://github.com/dotnet/xdt - 63ae81154c50a1cf9287cc47d8351d55b4289e6d + 1156b9aac00609107c21cf3458b797c76db6be7a - + https://github.com/dotnet/xdt - 63ae81154c50a1cf9287cc47d8351d55b4289e6d + 1156b9aac00609107c21cf3458b797c76db6be7a diff --git a/eng/Versions.props b/eng/Versions.props index 12fdae91da5f..1fe2b8e19fd3 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -48,7 +48,7 @@ https://dotnetclimsrc.blob.core.windows.net/dotnet/ - 10.0.0-preview.24609.2 + 10.0.0-preview.25067.1 1.0.0-20230414.1 2.22.0 2.0.1-servicing-26011-01 From 33e2d4f76cc3fb45bfc53194fe7763d4c8a1e984 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 17 Jan 2025 23:18:03 +0000 Subject: [PATCH 176/193] [main] Update dependencies from dotnet/aspnetcore (#46087) Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 116 ++++++++++++++++++++-------------------- eng/Versions.props | 26 ++++----- 2 files changed, 71 insertions(+), 71 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index bc11f11093cd..23001bdc0593 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -135,13 +135,13 @@ https://github.com/dotnet/roslyn 6d6ca0ffccc112d337cd54b03d33ebb42ba35063 - + https://github.com/dotnet/aspnetcore - dc2a6fe48cbcf06246a6d308087d58289772574c + fe21c9a711ca99731f7a2df03f086497161f6821 - + https://github.com/dotnet/aspnetcore - dc2a6fe48cbcf06246a6d308087d58289772574c + fe21c9a711ca99731f7a2df03f086497161f6821 https://github.com/nuget/nuget.client @@ -275,95 +275,95 @@ https://github.com/dotnet/wpf aa1aa9703c49e330ab5eb9c39d81ab365422de1d - + https://github.com/dotnet/aspnetcore - dc2a6fe48cbcf06246a6d308087d58289772574c + fe21c9a711ca99731f7a2df03f086497161f6821 - + https://github.com/dotnet/aspnetcore - dc2a6fe48cbcf06246a6d308087d58289772574c + fe21c9a711ca99731f7a2df03f086497161f6821 - + https://github.com/dotnet/aspnetcore - dc2a6fe48cbcf06246a6d308087d58289772574c + fe21c9a711ca99731f7a2df03f086497161f6821 - + https://github.com/dotnet/aspnetcore - dc2a6fe48cbcf06246a6d308087d58289772574c + fe21c9a711ca99731f7a2df03f086497161f6821 - + https://github.com/dotnet/aspnetcore - dc2a6fe48cbcf06246a6d308087d58289772574c + fe21c9a711ca99731f7a2df03f086497161f6821 - + https://github.com/dotnet/aspnetcore - dc2a6fe48cbcf06246a6d308087d58289772574c + fe21c9a711ca99731f7a2df03f086497161f6821 - + https://github.com/dotnet/aspnetcore - dc2a6fe48cbcf06246a6d308087d58289772574c + fe21c9a711ca99731f7a2df03f086497161f6821 - + https://github.com/dotnet/aspnetcore - dc2a6fe48cbcf06246a6d308087d58289772574c + fe21c9a711ca99731f7a2df03f086497161f6821 - + https://github.com/dotnet/aspnetcore - dc2a6fe48cbcf06246a6d308087d58289772574c + fe21c9a711ca99731f7a2df03f086497161f6821 - + https://github.com/dotnet/aspnetcore - dc2a6fe48cbcf06246a6d308087d58289772574c + fe21c9a711ca99731f7a2df03f086497161f6821 - + https://github.com/dotnet/aspnetcore - dc2a6fe48cbcf06246a6d308087d58289772574c + fe21c9a711ca99731f7a2df03f086497161f6821 - + https://github.com/dotnet/aspnetcore - dc2a6fe48cbcf06246a6d308087d58289772574c + fe21c9a711ca99731f7a2df03f086497161f6821 - + https://github.com/dotnet/aspnetcore - dc2a6fe48cbcf06246a6d308087d58289772574c + fe21c9a711ca99731f7a2df03f086497161f6821 - + https://github.com/dotnet/aspnetcore - dc2a6fe48cbcf06246a6d308087d58289772574c + fe21c9a711ca99731f7a2df03f086497161f6821 - + https://github.com/dotnet/aspnetcore - dc2a6fe48cbcf06246a6d308087d58289772574c + fe21c9a711ca99731f7a2df03f086497161f6821 - + https://github.com/dotnet/aspnetcore - dc2a6fe48cbcf06246a6d308087d58289772574c + fe21c9a711ca99731f7a2df03f086497161f6821 - + https://github.com/dotnet/aspnetcore - dc2a6fe48cbcf06246a6d308087d58289772574c + fe21c9a711ca99731f7a2df03f086497161f6821 - + https://github.com/dotnet/aspnetcore - dc2a6fe48cbcf06246a6d308087d58289772574c + fe21c9a711ca99731f7a2df03f086497161f6821 - + https://github.com/dotnet/aspnetcore - dc2a6fe48cbcf06246a6d308087d58289772574c + fe21c9a711ca99731f7a2df03f086497161f6821 - + https://github.com/dotnet/aspnetcore - dc2a6fe48cbcf06246a6d308087d58289772574c + fe21c9a711ca99731f7a2df03f086497161f6821 - + https://github.com/dotnet/aspnetcore - dc2a6fe48cbcf06246a6d308087d58289772574c + fe21c9a711ca99731f7a2df03f086497161f6821 - + https://github.com/dotnet/aspnetcore - dc2a6fe48cbcf06246a6d308087d58289772574c + fe21c9a711ca99731f7a2df03f086497161f6821 @@ -384,21 +384,21 @@ 46efcec83821d7f0322c01bc9549de83e855dcac - + https://github.com/dotnet/aspnetcore - dc2a6fe48cbcf06246a6d308087d58289772574c + fe21c9a711ca99731f7a2df03f086497161f6821 - + https://github.com/dotnet/aspnetcore - dc2a6fe48cbcf06246a6d308087d58289772574c + fe21c9a711ca99731f7a2df03f086497161f6821 - + https://github.com/dotnet/aspnetcore - dc2a6fe48cbcf06246a6d308087d58289772574c + fe21c9a711ca99731f7a2df03f086497161f6821 - + https://github.com/dotnet/aspnetcore - dc2a6fe48cbcf06246a6d308087d58289772574c + fe21c9a711ca99731f7a2df03f086497161f6821 @@ -550,9 +550,9 @@ https://github.com/dotnet/runtime 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/aspnetcore - dc2a6fe48cbcf06246a6d308087d58289772574c + fe21c9a711ca99731f7a2df03f086497161f6821 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 1fe2b8e19fd3..e099bca11568 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -224,19 +224,19 @@ - 10.0.0-alpha.2.25065.5 - 10.0.0-alpha.2.25065.5 - 10.0.0-alpha.2.25065.5 - 10.0.0-alpha.2.25065.5 - 10.0.0-alpha.2.25065.5 - 10.0.0-alpha.2.25065.5 - 10.0.0-alpha.2.25065.5 - 10.0.0-alpha.2.25065.5 - 10.0.0-alpha.2.25065.5 - 10.0.0-alpha.2.25065.5 - 10.0.0-alpha.2.25065.5 - 10.0.0-alpha.2.25065.5 - 10.0.0-alpha.2.25065.5 + 10.0.0-alpha.2.25067.2 + 10.0.0-alpha.2.25067.2 + 10.0.0-alpha.2.25067.2 + 10.0.0-alpha.2.25067.2 + 10.0.0-alpha.2.25067.2 + 10.0.0-alpha.2.25067.2 + 10.0.0-alpha.2.25067.2 + 10.0.0-alpha.2.25067.2 + 10.0.0-alpha.2.25067.2 + 10.0.0-alpha.2.25067.2 + 10.0.0-alpha.2.25067.2 + 10.0.0-alpha.2.25067.2 + 10.0.0-alpha.2.25067.2 From 972902a7aaad0f7fd9cc8ccfb463b69b3ccdcbff Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 17 Jan 2025 23:23:03 +0000 Subject: [PATCH 177/193] Update dependencies from https://github.com/dotnet/aspnetcore build 20250117.5 dotnet-dev-certs , dotnet-user-jwts , dotnet-user-secrets , Microsoft.AspNetCore.Analyzers , Microsoft.AspNetCore.App.Ref , Microsoft.AspNetCore.App.Ref.Internal , Microsoft.AspNetCore.App.Runtime.win-x64 , Microsoft.AspNetCore.Authentication.Facebook , Microsoft.AspNetCore.Authentication.Google , Microsoft.AspNetCore.Authentication.MicrosoftAccount , Microsoft.AspNetCore.Authorization , Microsoft.AspNetCore.Components , Microsoft.AspNetCore.Components.Analyzers , Microsoft.AspNetCore.Components.Forms , Microsoft.AspNetCore.Components.SdkAnalyzers , Microsoft.AspNetCore.Components.Web , Microsoft.AspNetCore.Components.WebAssembly , Microsoft.AspNetCore.Components.WebAssembly.Server , Microsoft.AspNetCore.Components.WebView , Microsoft.AspNetCore.DeveloperCertificates.XPlat , Microsoft.AspNetCore.Metadata , Microsoft.AspNetCore.Mvc.Analyzers , Microsoft.AspNetCore.Mvc.Api.Analyzers , Microsoft.AspNetCore.TestHost , Microsoft.Extensions.FileProviders.Embedded , Microsoft.Extensions.ObjectPool , Microsoft.JSInterop , VS.Redist.Common.AspNetCore.SharedFramework.x64.10.0 , Microsoft.SourceBuild.Intermediate.aspnetcore From Version 10.0.0-alpha.2.25067.2 -> To Version 10.0.0-alpha.2.25067.5 --- eng/Version.Details.xml | 116 ++++++++++++++++++++-------------------- eng/Versions.props | 26 ++++----- 2 files changed, 71 insertions(+), 71 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 23001bdc0593..38d0b9b1a5d8 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -135,13 +135,13 @@ https://github.com/dotnet/roslyn 6d6ca0ffccc112d337cd54b03d33ebb42ba35063 - + https://github.com/dotnet/aspnetcore - fe21c9a711ca99731f7a2df03f086497161f6821 + dd9550a8afa830019f6cc57135b84cc6e1aef833 - + https://github.com/dotnet/aspnetcore - fe21c9a711ca99731f7a2df03f086497161f6821 + dd9550a8afa830019f6cc57135b84cc6e1aef833 https://github.com/nuget/nuget.client @@ -275,95 +275,95 @@ https://github.com/dotnet/wpf aa1aa9703c49e330ab5eb9c39d81ab365422de1d - + https://github.com/dotnet/aspnetcore - fe21c9a711ca99731f7a2df03f086497161f6821 + dd9550a8afa830019f6cc57135b84cc6e1aef833 - + https://github.com/dotnet/aspnetcore - fe21c9a711ca99731f7a2df03f086497161f6821 + dd9550a8afa830019f6cc57135b84cc6e1aef833 - + https://github.com/dotnet/aspnetcore - fe21c9a711ca99731f7a2df03f086497161f6821 + dd9550a8afa830019f6cc57135b84cc6e1aef833 - + https://github.com/dotnet/aspnetcore - fe21c9a711ca99731f7a2df03f086497161f6821 + dd9550a8afa830019f6cc57135b84cc6e1aef833 - + https://github.com/dotnet/aspnetcore - fe21c9a711ca99731f7a2df03f086497161f6821 + dd9550a8afa830019f6cc57135b84cc6e1aef833 - + https://github.com/dotnet/aspnetcore - fe21c9a711ca99731f7a2df03f086497161f6821 + dd9550a8afa830019f6cc57135b84cc6e1aef833 - + https://github.com/dotnet/aspnetcore - fe21c9a711ca99731f7a2df03f086497161f6821 + dd9550a8afa830019f6cc57135b84cc6e1aef833 - + https://github.com/dotnet/aspnetcore - fe21c9a711ca99731f7a2df03f086497161f6821 + dd9550a8afa830019f6cc57135b84cc6e1aef833 - + https://github.com/dotnet/aspnetcore - fe21c9a711ca99731f7a2df03f086497161f6821 + dd9550a8afa830019f6cc57135b84cc6e1aef833 - + https://github.com/dotnet/aspnetcore - fe21c9a711ca99731f7a2df03f086497161f6821 + dd9550a8afa830019f6cc57135b84cc6e1aef833 - + https://github.com/dotnet/aspnetcore - fe21c9a711ca99731f7a2df03f086497161f6821 + dd9550a8afa830019f6cc57135b84cc6e1aef833 - + https://github.com/dotnet/aspnetcore - fe21c9a711ca99731f7a2df03f086497161f6821 + dd9550a8afa830019f6cc57135b84cc6e1aef833 - + https://github.com/dotnet/aspnetcore - fe21c9a711ca99731f7a2df03f086497161f6821 + dd9550a8afa830019f6cc57135b84cc6e1aef833 - + https://github.com/dotnet/aspnetcore - fe21c9a711ca99731f7a2df03f086497161f6821 + dd9550a8afa830019f6cc57135b84cc6e1aef833 - + https://github.com/dotnet/aspnetcore - fe21c9a711ca99731f7a2df03f086497161f6821 + dd9550a8afa830019f6cc57135b84cc6e1aef833 - + https://github.com/dotnet/aspnetcore - fe21c9a711ca99731f7a2df03f086497161f6821 + dd9550a8afa830019f6cc57135b84cc6e1aef833 - + https://github.com/dotnet/aspnetcore - fe21c9a711ca99731f7a2df03f086497161f6821 + dd9550a8afa830019f6cc57135b84cc6e1aef833 - + https://github.com/dotnet/aspnetcore - fe21c9a711ca99731f7a2df03f086497161f6821 + dd9550a8afa830019f6cc57135b84cc6e1aef833 - + https://github.com/dotnet/aspnetcore - fe21c9a711ca99731f7a2df03f086497161f6821 + dd9550a8afa830019f6cc57135b84cc6e1aef833 - + https://github.com/dotnet/aspnetcore - fe21c9a711ca99731f7a2df03f086497161f6821 + dd9550a8afa830019f6cc57135b84cc6e1aef833 - + https://github.com/dotnet/aspnetcore - fe21c9a711ca99731f7a2df03f086497161f6821 + dd9550a8afa830019f6cc57135b84cc6e1aef833 - + https://github.com/dotnet/aspnetcore - fe21c9a711ca99731f7a2df03f086497161f6821 + dd9550a8afa830019f6cc57135b84cc6e1aef833 @@ -384,21 +384,21 @@ 46efcec83821d7f0322c01bc9549de83e855dcac - + https://github.com/dotnet/aspnetcore - fe21c9a711ca99731f7a2df03f086497161f6821 + dd9550a8afa830019f6cc57135b84cc6e1aef833 - + https://github.com/dotnet/aspnetcore - fe21c9a711ca99731f7a2df03f086497161f6821 + dd9550a8afa830019f6cc57135b84cc6e1aef833 - + https://github.com/dotnet/aspnetcore - fe21c9a711ca99731f7a2df03f086497161f6821 + dd9550a8afa830019f6cc57135b84cc6e1aef833 - + https://github.com/dotnet/aspnetcore - fe21c9a711ca99731f7a2df03f086497161f6821 + dd9550a8afa830019f6cc57135b84cc6e1aef833 @@ -550,9 +550,9 @@ https://github.com/dotnet/runtime 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/aspnetcore - fe21c9a711ca99731f7a2df03f086497161f6821 + dd9550a8afa830019f6cc57135b84cc6e1aef833 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index e099bca11568..45f9ba97945d 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -224,19 +224,19 @@ - 10.0.0-alpha.2.25067.2 - 10.0.0-alpha.2.25067.2 - 10.0.0-alpha.2.25067.2 - 10.0.0-alpha.2.25067.2 - 10.0.0-alpha.2.25067.2 - 10.0.0-alpha.2.25067.2 - 10.0.0-alpha.2.25067.2 - 10.0.0-alpha.2.25067.2 - 10.0.0-alpha.2.25067.2 - 10.0.0-alpha.2.25067.2 - 10.0.0-alpha.2.25067.2 - 10.0.0-alpha.2.25067.2 - 10.0.0-alpha.2.25067.2 + 10.0.0-alpha.2.25067.5 + 10.0.0-alpha.2.25067.5 + 10.0.0-alpha.2.25067.5 + 10.0.0-alpha.2.25067.5 + 10.0.0-alpha.2.25067.5 + 10.0.0-alpha.2.25067.5 + 10.0.0-alpha.2.25067.5 + 10.0.0-alpha.2.25067.5 + 10.0.0-alpha.2.25067.5 + 10.0.0-alpha.2.25067.5 + 10.0.0-alpha.2.25067.5 + 10.0.0-alpha.2.25067.5 + 10.0.0-alpha.2.25067.5 From 44e1dd70a3264f5149d232faf2ea51a6e5b0a364 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 18 Jan 2025 01:34:04 +0000 Subject: [PATCH 178/193] Update dependencies from https://github.com/dotnet/aspnetcore build 20250117.6 dotnet-dev-certs , dotnet-user-jwts , dotnet-user-secrets , Microsoft.AspNetCore.Analyzers , Microsoft.AspNetCore.App.Ref , Microsoft.AspNetCore.App.Ref.Internal , Microsoft.AspNetCore.App.Runtime.win-x64 , Microsoft.AspNetCore.Authentication.Facebook , Microsoft.AspNetCore.Authentication.Google , Microsoft.AspNetCore.Authentication.MicrosoftAccount , Microsoft.AspNetCore.Authorization , Microsoft.AspNetCore.Components , Microsoft.AspNetCore.Components.Analyzers , Microsoft.AspNetCore.Components.Forms , Microsoft.AspNetCore.Components.SdkAnalyzers , Microsoft.AspNetCore.Components.Web , Microsoft.AspNetCore.Components.WebAssembly , Microsoft.AspNetCore.Components.WebAssembly.Server , Microsoft.AspNetCore.Components.WebView , Microsoft.AspNetCore.DeveloperCertificates.XPlat , Microsoft.AspNetCore.Metadata , Microsoft.AspNetCore.Mvc.Analyzers , Microsoft.AspNetCore.Mvc.Api.Analyzers , Microsoft.AspNetCore.TestHost , Microsoft.Extensions.FileProviders.Embedded , Microsoft.Extensions.ObjectPool , Microsoft.JSInterop , VS.Redist.Common.AspNetCore.SharedFramework.x64.10.0 , Microsoft.SourceBuild.Intermediate.aspnetcore From Version 10.0.0-alpha.2.25067.2 -> To Version 10.0.0-alpha.2.25067.6 --- eng/Version.Details.xml | 116 ++++++++++++++++++++-------------------- eng/Versions.props | 26 ++++----- 2 files changed, 71 insertions(+), 71 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 38d0b9b1a5d8..d9f7a7f0569c 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -135,13 +135,13 @@ https://github.com/dotnet/roslyn 6d6ca0ffccc112d337cd54b03d33ebb42ba35063 - + https://github.com/dotnet/aspnetcore - dd9550a8afa830019f6cc57135b84cc6e1aef833 + 87070edd290d5648b940e515bf28dde095452d09 - + https://github.com/dotnet/aspnetcore - dd9550a8afa830019f6cc57135b84cc6e1aef833 + 87070edd290d5648b940e515bf28dde095452d09 https://github.com/nuget/nuget.client @@ -275,95 +275,95 @@ https://github.com/dotnet/wpf aa1aa9703c49e330ab5eb9c39d81ab365422de1d - + https://github.com/dotnet/aspnetcore - dd9550a8afa830019f6cc57135b84cc6e1aef833 + 87070edd290d5648b940e515bf28dde095452d09 - + https://github.com/dotnet/aspnetcore - dd9550a8afa830019f6cc57135b84cc6e1aef833 + 87070edd290d5648b940e515bf28dde095452d09 - + https://github.com/dotnet/aspnetcore - dd9550a8afa830019f6cc57135b84cc6e1aef833 + 87070edd290d5648b940e515bf28dde095452d09 - + https://github.com/dotnet/aspnetcore - dd9550a8afa830019f6cc57135b84cc6e1aef833 + 87070edd290d5648b940e515bf28dde095452d09 - + https://github.com/dotnet/aspnetcore - dd9550a8afa830019f6cc57135b84cc6e1aef833 + 87070edd290d5648b940e515bf28dde095452d09 - + https://github.com/dotnet/aspnetcore - dd9550a8afa830019f6cc57135b84cc6e1aef833 + 87070edd290d5648b940e515bf28dde095452d09 - + https://github.com/dotnet/aspnetcore - dd9550a8afa830019f6cc57135b84cc6e1aef833 + 87070edd290d5648b940e515bf28dde095452d09 - + https://github.com/dotnet/aspnetcore - dd9550a8afa830019f6cc57135b84cc6e1aef833 + 87070edd290d5648b940e515bf28dde095452d09 - + https://github.com/dotnet/aspnetcore - dd9550a8afa830019f6cc57135b84cc6e1aef833 + 87070edd290d5648b940e515bf28dde095452d09 - + https://github.com/dotnet/aspnetcore - dd9550a8afa830019f6cc57135b84cc6e1aef833 + 87070edd290d5648b940e515bf28dde095452d09 - + https://github.com/dotnet/aspnetcore - dd9550a8afa830019f6cc57135b84cc6e1aef833 + 87070edd290d5648b940e515bf28dde095452d09 - + https://github.com/dotnet/aspnetcore - dd9550a8afa830019f6cc57135b84cc6e1aef833 + 87070edd290d5648b940e515bf28dde095452d09 - + https://github.com/dotnet/aspnetcore - dd9550a8afa830019f6cc57135b84cc6e1aef833 + 87070edd290d5648b940e515bf28dde095452d09 - + https://github.com/dotnet/aspnetcore - dd9550a8afa830019f6cc57135b84cc6e1aef833 + 87070edd290d5648b940e515bf28dde095452d09 - + https://github.com/dotnet/aspnetcore - dd9550a8afa830019f6cc57135b84cc6e1aef833 + 87070edd290d5648b940e515bf28dde095452d09 - + https://github.com/dotnet/aspnetcore - dd9550a8afa830019f6cc57135b84cc6e1aef833 + 87070edd290d5648b940e515bf28dde095452d09 - + https://github.com/dotnet/aspnetcore - dd9550a8afa830019f6cc57135b84cc6e1aef833 + 87070edd290d5648b940e515bf28dde095452d09 - + https://github.com/dotnet/aspnetcore - dd9550a8afa830019f6cc57135b84cc6e1aef833 + 87070edd290d5648b940e515bf28dde095452d09 - + https://github.com/dotnet/aspnetcore - dd9550a8afa830019f6cc57135b84cc6e1aef833 + 87070edd290d5648b940e515bf28dde095452d09 - + https://github.com/dotnet/aspnetcore - dd9550a8afa830019f6cc57135b84cc6e1aef833 + 87070edd290d5648b940e515bf28dde095452d09 - + https://github.com/dotnet/aspnetcore - dd9550a8afa830019f6cc57135b84cc6e1aef833 + 87070edd290d5648b940e515bf28dde095452d09 - + https://github.com/dotnet/aspnetcore - dd9550a8afa830019f6cc57135b84cc6e1aef833 + 87070edd290d5648b940e515bf28dde095452d09 @@ -384,21 +384,21 @@ 46efcec83821d7f0322c01bc9549de83e855dcac - + https://github.com/dotnet/aspnetcore - dd9550a8afa830019f6cc57135b84cc6e1aef833 + 87070edd290d5648b940e515bf28dde095452d09 - + https://github.com/dotnet/aspnetcore - dd9550a8afa830019f6cc57135b84cc6e1aef833 + 87070edd290d5648b940e515bf28dde095452d09 - + https://github.com/dotnet/aspnetcore - dd9550a8afa830019f6cc57135b84cc6e1aef833 + 87070edd290d5648b940e515bf28dde095452d09 - + https://github.com/dotnet/aspnetcore - dd9550a8afa830019f6cc57135b84cc6e1aef833 + 87070edd290d5648b940e515bf28dde095452d09 @@ -550,9 +550,9 @@ https://github.com/dotnet/runtime 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/aspnetcore - dd9550a8afa830019f6cc57135b84cc6e1aef833 + 87070edd290d5648b940e515bf28dde095452d09 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 45f9ba97945d..2385df253211 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -224,19 +224,19 @@ - 10.0.0-alpha.2.25067.5 - 10.0.0-alpha.2.25067.5 - 10.0.0-alpha.2.25067.5 - 10.0.0-alpha.2.25067.5 - 10.0.0-alpha.2.25067.5 - 10.0.0-alpha.2.25067.5 - 10.0.0-alpha.2.25067.5 - 10.0.0-alpha.2.25067.5 - 10.0.0-alpha.2.25067.5 - 10.0.0-alpha.2.25067.5 - 10.0.0-alpha.2.25067.5 - 10.0.0-alpha.2.25067.5 - 10.0.0-alpha.2.25067.5 + 10.0.0-alpha.2.25067.6 + 10.0.0-alpha.2.25067.6 + 10.0.0-alpha.2.25067.6 + 10.0.0-alpha.2.25067.6 + 10.0.0-alpha.2.25067.6 + 10.0.0-alpha.2.25067.6 + 10.0.0-alpha.2.25067.6 + 10.0.0-alpha.2.25067.6 + 10.0.0-alpha.2.25067.6 + 10.0.0-alpha.2.25067.6 + 10.0.0-alpha.2.25067.6 + 10.0.0-alpha.2.25067.6 + 10.0.0-alpha.2.25067.6 From 2d72e31c7606310c7dc5d2f320aef29cc46007ba Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 18 Jan 2025 05:02:04 +0000 Subject: [PATCH 179/193] Update dependencies from https://github.com/dotnet/msbuild build 20250117.8 Microsoft.SourceBuild.Intermediate.msbuild , Microsoft.Build , Microsoft.Build.Localization From Version 17.14.0-preview-25066-10 -> To Version 17.14.0-preview-25067-08 --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 23001bdc0593..5be0c018e59e 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -73,18 +73,18 @@ 0de3165cb0d56323b6caaf8e9916d4d9e72da32d - + https://github.com/dotnet/msbuild - e645f1d4a8cecfb389bacf826e761fbba85d1872 + c81c498d4efee2ac3360bbfb9f161016a5969994 - + https://github.com/dotnet/msbuild - e645f1d4a8cecfb389bacf826e761fbba85d1872 + c81c498d4efee2ac3360bbfb9f161016a5969994 - + https://github.com/dotnet/msbuild - e645f1d4a8cecfb389bacf826e761fbba85d1872 + c81c498d4efee2ac3360bbfb9f161016a5969994 diff --git a/eng/Versions.props b/eng/Versions.props index e099bca11568..8f8a34852b83 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -189,8 +189,8 @@ At usage sites, either we use MicrosoftBuildMinimumVersion, or MicrosoftBuildVersion in source-only modes. Additionally, set the MinimumVSVersion for the installer UI that's required for targeting NetCurrent --> - 17.14.0-preview-25066-10 - 17.14.0-preview-25066-10 + 17.14.0-preview-25067-08 + 17.14.0-preview-25067-08 17.11.4 17.12 From bf95757872f1bd686e6f2be834bb7517d5083d53 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 18 Jan 2025 05:02:18 +0000 Subject: [PATCH 180/193] Update dependencies from https://github.com/dotnet/roslyn build 20250117.8 Microsoft.SourceBuild.Intermediate.roslyn , Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset , Microsoft.Net.Compilers.Toolset.Framework From Version 4.14.0-1.25066.8 -> To Version 4.14.0-1.25067.8 --- eng/Version.Details.xml | 36 ++++++++++++++++++------------------ eng/Versions.props | 16 ++++++++-------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 23001bdc0593..fbda96cad15a 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -97,43 +97,43 @@ 63a09289745da5c256e7baf5f4194a750b1ec878 - + https://github.com/dotnet/roslyn - 6d6ca0ffccc112d337cd54b03d33ebb42ba35063 + cf562a1fac4bf70a45ae038fda715c2b2537f1c2 - + https://github.com/dotnet/roslyn - 6d6ca0ffccc112d337cd54b03d33ebb42ba35063 + cf562a1fac4bf70a45ae038fda715c2b2537f1c2 - + https://github.com/dotnet/roslyn - 6d6ca0ffccc112d337cd54b03d33ebb42ba35063 + cf562a1fac4bf70a45ae038fda715c2b2537f1c2 - + https://github.com/dotnet/roslyn - 6d6ca0ffccc112d337cd54b03d33ebb42ba35063 + cf562a1fac4bf70a45ae038fda715c2b2537f1c2 - + https://github.com/dotnet/roslyn - 6d6ca0ffccc112d337cd54b03d33ebb42ba35063 + cf562a1fac4bf70a45ae038fda715c2b2537f1c2 - + https://github.com/dotnet/roslyn - 6d6ca0ffccc112d337cd54b03d33ebb42ba35063 + cf562a1fac4bf70a45ae038fda715c2b2537f1c2 - + https://github.com/dotnet/roslyn - 6d6ca0ffccc112d337cd54b03d33ebb42ba35063 + cf562a1fac4bf70a45ae038fda715c2b2537f1c2 - + https://github.com/dotnet/roslyn - 6d6ca0ffccc112d337cd54b03d33ebb42ba35063 + cf562a1fac4bf70a45ae038fda715c2b2537f1c2 - + https://github.com/dotnet/roslyn - 6d6ca0ffccc112d337cd54b03d33ebb42ba35063 + cf562a1fac4bf70a45ae038fda715c2b2537f1c2 https://github.com/dotnet/aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index e099bca11568..b055ae70dbdb 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -213,14 +213,14 @@ - 4.14.0-1.25066.8 - 4.14.0-1.25066.8 - 4.14.0-1.25066.8 - 4.14.0-1.25066.8 - 4.14.0-1.25066.8 - 4.14.0-1.25066.8 - 4.14.0-1.25066.8 - 4.14.0-1.25066.8 + 4.14.0-1.25067.8 + 4.14.0-1.25067.8 + 4.14.0-1.25067.8 + 4.14.0-1.25067.8 + 4.14.0-1.25067.8 + 4.14.0-1.25067.8 + 4.14.0-1.25067.8 + 4.14.0-1.25067.8 From 98f7f00d8e662bb49d7a1b4c090f6342a27b0bc6 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 18 Jan 2025 05:02:30 +0000 Subject: [PATCH 181/193] Update dependencies from https://github.com/microsoft/testfx build 20250117.2 Microsoft.Testing.Platform , MSTest From Version 1.6.0-preview.25066.11 -> To Version 1.6.0-preview.25067.2 --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 23001bdc0593..cafa1793145a 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -675,13 +675,13 @@ https://github.com/dotnet/runtime e77011b31a3e5c47d931248a64b47f9b2d47853d - + https://github.com/microsoft/testfx - b9b7f768cd89eec461ba64ee3b016083bc9614fa + 65d0673880e4ec5b16921b68cd6072acd8395f5e - + https://github.com/microsoft/testfx - b9b7f768cd89eec461ba64ee3b016083bc9614fa + 65d0673880e4ec5b16921b68cd6072acd8395f5e diff --git a/eng/Versions.props b/eng/Versions.props index e099bca11568..066979d43f13 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -28,7 +28,7 @@ true 6.0.1 true - 1.6.0-preview.25066.11 + 1.6.0-preview.25067.2 30 @@ -289,7 +289,7 @@ 6.12.0 6.1.0 4.18.4 - 3.8.0-preview.25066.11 + 3.8.0-preview.25067.2 1.3.2 8.0.0-beta.23607.1 From 620296edfad235cf6d501a8cf4a7b932a7c974ed Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 18 Jan 2025 05:13:20 +0000 Subject: [PATCH 182/193] Update dependencies from https://github.com/dotnet/aspnetcore build 20250117.8 dotnet-dev-certs , dotnet-user-jwts , dotnet-user-secrets , Microsoft.AspNetCore.Analyzers , Microsoft.AspNetCore.App.Ref , Microsoft.AspNetCore.App.Ref.Internal , Microsoft.AspNetCore.App.Runtime.win-x64 , Microsoft.AspNetCore.Authentication.Facebook , Microsoft.AspNetCore.Authentication.Google , Microsoft.AspNetCore.Authentication.MicrosoftAccount , Microsoft.AspNetCore.Authorization , Microsoft.AspNetCore.Components , Microsoft.AspNetCore.Components.Analyzers , Microsoft.AspNetCore.Components.Forms , Microsoft.AspNetCore.Components.SdkAnalyzers , Microsoft.AspNetCore.Components.Web , Microsoft.AspNetCore.Components.WebAssembly , Microsoft.AspNetCore.Components.WebAssembly.Server , Microsoft.AspNetCore.Components.WebView , Microsoft.AspNetCore.DeveloperCertificates.XPlat , Microsoft.AspNetCore.Metadata , Microsoft.AspNetCore.Mvc.Analyzers , Microsoft.AspNetCore.Mvc.Api.Analyzers , Microsoft.AspNetCore.TestHost , Microsoft.Extensions.FileProviders.Embedded , Microsoft.Extensions.ObjectPool , Microsoft.JSInterop , VS.Redist.Common.AspNetCore.SharedFramework.x64.10.0 , Microsoft.SourceBuild.Intermediate.aspnetcore From Version 10.0.0-alpha.2.25067.2 -> To Version 10.0.0-alpha.2.25067.8 --- eng/Version.Details.xml | 116 ++++++++++++++++++++-------------------- eng/Versions.props | 26 ++++----- 2 files changed, 71 insertions(+), 71 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index d9f7a7f0569c..caedf60444f1 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -135,13 +135,13 @@ https://github.com/dotnet/roslyn 6d6ca0ffccc112d337cd54b03d33ebb42ba35063 - + https://github.com/dotnet/aspnetcore - 87070edd290d5648b940e515bf28dde095452d09 + d90faf71a4acfcbd6da9ac220b53efb4dd4db04c - + https://github.com/dotnet/aspnetcore - 87070edd290d5648b940e515bf28dde095452d09 + d90faf71a4acfcbd6da9ac220b53efb4dd4db04c https://github.com/nuget/nuget.client @@ -275,95 +275,95 @@ https://github.com/dotnet/wpf aa1aa9703c49e330ab5eb9c39d81ab365422de1d - + https://github.com/dotnet/aspnetcore - 87070edd290d5648b940e515bf28dde095452d09 + d90faf71a4acfcbd6da9ac220b53efb4dd4db04c - + https://github.com/dotnet/aspnetcore - 87070edd290d5648b940e515bf28dde095452d09 + d90faf71a4acfcbd6da9ac220b53efb4dd4db04c - + https://github.com/dotnet/aspnetcore - 87070edd290d5648b940e515bf28dde095452d09 + d90faf71a4acfcbd6da9ac220b53efb4dd4db04c - + https://github.com/dotnet/aspnetcore - 87070edd290d5648b940e515bf28dde095452d09 + d90faf71a4acfcbd6da9ac220b53efb4dd4db04c - + https://github.com/dotnet/aspnetcore - 87070edd290d5648b940e515bf28dde095452d09 + d90faf71a4acfcbd6da9ac220b53efb4dd4db04c - + https://github.com/dotnet/aspnetcore - 87070edd290d5648b940e515bf28dde095452d09 + d90faf71a4acfcbd6da9ac220b53efb4dd4db04c - + https://github.com/dotnet/aspnetcore - 87070edd290d5648b940e515bf28dde095452d09 + d90faf71a4acfcbd6da9ac220b53efb4dd4db04c - + https://github.com/dotnet/aspnetcore - 87070edd290d5648b940e515bf28dde095452d09 + d90faf71a4acfcbd6da9ac220b53efb4dd4db04c - + https://github.com/dotnet/aspnetcore - 87070edd290d5648b940e515bf28dde095452d09 + d90faf71a4acfcbd6da9ac220b53efb4dd4db04c - + https://github.com/dotnet/aspnetcore - 87070edd290d5648b940e515bf28dde095452d09 + d90faf71a4acfcbd6da9ac220b53efb4dd4db04c - + https://github.com/dotnet/aspnetcore - 87070edd290d5648b940e515bf28dde095452d09 + d90faf71a4acfcbd6da9ac220b53efb4dd4db04c - + https://github.com/dotnet/aspnetcore - 87070edd290d5648b940e515bf28dde095452d09 + d90faf71a4acfcbd6da9ac220b53efb4dd4db04c - + https://github.com/dotnet/aspnetcore - 87070edd290d5648b940e515bf28dde095452d09 + d90faf71a4acfcbd6da9ac220b53efb4dd4db04c - + https://github.com/dotnet/aspnetcore - 87070edd290d5648b940e515bf28dde095452d09 + d90faf71a4acfcbd6da9ac220b53efb4dd4db04c - + https://github.com/dotnet/aspnetcore - 87070edd290d5648b940e515bf28dde095452d09 + d90faf71a4acfcbd6da9ac220b53efb4dd4db04c - + https://github.com/dotnet/aspnetcore - 87070edd290d5648b940e515bf28dde095452d09 + d90faf71a4acfcbd6da9ac220b53efb4dd4db04c - + https://github.com/dotnet/aspnetcore - 87070edd290d5648b940e515bf28dde095452d09 + d90faf71a4acfcbd6da9ac220b53efb4dd4db04c - + https://github.com/dotnet/aspnetcore - 87070edd290d5648b940e515bf28dde095452d09 + d90faf71a4acfcbd6da9ac220b53efb4dd4db04c - + https://github.com/dotnet/aspnetcore - 87070edd290d5648b940e515bf28dde095452d09 + d90faf71a4acfcbd6da9ac220b53efb4dd4db04c - + https://github.com/dotnet/aspnetcore - 87070edd290d5648b940e515bf28dde095452d09 + d90faf71a4acfcbd6da9ac220b53efb4dd4db04c - + https://github.com/dotnet/aspnetcore - 87070edd290d5648b940e515bf28dde095452d09 + d90faf71a4acfcbd6da9ac220b53efb4dd4db04c - + https://github.com/dotnet/aspnetcore - 87070edd290d5648b940e515bf28dde095452d09 + d90faf71a4acfcbd6da9ac220b53efb4dd4db04c @@ -384,21 +384,21 @@ 46efcec83821d7f0322c01bc9549de83e855dcac - + https://github.com/dotnet/aspnetcore - 87070edd290d5648b940e515bf28dde095452d09 + d90faf71a4acfcbd6da9ac220b53efb4dd4db04c - + https://github.com/dotnet/aspnetcore - 87070edd290d5648b940e515bf28dde095452d09 + d90faf71a4acfcbd6da9ac220b53efb4dd4db04c - + https://github.com/dotnet/aspnetcore - 87070edd290d5648b940e515bf28dde095452d09 + d90faf71a4acfcbd6da9ac220b53efb4dd4db04c - + https://github.com/dotnet/aspnetcore - 87070edd290d5648b940e515bf28dde095452d09 + d90faf71a4acfcbd6da9ac220b53efb4dd4db04c @@ -550,9 +550,9 @@ https://github.com/dotnet/runtime 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/aspnetcore - 87070edd290d5648b940e515bf28dde095452d09 + d90faf71a4acfcbd6da9ac220b53efb4dd4db04c https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 2385df253211..7bc8baab6669 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -224,19 +224,19 @@ - 10.0.0-alpha.2.25067.6 - 10.0.0-alpha.2.25067.6 - 10.0.0-alpha.2.25067.6 - 10.0.0-alpha.2.25067.6 - 10.0.0-alpha.2.25067.6 - 10.0.0-alpha.2.25067.6 - 10.0.0-alpha.2.25067.6 - 10.0.0-alpha.2.25067.6 - 10.0.0-alpha.2.25067.6 - 10.0.0-alpha.2.25067.6 - 10.0.0-alpha.2.25067.6 - 10.0.0-alpha.2.25067.6 - 10.0.0-alpha.2.25067.6 + 10.0.0-alpha.2.25067.8 + 10.0.0-alpha.2.25067.8 + 10.0.0-alpha.2.25067.8 + 10.0.0-alpha.2.25067.8 + 10.0.0-alpha.2.25067.8 + 10.0.0-alpha.2.25067.8 + 10.0.0-alpha.2.25067.8 + 10.0.0-alpha.2.25067.8 + 10.0.0-alpha.2.25067.8 + 10.0.0-alpha.2.25067.8 + 10.0.0-alpha.2.25067.8 + 10.0.0-alpha.2.25067.8 + 10.0.0-alpha.2.25067.8 From 405763c20d320d7a4f2c184d549f6f8540b8928c Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 18 Jan 2025 05:44:32 +0000 Subject: [PATCH 183/193] Update dependencies from https://github.com/dotnet/windowsdesktop build 20250117.6 Microsoft.WindowsDesktop.App.Ref , Microsoft.WindowsDesktop.App.Runtime.win-x64 , VS.Redist.Common.WindowsDesktop.SharedFramework.x64.10.0 , VS.Redist.Common.WindowsDesktop.TargetingPack.x64.10.0 From Version 10.0.0-alpha.1.25066.2 -> To Version 10.0.0-alpha.1.25067.6 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 183337215e0f..378dd3eb1ec7 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -254,22 +254,22 @@ https://github.com/dotnet/runtime 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/windowsdesktop - 8412ed8fb5535fd2e6c3c4b81e4fc7cd366c03a6 + 2077f17807081da3fbc2cc4afc9289d29f43d8e2 - + https://github.com/dotnet/windowsdesktop - 8412ed8fb5535fd2e6c3c4b81e4fc7cd366c03a6 + 2077f17807081da3fbc2cc4afc9289d29f43d8e2 - + https://github.com/dotnet/windowsdesktop - 8412ed8fb5535fd2e6c3c4b81e4fc7cd366c03a6 + 2077f17807081da3fbc2cc4afc9289d29f43d8e2 - + https://github.com/dotnet/windowsdesktop - 8412ed8fb5535fd2e6c3c4b81e4fc7cd366c03a6 + 2077f17807081da3fbc2cc4afc9289d29f43d8e2 https://github.com/dotnet/wpf diff --git a/eng/Versions.props b/eng/Versions.props index f577bff6dcdb..aee97d29ef3b 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -136,9 +136,9 @@ - 10.0.0-alpha.1.25067.5 - 10.0.0-alpha.1.25067.5 - 10.0.0-alpha.1.25067.5 + 10.0.0-alpha.1.25067.6 + 10.0.0-alpha.1.25067.6 + 10.0.0-alpha.1.25067.6 From 526b872845c4259227360f6b8bef879e68a76ca8 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Sat, 18 Jan 2025 08:42:41 +0100 Subject: [PATCH 184/193] [main] Update dependencies from dotnet/runtime (#45990) Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 144 ++++++++++++++++++++-------------------- eng/Versions.props | 70 +++++++++---------- 2 files changed, 107 insertions(+), 107 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 23001bdc0593..f852ea4285c3 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -15,46 +15,46 @@ 6a6c089abc661bd597b32a63e41a9bd2a011950e - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 @@ -230,29 +230,29 @@ bcef12d909709f13027afe1557c724f11bc8df05 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 https://github.com/dotnet/windowsdesktop @@ -514,89 +514,89 @@ - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 https://github.com/dotnet/aspnetcore fe21c9a711ca99731f7a2df03f086497161f6821 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 @@ -630,9 +630,9 @@ 98b4ae348fa01b99dc6fbfc8f601efd9b90090db - + https://github.com/dotnet/runtime - 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 + 6c58f7992cfd628a53d9b90f258ac123cb803644 https://github.com/dotnet/arcade-services diff --git a/eng/Versions.props b/eng/Versions.props index e099bca11568..9b667463994d 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -87,43 +87,43 @@ - 10.0.0-alpha.1.25063.12 - 10.0.0-alpha.1.25063.12 - 10.0.0-alpha.1.25063.12 - 10.0.0-alpha.1.25063.12 - 10.0.0-alpha.1.25063.12 - 10.0.0-alpha.1.25063.12 - 10.0.0-alpha.1.25063.12 - 10.0.0-alpha.1.25063.12 - 10.0.0-alpha.1.25063.12 - 10.0.0-alpha.1.25063.12 - 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25067.10 8.0.0-rc.1.23414.4 - 10.0.0-alpha.1.25063.12 - 10.0.0-alpha.1.25063.12 - 10.0.0-alpha.1.25063.12 - 10.0.0-alpha.1.25063.12 - 10.0.0-alpha.1.25063.12 - 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25067.10 2.1.0 - 10.0.0-alpha.1.25063.12 - 10.0.0-alpha.1.25063.12 - 10.0.0-alpha.1.25063.12 - 10.0.0-alpha.1.25063.12 - 10.0.0-alpha.1.25063.12 - 10.0.0-alpha.1.25063.12 - 10.0.0-alpha.1.25063.12 - 10.0.0-alpha.1.25063.12 - 10.0.0-alpha.1.25063.12 - 10.0.0-alpha.1.25063.12 - 10.0.0-alpha.1.25063.12 - 10.0.0-alpha.1.25063.12 - 10.0.0-alpha.1.25063.12 - 10.0.0-alpha.1.25063.12 - 10.0.0-alpha.1.25063.12 - 10.0.0-alpha.1.25063.12 - 10.0.0-alpha.1.25063.12 - 10.0.0-alpha.1.25063.12 + 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25067.10 8.0.0 From b94b078aa8152f93ed54699faa9bbaec50eec4b9 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 18 Jan 2025 08:52:51 +0000 Subject: [PATCH 185/193] Update dependencies from https://github.com/dotnet/aspnetcore build 20250117.9 dotnet-dev-certs , dotnet-user-jwts , dotnet-user-secrets , Microsoft.AspNetCore.Analyzers , Microsoft.AspNetCore.App.Ref , Microsoft.AspNetCore.App.Ref.Internal , Microsoft.AspNetCore.App.Runtime.win-x64 , Microsoft.AspNetCore.Authentication.Facebook , Microsoft.AspNetCore.Authentication.Google , Microsoft.AspNetCore.Authentication.MicrosoftAccount , Microsoft.AspNetCore.Authorization , Microsoft.AspNetCore.Components , Microsoft.AspNetCore.Components.Analyzers , Microsoft.AspNetCore.Components.Forms , Microsoft.AspNetCore.Components.SdkAnalyzers , Microsoft.AspNetCore.Components.Web , Microsoft.AspNetCore.Components.WebAssembly , Microsoft.AspNetCore.Components.WebAssembly.Server , Microsoft.AspNetCore.Components.WebView , Microsoft.AspNetCore.DeveloperCertificates.XPlat , Microsoft.AspNetCore.Metadata , Microsoft.AspNetCore.Mvc.Analyzers , Microsoft.AspNetCore.Mvc.Api.Analyzers , Microsoft.AspNetCore.TestHost , Microsoft.Extensions.FileProviders.Embedded , Microsoft.Extensions.ObjectPool , Microsoft.JSInterop , VS.Redist.Common.AspNetCore.SharedFramework.x64.10.0 , Microsoft.SourceBuild.Intermediate.aspnetcore From Version 10.0.0-alpha.2.25067.2 -> To Version 10.0.0-alpha.2.25067.9 --- eng/Version.Details.xml | 116 ++++++++++++++++++++-------------------- eng/Versions.props | 26 ++++----- 2 files changed, 71 insertions(+), 71 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index caedf60444f1..c3d75ce84c71 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -135,13 +135,13 @@ https://github.com/dotnet/roslyn 6d6ca0ffccc112d337cd54b03d33ebb42ba35063 - + https://github.com/dotnet/aspnetcore - d90faf71a4acfcbd6da9ac220b53efb4dd4db04c + 2bf439cdf50ed98a218e00c32a444f113a8d1b4a - + https://github.com/dotnet/aspnetcore - d90faf71a4acfcbd6da9ac220b53efb4dd4db04c + 2bf439cdf50ed98a218e00c32a444f113a8d1b4a https://github.com/nuget/nuget.client @@ -275,95 +275,95 @@ https://github.com/dotnet/wpf aa1aa9703c49e330ab5eb9c39d81ab365422de1d - + https://github.com/dotnet/aspnetcore - d90faf71a4acfcbd6da9ac220b53efb4dd4db04c + 2bf439cdf50ed98a218e00c32a444f113a8d1b4a - + https://github.com/dotnet/aspnetcore - d90faf71a4acfcbd6da9ac220b53efb4dd4db04c + 2bf439cdf50ed98a218e00c32a444f113a8d1b4a - + https://github.com/dotnet/aspnetcore - d90faf71a4acfcbd6da9ac220b53efb4dd4db04c + 2bf439cdf50ed98a218e00c32a444f113a8d1b4a - + https://github.com/dotnet/aspnetcore - d90faf71a4acfcbd6da9ac220b53efb4dd4db04c + 2bf439cdf50ed98a218e00c32a444f113a8d1b4a - + https://github.com/dotnet/aspnetcore - d90faf71a4acfcbd6da9ac220b53efb4dd4db04c + 2bf439cdf50ed98a218e00c32a444f113a8d1b4a - + https://github.com/dotnet/aspnetcore - d90faf71a4acfcbd6da9ac220b53efb4dd4db04c + 2bf439cdf50ed98a218e00c32a444f113a8d1b4a - + https://github.com/dotnet/aspnetcore - d90faf71a4acfcbd6da9ac220b53efb4dd4db04c + 2bf439cdf50ed98a218e00c32a444f113a8d1b4a - + https://github.com/dotnet/aspnetcore - d90faf71a4acfcbd6da9ac220b53efb4dd4db04c + 2bf439cdf50ed98a218e00c32a444f113a8d1b4a - + https://github.com/dotnet/aspnetcore - d90faf71a4acfcbd6da9ac220b53efb4dd4db04c + 2bf439cdf50ed98a218e00c32a444f113a8d1b4a - + https://github.com/dotnet/aspnetcore - d90faf71a4acfcbd6da9ac220b53efb4dd4db04c + 2bf439cdf50ed98a218e00c32a444f113a8d1b4a - + https://github.com/dotnet/aspnetcore - d90faf71a4acfcbd6da9ac220b53efb4dd4db04c + 2bf439cdf50ed98a218e00c32a444f113a8d1b4a - + https://github.com/dotnet/aspnetcore - d90faf71a4acfcbd6da9ac220b53efb4dd4db04c + 2bf439cdf50ed98a218e00c32a444f113a8d1b4a - + https://github.com/dotnet/aspnetcore - d90faf71a4acfcbd6da9ac220b53efb4dd4db04c + 2bf439cdf50ed98a218e00c32a444f113a8d1b4a - + https://github.com/dotnet/aspnetcore - d90faf71a4acfcbd6da9ac220b53efb4dd4db04c + 2bf439cdf50ed98a218e00c32a444f113a8d1b4a - + https://github.com/dotnet/aspnetcore - d90faf71a4acfcbd6da9ac220b53efb4dd4db04c + 2bf439cdf50ed98a218e00c32a444f113a8d1b4a - + https://github.com/dotnet/aspnetcore - d90faf71a4acfcbd6da9ac220b53efb4dd4db04c + 2bf439cdf50ed98a218e00c32a444f113a8d1b4a - + https://github.com/dotnet/aspnetcore - d90faf71a4acfcbd6da9ac220b53efb4dd4db04c + 2bf439cdf50ed98a218e00c32a444f113a8d1b4a - + https://github.com/dotnet/aspnetcore - d90faf71a4acfcbd6da9ac220b53efb4dd4db04c + 2bf439cdf50ed98a218e00c32a444f113a8d1b4a - + https://github.com/dotnet/aspnetcore - d90faf71a4acfcbd6da9ac220b53efb4dd4db04c + 2bf439cdf50ed98a218e00c32a444f113a8d1b4a - + https://github.com/dotnet/aspnetcore - d90faf71a4acfcbd6da9ac220b53efb4dd4db04c + 2bf439cdf50ed98a218e00c32a444f113a8d1b4a - + https://github.com/dotnet/aspnetcore - d90faf71a4acfcbd6da9ac220b53efb4dd4db04c + 2bf439cdf50ed98a218e00c32a444f113a8d1b4a - + https://github.com/dotnet/aspnetcore - d90faf71a4acfcbd6da9ac220b53efb4dd4db04c + 2bf439cdf50ed98a218e00c32a444f113a8d1b4a @@ -384,21 +384,21 @@ 46efcec83821d7f0322c01bc9549de83e855dcac - + https://github.com/dotnet/aspnetcore - d90faf71a4acfcbd6da9ac220b53efb4dd4db04c + 2bf439cdf50ed98a218e00c32a444f113a8d1b4a - + https://github.com/dotnet/aspnetcore - d90faf71a4acfcbd6da9ac220b53efb4dd4db04c + 2bf439cdf50ed98a218e00c32a444f113a8d1b4a - + https://github.com/dotnet/aspnetcore - d90faf71a4acfcbd6da9ac220b53efb4dd4db04c + 2bf439cdf50ed98a218e00c32a444f113a8d1b4a - + https://github.com/dotnet/aspnetcore - d90faf71a4acfcbd6da9ac220b53efb4dd4db04c + 2bf439cdf50ed98a218e00c32a444f113a8d1b4a @@ -550,9 +550,9 @@ https://github.com/dotnet/runtime 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/aspnetcore - d90faf71a4acfcbd6da9ac220b53efb4dd4db04c + 2bf439cdf50ed98a218e00c32a444f113a8d1b4a https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 7bc8baab6669..22de4f370771 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -224,19 +224,19 @@ - 10.0.0-alpha.2.25067.8 - 10.0.0-alpha.2.25067.8 - 10.0.0-alpha.2.25067.8 - 10.0.0-alpha.2.25067.8 - 10.0.0-alpha.2.25067.8 - 10.0.0-alpha.2.25067.8 - 10.0.0-alpha.2.25067.8 - 10.0.0-alpha.2.25067.8 - 10.0.0-alpha.2.25067.8 - 10.0.0-alpha.2.25067.8 - 10.0.0-alpha.2.25067.8 - 10.0.0-alpha.2.25067.8 - 10.0.0-alpha.2.25067.8 + 10.0.0-alpha.2.25067.9 + 10.0.0-alpha.2.25067.9 + 10.0.0-alpha.2.25067.9 + 10.0.0-alpha.2.25067.9 + 10.0.0-alpha.2.25067.9 + 10.0.0-alpha.2.25067.9 + 10.0.0-alpha.2.25067.9 + 10.0.0-alpha.2.25067.9 + 10.0.0-alpha.2.25067.9 + 10.0.0-alpha.2.25067.9 + 10.0.0-alpha.2.25067.9 + 10.0.0-alpha.2.25067.9 + 10.0.0-alpha.2.25067.9 From 679eb9730abc37791226b10d37497bbe0e3817ea Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sun, 19 Jan 2025 05:02:12 +0000 Subject: [PATCH 186/193] Update dependencies from https://github.com/dotnet/runtime build 20250118.1 Microsoft.SourceBuild.Intermediate.runtime.linux-x64 , Microsoft.Bcl.AsyncInterfaces , Microsoft.Extensions.DependencyModel , Microsoft.Extensions.FileProviders.Abstractions , Microsoft.Extensions.FileSystemGlobbing , Microsoft.Extensions.Logging , Microsoft.Extensions.Logging.Abstractions , Microsoft.Extensions.Logging.Console , Microsoft.NET.HostModel , Microsoft.NET.ILLink.Tasks , Microsoft.NETCore.App.Host.win-x64 , Microsoft.NETCore.App.Ref , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.Platforms , Microsoft.Win32.SystemEvents , System.CodeDom , System.Composition.AttributedModel , System.Composition.Convention , System.Composition.Hosting , System.Composition.Runtime , System.Composition.TypedParts , System.Configuration.ConfigurationManager , System.Formats.Asn1 , System.IO.Hashing , System.Reflection.MetadataLoadContext , System.Resources.Extensions , System.Security.Cryptography.Pkcs , System.Security.Cryptography.ProtectedData , System.Security.Cryptography.Xml , System.Security.Permissions , System.ServiceProcess.ServiceController , System.Text.Encoding.CodePages , System.Text.Json , System.Windows.Extensions , VS.Redist.Common.NetCore.SharedFramework.x64.10.0 , VS.Redist.Common.NetCore.TargetingPack.x64.10.0 From Version 10.0.0-alpha.1.25067.10 -> To Version 10.0.0-alpha.1.25068.1 --- eng/Version.Details.xml | 144 ++++++++++++++++++++-------------------- eng/Versions.props | 70 +++++++++---------- 2 files changed, 107 insertions(+), 107 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index f852ea4285c3..f83aba6adac7 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -15,46 +15,46 @@ 6a6c089abc661bd597b32a63e41a9bd2a011950e - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c @@ -230,29 +230,29 @@ bcef12d909709f13027afe1557c724f11bc8df05 - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c https://github.com/dotnet/windowsdesktop @@ -514,89 +514,89 @@ - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c https://github.com/dotnet/aspnetcore fe21c9a711ca99731f7a2df03f086497161f6821 - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c @@ -630,9 +630,9 @@ 98b4ae348fa01b99dc6fbfc8f601efd9b90090db - + https://github.com/dotnet/runtime - 6c58f7992cfd628a53d9b90f258ac123cb803644 + 29013d8ae50f5bc35427a9155234ccebfa5e227c https://github.com/dotnet/arcade-services diff --git a/eng/Versions.props b/eng/Versions.props index 9b667463994d..0e0c47e69ce6 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -87,43 +87,43 @@ - 10.0.0-alpha.1.25067.10 - 10.0.0-alpha.1.25067.10 - 10.0.0-alpha.1.25067.10 - 10.0.0-alpha.1.25067.10 - 10.0.0-alpha.1.25067.10 - 10.0.0-alpha.1.25067.10 - 10.0.0-alpha.1.25067.10 - 10.0.0-alpha.1.25067.10 - 10.0.0-alpha.1.25067.10 - 10.0.0-alpha.1.25067.10 - 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25068.1 + 10.0.0-alpha.1.25068.1 + 10.0.0-alpha.1.25068.1 + 10.0.0-alpha.1.25068.1 + 10.0.0-alpha.1.25068.1 + 10.0.0-alpha.1.25068.1 + 10.0.0-alpha.1.25068.1 + 10.0.0-alpha.1.25068.1 + 10.0.0-alpha.1.25068.1 + 10.0.0-alpha.1.25068.1 + 10.0.0-alpha.1.25068.1 8.0.0-rc.1.23414.4 - 10.0.0-alpha.1.25067.10 - 10.0.0-alpha.1.25067.10 - 10.0.0-alpha.1.25067.10 - 10.0.0-alpha.1.25067.10 - 10.0.0-alpha.1.25067.10 - 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25068.1 + 10.0.0-alpha.1.25068.1 + 10.0.0-alpha.1.25068.1 + 10.0.0-alpha.1.25068.1 + 10.0.0-alpha.1.25068.1 + 10.0.0-alpha.1.25068.1 2.1.0 - 10.0.0-alpha.1.25067.10 - 10.0.0-alpha.1.25067.10 - 10.0.0-alpha.1.25067.10 - 10.0.0-alpha.1.25067.10 - 10.0.0-alpha.1.25067.10 - 10.0.0-alpha.1.25067.10 - 10.0.0-alpha.1.25067.10 - 10.0.0-alpha.1.25067.10 - 10.0.0-alpha.1.25067.10 - 10.0.0-alpha.1.25067.10 - 10.0.0-alpha.1.25067.10 - 10.0.0-alpha.1.25067.10 - 10.0.0-alpha.1.25067.10 - 10.0.0-alpha.1.25067.10 - 10.0.0-alpha.1.25067.10 - 10.0.0-alpha.1.25067.10 - 10.0.0-alpha.1.25067.10 - 10.0.0-alpha.1.25067.10 + 10.0.0-alpha.1.25068.1 + 10.0.0-alpha.1.25068.1 + 10.0.0-alpha.1.25068.1 + 10.0.0-alpha.1.25068.1 + 10.0.0-alpha.1.25068.1 + 10.0.0-alpha.1.25068.1 + 10.0.0-alpha.1.25068.1 + 10.0.0-alpha.1.25068.1 + 10.0.0-alpha.1.25068.1 + 10.0.0-alpha.1.25068.1 + 10.0.0-alpha.1.25068.1 + 10.0.0-alpha.1.25068.1 + 10.0.0-alpha.1.25068.1 + 10.0.0-alpha.1.25068.1 + 10.0.0-alpha.1.25068.1 + 10.0.0-alpha.1.25068.1 + 10.0.0-alpha.1.25068.1 + 10.0.0-alpha.1.25068.1 8.0.0 From 58eef761801b2d0f0b0a411bfc39c8d572ac7c19 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sun, 19 Jan 2025 05:02:16 +0000 Subject: [PATCH 187/193] Update dependencies from https://github.com/microsoft/testfx build 20250117.5 Microsoft.Testing.Platform , MSTest From Version 1.6.0-preview.25066.11 -> To Version 1.6.0-preview.25067.5 --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index cafa1793145a..87f8a24dd381 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -675,13 +675,13 @@ https://github.com/dotnet/runtime e77011b31a3e5c47d931248a64b47f9b2d47853d - + https://github.com/microsoft/testfx - 65d0673880e4ec5b16921b68cd6072acd8395f5e + edc05edf02f74ff5d32b02c782bf10aa1d774a5b - + https://github.com/microsoft/testfx - 65d0673880e4ec5b16921b68cd6072acd8395f5e + edc05edf02f74ff5d32b02c782bf10aa1d774a5b diff --git a/eng/Versions.props b/eng/Versions.props index 066979d43f13..b66d52115300 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -28,7 +28,7 @@ true 6.0.1 true - 1.6.0-preview.25067.2 + 1.6.0-preview.25067.5 30 @@ -289,7 +289,7 @@ 6.12.0 6.1.0 4.18.4 - 3.8.0-preview.25067.2 + 3.8.0-preview.25067.5 1.3.2 8.0.0-beta.23607.1 From dd021cef5c4e61ae6aa3343c3d6c5aa8d8ce5caa Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sun, 19 Jan 2025 05:02:16 +0000 Subject: [PATCH 188/193] Update dependencies from https://github.com/dotnet/roslyn build 20250118.1 Microsoft.SourceBuild.Intermediate.roslyn , Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset , Microsoft.Net.Compilers.Toolset.Framework From Version 4.14.0-1.25066.8 -> To Version 4.14.0-1.25068.1 --- eng/Version.Details.xml | 36 ++++++++++++++++++------------------ eng/Versions.props | 16 ++++++++-------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index fbda96cad15a..acda2db7ecf3 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -97,43 +97,43 @@ 63a09289745da5c256e7baf5f4194a750b1ec878 - + https://github.com/dotnet/roslyn - cf562a1fac4bf70a45ae038fda715c2b2537f1c2 + 6f7613e4d34d835667c90c6b09fbac1240f77bb1 - + https://github.com/dotnet/roslyn - cf562a1fac4bf70a45ae038fda715c2b2537f1c2 + 6f7613e4d34d835667c90c6b09fbac1240f77bb1 - + https://github.com/dotnet/roslyn - cf562a1fac4bf70a45ae038fda715c2b2537f1c2 + 6f7613e4d34d835667c90c6b09fbac1240f77bb1 - + https://github.com/dotnet/roslyn - cf562a1fac4bf70a45ae038fda715c2b2537f1c2 + 6f7613e4d34d835667c90c6b09fbac1240f77bb1 - + https://github.com/dotnet/roslyn - cf562a1fac4bf70a45ae038fda715c2b2537f1c2 + 6f7613e4d34d835667c90c6b09fbac1240f77bb1 - + https://github.com/dotnet/roslyn - cf562a1fac4bf70a45ae038fda715c2b2537f1c2 + 6f7613e4d34d835667c90c6b09fbac1240f77bb1 - + https://github.com/dotnet/roslyn - cf562a1fac4bf70a45ae038fda715c2b2537f1c2 + 6f7613e4d34d835667c90c6b09fbac1240f77bb1 - + https://github.com/dotnet/roslyn - cf562a1fac4bf70a45ae038fda715c2b2537f1c2 + 6f7613e4d34d835667c90c6b09fbac1240f77bb1 - + https://github.com/dotnet/roslyn - cf562a1fac4bf70a45ae038fda715c2b2537f1c2 + 6f7613e4d34d835667c90c6b09fbac1240f77bb1 https://github.com/dotnet/aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index b055ae70dbdb..4bc4c3f3a8e6 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -213,14 +213,14 @@ - 4.14.0-1.25067.8 - 4.14.0-1.25067.8 - 4.14.0-1.25067.8 - 4.14.0-1.25067.8 - 4.14.0-1.25067.8 - 4.14.0-1.25067.8 - 4.14.0-1.25067.8 - 4.14.0-1.25067.8 + 4.14.0-1.25068.1 + 4.14.0-1.25068.1 + 4.14.0-1.25068.1 + 4.14.0-1.25068.1 + 4.14.0-1.25068.1 + 4.14.0-1.25068.1 + 4.14.0-1.25068.1 + 4.14.0-1.25068.1 From 20a7f999dc6ef145a82ac4b2858fe551fcf38d2f Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sun, 19 Jan 2025 08:11:38 +0000 Subject: [PATCH 189/193] Update dependencies from https://github.com/dotnet/aspnetcore build 20250118.1 dotnet-dev-certs , dotnet-user-jwts , dotnet-user-secrets , Microsoft.AspNetCore.Analyzers , Microsoft.AspNetCore.App.Ref , Microsoft.AspNetCore.App.Ref.Internal , Microsoft.AspNetCore.App.Runtime.win-x64 , Microsoft.AspNetCore.Authentication.Facebook , Microsoft.AspNetCore.Authentication.Google , Microsoft.AspNetCore.Authentication.MicrosoftAccount , Microsoft.AspNetCore.Authorization , Microsoft.AspNetCore.Components , Microsoft.AspNetCore.Components.Analyzers , Microsoft.AspNetCore.Components.Forms , Microsoft.AspNetCore.Components.SdkAnalyzers , Microsoft.AspNetCore.Components.Web , Microsoft.AspNetCore.Components.WebAssembly , Microsoft.AspNetCore.Components.WebAssembly.Server , Microsoft.AspNetCore.Components.WebView , Microsoft.AspNetCore.DeveloperCertificates.XPlat , Microsoft.AspNetCore.Metadata , Microsoft.AspNetCore.Mvc.Analyzers , Microsoft.AspNetCore.Mvc.Api.Analyzers , Microsoft.AspNetCore.TestHost , Microsoft.Extensions.FileProviders.Embedded , Microsoft.Extensions.ObjectPool , Microsoft.JSInterop , VS.Redist.Common.AspNetCore.SharedFramework.x64.10.0 , Microsoft.SourceBuild.Intermediate.aspnetcore From Version 10.0.0-alpha.2.25067.2 -> To Version 10.0.0-alpha.2.25068.1 --- eng/Version.Details.xml | 116 ++++++++++++++++++++-------------------- eng/Versions.props | 26 ++++----- 2 files changed, 71 insertions(+), 71 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index c3d75ce84c71..0b7737a9117d 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -135,13 +135,13 @@ https://github.com/dotnet/roslyn 6d6ca0ffccc112d337cd54b03d33ebb42ba35063 - + https://github.com/dotnet/aspnetcore - 2bf439cdf50ed98a218e00c32a444f113a8d1b4a + 82269fc71f9ebb38457d5a0010a1171430f16db5 - + https://github.com/dotnet/aspnetcore - 2bf439cdf50ed98a218e00c32a444f113a8d1b4a + 82269fc71f9ebb38457d5a0010a1171430f16db5 https://github.com/nuget/nuget.client @@ -275,95 +275,95 @@ https://github.com/dotnet/wpf aa1aa9703c49e330ab5eb9c39d81ab365422de1d - + https://github.com/dotnet/aspnetcore - 2bf439cdf50ed98a218e00c32a444f113a8d1b4a + 82269fc71f9ebb38457d5a0010a1171430f16db5 - + https://github.com/dotnet/aspnetcore - 2bf439cdf50ed98a218e00c32a444f113a8d1b4a + 82269fc71f9ebb38457d5a0010a1171430f16db5 - + https://github.com/dotnet/aspnetcore - 2bf439cdf50ed98a218e00c32a444f113a8d1b4a + 82269fc71f9ebb38457d5a0010a1171430f16db5 - + https://github.com/dotnet/aspnetcore - 2bf439cdf50ed98a218e00c32a444f113a8d1b4a + 82269fc71f9ebb38457d5a0010a1171430f16db5 - + https://github.com/dotnet/aspnetcore - 2bf439cdf50ed98a218e00c32a444f113a8d1b4a + 82269fc71f9ebb38457d5a0010a1171430f16db5 - + https://github.com/dotnet/aspnetcore - 2bf439cdf50ed98a218e00c32a444f113a8d1b4a + 82269fc71f9ebb38457d5a0010a1171430f16db5 - + https://github.com/dotnet/aspnetcore - 2bf439cdf50ed98a218e00c32a444f113a8d1b4a + 82269fc71f9ebb38457d5a0010a1171430f16db5 - + https://github.com/dotnet/aspnetcore - 2bf439cdf50ed98a218e00c32a444f113a8d1b4a + 82269fc71f9ebb38457d5a0010a1171430f16db5 - + https://github.com/dotnet/aspnetcore - 2bf439cdf50ed98a218e00c32a444f113a8d1b4a + 82269fc71f9ebb38457d5a0010a1171430f16db5 - + https://github.com/dotnet/aspnetcore - 2bf439cdf50ed98a218e00c32a444f113a8d1b4a + 82269fc71f9ebb38457d5a0010a1171430f16db5 - + https://github.com/dotnet/aspnetcore - 2bf439cdf50ed98a218e00c32a444f113a8d1b4a + 82269fc71f9ebb38457d5a0010a1171430f16db5 - + https://github.com/dotnet/aspnetcore - 2bf439cdf50ed98a218e00c32a444f113a8d1b4a + 82269fc71f9ebb38457d5a0010a1171430f16db5 - + https://github.com/dotnet/aspnetcore - 2bf439cdf50ed98a218e00c32a444f113a8d1b4a + 82269fc71f9ebb38457d5a0010a1171430f16db5 - + https://github.com/dotnet/aspnetcore - 2bf439cdf50ed98a218e00c32a444f113a8d1b4a + 82269fc71f9ebb38457d5a0010a1171430f16db5 - + https://github.com/dotnet/aspnetcore - 2bf439cdf50ed98a218e00c32a444f113a8d1b4a + 82269fc71f9ebb38457d5a0010a1171430f16db5 - + https://github.com/dotnet/aspnetcore - 2bf439cdf50ed98a218e00c32a444f113a8d1b4a + 82269fc71f9ebb38457d5a0010a1171430f16db5 - + https://github.com/dotnet/aspnetcore - 2bf439cdf50ed98a218e00c32a444f113a8d1b4a + 82269fc71f9ebb38457d5a0010a1171430f16db5 - + https://github.com/dotnet/aspnetcore - 2bf439cdf50ed98a218e00c32a444f113a8d1b4a + 82269fc71f9ebb38457d5a0010a1171430f16db5 - + https://github.com/dotnet/aspnetcore - 2bf439cdf50ed98a218e00c32a444f113a8d1b4a + 82269fc71f9ebb38457d5a0010a1171430f16db5 - + https://github.com/dotnet/aspnetcore - 2bf439cdf50ed98a218e00c32a444f113a8d1b4a + 82269fc71f9ebb38457d5a0010a1171430f16db5 - + https://github.com/dotnet/aspnetcore - 2bf439cdf50ed98a218e00c32a444f113a8d1b4a + 82269fc71f9ebb38457d5a0010a1171430f16db5 - + https://github.com/dotnet/aspnetcore - 2bf439cdf50ed98a218e00c32a444f113a8d1b4a + 82269fc71f9ebb38457d5a0010a1171430f16db5 @@ -384,21 +384,21 @@ 46efcec83821d7f0322c01bc9549de83e855dcac - + https://github.com/dotnet/aspnetcore - 2bf439cdf50ed98a218e00c32a444f113a8d1b4a + 82269fc71f9ebb38457d5a0010a1171430f16db5 - + https://github.com/dotnet/aspnetcore - 2bf439cdf50ed98a218e00c32a444f113a8d1b4a + 82269fc71f9ebb38457d5a0010a1171430f16db5 - + https://github.com/dotnet/aspnetcore - 2bf439cdf50ed98a218e00c32a444f113a8d1b4a + 82269fc71f9ebb38457d5a0010a1171430f16db5 - + https://github.com/dotnet/aspnetcore - 2bf439cdf50ed98a218e00c32a444f113a8d1b4a + 82269fc71f9ebb38457d5a0010a1171430f16db5 @@ -550,9 +550,9 @@ https://github.com/dotnet/runtime 56d28a6d280d38a8f0b8a56ac1abf0cf675f4411 - + https://github.com/dotnet/aspnetcore - 2bf439cdf50ed98a218e00c32a444f113a8d1b4a + 82269fc71f9ebb38457d5a0010a1171430f16db5 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 22de4f370771..05e3b27647d7 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -224,19 +224,19 @@ - 10.0.0-alpha.2.25067.9 - 10.0.0-alpha.2.25067.9 - 10.0.0-alpha.2.25067.9 - 10.0.0-alpha.2.25067.9 - 10.0.0-alpha.2.25067.9 - 10.0.0-alpha.2.25067.9 - 10.0.0-alpha.2.25067.9 - 10.0.0-alpha.2.25067.9 - 10.0.0-alpha.2.25067.9 - 10.0.0-alpha.2.25067.9 - 10.0.0-alpha.2.25067.9 - 10.0.0-alpha.2.25067.9 - 10.0.0-alpha.2.25067.9 + 10.0.0-alpha.2.25068.1 + 10.0.0-alpha.2.25068.1 + 10.0.0-alpha.2.25068.1 + 10.0.0-alpha.2.25068.1 + 10.0.0-alpha.2.25068.1 + 10.0.0-alpha.2.25068.1 + 10.0.0-alpha.2.25068.1 + 10.0.0-alpha.2.25068.1 + 10.0.0-alpha.2.25068.1 + 10.0.0-alpha.2.25068.1 + 10.0.0-alpha.2.25068.1 + 10.0.0-alpha.2.25068.1 + 10.0.0-alpha.2.25068.1 From dca294d8dd0f6753b7ae0a336987754698e3ee5a Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 20 Jan 2025 02:56:55 +0000 Subject: [PATCH 190/193] Update dependencies from https://github.com/dotnet/templating build 20250119.1 Microsoft.SourceBuild.Intermediate.templating , Microsoft.TemplateEngine.Abstractions , Microsoft.TemplateEngine.Mocks From Version 10.0.100-alpha.1.25066.10 -> To Version 10.0.100-alpha.1.25069.1 --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index abe69229760d..2da802763ebd 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,18 +1,18 @@ - + https://github.com/dotnet/templating - 6a6c089abc661bd597b32a63e41a9bd2a011950e + 77323f8e0199d6f3a2f15488e96963834e55a8dd - + https://github.com/dotnet/templating - 6a6c089abc661bd597b32a63e41a9bd2a011950e + 77323f8e0199d6f3a2f15488e96963834e55a8dd - + https://github.com/dotnet/templating - 6a6c089abc661bd597b32a63e41a9bd2a011950e + 77323f8e0199d6f3a2f15488e96963834e55a8dd diff --git a/eng/Versions.props b/eng/Versions.props index 7904d6b34c41..991da83c271b 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -196,13 +196,13 @@ - 10.0.100-alpha.1.25066.10 + 10.0.100-alpha.1.25069.1 $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) - 10.0.100-alpha.1.25066.10 + 10.0.100-alpha.1.25069.1 $(MicrosoftTemplateEngineMocksPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineMocksPackageVersion) From ac1dbdb8f342b199599771b170a7478e285a8f06 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 20 Jan 2025 05:02:21 +0000 Subject: [PATCH 191/193] Update dependencies from https://github.com/dotnet/deployment-tools build 20250113.2 Microsoft.SourceBuild.Intermediate.deployment-tools , Microsoft.Deployment.DotNet.Releases From Version 9.0.0-preview.1.24630.1 -> To Version 9.0.0-preview.1.25063.2 --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index abe69229760d..64ff13c5353e 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -467,9 +467,9 @@ be366997dfae0aa6e3c9a78bad10bfb3f79cbde1 - + https://github.com/dotnet/deployment-tools - c7bcd7d32f7744af89dfd031a9b2085e3004fd9c + 3290a7fed58682b6796e6fc916d12c0eb2070ef5 https://github.com/dotnet/sourcelink @@ -502,9 +502,9 @@ - + https://github.com/dotnet/deployment-tools - c7bcd7d32f7744af89dfd031a9b2085e3004fd9c + 3290a7fed58682b6796e6fc916d12c0eb2070ef5 diff --git a/eng/Versions.props b/eng/Versions.props index 7904d6b34c41..36d9687515db 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -59,7 +59,7 @@ 4.0.5 2.0.0-beta4.24528.1 0.4.0-alpha.24528.1 - 2.0.0-preview.1.24630.1 + 2.0.0-preview.1.25063.2 2.2.0-beta.24622.1 1.1.2-beta1.22216.1 10.3.0 From a816f0f96df04acc069519afc21a4281f195816e Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 20 Jan 2025 05:03:29 +0000 Subject: [PATCH 192/193] Update dependencies from https://github.com/microsoft/testfx build 20250119.4 Microsoft.Testing.Platform , MSTest From Version 1.6.0-preview.25067.5 -> To Version 1.6.0-preview.25069.4 --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index abe69229760d..e5c6eddf32e8 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -675,13 +675,13 @@ https://github.com/dotnet/runtime e77011b31a3e5c47d931248a64b47f9b2d47853d - + https://github.com/microsoft/testfx - edc05edf02f74ff5d32b02c782bf10aa1d774a5b + db85b7ec3d25a73d13c467386e1dde91e966f21a - + https://github.com/microsoft/testfx - edc05edf02f74ff5d32b02c782bf10aa1d774a5b + db85b7ec3d25a73d13c467386e1dde91e966f21a diff --git a/eng/Versions.props b/eng/Versions.props index 7904d6b34c41..b4728f185171 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -28,7 +28,7 @@ true 6.0.1 true - 1.6.0-preview.25067.5 + 1.6.0-preview.25069.4 30 @@ -289,7 +289,7 @@ 6.12.0 6.1.0 4.18.4 - 3.8.0-preview.25067.5 + 3.8.0-preview.25069.4 1.3.2 8.0.0-beta.23607.1 From 469de1fdc97164608d38ee0bc442fe65f8eac9ed Mon Sep 17 00:00:00 2001 From: Dustin Campbell Date: Thu, 16 Jan 2025 08:13:01 -0800 Subject: [PATCH 193/193] Adjustments for recent Razor API changes --- src/RazorSdk/Tool/CompositeRazorProjectFileSystem.cs | 5 ----- src/RazorSdk/Tool/GenerateCommand.cs | 4 +--- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/src/RazorSdk/Tool/CompositeRazorProjectFileSystem.cs b/src/RazorSdk/Tool/CompositeRazorProjectFileSystem.cs index e13acaf1b922..72312aeffecc 100644 --- a/src/RazorSdk/Tool/CompositeRazorProjectFileSystem.cs +++ b/src/RazorSdk/Tool/CompositeRazorProjectFileSystem.cs @@ -27,11 +27,6 @@ public override IEnumerable EnumerateItems(string basePath) } } - public override RazorProjectItem GetItem(string path) - { - return GetItem(path, fileKind: null); - } - public override RazorProjectItem GetItem(string path, string fileKind) { RazorProjectItem razorProjectItem = null; diff --git a/src/RazorSdk/Tool/GenerateCommand.cs b/src/RazorSdk/Tool/GenerateCommand.cs index 33a83f3f4e5b..77a1471ef394 100644 --- a/src/RazorSdk/Tool/GenerateCommand.cs +++ b/src/RazorSdk/Tool/GenerateCommand.cs @@ -399,10 +399,8 @@ public SourceItem(string sourcePath, string outputPath, string physicalRelativeP public string CssScope { get; } } - private class StaticTagHelperFeature : ITagHelperFeature + private class StaticTagHelperFeature : RazorEngineFeatureBase, ITagHelperFeature { - public RazorEngine Engine { get; set; } - public IReadOnlyList TagHelpers { get; set; } public IReadOnlyList GetDescriptors() => TagHelpers;