Replace ErrorUtilities assertion methods with Assumed API and BCL throw helpers - #13790
Conversation
There was a problem hiding this comment.
Expert Review Summary — PR #13790: Assumed Internal Assertion API
Overall Assessment
This is a well-executed, large-scale refactoring that introduces a modern internal assertion API (Assumed + InternalError) and systematically replaces the legacy ErrorUtilities.VerifyThrow* / ThrowInternalError pattern across ~359 files. The API design is solid and the mechanical substitutions are semantically correct.
✅ Strengths
| Dimension | Assessment |
|---|---|
| API Surface | ✅ Both Assumed and InternalError are correctly internal static — no public API impact |
| Performance | ✅ Conditional interpolated string handlers avoid allocation on happy paths. [NoInlining] on throw paths keeps callers small |
| Test Coverage | ✅ Assumed_Tests.cs (719 lines) comprehensively tests all methods, both overloads, positive/negative paths, and default message expression capture |
| Correctness | ✅ Mechanical substitutions preserve semantics. ArgumentNullException.ThrowIfNull correctly replaces VerifyThrowArgumentNull with identical [CallerArgumentExpression] behavior |
| Backwards Compatibility | ✅ No public behavior changes. Exception types remain the same (InternalErrorException, ArgumentNullException, etc.) |
| Build Infrastructure | ✅ Files placed correctly in Framework project; accessible via InternalsVisibleTo to all consuming assemblies |
| Code Simplification | ✅ InternalError.Throw<T> eliminates dead-code returns after unconditional throws |
| Scope | ✅ MSBuildTaskHost (net35) is correctly excluded from the migration |
⚠️ Concerns (Non-Blocking)
-
Naming:
Assumedreads as a past participle.Assume(imperative) would be more conventional at call sites (Assume.NotNull(x)vsAssumed.NotNull(x)). Subjective — not blocking. -
Interpolated string overload resolution: When callers pass
$"..."as the 3rd argument to methods likeAssumed.Equal(a, b, $"message {x}"), it's critical that the compiler resolves to the handler overload (zero-allocation) rather than thestring? messageoverload (eager allocation). The API signature design should ensure this via overload resolution rules, but it would be worth a quick IL verification for a representative case. -
Null-conditional chains with
[NotNull]:Assumed.NotNull(instance?.RequestEntry?.Request)doesn't narrowinstanceitself — only the overall expression. In#nullable disablecontexts this is fine, but could produce warnings if nullable is ever enabled. -
PR size: 359 files across 17 commits is large for a single PR. The commit history is well-structured (each commit covers one type of replacement), which helps reviewability. However, if any single substitution has a subtle bug, it could be hard to catch in this volume.
🔍 Dimensions Verified (No Issues Found)
- ChangeWave: Not needed — no behavioral change to user builds
- String comparisons: No MSBuild name comparisons affected
- Cross-platform: No platform-specific issues introduced
- Binary log compatibility: No format changes
- Concurrency: No threading changes
- Security: N/A
- Dependencies: Using directives correctly updated
Verdict
COMMENT — This is a clean, well-designed refactoring. The concerns above are minor and non-blocking. The API design with conditional interpolated string handlers is particularly well done for a performance-critical codebase.
Note
🔒 Integrity filter blocked 2 items
The following items were blocked because they don't meet the GitHub integrity level.
- #13790
pull_request_read: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". - #13790
pull_request_read: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
To allow these resources, lower min-integrity in your GitHub frontmatter:
tools:
github:
min-integrity: approved # merged | approved | unapproved | noneGenerated by Expert Code Review (on open) for issue #13790 · ● 40.2M
…ng handlers Introduce Assumed static class providing internal assertion methods (Null, NotNull, NotNullOrEmpty, True, False, Equal, NotEqual, comparison operators, range checks, and Unreachable) that throw InternalErrorException on failure. Each assertion has two overloads: one with CallerArgumentExpression for automatic error messages, and one with a conditional interpolated string handler that avoids formatting allocations on the success path. Also add InternalError helper for centralized throw sites and comprehensive unit tests covering all methods, overloads, and default message content.
…nalError.Throw<T> - Add Assumed.Equal/NotEqual overloads accepting StringComparison - Add Assumed.NotNullOrEmpty<T, TElement> for IReadOnlyCollection<TElement> - Add InternalError.Throw<T> overloads returning T for expression contexts - Simplify Assumed.Unreachable<T> to delegate to InternalError.Throw<T> - Simplify FrameworkErrorUtilities.VerifyThrowInternalLength<T> to use Assumed.NotNullOrEmpty - Add unit tests for all new Assumed methods Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…tion.ThrowIfNull Migrate all two-argument calls to ErrorUtilities.VerifyThrowArgumentNull to use ArgumentNullException.ThrowIfNull, which is polyfilled for .NET Framework. Calls with an explicit resource name parameter (three-argument overload) are preserved. - Replace ~500 call sites across 168 files - Remove the now-unused VerifyThrowArgumentNull(object?, string?) overload - Make ThrowArgumentNull private (no external callers remain) - Add missing 'using System;' and remove unused 'using Microsoft.Build.Shared;' - Fix null check ordering in BuildRequestEngine.IssueConfigurationRequest - Remove no-op null check on WorkUnitResult struct in TargetResult Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…on.ThrowIfNullOrEmpty Replace all calls to ErrorUtilities.VerifyThrowArgumentLength(string?, string?) with ArgumentException.ThrowIfNullOrEmpty, using the existing polyfill for .NET Framework. Collection overloads are left unchanged. The now-unused string overload of VerifyThrowArgumentLength is removed from ErrorUtilities. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…OfRangeException.ThrowIf* Replace all calls to ErrorUtilities.VerifyThrowArgumentOutOfRange with the appropriate ArgumentOutOfRangeException.ThrowIf* overload: - ThrowIfNegativeOrZero for > 0 checks - ThrowIfNotEqual for enum equality checks - ThrowIfEqual for inequality checks - ThrowIfNegative + ThrowIfGreaterThanOrEqual for array bounds checks The now-unused VerifyThrowArgumentOutOfRange is removed from ErrorUtilities. ThrowArgumentOutOfRange and its caller are left unchanged. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Change parameter type from T[] to ICollection<T> to match the XML doc - Reorder parameters so param names are optional [CallerArgumentExpression] parameters at the end - Rename array/arrayIndex to collection/index with ParamName suffix - Fix resource string name typo: 'Shared.CollectionCopyTo...' to 'CollectionCopyToFailureProvidedArrayIsTooSmall' - Add full XML doc comments for all parameters Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ption.ThrowIfNullOrEmpty<T> Add a new ArgumentException.ThrowIfNullOrEmpty<T>(IReadOnlyCollection<T>) extension method in src/Framework/Utilities/ArgumentExceptionExtensions.cs, available on all TFMs. Replace all callers of the collection overload of VerifyThrowArgumentLength and remove the now-unused method. The exception message is sourced from SR.Argument_EmptyCollection resource. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…xception.ThrowIf Replace the single caller in Expander.cs and remove the now-unused VerifyThrowObjectDisposed and ThrowObjectDisposed methods from ErrorUtilities. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…eachable Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Several existing calls had mismatched names that were silently wrong (e.g. passing "child" for an "importedProject" variable, or "Value" for "value"). These are now either corrected via CallerArgumentExpression or preserved as explicit valueExpression arguments. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…OrEmpty Removed both overloads (string and T[]) from ErrorUtilities.cs and Framework/ErrorUtilities.cs. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace all calls to ErrorUtilities.VerifyThrow(bool, string) and VerifyThrow(bool, string, string) with appropriate Assumed methods. The first pass mapped each call to Assumed.True or Assumed.False based on the condition polarity. A series of refinement passes then replaced calls whose conditions matched more specific Assumed methods: - != null / is not null conditions -> Assumed.NotNull - == null / is null conditions -> Assumed.Null - == 0 conditions -> Assumed.Zero - !string.IsNullOrEmpty -> Assumed.NotNullOrEmpty - == / != comparisons -> Assumed.Equal / Assumed.NotEqual - > 0, >= 1 -> Assumed.Positive - >= 0, > -1 -> Assumed.PositiveOrZero - Relational comparisons -> Assumed.GreaterThan/OrEqual, LessThan/OrEqual - Bounded range checks -> Assumed.InRange - string.Equals with StringComparison -> Assumed.Equal(string, string, StringComparison) - Compound conditions (&&) split into individual assertions where appropriate Both VerifyThrow overloads have been removed from ErrorUtilities.cs. Unused 'using Microsoft.Build.Shared' directives were cleaned up where they were no longer needed. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ed.True Replace the 3 remaining calls to VerifyThrowInternalErrorUnreachable in NodeProviderOutOfProcTaskHost.cs with Assumed.True, then remove the method from both FrameworkErrorUtilities and the shared ErrorUtilities forwarder. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace 108 calls to ErrorUtilities.ThrowInternalError across 63 files with direct calls to InternalError.Throw. The signatures are identical, so this is a straightforward 1:1 replacement. Remove the ThrowInternalError forwarders from the shared ErrorUtilities class and clean up 17 unused using directives that resulted from the change. MSBuildTaskHost and CrashTelemetry are left untouched. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace 7 calls to EscapeHatches.ThrowInternalError in BinaryTranslator, BuildExceptionSerializationHelper, and MSBuildNameIgnoreCaseComparer with direct calls to InternalError.Throw. Convert the two format-string calls in MSBuildNameIgnoreCaseComparer to interpolated strings. Remove the ThrowInternalError and FormatString helper methods from EscapeHatches, which were originally clones of methods unavailable in Framework — now superseded by InternalError.Throw. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Refine InternalError.Throw callsites across 49 files: - Replace InternalError.Throw in unreachable code paths (switch defaults, impossible branches) with Assumed.Unreachable or Assumed.Unreachable<T> - Replace conditional throw patterns with appropriate Assumed methods (Assumed.True, Assumed.False, Assumed.NotNull, Assumed.NotEqual, etc.) - Use InternalError.Throw<T> to eliminate throw-then-return-default patterns, converting multi-statement method bodies to expression-bodied members - Split compound bounds checks in MSBuildNameIgnoreCaseComparer into PositiveOrZero and LessThanOrEqual for clarity - Modernize string formatting (concatenation to interpolation) and collection expressions where touched
cf9c798 to
43d0d9f
Compare
|
I am extremely on board with the interpolated-string handlers, but I am less sure about the renaming/recentralization changes. Can you pitch me on |
I've been trying to tease First, I replaced the "Verify" functions for argument exceptions with the BCL equivalents added in modern .NET, which are polyfilled in MSBuild. Those methods, like Then, I considered all of the "VerifyThrowInternal" methods and noted that they're all for internal assertions. At first, I considered adding
Assumed.NotNull(projectCache);...over this: ErrorUtilities.VerifyThrowInternalNull(projectChange);In addition, Assumed.Null<T>(T?);
Assumed.NotNull<T>(T?);
Assumed.NotNullOrEmpty(string?);
Assumed.NotNullOrEmpty<T>(IReadOnlyCollection<T>?);
Assumed.True(bool);
Assumed.False(bool);
Assumed.Equal<T>(T, T);
Assumed.Equal(string?, string?, StringComparison);
Assumed.NotEqual<T>(T, T);
Assumed.NotEqual(string?, string?, StringComparison);
Assumed.GreaterThan<T>(T, T) where T : IComparable<T>;
Assumed.GreaterThanOrEqual<T>(T, T) where T : IComparable<T>;
Assumed.LessThan<T>(T, T) where T : IComparable<T>;
Assumed.LessThanOrEqual<T>(T, T) where T : IComparable<T>;
Assumed.Zero(int);
Assumed.Negative(int);
Assumed.NegativeOrZero(int);
Assumed.Positive(int);
Assumed.PositiveOrZero(int);
Assumed.InRange<T>(T, T, T) where T : IComparable<T>;
Assumed.Unreachable();
Assumed.Unreachable<T>();These align (mostly) with the "ThrowIf***" methods on Anyway, I hope that explains how I arrived at this. |
|
I will run the experimental insertion to VS on this PR |
|
Talked it over with the team and we’re ok with the change. I’m on point for the first review |
|
Triaged as a low-priority code-quality refactor. Plan: light review, kick off an experimental VS insertion, and if green — merge. |
Updated [Azure.Bicep.Types.Az](https://github.com/Azure/bicep-types-az) from 0.2.911 to 0.2.923. <details> <summary>Release notes</summary> _Sourced from [Azure.Bicep.Types.Az's releases](https://github.com/Azure/bicep-types-az/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/Azure/bicep-types-az/commits). </details> Updated [Azure.Deployments.Templates](https://msazure.visualstudio.com/One/_git/AzureUX-Deployments) from 1.683.0 to 1.765.0. <details> <summary>Release notes</summary> _Sourced from [Azure.Deployments.Templates's releases](https://msazure.visualstudio.com/One/_git/AzureUX-Deployments/tags)._ No release notes found for this version range. Commits viewable in [compare view](https://msazure.visualstudio.com/One/_git/AzureUX-Deployments/commits). </details> Updated [Google.Protobuf](https://github.com/protocolbuffers/protobuf) from 3.35.1 to 3.36.1. <details> <summary>Release notes</summary> _Sourced from [Google.Protobuf's releases](https://github.com/protocolbuffers/protobuf/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/protocolbuffers/protobuf/commits). </details> Updated [Grpc.AspNetCore.Server.Reflection](https://github.com/grpc/grpc-dotnet) from 2.80.0 to 2.83.0. <details> <summary>Release notes</summary> _Sourced from [Grpc.AspNetCore.Server.Reflection's releases](https://github.com/grpc/grpc-dotnet/releases)._ ## 2.83.0 ## What's Changed * [Release v2.80.x] Fix the version number - Step 3 by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2709 * Revert "[Release v2.80.x] Fix the version number - Step 3" by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2710 * Bump lodash from 4.17.23 to 4.18.1 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2712 * Bump basic-ftp from 5.2.0 to 5.2.1 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2713 * Fix typo in UnaryServerHandler method description by @HamzaWahed in https://github.com/grpc/grpc-dotnet/pull/2714 * Bump axios from 1.13.6 to 1.15.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2715 * Bump basic-ftp from 5.2.1 to 5.2.2 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2716 * Bump follow-redirects from 1.15.11 to 1.16.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2717 * Resolver: fix 'retreive'/'retreiveing' typos in XML doc comments by @SAY-5 in https://github.com/grpc/grpc-dotnet/pull/2718 * Bump basic-ftp from 5.2.2 to 5.3.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2719 * Bump protobufjs from 7.5.3 to 7.5.5 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2721 * Fix flaky DuplexStream_SendToUnimplementedMethod_ThrowError test by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2720 * Add SECURITY.md by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2722 * Update OpenTelemetry packages to latest stable by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2729 * Bump fast-uri from 3.1.0 to 3.1.2 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2730 * Bump basic-ftp from 5.3.0 to 5.3.1 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2727 * Bump axios from 1.15.0 to 1.16.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2728 * Fix XML documentation typo by @martincostello in https://github.com/grpc/grpc-dotnet/pull/2724 * Bump @protobufjs/utf8 from 1.1.0 to 1.1.1 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2733 * Bump protobufjs from 7.5.5 to 7.5.8 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2735 * Fix typo in comment about socket ping scheduling by @yasoob in https://github.com/grpc/grpc-dotnet/pull/2671 * Bump ip-address and socks in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2726 * Fix subchannel permanently stuck in TransientFailure after ConnectTimeout by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2736 * Bump ws from 8.18.3 to 8.20.1 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2737 * _moveNextTask may be overwritten, after we release the lock, but befo… by @osexpert in https://github.com/grpc/grpc-dotnet/pull/2738 * Bump form-data from 4.0.5 to 4.0.6 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2743 * Bump joi from 17.13.3 to 17.13.4 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2741 * Bump ws from 8.20.1 to 8.21.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2742 * Using Grpc.Tools 2.83.0-pre1 by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2746 * Update version for v2.83.x by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2747 * Update versions for stable release 2.83.x by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2750 ## New Contributors * @HamzaWahed made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2714 * @SAY-5 made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2718 * @martincostello made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2724 * @yasoob made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2671 * @osexpert made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2738 **Full Changelog**: https://github.com/grpc/grpc-dotnet/compare/v2.80.0...v2.83.0 ## 2.83.0-pre1 ## What's Changed * [Release v2.80.x] Fix the version number - Step 3 by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2709 * Revert "[Release v2.80.x] Fix the version number - Step 3" by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2710 * Bump lodash from 4.17.23 to 4.18.1 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2712 * Bump basic-ftp from 5.2.0 to 5.2.1 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2713 * Fix typo in UnaryServerHandler method description by @HamzaWahed in https://github.com/grpc/grpc-dotnet/pull/2714 * Bump axios from 1.13.6 to 1.15.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2715 * Bump basic-ftp from 5.2.1 to 5.2.2 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2716 * Bump follow-redirects from 1.15.11 to 1.16.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2717 * Resolver: fix 'retreive'/'retreiveing' typos in XML doc comments by @SAY-5 in https://github.com/grpc/grpc-dotnet/pull/2718 * Bump basic-ftp from 5.2.2 to 5.3.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2719 * Bump protobufjs from 7.5.3 to 7.5.5 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2721 * Fix flaky DuplexStream_SendToUnimplementedMethod_ThrowError test by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2720 * Add SECURITY.md by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2722 * Update OpenTelemetry packages to latest stable by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2729 * Bump fast-uri from 3.1.0 to 3.1.2 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2730 * Bump basic-ftp from 5.3.0 to 5.3.1 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2727 * Bump axios from 1.15.0 to 1.16.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2728 * Fix XML documentation typo by @martincostello in https://github.com/grpc/grpc-dotnet/pull/2724 * Bump @protobufjs/utf8 from 1.1.0 to 1.1.1 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2733 * Bump protobufjs from 7.5.5 to 7.5.8 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2735 * Fix typo in comment about socket ping scheduling by @yasoob in https://github.com/grpc/grpc-dotnet/pull/2671 * Bump ip-address and socks in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2726 * Fix subchannel permanently stuck in TransientFailure after ConnectTimeout by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2736 * Bump ws from 8.18.3 to 8.20.1 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2737 * _moveNextTask may be overwritten, after we release the lock, but befo… by @osexpert in https://github.com/grpc/grpc-dotnet/pull/2738 * Bump form-data from 4.0.5 to 4.0.6 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2743 * Bump joi from 17.13.3 to 17.13.4 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2741 * Bump ws from 8.20.1 to 8.21.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2742 * Using Grpc.Tools 2.83.0-pre1 by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2746 * Update version for v2.83.x by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2747 ## New Contributors * @HamzaWahed made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2714 * @SAY-5 made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2718 * @martincostello made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2724 * @yasoob made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2671 * @osexpert made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2738 **Full Changelog**: https://github.com/grpc/grpc-dotnet/compare/v2.80.0...v2.83.0-pre1 Commits viewable in [compare view](https://github.com/grpc/grpc-dotnet/compare/v2.80.0...v2.83.0). </details> Updated [Grpc.Net.Client](https://github.com/grpc/grpc-dotnet) from 2.76.0 to 2.83.0. <details> <summary>Release notes</summary> _Sourced from [Grpc.Net.Client's releases](https://github.com/grpc/grpc-dotnet/releases)._ ## 2.83.0 ## What's Changed * [Release v2.80.x] Fix the version number - Step 3 by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2709 * Revert "[Release v2.80.x] Fix the version number - Step 3" by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2710 * Bump lodash from 4.17.23 to 4.18.1 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2712 * Bump basic-ftp from 5.2.0 to 5.2.1 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2713 * Fix typo in UnaryServerHandler method description by @HamzaWahed in https://github.com/grpc/grpc-dotnet/pull/2714 * Bump axios from 1.13.6 to 1.15.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2715 * Bump basic-ftp from 5.2.1 to 5.2.2 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2716 * Bump follow-redirects from 1.15.11 to 1.16.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2717 * Resolver: fix 'retreive'/'retreiveing' typos in XML doc comments by @SAY-5 in https://github.com/grpc/grpc-dotnet/pull/2718 * Bump basic-ftp from 5.2.2 to 5.3.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2719 * Bump protobufjs from 7.5.3 to 7.5.5 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2721 * Fix flaky DuplexStream_SendToUnimplementedMethod_ThrowError test by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2720 * Add SECURITY.md by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2722 * Update OpenTelemetry packages to latest stable by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2729 * Bump fast-uri from 3.1.0 to 3.1.2 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2730 * Bump basic-ftp from 5.3.0 to 5.3.1 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2727 * Bump axios from 1.15.0 to 1.16.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2728 * Fix XML documentation typo by @martincostello in https://github.com/grpc/grpc-dotnet/pull/2724 * Bump @protobufjs/utf8 from 1.1.0 to 1.1.1 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2733 * Bump protobufjs from 7.5.5 to 7.5.8 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2735 * Fix typo in comment about socket ping scheduling by @yasoob in https://github.com/grpc/grpc-dotnet/pull/2671 * Bump ip-address and socks in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2726 * Fix subchannel permanently stuck in TransientFailure after ConnectTimeout by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2736 * Bump ws from 8.18.3 to 8.20.1 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2737 * _moveNextTask may be overwritten, after we release the lock, but befo… by @osexpert in https://github.com/grpc/grpc-dotnet/pull/2738 * Bump form-data from 4.0.5 to 4.0.6 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2743 * Bump joi from 17.13.3 to 17.13.4 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2741 * Bump ws from 8.20.1 to 8.21.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2742 * Using Grpc.Tools 2.83.0-pre1 by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2746 * Update version for v2.83.x by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2747 * Update versions for stable release 2.83.x by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2750 ## New Contributors * @HamzaWahed made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2714 * @SAY-5 made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2718 * @martincostello made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2724 * @yasoob made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2671 * @osexpert made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2738 **Full Changelog**: https://github.com/grpc/grpc-dotnet/compare/v2.80.0...v2.83.0 ## 2.83.0-pre1 ## What's Changed * [Release v2.80.x] Fix the version number - Step 3 by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2709 * Revert "[Release v2.80.x] Fix the version number - Step 3" by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2710 * Bump lodash from 4.17.23 to 4.18.1 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2712 * Bump basic-ftp from 5.2.0 to 5.2.1 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2713 * Fix typo in UnaryServerHandler method description by @HamzaWahed in https://github.com/grpc/grpc-dotnet/pull/2714 * Bump axios from 1.13.6 to 1.15.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2715 * Bump basic-ftp from 5.2.1 to 5.2.2 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2716 * Bump follow-redirects from 1.15.11 to 1.16.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2717 * Resolver: fix 'retreive'/'retreiveing' typos in XML doc comments by @SAY-5 in https://github.com/grpc/grpc-dotnet/pull/2718 * Bump basic-ftp from 5.2.2 to 5.3.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2719 * Bump protobufjs from 7.5.3 to 7.5.5 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2721 * Fix flaky DuplexStream_SendToUnimplementedMethod_ThrowError test by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2720 * Add SECURITY.md by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2722 * Update OpenTelemetry packages to latest stable by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2729 * Bump fast-uri from 3.1.0 to 3.1.2 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2730 * Bump basic-ftp from 5.3.0 to 5.3.1 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2727 * Bump axios from 1.15.0 to 1.16.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2728 * Fix XML documentation typo by @martincostello in https://github.com/grpc/grpc-dotnet/pull/2724 * Bump @protobufjs/utf8 from 1.1.0 to 1.1.1 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2733 * Bump protobufjs from 7.5.5 to 7.5.8 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2735 * Fix typo in comment about socket ping scheduling by @yasoob in https://github.com/grpc/grpc-dotnet/pull/2671 * Bump ip-address and socks in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2726 * Fix subchannel permanently stuck in TransientFailure after ConnectTimeout by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2736 * Bump ws from 8.18.3 to 8.20.1 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2737 * _moveNextTask may be overwritten, after we release the lock, but befo… by @osexpert in https://github.com/grpc/grpc-dotnet/pull/2738 * Bump form-data from 4.0.5 to 4.0.6 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2743 * Bump joi from 17.13.3 to 17.13.4 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2741 * Bump ws from 8.20.1 to 8.21.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2742 * Using Grpc.Tools 2.83.0-pre1 by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2746 * Update version for v2.83.x by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2747 ## New Contributors * @HamzaWahed made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2714 * @SAY-5 made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2718 * @martincostello made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2724 * @yasoob made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2671 * @osexpert made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2738 **Full Changelog**: https://github.com/grpc/grpc-dotnet/compare/v2.80.0...v2.83.0-pre1 ## 2.80.0 ## What's Changed * Update .NET 10, System.CommandLine 2.0.0, fix warnings by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2677 * Fix System.CommandLine 2.0.0 Uri parsing in GrpcClient benchmark app by @ilonatommy in https://github.com/grpc/grpc-dotnet/pull/2695 * Implement GrpcServiceEndpointConventionBuilder.Finally by @halter73 in https://github.com/grpc/grpc-dotnet/pull/2693 * Bump axios from 1.11.0 to 1.12.2 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2669 * Bump webpack from 5.101.0 to 5.105.0 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2689 * Bump lodash from 4.17.21 to 4.17.23 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2687 * Bump glob from 10.4.5 to 10.5.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2679 * Bump basic-ftp from 5.0.5 to 5.2.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2698 * Bump serialize-javascript and terser-webpack-plugin in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2699 * Bump minimatch in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2700 * Bump axios from 1.12.2 to 1.13.6 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2701 * Bump js-yaml in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2702 * Handle Trailers-Only OK responses in streaming calls without exception handling by @michaelmccord in https://github.com/grpc/grpc-dotnet/pull/2697 * Bump picomatch in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2703 * Implement v1 reflection service and clean up integration by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2704 * Bump brace-expansion in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2706 * Fix flaky PickAsync_UpdateAddressesWhileRequestingConnection_DoesNotDeadlock test by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2705 * Bump Tools Version prep for release v2.80.0 by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2707 * [Release v2.80.x] Fix the version number - Step 3 by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2711 * Rel (v1.80.0) Prep for stable release by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2723 ## New Contributors * @ilonatommy made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2695 * @halter73 made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2693 * @michaelmccord made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2697 **Full Changelog**: https://github.com/grpc/grpc-dotnet/compare/v2.76.0...v2.80.0 ## 2.80.0-pre1 ## What's Changed * Update .NET 10, System.CommandLine 2.0.0, fix warnings by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2677 * Fix System.CommandLine 2.0.0 Uri parsing in GrpcClient benchmark app by @ilonatommy in https://github.com/grpc/grpc-dotnet/pull/2695 * Implement GrpcServiceEndpointConventionBuilder.Finally by @halter73 in https://github.com/grpc/grpc-dotnet/pull/2693 * Bump axios from 1.11.0 to 1.12.2 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2669 * Bump webpack from 5.101.0 to 5.105.0 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2689 * Bump lodash from 4.17.21 to 4.17.23 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2687 * Bump glob from 10.4.5 to 10.5.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2679 * Bump basic-ftp from 5.0.5 to 5.2.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2698 * Bump serialize-javascript and terser-webpack-plugin in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2699 * Bump minimatch in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2700 * Bump axios from 1.12.2 to 1.13.6 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2701 * Bump js-yaml in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2702 * Handle Trailers-Only OK responses in streaming calls without exception handling by @michaelmccord in https://github.com/grpc/grpc-dotnet/pull/2697 * Bump picomatch in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2703 * Implement v1 reflection service and clean up integration by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2704 * Bump brace-expansion in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2706 * Fix flaky PickAsync_UpdateAddressesWhileRequestingConnection_DoesNotDeadlock test by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2705 * Bump Tools Version prep for release v2.80.0 by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2707 * [Release v2.80.x] Fix the version number - Step 3 by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2711 ## New Contributors * @ilonatommy made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2695 * @halter73 made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2693 * @michaelmccord made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2697 **Full Changelog**: https://github.com/grpc/grpc-dotnet/compare/v2.76.0...v2.80.0-pre1 Commits viewable in [compare view](https://github.com/grpc/grpc-dotnet/compare/v2.76.0...v2.83.0). </details> Updated [JsonDiffPatch.Net](https://github.com/wbish/jsondiffpatch.net) from 2.3.0 to 2.5.0. <details> <summary>Release notes</summary> _Sourced from [JsonDiffPatch.Net's releases](https://github.com/wbish/jsondiffpatch.net/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/wbish/jsondiffpatch.net/commits). </details> Updated [Microsoft.Build.Framework](https://github.com/dotnet/msbuild) from 18.8.2 to 18.10.1. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Build.Framework's releases](https://github.com/dotnet/msbuild/releases)._ ## 18.10.1 ## What's Changed * [vs16.11] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13103 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13796 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13902 * [vs17.11] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13903 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13909 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13986 * Add vs18.9 to merge-flow config; retire vs18.3 by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14214 * Bump labeler-cache-retention to use issue-labeler v2.1.0 by @jeffhandley in https://github.com/dotnet/msbuild/pull/14171 * Bump main to 18.10.0 after vs18.9 snap by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14216 * Improve release skill: Phase 2 DARC rules, VMR backflow, deterministic baseline by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14220 * Determinize release: hardcode OptProf baseline + Phase 3.2 baseline resolver by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14222 * Serialize BuildRequestConfiguration.RequestedTargets to fix solution metaproject MSB4057 in parallel builds by @ViktorHofer in https://github.com/dotnet/msbuild/pull/14223 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14203 * Core support for AbsolutePath/FileInfo/DirectoryInfo and ITaskItem<T> as task parameters by @baronfel in https://github.com/dotnet/msbuild/pull/13971 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14206 * Fix existence cache kind poisoning by @AlesProkop in https://github.com/dotnet/msbuild/pull/14249 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14226 * Don't disable the MSBuild server for /mt builds when node reuse is off by @AR-May in https://github.com/dotnet/msbuild/pull/14248 * Enhance expert reviewer guidelines with additional checks. by @AR-May in https://github.com/dotnet/msbuild/pull/14255 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14253 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14268 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14267 * Bump github/gh-aw-actions/setup from 0.81.6 to 0.82.2 by @dependabot[bot] in https://github.com/dotnet/msbuild/pull/14266 * Avoid boxing the struct enumerator in PropertyDictionary<T>.GetEnumerator() by @nareshjo in https://github.com/dotnet/msbuild/pull/14272 * Refresh copy marker when implementation output changes by @AlesProkop in https://github.com/dotnet/msbuild/pull/14231 * Send task-host build process environment as delta by @OvesN in https://github.com/dotnet/msbuild/pull/14126 * Add regression coverage for metadata newline preservation by @VolPlita in https://github.com/dotnet/msbuild/pull/14261 * Fix EmbedInBinlog items with relative paths from child projects by @huulinhnguyen-dev in https://github.com/dotnet/msbuild/pull/13990 * Stop requiring VersionPrefix updates in servicing - insert prerelease versions to VS by @ViktorHofer in https://github.com/dotnet/msbuild/pull/14277 * Fix WriteLinesToFile rewriting unchanged file when custom encoding is used by @huulinhnguyen-dev in https://github.com/dotnet/msbuild/pull/14146 * Enable trim/AOT analyzers for Microsoft.Build and clean up annotations by @JeremyKuhne in https://github.com/dotnet/msbuild/pull/14064 * [automated] Merge branch 'vs18.9' => 'main' by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/14291 * Fix MicroBuild plugin feed URL to use allowed pkgs.dev.azure.com format by @AlesProkop in https://github.com/dotnet/msbuild/pull/14295 * Pass ExcludeRestorePackageImports during restore to avoid redundant evaluations by @ViktorHofer with @Copilot in https://github.com/dotnet/msbuild/pull/14274 * [vs18.7] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13988 * Adopt Clever Test Selection (CTS) as parallel, non-blocking PR pipeline by @jankratochvilcz in https://github.com/dotnet/msbuild/pull/14212 * Harden exceptions when connecting to server by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14292 * Update MicrosoftBuildVersion in analyzer template by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/13886 * Fix MSBuild Server client dropping build result under WaitAny race (#14172) by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14251 * Partially revert #13660: remove NuGet RestoreTask transient TaskHost workaround by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14297 * Disable daily AI credits guardrail for Expert Code Review workflow by @JanProvaznik with @Copilot in https://github.com/dotnet/msbuild/pull/14314 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 14614733 by @dotnet-bot in https://github.com/dotnet/msbuild/pull/14246 * Add opt-in partial (stop-after-pass) project evaluation by @ViktorHofer in https://github.com/dotnet/msbuild/pull/14290 * Use partial evaluation for -getProperty/-getItem without a target by @ViktorHofer in https://github.com/dotnet/msbuild/pull/14296 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14324 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14333 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14330 * Bump github/gh-aw-actions/setup from 0.82.2 to 0.82.8 by @dependabot[bot] in https://github.com/dotnet/msbuild/pull/14328 * Restrict partial evaluation to ProjectInstance by @ViktorHofer in https://github.com/dotnet/msbuild/pull/14340 ... (truncated) ## 18.9.6 ## What's Changed * [vs18.6] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13793 * [vs18.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13859 * [vs18.6] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13858 * [vs18.7] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13863 * CsWin32 follow-up: CLR metadata + TypeLib interop migration by @JeremyKuhne in https://github.com/dotnet/msbuild/pull/13853 * Update vmr-sb-validation.yml for Azure Pipelines by @meghnave in https://github.com/dotnet/msbuild/pull/13871 * Test: keep shell alive 15s in ToolTaskCanChangeCanonicalErrorFormat (#13734) by @jankratochvilcz in https://github.com/dotnet/msbuild/pull/13878 * Add vs18.8 to merge-flow config by @OvesN in https://github.com/dotnet/msbuild/pull/13877 * Stable branding for 18.8 release by @OvesN in https://github.com/dotnet/msbuild/pull/13883 * Bump main to 18.9.0 after vs18.8 snap by @OvesN in https://github.com/dotnet/msbuild/pull/13880 * Avoid checkout in insertion pipeline by @rainersigwald in https://github.com/dotnet/msbuild/pull/13887 * Report actual launch path in MSB4216 for Runtime="NET" task host by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13889 * Migrate Tlblmp and AxImp to Multithreaded Execution by @AlesProkop in https://github.com/dotnet/msbuild/pull/13708 * Replace ErrorUtilities assertion methods with Assumed API and BCL throw helpers by @DustinCampbell in https://github.com/dotnet/msbuild/pull/13790 * Fix CLR_E_SHIM_RUNTIMELOAD in RAR's IMetaDataDispenser activation by @JeremyKuhne in https://github.com/dotnet/msbuild/pull/13899 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13905 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13907 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13910 * [vs17.14] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13908 * [vs18.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13906 * Fix ToolTask output loss: increase EOF pipe timeout from 2s to 30s by @huulinhnguyen-dev in https://github.com/dotnet/msbuild/pull/13767 * Improve symlink cycle condition by @GangWang01 in https://github.com/dotnet/msbuild/pull/13901 * [vs18.6] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13904 * Add flaky-test detection and auto-fix agentic workflows by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13915 * Quote --ignore-exit-code values so the quarantine pipeline does not shell-split on Unix by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13918 * Fix flaky-test detector PR-evidence loss and raise scan limits by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13919 * Tighten the pr review agent by @JanKrivanek in https://github.com/dotnet/msbuild/pull/13921 * Add environment variables for governance detection by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13920 * Change IsPackable to true and add IsShipping flag by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13924 * [vs18.7] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13911 * Make flaky detector verify recurrence postdates the fix before commenting by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13930 * Fix AbsolutePath.GetCanonicalForm process state leak on Windows by @OvesN in https://github.com/dotnet/msbuild/pull/13788 * Fix flaky detector: unblock dnceng feed, fail fast, and defer quarantine to a second run by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13936 * Update documentation for ImplicitUsings element by @drewnoakes in https://github.com/dotnet/msbuild/pull/13900 * [vs18.6] Point OptProf bootstrapper at rel/stable instead of int.main by @AlesProkop in https://github.com/dotnet/msbuild/pull/13923 * Add CS8618 suppressor for required MSBuild task properties by @AArnott in https://github.com/dotnet/msbuild/pull/13926 * Tighten NodeLaunchData.EnvironmentOverrides nullability to IDictionary<string, string?>? by @OvesN with @Copilot in https://github.com/dotnet/msbuild/pull/13815 * Fix ToolTask EOF wait to be STA-safe via CountdownEvent (MSB4018 in AspNetCompiler) by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/13917 * [automated] Merge branch 'vs18.6' => 'vs18.7' by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/13941 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 14192258 by @dotnet-bot in https://github.com/dotnet/msbuild/pull/13849 * Bumping to 10.0.8 runtime packages by @OvesN in https://github.com/dotnet/msbuild/pull/13898 * Flaky-test workflow: reassure on empty PR list + drop local reproduction (quarantine-first) by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13938 * [Flaky Test] Un-quarantine 5 consistently-green tests by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/13952 * Flaky-test detector: open PRs ready-for-review; drop newly-filed-issues section from PR body by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13958 * [Flaky Test] Quarantine 4 flaky tests by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/13937 * Flaky-test: fix duplicate-issue bug by switching dedup key to a visible code-block key by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13963 * CsWin32 follow-up: WindowsNative + VS Setup Configuration + remaining hand-rolled interop by @JeremyKuhne in https://github.com/dotnet/msbuild/pull/13872 * Add the reviewer release skill checking if the Learn article Change waves is updated by @GangWang01 in https://github.com/dotnet/msbuild/pull/13840 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13977 ... (truncated) Commits viewable in [compare view](https://github.com/dotnet/msbuild/compare/v18.8.2...v18.10.1). </details> Updated [Microsoft.Build.Utilities.Core](https://github.com/dotnet/msbuild) from 18.8.2 to 18.10.1. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Build.Utilities.Core's releases](https://github.com/dotnet/msbuild/releases)._ ## 18.10.1 ## What's Changed * [vs16.11] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13103 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13796 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13902 * [vs17.11] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13903 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13909 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13986 * Add vs18.9 to merge-flow config; retire vs18.3 by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14214 * Bump labeler-cache-retention to use issue-labeler v2.1.0 by @jeffhandley in https://github.com/dotnet/msbuild/pull/14171 * Bump main to 18.10.0 after vs18.9 snap by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14216 * Improve release skill: Phase 2 DARC rules, VMR backflow, deterministic baseline by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14220 * Determinize release: hardcode OptProf baseline + Phase 3.2 baseline resolver by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14222 * Serialize BuildRequestConfiguration.RequestedTargets to fix solution metaproject MSB4057 in parallel builds by @ViktorHofer in https://github.com/dotnet/msbuild/pull/14223 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14203 * Core support for AbsolutePath/FileInfo/DirectoryInfo and ITaskItem<T> as task parameters by @baronfel in https://github.com/dotnet/msbuild/pull/13971 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14206 * Fix existence cache kind poisoning by @AlesProkop in https://github.com/dotnet/msbuild/pull/14249 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14226 * Don't disable the MSBuild server for /mt builds when node reuse is off by @AR-May in https://github.com/dotnet/msbuild/pull/14248 * Enhance expert reviewer guidelines with additional checks. by @AR-May in https://github.com/dotnet/msbuild/pull/14255 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14253 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14268 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14267 * Bump github/gh-aw-actions/setup from 0.81.6 to 0.82.2 by @dependabot[bot] in https://github.com/dotnet/msbuild/pull/14266 * Avoid boxing the struct enumerator in PropertyDictionary<T>.GetEnumerator() by @nareshjo in https://github.com/dotnet/msbuild/pull/14272 * Refresh copy marker when implementation output changes by @AlesProkop in https://github.com/dotnet/msbuild/pull/14231 * Send task-host build process environment as delta by @OvesN in https://github.com/dotnet/msbuild/pull/14126 * Add regression coverage for metadata newline preservation by @VolPlita in https://github.com/dotnet/msbuild/pull/14261 * Fix EmbedInBinlog items with relative paths from child projects by @huulinhnguyen-dev in https://github.com/dotnet/msbuild/pull/13990 * Stop requiring VersionPrefix updates in servicing - insert prerelease versions to VS by @ViktorHofer in https://github.com/dotnet/msbuild/pull/14277 * Fix WriteLinesToFile rewriting unchanged file when custom encoding is used by @huulinhnguyen-dev in https://github.com/dotnet/msbuild/pull/14146 * Enable trim/AOT analyzers for Microsoft.Build and clean up annotations by @JeremyKuhne in https://github.com/dotnet/msbuild/pull/14064 * [automated] Merge branch 'vs18.9' => 'main' by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/14291 * Fix MicroBuild plugin feed URL to use allowed pkgs.dev.azure.com format by @AlesProkop in https://github.com/dotnet/msbuild/pull/14295 * Pass ExcludeRestorePackageImports during restore to avoid redundant evaluations by @ViktorHofer with @Copilot in https://github.com/dotnet/msbuild/pull/14274 * [vs18.7] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13988 * Adopt Clever Test Selection (CTS) as parallel, non-blocking PR pipeline by @jankratochvilcz in https://github.com/dotnet/msbuild/pull/14212 * Harden exceptions when connecting to server by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14292 * Update MicrosoftBuildVersion in analyzer template by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/13886 * Fix MSBuild Server client dropping build result under WaitAny race (#14172) by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14251 * Partially revert #13660: remove NuGet RestoreTask transient TaskHost workaround by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14297 * Disable daily AI credits guardrail for Expert Code Review workflow by @JanProvaznik with @Copilot in https://github.com/dotnet/msbuild/pull/14314 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 14614733 by @dotnet-bot in https://github.com/dotnet/msbuild/pull/14246 * Add opt-in partial (stop-after-pass) project evaluation by @ViktorHofer in https://github.com/dotnet/msbuild/pull/14290 * Use partial evaluation for -getProperty/-getItem without a target by @ViktorHofer in https://github.com/dotnet/msbuild/pull/14296 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14324 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14333 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14330 * Bump github/gh-aw-actions/setup from 0.82.2 to 0.82.8 by @dependabot[bot] in https://github.com/dotnet/msbuild/pull/14328 * Restrict partial evaluation to ProjectInstance by @ViktorHofer in https://github.com/dotnet/msbuild/pull/14340 ... (truncated) ## 18.9.6 ## What's Changed * [vs18.6] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13793 * [vs18.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13859 * [vs18.6] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13858 * [vs18.7] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13863 * CsWin32 follow-up: CLR metadata + TypeLib interop migration by @JeremyKuhne in https://github.com/dotnet/msbuild/pull/13853 * Update vmr-sb-validation.yml for Azure Pipelines by @meghnave in https://github.com/dotnet/msbuild/pull/13871 * Test: keep shell alive 15s in ToolTaskCanChangeCanonicalErrorFormat (#13734) by @jankratochvilcz in https://github.com/dotnet/msbuild/pull/13878 * Add vs18.8 to merge-flow config by @OvesN in https://github.com/dotnet/msbuild/pull/13877 * Stable branding for 18.8 release by @OvesN in https://github.com/dotnet/msbuild/pull/13883 * Bump main to 18.9.0 after vs18.8 snap by @OvesN in https://github.com/dotnet/msbuild/pull/13880 * Avoid checkout in insertion pipeline by @rainersigwald in https://github.com/dotnet/msbuild/pull/13887 * Report actual launch path in MSB4216 for Runtime="NET" task host by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13889 * Migrate Tlblmp and AxImp to Multithreaded Execution by @AlesProkop in https://github.com/dotnet/msbuild/pull/13708 * Replace ErrorUtilities assertion methods with Assumed API and BCL throw helpers by @DustinCampbell in https://github.com/dotnet/msbuild/pull/13790 * Fix CLR_E_SHIM_RUNTIMELOAD in RAR's IMetaDataDispenser activation by @JeremyKuhne in https://github.com/dotnet/msbuild/pull/13899 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13905 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13907 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13910 * [vs17.14] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13908 * [vs18.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13906 * Fix ToolTask output loss: increase EOF pipe timeout from 2s to 30s by @huulinhnguyen-dev in https://github.com/dotnet/msbuild/pull/13767 * Improve symlink cycle condition by @GangWang01 in https://github.com/dotnet/msbuild/pull/13901 * [vs18.6] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13904 * Add flaky-test detection and auto-fix agentic workflows by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13915 * Quote --ignore-exit-code values so the quarantine pipeline does not shell-split on Unix by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13918 * Fix flaky-test detector PR-evidence loss and raise scan limits by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13919 * Tighten the pr review agent by @JanKrivanek in https://github.com/dotnet/msbuild/pull/13921 * Add environment variables for governance detection by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13920 * Change IsPackable to true and add IsShipping flag by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13924 * [vs18.7] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13911 * Make flaky detector verify recurrence postdates the fix before commenting by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13930 * Fix AbsolutePath.GetCanonicalForm process state leak on Windows by @OvesN in https://github.com/dotnet/msbuild/pull/13788 * Fix flaky detector: unblock dnceng feed, fail fast, and defer quarantine to a second run by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13936 * Update documentation for ImplicitUsings element by @drewnoakes in https://github.com/dotnet/msbuild/pull/13900 * [vs18.6] Point OptProf bootstrapper at rel/stable instead of int.main by @AlesProkop in https://github.com/dotnet/msbuild/pull/13923 * Add CS8618 suppressor for required MSBuild task properties by @AArnott in https://github.com/dotnet/msbuild/pull/13926 * Tighten NodeLaunchData.EnvironmentOverrides nullability to IDictionary<string, string?>? by @OvesN with @Copilot in https://github.com/dotnet/msbuild/pull/13815 * Fix ToolTask EOF wait to be STA-safe via CountdownEvent (MSB4018 in AspNetCompiler) by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/13917 * [automated] Merge branch 'vs18.6' => 'vs18.7' by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/13941 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 14192258 by @dotnet-bot in https://github.com/dotnet/msbuild/pull/13849 * Bumping to 10.0.8 runtime packages by @OvesN in https://github.com/dotnet/msbuild/pull/13898 * Flaky-test workflow: reassure on empty PR list + drop local reproduction (quarantine-first) by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13938 * [Flaky Test] Un-quarantine 5 consistently-green tests by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/13952 * Flaky-test detector: open PRs ready-for-review; drop newly-filed-issues section from PR body by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13958 * [Flaky Test] Quarantine 4 flaky tests by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/13937 * Flaky-test: fix duplicate-issue bug by switching dedup key to a visible code-block key by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13963 * CsWin32 follow-up: WindowsNative + VS Setup Configuration + remaining hand-rolled interop by @JeremyKuhne in https://github.com/dotnet/msbuild/pull/13872 * Add the reviewer release skill checking if the Learn article Change waves is updated by @GangWang01 in https://github.com/dotnet/msbuild/pull/13840 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13977 ... (truncated) Commits viewable in [compare view](https://github.com/dotnet/msbuild/compare/v18.8.2...v18.10.1). </details> Updated [Microsoft.Extensions.Configuration](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.12. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.Configuration's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Extensions.Configuration.Binder](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.12. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.Configuration.Binder's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Extensions.Configuration.Json](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.12. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.Configuration.Json's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Extensions.DependencyInjection](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.12. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.DependencyInjection's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Extensions.FileSystemGlobbing](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.12. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.FileSystemGlobbing's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Extensions.Hosting](https://github.com/dotnet/dotnet) from 10.0.7 to 10.0.12. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.Hosting's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Extensions.Http](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.12. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.Http's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Extensions.Logging](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.12. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.Logging's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.NET.Sdk.WebAssembly.Pack](https://github.com/dotnet/dotnet) from 10.0.8 to 10.0.12. <details> <summary>Release notes</summary> _Sourced from [Microsoft.NET.Sdk.WebAssembly.Pack's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 18.7.0 to 18.10.0. <details> <summary>Release notes</summary> _Sourced from [Microsoft.NET.Test.Sdk's releases](https://github.com/microsoft/vstest/releases)._ ## 18.10.0 ## What's Changed * Drop Mono fallback, run .NET Framework tests on Windows only by @nohwnd in https://github.com/microsoft/vstest/pull/16158 * Run Microsoft.Testing.Platform test apps under `vstest.console` and datacollector by @nohwnd in https://github.com/microsoft/vstest/pull/16201 * Fix test output eaten by MSBuild terminal logger by @nohwnd in https://github.com/microsoft/vstest/pull/16223 * Remove the experimental test session feature by @nohwnd in https://github.com/microsoft/vstest/pull/16231 * Skip a single bad executor instead of failing all executor loading by @nohwnd in https://github.com/microsoft/vstest/pull/16239 * Assert apartment state instead of using Clipboard in UI tests by @nohwnd in https://github.com/microsoft/vstest/pull/16270 * Surface test host crashes during protocol negotiation by @nohwnd in https://github.com/microsoft/vstest/pull/16285 * Pass the inferred target platform to the host in run settings by @nohwnd in https://github.com/microsoft/vstest/pull/16271 * Report raw invalid IsTargetPlatformInferred value, cover host x64 forcing by @nohwnd in https://github.com/microsoft/vstest/pull/16295 * Disable the MTP testhost by default (#16337) by @nohwnd in https://github.com/microsoft/vstest/pull/16341 **Full Changelog**: https://github.com/microsoft/vstest/compare/v18.9.0...v18.10.0 ## 18.9.0 ## What's Changed * Fix tilde/exclamation characters corrupted in TerminalLogger test output by @nohwnd in https://github.com/microsoft/vstest/pull/16046 * Make TranslationLayer Native AOT-compatible by @drewnoakes in https://github.com/microsoft/vstest/pull/16045 * Guard GenerateProgramFile target against UseWinUI/UseUwpTools evaluation order by @nohwnd in https://github.com/microsoft/vstest/pull/16072 * Add RequestingAssembly to AssemblyResolveEventArgs for binary compat by @nohwnd in https://github.com/microsoft/vstest/pull/16076 * Remove stale Microsoft.Extensions.FileSystemGlobbing binding redirect from testhost.x86 and datacollector by @Evangelink in https://github.com/microsoft/vstest/pull/16082 * Fix TRX attachment paths when LogFileName contains a subdirectory by @nohwnd in https://github.com/microsoft/vstest/pull/15791 * Fix missing dumps for .NET Framework child processes in NetClientHangDumper by @nohwnd in https://github.com/microsoft/vstest/pull/16098 * Fix data collection channels to use negotiated protocol version instead of V1 by @nohwnd in https://github.com/microsoft/vstest/pull/16096 * Fix race condition in BlameCollector: skip hang dump when testhost hasn't launched yet by @nohwnd in https://github.com/microsoft/vstest/pull/16065 * Replace TestSDKAutoGeneratedCode with ExcludeFromCodeCoverage in auto-generated Program files by @nohwnd in https://github.com/microsoft/vstest/pull/16101 * Include testhost process path in crash error messages by @nohwnd in https://github.com/microsoft/vstest/pull/16108 * Fix DataDriven test results being double-counted in TRX logger totals by @nohwnd in https://github.com/microsoft/vstest/pull/15766 * Fix datacollector crash visibility: replace Assert with throwable exceptions by @nohwnd in https://github.com/microsoft/vstest/pull/16048 * Add TreatErrorMessagesAsWarnings parameter to TRX logger by @nohwnd in https://github.com/microsoft/vstest/pull/16106 * Wait for testhost stderr to drain before reading its crash output by @nohwnd in https://github.com/microsoft/vstest/pull/16128 * Handle runtimeconfig.dev.json without additionalProbingPaths by @tmat in https://github.com/microsoft/vstest/pull/16166 * Suggest Microsoft.NET.Test.Sdk when a managed test project brings no testhost by @nohwnd in https://github.com/microsoft/vstest/pull/16169 * Fix x86 testhost loading mismatched x64 hostfxr (0x800700C1) when run via vstest.console.exe directly (#16151) by @azat-msft in https://github.com/microsoft/vstest/pull/16156 * Preserve the real exception (type + stack trace) when a test run aborts in BaseRunTests by @nohwnd in https://github.com/microsoft/vstest/pull/16167 ## New Contributors * @drewnoakes made their first contribution in https://github.com/microsoft/vstest/pull/16045 **Full Changelog**: https://github.com/microsoft/vstest/compare/v18.8.0...v18.9.0 ## 18.8.1 ## What's Changed * Fix protocol negotiation timeout when STJ reflection is disabled (18.8.1) by @nohwnd in https://github.com/microsoft/vstest/pull/16281 **Full Changelog**: https://github.com/microsoft/vstest/compare/v18.8.0...v18.8.1 ## 18.8.0 ## What's Changed * Migrate from Newtonsoft.Json to System.Text.Json / Jsonite (merge to main) by @nohwnd in https://github.com/microsoft/vstest/pull/15687 - For more detail refer to https://devblogs.microsoft.com/dotnet/vs-test-is-removing-its-newtonsoft-json-dependency/ * Create source-only filter package by @Youssef1313 in https://github.com/microsoft/vstest/pull/15638 * Add ARM64 msdia140.dll support to test platform packages by @nohwnd in https://github.com/microsoft/vstest/pull/15692 * Fix mutex cleanup crash on macOS/Linux by @nohwnd in https://github.com/microsoft/vstest/pull/15684 * Restrict artifact temp directory permissions on Unix by @nohwnd in https://github.com/microsoft/vstest/pull/15729 * Add support for filtering uncategorized tests with TestCategory=None by @Evangelink in https://github.com/microsoft/vstest/pull/15727 * Fix SCI binding failure in DTA hosts (main) by @nohwnd in https://github.com/microsoft/vstest/pull/15724 * Fix HTML logger parallel file collision by @nohwnd in https://github.com/microsoft/vstest/pull/15435 * Improve error message when testhost cannot be found by @nohwnd in https://github.com/microsoft/vstest/pull/16053 * Fix HTML logger exception on invalid XML chars in test display names by @nohwnd in https://github.com/microsoft/vstest/pull/16051 **Full Changelog**: https://github.com/microsoft/vstest/compare/v18.7.0...v18.8.0 Commits viewable in [compare view](https://github.com/microsoft/vstest/compare/v18.7.0...v18.10.0). </details> Updated [Microsoft.PowerPlatform.ResourceStack](https://github.com/azure/resourcestack) from 7.0.0.2080 to 7.0.0.2118. <details> <summary>Release notes</summary> _Sourced from [Microsoft.PowerPlatform.ResourceStack's releases](https://github.com/azure/resourcestack/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/azure/resourcestack/commits). </details> Updated [Microsoft.PowerPlatform.ResourceStack](https://github.com/azure/resourcestack) from 7.0.0.2080 to 7.0.0.2129. <details> <summary>Release notes</summary> _Sourced from [Microsoft.PowerPlatform.ResourceStack's releases](https://github.com/azure/resourcestack/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/azure/resourcestack/commits). </details> Updated [Microsoft.VisualStudio.Threading](https://github.com/microsoft/vs-threading) from 17.12.19 to 18.7.23. <details> <summary>Release notes</summary> _Sourced from [Microsoft.VisualStudio.Threading's releases](https://github.com/microsoft/vs-threadin…
Tip
This is a huge pull request made up of mostly mechanical changes. I recommend reviewing commit-by-commit to
keep your sanity! FYI that new internal APIs are in 245052f and 0eea982. Copilot will likely decline to review this because so many files are touched.
This PR introduces an internal
Assumedassertion API and systematically replaces legacyErrorUtilitiesassertion/throw methods throughout the codebase with either
Assumedmethods or BCL throw helpers, as appropriate.New infrastructure
Assumedstatic class (src/Framework/Assumed.cs): Provides assertion methods (Null,NotNull,NotNullOrEmpty,True,False,Equal,NotEqual, comparison operators, range checks, andUnreachable) thatthrow
InternalErrorExceptionon failure. Each method has two overloads: one withCallerArgumentExpressionforautomatic error messages, and one with a conditional interpolated string handler to avoid formatting allocations on
the success path.
InternalErrorhelper (src/Framework/InternalError.cs): Centralized throw sites includingThrow<T>overloads returning
Tfor use in expression contexts.ArgumentException.ThrowIfNullOrEmpty<T>(IReadOnlyCollection<T>)extension method for collection emptinesschecks.
ErrorUtilities methods replaced
VerifyThrowInternalNullAssumed.NotNullVerifyThrowInternalLength(string)Assumed.NotNullOrEmptyVerifyThrowInternalLength<T>(collection)Assumed.NotNullOrEmpty<T>VerifyThrow(bool, string)Assumed.True/Assumed.False/ more specificAssumedmethodsVerifyThrowInternalErrorUnreachableAssumed.TrueThrowInternalErrorUnreachableAssumed.Unreachable/Assumed.Unreachable<T>ThrowInternalErrorInternalError.ThrowEscapeHatches.ThrowInternalErrorInternalError.ThrowVerifyThrowArgumentNullArgumentNullException.ThrowIfNullVerifyThrowArgumentLength(string)ArgumentException.ThrowIfNullOrEmptyVerifyThrowArgumentLength<T>(collection)ArgumentException.ThrowIfNullOrEmpty<T>VerifyThrowArgumentOutOfRangeArgumentOutOfRangeException.ThrowIf*VerifyThrowObjectDisposedObjectDisposedException.ThrowIfAll replaced methods have been removed from
ErrorUtilities. Methods that still have callers (e.g.,VerifyThrowArgument,VerifyThrowInvalidOperation) are preserved.Refinements during migration
VerifyThrow→ specificAssumedmethods: Rather than blindly mapping toAssumed.True, conditions wereanalyzed and mapped to the most descriptive method (
NotNull,Zero,NotNullOrEmpty,Equal,Positive,PositiveOrZero,InRange, etc.).VerifyThrowInternalNullcalls had silently wrong parameter names(e.g.,
"child"for animportedProjectvariable). These are now either auto-captured viaCallerArgumentExpressionor explicitly corrected.InternalError.Throw<T>eliminates throw-then-return-default patterns, enabling conversion ofmulti-statement method bodies to expression-bodied members.
BuildRequestEngine.IssueConfigurationRequestwhere a null check came after amember access.
VerifyCollectionCopyToArgumentsrefactored: parameter type changed fromT[]toICollection<T>,reordered for
CallerArgumentExpression, and resource string name typo fixed.Scope
src/Build,src/Framework,src/Tasks,src/Utilities, andsrc/Shared