[automated] Merge branch 'release/9.0.1xx' => 'release/9.0.3xx'#55333
Open
github-actions[bot] wants to merge 108 commits into
Open
[automated] Merge branch 'release/9.0.1xx' => 'release/9.0.3xx'#55333github-actions[bot] wants to merge 108 commits into
github-actions[bot] wants to merge 108 commits into
Conversation
backport of https://dev.azure.com/dnceng/internal/_git/dotnet-sdk/pullrequest/60602 for 8.0 with 8.0 code changes
Restrict workloads pipe access 8.0 backport of https://dev.azure.com/dnceng/internal/_git/dotnet-sdk/pullrequest/60602 for 8.0 with 8.0 code changes ---- #### AI description (iteration 1) #### PR Classification Security enhancement to restrict IPC pipe access and validate file paths in the Windows workload installer. #### PR Summary This PR strengthens security in the Windows installer by restricting named pipe access to specific users and adding path validation to prevent directory traversal attacks. - `WindowsUtils.cs`: Added methods to retrieve process user SIDs, create restricted pipe security (granting access only to the parent process user instead of all authenticated users), and validate log file paths and package paths against directory traversal attacks - `NetSdkMsiInstallerServer.cs`: Updated pipe security configuration to use parent process user SID instead of granting access to all authenticated users - `MsiInstallerBase.cs`: Added log file path validation before creating MSI logs and package path validation before installing MSI packages - `MsiPackageCache.cs`: Added validation for package ID, version, and manifest path to prevent path traversal when caching payloads - `WindowsInstallerTests.cs`: Added comprehensive unit tests for pipe security, path validation, and directory traversal attack prevention <!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot -->
…udit in tests The unofficial CI pipeline (1472) does not have the AzureDevOps-Artifact-Feeds-Pats variable group linked, causing $(dn-bot-dnceng-artifact-feeds-rw) to resolve to a literal string instead of a PAT. This results in 401 Unauthorized errors when Helix test machines try to access internal NuGet feeds. Use $(System.AccessToken) instead, which is always available in any AzDO pipeline. The build service identity already has read access to the internal feeds. Additionally, disable NuGet audit (NuGetAudit=false) in two tests that intentionally reference old vulnerable packages (System.Net.Http 4.3.0, System.Text.RegularExpressions 4.3.0, Microsoft.NETCore.App 2.1.0) for conflict resolution testing. The NU1903 vulnerability warnings were causing assertion failures. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…3 repositories This pull request updates the following dependencies [marker]: <> (Begin:Coherency Updates) ## Coherency Updates The following updates ensure that dependencies with a *CoherentParentDependency* attribute were produced in a build used as input to the parent dependency's build. See [Dependency Description Format](https://github.com/dotnet/arcade/blob/master/Documentation/DependencyDescriptionFormat.md#dependency-description-overview) [DependencyUpdate]: <> (Begin) - **Coherency Updates**: - **Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100**: from 8.0.27 to 8.0.28 (parent: Microsoft.NETCore.App.Runtime.win-x64) [DependencyUpdate]: <> (End) [marker]: <> (End:Coherency Updates) [marker]: <> (Begin:11ffd28b-eb51-469a-d3fb-08dca292067e) ## From https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - **Subscription**: [11ffd28b-eb51-469a-d3fb-08dca292067e](https://maestro.dot.net/subscriptions?search=11ffd28b-eb51-469a-d3fb-08dca292067e) - **Build**: [20260514.2](https://dev.azure.com/dnceng/internal/_build/results?buildId=2975598) ([314475](https://maestro.dot.net/channel/3880/azdo:dnceng:internal:dotnet-windowsdesktop/build/314475)) - **Date Produced**: May 15, 2026 6:39:55 AM UTC - **Commit**: [a2e8b8fd21f2fc18e5c0758c0584245e343ebeb7](https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop?_a=history&version=GCa2e8b8fd21f2fc18e5c0758c0584245e343ebeb7) - **Branch**: [refs/heads/internal/release/8.0](https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop?version=GBrefs/heads/internal/release/8.0) [DependencyUpdate]: <> (Begin) - **Dependency Updates**: - From [8.0.27 to 8.0.28][1] - Microsoft.WindowsDesktop.App.Ref - Microsoft.WindowsDesktop.App.Runtime.win-x64 - From [8.0.27-servicing.26230.1 to 8.0.28-servicing.26264.2][1] - VS.Redist.Common.WindowsDesktop.SharedFramework.x64.8.0 - VS.Redist.Common.WindowsDesktop.TargetingPack.x64.8.0 [1]: https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop/branches?baseVersion=GCf219383822edeeaf58b32c4808576cf4b159ba71&targetVersion=GCa2e8b8fd21f2fc18e5c0758c0584245e343ebeb7&_a=files [DependencyUpdate]: <> (End) [marker]: <> (End:11ffd28b-eb51-469a-d3fb-08dca292067e) [marker]: <> (Begin:82bc8158-ef88-4a27-3f7b-08dca299e604) ## From https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - **Subscription**: [82bc8158-ef88-4a27-3f7b-08dca299e604](https://maestro.dot.net/subscriptions?search=82bc8158-ef88-4a27-3f7b-08dca299e604) - **Build**: [20260514.13](https://dev.azure.com/dnceng/internal/_build/results?buildId=2975153) ([314438](https://maestro.dot.net/channel/3880/azdo:dnceng:internal:dotnet-runtime/build/314438)) - **Date Produced**: May 14, 2026 11:26:57 PM UTC - **Commit**: [46295af5828b062bbbf93a9cef50fd8cb9fbcb09](https://dev.azure.com/dnceng/internal/_git/dotnet-runtime?_a=history&version=GC46295af5828b062bbbf93a9cef50fd8cb9fbcb09) - **Branch**: [refs/heads/internal/release/8.0](https://dev.azure.com/dncen...
…dnceng/internal/dotnet-windowsdesktop This pull request updates the following dependencies [marker]: <> (Begin:Coherency Updates) ## Coherency Updates The following updates ensure that dependencies with a *CoherentParentDependency* attribute were produced in a build used as input to the parent dependency's build. See [Dependency Description Format](https://github.com/dotnet/arcade/blob/master/Documentation/DependencyDescriptionFormat.md#dependency-description-overview) [DependencyUpdate]: <> (Begin) - **Coherency Updates**: - **Microsoft.NET.Sdk.WindowsDesktop**: from 8.0.28-servicing.26264.9 to 8.0.28-servicing.26265.4 (parent: Microsoft.WindowsDesktop.App.Ref) [DependencyUpdate]: <> (End) [marker]: <> (End:Coherency Updates) [marker]: <> (Begin:11ffd28b-eb51-469a-d3fb-08dca292067e) ## From https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - **Subscription**: [11ffd28b-eb51-469a-d3fb-08dca292067e](https://maestro.dot.net/subscriptions?search=11ffd28b-eb51-469a-d3fb-08dca292067e) - **Build**: [20260518.2](https://dev.azure.com/dnceng/internal/_build/results?buildId=2978265) ([314896](https://maestro.dot.net/channel/3880/azdo:dnceng:internal:dotnet-windowsdesktop/build/314896)) - **Date Produced**: May 19, 2026 12:00:47 AM UTC - **Commit**: [ec791e700315d8dcaecb11a6a1850092afad1ca7](https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop?_a=history&version=GCec791e700315d8dcaecb11a6a1850092afad1ca7) - **Branch**: [refs/heads/internal/release/8.0](https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop?version=GBrefs/heads/internal/release/8.0) [DependencyUpdate]: <> (Begin) - **Dependency Updates**: - From [8.0.28 to 8.0.28][1] - Microsoft.WindowsDesktop.App.Ref - Microsoft.WindowsDesktop.App.Runtime.win-x64 - From [8.0.28-servicing.26264.2 to 8.0.28-servicing.26268.2][1] - VS.Redist.Common.WindowsDesktop.SharedFramework.x64.8.0 - VS.Redist.Common.WindowsDesktop.TargetingPack.x64.8.0 [1]: https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop/branches?baseVersion=GCa2e8b8fd21f2fc18e5c0758c0584245e343ebeb7&targetVersion=GCec791e700315d8dcaecb11a6a1850092afad1ca7&_a=files [DependencyUpdate]: <> (End) [marker]: <> (End:11ffd28b-eb51-469a-d3fb-08dca292067e)
…dnceng/internal/dotnet-aspnetcore This pull request updates the following dependencies [marker]: <> (Begin:1ab2aba6-b648-40a9-9fe8-08dca2920c50) ## From https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - **Subscription**: [1ab2aba6-b648-40a9-9fe8-08dca2920c50](https://maestro.dot.net/subscriptions?search=1ab2aba6-b648-40a9-9fe8-08dca2920c50) - **Build**: [20260519.13](https://dev.azure.com/dnceng/internal/_build/results?buildId=2979206) ([315073](https://maestro.dot.net/channel/3880/azdo:dnceng:internal:dotnet-aspnetcore/build/315073)) - **Date Produced**: May 19, 2026 11:13:23 PM UTC - **Commit**: [bb9eccba9080e07bce32c0bc27c3564c753a7cfe](https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore?_a=history&version=GCbb9eccba9080e07bce32c0bc27c3564c753a7cfe) - **Branch**: [refs/heads/internal/release/8.0](https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore?version=GBrefs/heads/internal/release/8.0) [DependencyUpdate]: <> (Begin) - **Dependency Updates**: - From [8.0.28-servicing.26268.3 to 8.0.28-servicing.26269.13][1] - dotnet-dev-certs - dotnet-user-jwts - dotnet-user-secrets - Microsoft.AspNetCore.Analyzers - Microsoft.AspNetCore.App.Ref.Internal - Microsoft.AspNetCore.Components.SdkAnalyzers - Microsoft.AspNetCore.DeveloperCertificates.XPlat - Microsoft.AspNetCore.Mvc.Analyzers - Microsoft.AspNetCore.Mvc.Api.Analyzers - VS.Redist.Common.AspNetCore.SharedFramework.x64.8.0 - From [8.0.28 to 8.0.28][1] - Microsoft.AspNetCore.App.Ref - Microsoft.AspNetCore.App.Runtime.win-x64 - Microsoft.AspNetCore.Authorization - Microsoft.AspNetCore.Components.Web - Microsoft.AspNetCore.TestHost - Microsoft.Extensions.FileProviders.Embedded - Microsoft.Extensions.ObjectPool - Microsoft.JSInterop [1]: https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore/branches?baseVersion=GC206e82da31a67bbe713cf7aac8d6f04de099a9f8&targetVersion=GCbb9eccba9080e07bce32c0bc27c3564c753a7cfe&_a=files [DependencyUpdate]: <> (End) [marker]: <> (End:1ab2aba6-b648-40a9-9fe8-08dca2920c50)
…dnceng/internal/dotnet-windowsdesktop This pull request updates the following dependencies [marker]: <> (Begin:Coherency Updates) ## Coherency Updates The following updates ensure that dependencies with a *CoherentParentDependency* attribute were produced in a build used as input to the parent dependency's build. See [Dependency Description Format](https://github.com/dotnet/arcade/blob/master/Documentation/DependencyDescriptionFormat.md#dependency-description-overview) [DependencyUpdate]: <> (Begin) - **Coherency Updates**: - **Microsoft.NET.Sdk.WindowsDesktop**: from 8.0.28-servicing.26265.4 to 8.0.28-servicing.26269.2 (parent: Microsoft.WindowsDesktop.App.Ref) [DependencyUpdate]: <> (End) [marker]: <> (End:Coherency Updates) [marker]: <> (Begin:11ffd28b-eb51-469a-d3fb-08dca292067e) ## From https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - **Subscription**: [11ffd28b-eb51-469a-d3fb-08dca292067e](https://maestro.dot.net/subscriptions?search=11ffd28b-eb51-469a-d3fb-08dca292067e) - **Build**: [20260519.1](https://dev.azure.com/dnceng/internal/_build/results?buildId=2979365) ([315092](https://maestro.dot.net/channel/3880/azdo:dnceng:internal:dotnet-windowsdesktop/build/315092)) - **Date Produced**: May 20, 2026 1:17:40 AM UTC - **Commit**: [432d0577ee8d6a36654d23a83182a0c7da27a69f](https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop?_a=history&version=GC432d0577ee8d6a36654d23a83182a0c7da27a69f) - **Branch**: [refs/heads/internal/release/8.0](https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop?version=GBrefs/heads/internal/release/8.0) [DependencyUpdate]: <> (Begin) - **Dependency Updates**: - From [8.0.28 to 8.0.28][1] - Microsoft.WindowsDesktop.App.Ref - Microsoft.WindowsDesktop.App.Runtime.win-x64 - From [8.0.28-servicing.26268.2 to 8.0.28-servicing.26269.1][1] - VS.Redist.Common.WindowsDesktop.SharedFramework.x64.8.0 - VS.Redist.Common.WindowsDesktop.TargetingPack.x64.8.0 [1]: https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop/branches?baseVersion=GCec791e700315d8dcaecb11a6a1850092afad1ca7&targetVersion=GC432d0577ee8d6a36654d23a83182a0c7da27a69f&_a=files [DependencyUpdate]: <> (End) [marker]: <> (End:11ffd28b-eb51-469a-d3fb-08dca292067e)
…de-rw-wif service connection ## Problem The VMR sync pipeline (`sdk-dotnet-dotnet-synchronization-internal`) has been silently failing to push commits to `dotnet-dotnet`'s `internal/release/9.0.1xx` branch since ~April 30, 2026. The sync step succeeds (creates local commits), but `darc vmr push` reports success without actually updating the remote branch. ## Root Cause The pipeline uses the `VmrSyncPipeline` service connection (SP App ID `6a305b75-9314-42bd-b669-9feb14f21d5a`) to mint an AzDO access token for the push. This SP does **not** have working write access to the `dotnet-dotnet` repo (which has restricted permissions where even Contributors are denied access). ## Fix Switch to `dnceng-build-rw-code-rw-wif` — the same service connection used by the **installer** repo's VMR sync on `internal/release/8.0.4xx`, which is proven to work for pushing to `dotnet-dotnet`. This change also adds explicit error handling for token acquisition (empty token, non-zero exit code) matching the installer's pattern. ## Evidence - Build 2981189: Sync created commits successfully, push logged `Pushed branch refs/heads/internal/release/9.0.1xx to remote origin` but the branch tip hasn't moved since April 30 (commit `14d5ddefede18b29eb0f2ea918c79861a5211177`) - The installer repo (`internal/release/8.0.4xx`) uses `dnceng-build-rw-code-rw-wif` with the same `darc vmr push` command and succeeds - Permission grants to the VmrSyncPipeline SP (ACEs, group membership) did not resolve the issue ---- #### AI description (iteration 1) #### PR Classification Infrastructure change to switch authentication method for VMR synchronization from a federated service connection to a workload identity federation (WIF) service connection. #### PR Summary Updates the VMR synchronization pipeline to use the `dnceng-build-rw-code-rw-wif` Azure service connection for minting Azure DevOps tokens, replacing the previous federated access token template approach. - `/eng/pipelines/templates/jobs/vmr-synchronization.yml`: Replaced the `get-federated-access-token.yml` template step with an `AzureCLI@2` task that directly acquires an AzDO access token using the new WIF service connection - `/eng/pipelines/templates/jobs/vmr-synchronization.yml`: Added error handling and validation logic to ensure the minted token is valid before proceeding with VMR push operations <!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot -->
…dnceng/internal/dotnet-aspnetcore This pull request updates the following dependencies [marker]: <> (Begin:7c429c14-b12b-40f6-ae9e-395f98f369df) ## From https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - **Subscription**: [7c429c14-b12b-40f6-ae9e-395f98f369df](https://maestro.dot.net/subscriptions?search=7c429c14-b12b-40f6-ae9e-395f98f369df) - **Build**: [20260520.11](https://dev.azure.com/dnceng/internal/_build/results?buildId=2980599) ([315317](https://maestro.dot.net/channel/5128/azdo:dnceng:internal:dotnet-aspnetcore/build/315317)) - **Date Produced**: May 21, 2026 6:41:36 AM UTC - **Commit**: [3acfb497d6f5b4e0cd0f3749bfbddb61519ee271](https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore?_a=history&version=GC3acfb497d6f5b4e0cd0f3749bfbddb61519ee271) - **Branch**: [refs/heads/internal/release/9.0](https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore?version=GBrefs/heads/internal/release/9.0) [DependencyUpdate]: <> (Begin) - **Dependency Updates**: - From [9.0.17-servicing.26269.7 to 9.0.17-servicing.26270.11][1] - dotnet-dev-certs - dotnet-user-jwts - dotnet-user-secrets - Microsoft.AspNetCore.Analyzers - Microsoft.AspNetCore.App.Ref.Internal - Microsoft.AspNetCore.Components.SdkAnalyzers - Microsoft.AspNetCore.DeveloperCertificates.XPlat - Microsoft.AspNetCore.Mvc.Analyzers - Microsoft.AspNetCore.Mvc.Api.Analyzers - VS.Redist.Common.AspNetCore.SharedFramework.x64.9.0 - Microsoft.SourceBuild.Intermediate.aspnetcore - From [9.0.17 to 9.0.17][1] - Microsoft.AspNetCore.App.Ref - Microsoft.AspNetCore.App.Runtime.win-x64 - Microsoft.AspNetCore.Authorization - Microsoft.AspNetCore.Components.Web - Microsoft.AspNetCore.TestHost - Microsoft.Extensions.FileProviders.Embedded - Microsoft.Extensions.ObjectPool - Microsoft.JSInterop [1]: https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore/branches?baseVersion=GC5edf41b9c09952f18e404ad38e25670991c1b513&targetVersion=GC3acfb497d6f5b4e0cd0f3749bfbddb61519ee271&_a=files [DependencyUpdate]: <> (End) [marker]: <> (End:7c429c14-b12b-40f6-ae9e-395f98f369df)
…uild 20260524.2 On relative base path root Microsoft.SourceBuild.Intermediate.roslyn-analyzers , Microsoft.CodeAnalysis.PublicApiAnalyzers From Version 3.11.0-beta1.26255.1 -> To Version 3.11.0-beta1.26274.2 Microsoft.CodeAnalysis.NetAnalyzers From Version 8.0.0-preview.26255.1 -> To Version 8.0.0-preview.26274.2
…527.2 On relative base path root Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.26224.3 -> To Version 8.0.0-beta.26277.2
…527.2 On relative base path root Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.26224.3 -> To Version 8.0.0-beta.26277.2
…528.3 On relative base path root Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.26224.3 -> To Version 8.0.0-beta.26278.3
…528.3 On relative base path root Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.26224.3 -> To Version 8.0.0-beta.26278.3
…nals build 20260601.1 On relative base path root Microsoft.SourceBuild.Intermediate.source-build-externals From Version 8.0.0-alpha.1.26265.1 -> To Version 8.0.0-alpha.1.26301.1
…nals build 20260601.1 On relative base path root Microsoft.SourceBuild.Intermediate.source-build-externals From Version 8.0.0-alpha.1.26265.1 -> To Version 8.0.0-alpha.1.26301.1
…dnceng/internal/dotnet-aspnetcore This pull request updates the following dependencies [marker]: <> (Begin:7c429c14-b12b-40f6-ae9e-395f98f369df) ## From https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - **Subscription**: [7c429c14-b12b-40f6-ae9e-395f98f369df](https://maestro.dot.net/subscriptions?search=7c429c14-b12b-40f6-ae9e-395f98f369df) - **Build**: [20260619.8](https://dev.azure.com/dnceng/internal/_build/results?buildId=3004286) ([319500](https://maestro.dot.net/channel/5128/azdo:dnceng:internal:dotnet-aspnetcore/build/319500)) - **Date Produced**: June 20, 2026 12:08:52 AM UTC - **Commit**: [b8520b5b3b90f00b2b4b2899af36e9fd1a19f9d0](https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore?_a=history&version=GCb8520b5b3b90f00b2b4b2899af36e9fd1a19f9d0) - **Branch**: [refs/heads/internal/release/9.0](https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore?version=GBrefs/heads/internal/release/9.0) [DependencyUpdate]: <> (Begin) - **Dependency Updates**: - From [9.0.18-servicing.26317.10 to 9.0.18-servicing.26319.8][1] - dotnet-dev-certs - dotnet-user-jwts - dotnet-user-secrets - Microsoft.AspNetCore.Analyzers - Microsoft.AspNetCore.App.Ref.Internal - Microsoft.AspNetCore.Components.SdkAnalyzers - Microsoft.AspNetCore.DeveloperCertificates.XPlat - Microsoft.AspNetCore.Mvc.Analyzers - Microsoft.AspNetCore.Mvc.Api.Analyzers - VS.Redist.Common.AspNetCore.SharedFramework.x64.9.0 - Microsoft.SourceBuild.Intermediate.aspnetcore - From [9.0.18 to 9.0.18][1] - Microsoft.AspNetCore.App.Ref - Microsoft.AspNetCore.App.Runtime.win-x64 - Microsoft.AspNetCore.Authorization - Microsoft.AspNetCore.Components.Web - Microsoft.AspNetCore.TestHost - Microsoft.Extensions.FileProviders.Embedded - Microsoft.Extensions.ObjectPool - Microsoft.JSInterop [1]: https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore/branches?baseVersion=GCc2c420608bf0e24d7df00021f48a686c70928871&targetVersion=GCb8520b5b3b90f00b2b4b2899af36e9fd1a19f9d0&_a=files [DependencyUpdate]: <> (End) [marker]: <> (End:7c429c14-b12b-40f6-ae9e-395f98f369df)
…build 20260619.1 On relative base path root Microsoft.SourceBuild.Intermediate.source-build-assets From Version 9.0.0-alpha.1.26309.1 -> To Version 9.0.0-alpha.1.26319.1
…ser-jwts SDK diff Exclude Microsoft.Bcl.Cryptography.dll from dotnet-user-jwts SDK diff The MSFT SDK ships Microsoft.Bcl.Cryptography.dll with dotnet-user-jwts but the source-built SDK does not. SB rebuilds IdentityModel from older pinned source that lacks the transitive Microsoft.Bcl.Cryptography dependency added in the released package. On net10 the crypto types are in-box, so the facade is not needed. Exclude the file rather than baking it into MsftToSbSdkFiles.diff. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> ---- #### AI description (iteration 1) #### PR Classification Configuration update to exclude a transitive dependency from SDK content difference testing. #### PR Summary This pull request adds an exclusion rule for `Microsoft.Bcl.Cryptography.dll` in the dotnet-user-jwts tool to address a source build discrepancy where IdentityModel is rebuilt from older source that lacks this transitive dependency. - `SdkFileDiffExclusions.txt`: Added exclusion entry for `Microsoft.Bcl.Cryptography.dll` under the dotnet-user-jwts tool path to prevent false positives in SDK content diff tests <!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot -->
…otnet-aspnetcore build 20260623.11 On relative base path root dotnet-dev-certs , dotnet-user-jwts , dotnet-user-secrets , Microsoft.AspNetCore.Analyzers , Microsoft.AspNetCore.App.Ref.Internal , Microsoft.AspNetCore.Components.SdkAnalyzers , Microsoft.AspNetCore.DeveloperCertificates.XPlat , Microsoft.AspNetCore.Mvc.Analyzers , Microsoft.AspNetCore.Mvc.Api.Analyzers , VS.Redist.Common.AspNetCore.SharedFramework.x64.9.0 , Microsoft.SourceBuild.Intermediate.aspnetcore From Version 9.0.18-servicing.26319.8 -> To Version 9.0.18-servicing.26323.11 Microsoft.AspNetCore.App.Ref , Microsoft.AspNetCore.App.Runtime.win-x64 , Microsoft.AspNetCore.Authorization , Microsoft.AspNetCore.Components.Web , Microsoft.AspNetCore.TestHost , Microsoft.Extensions.FileProviders.Embedded , Microsoft.Extensions.ObjectPool , Microsoft.JSInterop From Version 9.0.18 -> To Version 9.0.18
…dnceng/internal/dotnet-aspnetcore This pull request updates the following dependencies [marker]: <> (Begin:7c429c14-b12b-40f6-ae9e-395f98f369df) ## From https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - **Subscription**: [7c429c14-b12b-40f6-ae9e-395f98f369df](https://maestro.dot.net/subscriptions?search=7c429c14-b12b-40f6-ae9e-395f98f369df) - **Build**: [20260623.11](https://dev.azure.com/dnceng/internal/_build/results?buildId=3006568) ([319920](https://maestro.dot.net/channel/5128/azdo:dnceng:internal:dotnet-aspnetcore/build/319920)) - **Date Produced**: June 23, 2026 9:18:26 PM UTC - **Commit**: [a95d6599f37762ec8394ba9ca01e8263b2e36a26](https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore?_a=history&version=GCa95d6599f37762ec8394ba9ca01e8263b2e36a26) - **Branch**: [refs/heads/internal/release/9.0](https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore?version=GBrefs/heads/internal/release/9.0) [DependencyUpdate]: <> (Begin) - **Dependency Updates**: - From [9.0.18-servicing.26319.8 to 9.0.18-servicing.26323.11][1] - dotnet-dev-certs - dotnet-user-jwts - dotnet-user-secrets - Microsoft.AspNetCore.Analyzers - Microsoft.AspNetCore.App.Ref.Internal - Microsoft.AspNetCore.Components.SdkAnalyzers - Microsoft.AspNetCore.DeveloperCertificates.XPlat - Microsoft.AspNetCore.Mvc.Analyzers - Microsoft.AspNetCore.Mvc.Api.Analyzers - VS.Redist.Common.AspNetCore.SharedFramework.x64.9.0 - Microsoft.SourceBuild.Intermediate.aspnetcore - From [9.0.18 to 9.0.18][1] - Microsoft.AspNetCore.App.Ref - Microsoft.AspNetCore.App.Runtime.win-x64 - Microsoft.AspNetCore.Authorization - Microsoft.AspNetCore.Components.Web - Microsoft.AspNetCore.TestHost - Microsoft.Extensions.FileProviders.Embedded - Microsoft.Extensions.ObjectPool - Microsoft.JSInterop [1]: https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore/branches?baseVersion=GCb8520b5b3b90f00b2b4b2899af36e9fd1a19f9d0&targetVersion=GCa95d6599f37762ec8394ba9ca01e8263b2e36a26&_a=files [DependencyUpdate]: <> (End) [marker]: <> (End:7c429c14-b12b-40f6-ae9e-395f98f369df)
Reset patterns: - global.json - NuGet.config - eng/Version.Details.xml - eng/Versions.props - eng/common/*
…d-420a-817b-da1c1d6e8bb4
# Conflicts: # eng/Versions.props # src/Cli/dotnet/commands/dotnet-workload/elevate/WorkloadElevateCommand.cs # src/Cli/dotnet/commands/dotnet-workload/elevate/WorkloadElevateCommandParser.cs # src/Tests/dotnet.Tests/WindowsInstallerTests.cs
…2-4d35-ab80-c7a554110e49
…-merge-9.0.1xx-2026-07-14-2127
Two bugs fixed: 1. Registry constructor chain did not forward retryDelayProvider parameter through intermediate constructors, so it was always null at the private constructor (defaulting to 1-second delay instead of the caller's value). 2. Tests used invalid digest 'sha256:testdigest1234' (not valid 64-char hex). The internal branch has digest validation that rejects non-hex digests, causing exceptions inside the retry loop that exhaust all retries and throw UnableToDownloadFromRepositoryException. Each test now uses a unique valid SHA-256 digest to also avoid parallel test interference via the shared ContentStore. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…als (#55306) Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
…als (#55320) Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Matt Thalman <mthalman@microsoft.com>
Reset patterns: - global.json - NuGet.config - eng/Version.Details.xml - eng/Versions.props - eng/common/*
Member
|
/tactics |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I detected changes in the release/9.0.1xx branch which have not been merged yet to release/9.0.3xx. I'm a robot and am configured to help you automatically keep release/9.0.3xx up to date, so I've opened this PR.
This PR merges commits made on release/9.0.1xx by the following committers:
Instructions for merging from UI
This PR will not be auto-merged. When pull request checks pass, complete this PR by creating a merge commit, not a squash or rebase commit.
If this repo does not allow creating merge commits from the GitHub UI, use command line instructions.
Instructions for merging via command line
Run these commands to merge this pull request from the command line.
or if you are using SSH
After PR checks are complete push the branch
Instructions for resolving conflicts
Instructions for updating this pull request
Contributors to this repo have permission update this pull request by pushing to the branch 'merge/release/9.0.1xx-to-release/9.0.3xx'. This can be done to resolve conflicts or make other changes to this pull request before it is merged.
The provided examples assume that the remote is named 'origin'. If you have a different remote name, please replace 'origin' with the name of your remote.
or if you are using SSH
Contact .NET Core Engineering (dotnet/dnceng) if you have questions or issues.
Also, if this PR was generated incorrectly, help us fix it. See https://github.com/dotnet/arcade/blob/main/.github/workflows/scripts/inter-branch-merge.ps1.
Tactics
Summary
This is an automated inter-branch merge PR bringing commits from
release/9.0.1xxintorelease/9.0.3xx. The substantive changes are in thedotnet publishcontainer support (Microsoft.NET.Build.Containers): (1) blob downloads were not verifying the SHA-256 digest of cached or downloaded content, meaning corrupted or stale cache entries could silently produce invalid container images; and (2) twoRegistryconstructor overloads were not forwarding theretryDelayProviderparameter to the underlying constructor, silently disabling retry-delay customization in those call paths. Both are correctness fixes appropriate for servicing. Additional changes consist of routine dependency version bumps and pipeline YAML updates pulled in by the merge.Customer Impact
Customers using
dotnet publishwith container publishing (--os,--arch, or container-related properties) on SDK 9.0.1xx could receive silently incorrect container images if their local blob cache contained corrupted or mismatched content, with no error surfaced. The retry-delay bug affects callers that supply a customretryDelayProvidervia theRegistry(string, ILogger, IRegistryAPI, RegistrySettings?, Func<TimeSpan>?)orRegistry(Uri, ILogger, IRegistryAPI, RegistrySettings?, Func<TimeSpan>?)constructors — in practice this is mostly internal/test code, but it could cause unexpected retry behavior in CI or constrained network scenarios. No known workaround for the digest-verification gap other than clearing the Containers cache manually.Regression?
Unknown — not enough information in the PR or linked issues to pinpoint the exact SDK version or PR that introduced the digest-verification gap or the retryDelayProvider forwarding omission. The digest verification improvement is a new correctness enforcement, not a rollback of a previous behavior.
Testing
test/Microsoft.NET.Build.Containers.UnitTests/RegistryTests.cs: two existing retry tests (DownloadBlobAsync_RetriesOnFailure,DownloadBlobAsync_ThrowsAfterMaxRetries) were updated to use real SHA-256 digests matching the test payloads, validating that the newCopyToAndVerifyAsyncdigest check passes on a successful download path and throws on mismatch.Risk
Low–Medium. The code changes are scoped to the container publishing component (
src/Containers/) and do not touch the core MSBuild build/restore paths. The digest-verification addition increases correctness with low regression risk, but it does introduce a new code path (CryptoStream+InvalidDigestException) that could surface failures for customers whose existing cache contains blobs written without proper content. TheTempPathchange (from a sharedContainers/Tempsubfolder to a uniqueCreateTempSubdirectory()) is a behavioural change in temp file placement that could surface permissions or cleanup issues in constrained environments. The retryDelayProvider fix is a one-line constructor forwarding correction with negligible risk. Overall risk is low-medium given the containment to a single feature area and the test coverage present.