Skip to content

Merge v7.7.0-rc1 release branch back into GitHub master - #28292

Open
Justin Chung (jshigetomi) wants to merge 7 commits into
masterfrom
770rc1ReleaseBranch
Open

Justin Chung (jshigetomi) wants to merge 7 commits into
masterfrom
770rc1ReleaseBranch

Conversation

@jshigetomi

@jshigetomi Justin Chung (jshigetomi) commented Oct 30, 2026 •

Copy link
Copy Markdown
Collaborator

PR Summary

This pull request prepares for the 7.7.0-rc.1 release by updating dependencies, improving build and packaging scripts, and documenting the changes. The most important updates are the move to .NET SDK 11.0.100-rc.3.26522.148, corresponding package version bumps across multiple projects, enhancements to pipeline reliability, and cleanup of test artifacts.

Dependency and SDK Updates:

  • Updated the .NET SDK version to 11.0.100-rc.3.26522.148 in global.json, DotnetRuntimeMetadata.json, and CHANGELOG/v7.7/dependencychanges.json, ensuring the codebase builds with the latest SDK. [1] [2] [3]
  • Bumped versions of numerous .NET package dependencies (such as System.Diagnostics.EventLog, System.ServiceProcess.ServiceController, System.Drawing.Common, etc.) to align with the new SDK across all relevant .csproj files. [1] [2] [3] [4] [5] [6] [7] [8]

Build and Pipeline Improvements:

  • Updated Azure Pipelines YAML templates to explicitly install Az.Storage 9.7.2 from the PowerShellGalleryMirror repository and ensure the module is imported before use, increasing build reliability. [1] [2] [3] [4] [5] [6]
  • Modified build.psm1 to remove intermediate build directories (obj) from test packages, preventing unnecessary files from being included.

Documentation and Changelog:

  • Added a comprehensive entry for version 7.7.0-rc.1 in CHANGELOG/preview.md, detailing general cmdlet updates, fixes, code cleanup, test improvements, and build/packaging changes.

Summary of Most Important Changes:

Dependency and SDK Updates

  • Updated .NET SDK to 11.0.100-rc.3.26522.148 and synchronized all related package dependencies across the codebase to ensure compatibility and leverage the latest features and fixes. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

Build and Pipeline Improvements

  • Enhanced pipeline scripts to install and import the correct version of Az.Storage from a mirrored repository, improving reliability and consistency in release and build info upload jobs. [1] [2] [3] [4] [5] [6]
  • Ensured test packages are clean by removing unnecessary intermediate build files before publishing.

Documentation

  • Documented all major changes, bug fixes, and improvements for the 7.7.0-rc.1 release in the changelog, providing clear visibility into what’s new and improved.

PR Context

PR Checklist

GitHubToAzDevOpsMirror-service-connection and others added 7 commits October 26, 2026 20:27
rc - Automated by PowerShell release prep

> **Note for reviewers:** This PR uses transitive dependency pinning (`transitive=true`, `versionLock=minor`). If this is the first time this pipeline has run on this branch, a large number of transitive dependencies may appear pinned. This is expected behavior.
…om test package

## Summary
- Remove generated `obj` directories after publishing PowerShell test tools.
- Preserve the published `bin` outputs required to run tests.
- Prevent SDK-generated build intermediates from being copied into test-package archives.

## Reason
The coordinated binaries build's Guardian CodeSign validation reported `CodeSign.MissingSigningCert` for `Microsoft.NET.Sdk.BlazorWeb.DotNetWatch.BrowserTools.Config.js` files inside the Windows test packages. Those files are generated by `Microsoft.NET.Sdk.Web` under test-tool `obj` directories and are not intended distribution artifacts.

This cleanup is in `Publish-PSTestTools`, so it covers both `New-TestPackage` and `Compress-TestContent` consumers.

Related build: https://dev.azure.com/mscodehub/PowerShellCore/_build/results?buildId=733320

## Validation
- `build.psm1` parses with no PowerShell parser errors.
- `git diff --check` passes.
- The change is limited to four lines in `build.psm1`.

----
#### AI description  (iteration 1)
#### PR Classification
Build process cleanup: removes unnecessary build intermediates from test packages.

#### PR Summary
This PR updates `build.psm1` to remove `obj` directories from the test folder during test tool publishing, ensuring build intermediates are excluded from test packages.
- `build.psm1`: Added logic to `Publish-PSTestTools` function to recursively find and delete `obj` directories under `$PSScriptRoot/test` before completing the test package publishing process.
<!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot -->
Co-authored-by: PwshBot <pwshbot@microsoft.com>
Co-authored-by: Justin Chung <124807742+jshigetomi@users.noreply.github.com>
Co-authored-by: Dongbo Wang <dongbow@microsoft.com>
…ure Linux 4

<!-- Anything that looks like this is a comment and can't be seen after the Pull Request is created. -->
# PR Summary
<!-- Summarize your PR between here and the checklist. -->
- Remove the x64 and ARM64 Azure Linux 4 mappings for the `preview` PMC channel.
- Preserve both Azure Linux 4 mappings for the `stable` PMC channel.
- Update the packaging tests to assert that preview releases do not map to Azure Linux 4 repositories.
## PR Context
<!-- Provide a little reasoning as to why this Pull Request helps and why you have opened it. -->
PowerShell preview and RC release tags select mappings with `channel: preview`. Azure Linux 4 should not receive preview PowerShell packages, so this removes only those two routing entries from `release/v7.7.0-rc.1`; stable publication remains unchanged.
Validation:
- `Invoke-Pester` for `test/packaging/packaging.tests.ps1`: passed 22 tests, failed 0.
- PowerShell parser check for the changed test file: passed with 0 errors.
- `git diff --check`: passed.
## PR Checklist
- [x] [PR has a meaningful title](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#pull-request---submission)
  - Use the present tense and imperative mood when describing your changes
- [x] [Summarized changes](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#pull-request---submission)
- [x] [Make sure all `.h`, `.cpp`, `.cs`, `.ps1` and `.psm1` files have the correct copyright header](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#pull-request---submission)
- [x] This PR is ready to merge. If this PR is a work in progress, please open this as a [Draft Pull Request and mark it as Ready to Review when it is ready to merge](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-a-pull-request/about-pull-requests#draft-pull-requests).
- **[Breaking changes](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#making-breaking-changes)**
  - [x] None
  - **OR**
  - [ ] [Experimental feature(s) needed](https://github.com/MicrosoftDocs/PowerShell-Docs/blob/main/reference/7.5/Microsoft.PowerShell.Core/About/about_Experimental_Features.md)
    - [ ] Experimental feature name(s):
- **User-facing changes**
  - [x] Not Applicable
  - **OR**
  - [ ] [Documentation needed](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#pull-request---submission)
    - [ ] Issue filed:
- **Testing - New and feature**
  - [ ] N/A or can only be tested interactively
  - **OR**
  - [x] [Make sure you've added a new test if existing tests do not effectively test the code changed](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#before-submitting)

----
#### AI description  (iteration 1)
#### PR Classification
Removal of unused/deprecated package mappings, a cleanup/configuration change to stop publishing preview packages to Azure Linux 4.

#### PR Summary
This PR removes the preview...
## Summary
- Pin both PSInfra blob publication tasks to `AzurePowerShell@5.280.3`.
- Pin the BuildInfo publication task to the same known-good task revision.

## Reason
Release build [733701](https://dev.azure.com/mscodehub/PowerShellCore/_build/results?buildId=733701) resolved `AzurePowerShell@5` to a newer task revision and all three jobs failed because `New-AzStorageContext` was unavailable. Successful release build [732392](https://dev.azure.com/mscodehub/PowerShellCore/_build/results?buildId=732392) used task revision `5.280.3`.

## Validation
- Verified exactly three task references were changed.
- `git diff --check` passed.

After merge, retry the `Make Blob Public` and `Upload BuildInfo.json` release stages; binaries and packages do not need rebuilding.

----
#### AI description  (iteration 1)
#### PR Classification
CI/build pipeline configuration change to pin a task version for release stability.

#### PR Summary
Pinned the `AzurePowerShell` task version from `@5` to `@5.280.3` across pipeline templates to ensure consistent and reproducible behavior for the v7.7.0-rc.1 publishing process.
- `release-MakeBlobPublic.yml`: Pinned two instances of the `AzurePowerShell` task to version `5.280.3`.
- `release-upload-buildinfo.yml`: Pinned the `AzurePowerShell` task to version `5.280.3`.
<!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot -->
## Summary
- Install `Az.Storage 9.7.2` from the internal `PowerShellGalleryMirror` Azure Artifacts feed in each storage-publication job.
- Explicitly import `Az.Storage 9.7.2` before invoking storage commands.
- Restore the tasks to `AzurePowerShell@5`; pinning task version `5.280.3` did not address the image dependency change.

## Reason
Release run [734624](https://dev.azure.com/mscodehub/PowerShellCore/_build/results?buildId=734624) confirmed the exact task pin was honored, but `New-AzStorageContext` remained unavailable on `PSMMS2019-Secure 29.0.0`. Successful run [732392](https://dev.azure.com/mscodehub/PowerShellCore/_build/results?buildId=732392) used image version `27.0.0`, which contained the storage module.

This change removes the release jobs' dependency on the floating image's module inventory.

## Validation
- Verified exactly three storage-publication jobs were updated.
- `git diff --check` passed.

After merge, rerun only `Make Blob Public` and `Upload BuildInfo.json`; binaries and packages do not need rebuilding.

----
#### AI description  (iteration 1)
#### PR Classification
CI/CD pipeline fix to ensure the correct `Az.Storage` module version is installed for release publishing tasks.

#### PR Summary
This PR updates release pipeline templates to explicitly install and import `Az.Storage` version 9.7.2 before executing Azure PowerShell tasks, replacing the pinned `AzurePowerShell@5.280.3` task version with `AzurePowerShell@5`.
- `release-MakeBlobPublic.yml`: Adds steps to register the PowerShell Gallery mirror repository and install `Az.Storage` 9.7.2 before blob copy tasks; imports the module explicitly in inline scripts.
- `release-upload-buildinfo.yml`: Adds similar module installation step before uploading build JSON to blob storage, and imports `Az.Storage` 9.7.2 in the inline script.
- Both files downgrade the `AzurePowerShell` task version from `5.280.3` to `5` to use the latest compatible version.
<!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot -->
Copilot AI balanced review requested due to automatic review settings October 30, 2026 20:51
@jshigetomi
Justin Chung (jshigetomi) requested a review from a team as a code owner October 30, 2026 20:51
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Removed preview mappings block Azure Linux 4 prerelease RPM publication for both architectures, while release packaging exposes a build-only analyzer as a public dependency.

2 open issues
What changed in this PR

Merges release-branch updates back into master for PowerShell 7.7.0-rc.1, aligning dependencies and bringing release tooling and documentation changes into ongoing development.

Changes:

  • Updates the .NET SDK and package references across production projects and test tools.
  • Pins Az.Storage for release uploads, removes test build intermediates, and removes Azure Linux 4 preview mappings.
  • Adds release notes and refreshes dependency tracking metadata.
File Description
tools/​packages.microsoft.com/​mapping.json Removes Azure Linux 4 preview destinations.
tools/​cgmanifest/​tpn/​cgmanifest.json Refreshes third-party component registrations.
tools/​cgmanifest/​main/​cgmanifest.json Refreshes main component registrations.
test/​xUnit/​xUnit.tests.csproj Updates the xUnit test adapter.
test/​tools/​WebListener/​WebListener.csproj Updates ASP.NET dependencies and adds explicit references.
test/​tools/​NamedPipeConnection/​src/​code/​Microsoft.PowerShell.NamedPipeConnection.csproj Pins additional test-module dependencies.
test/​perf/​dotnet-tools/​ResultsComparer/​ResultsComparer.csproj Adds tracing and management dependencies.
test/​perf/​dotnet-tools/​Reporting/​Reporting.csproj Adds an explicit platform dependency.
test/​perf/​dotnet-tools/​BenchmarkDotNet.Extensions/​BenchmarkDotNet.Extensions.csproj Pins additional benchmarking dependencies.
test/​packaging/​packaging.tests.ps1 Changes Azure Linux 4 mapping expectations to stable-only.
src/​System.Management.Automation/​System.Management.Automation.csproj Updates and explicitly pins runtime dependencies.
src/​System.Management.Automation/​SourceGenerators/​PSVersionInfoGenerator/​PSVersionInfoGenerator.csproj Adds explicit generator dependencies.
src/​Microsoft.WSMan.Management/​Microsoft.WSMan.Management.csproj Updates service and event-log dependencies.
src/​Microsoft.PowerShell.SDK/​Microsoft.PowerShell.SDK.csproj Aligns SDK dependencies with .NET RC3.
src/​Microsoft.PowerShell.CoreCLR.Eventing/​Microsoft.PowerShell.CoreCLR.Eventing.csproj Updates the event-log dependency.
src/​Microsoft.PowerShell.Commands.Utility/​Microsoft.PowerShell.Commands.Utility.csproj Adds analyzer and system-event references; updates drawing.
src/​Microsoft.PowerShell.Commands.Management/​Microsoft.PowerShell.Commands.Management.csproj Updates service and event-log dependencies.
src/​Microsoft.PowerShell.Commands.Diagnostics/​Microsoft.PowerShell.Commands.Diagnostics.csproj Updates diagnostics and configuration dependencies.
global.json Selects .NET SDK 11.0.100-rc.3.26522.148.
DotnetRuntimeMetadata.json Aligns SDK image metadata.
CHANGELOG/​v7.7/​dependencychanges.json Records the SDK upgrade.
CHANGELOG/​preview.md Adds 7.7.0-rc.1 release notes.
build.psm1 Removes test obj directories after publishing tools.
.pipelines/​templates/​release-upload-buildinfo.yml Installs and imports Az.Storage 9.7.2 for uploads.
.pipelines/​templates/​release-MakeBlobPublic.yml Installs and imports Az.Storage 9.7.2 for blob copies.

Review effort: Balanced

Comment on lines +10 to +13
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="5.9.0">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
@daxian-dbw Dongbo Wang (daxian-dbw) changed the title Merge Release Branch back into master Merge v7.7.0-rc1 release branch back into GitHub master Oct 30, 2026
</PropertyGroup>

<ItemGroup>
<PackageReference Include="System.Configuration.ConfigurationManager" Version="11.0.0-rc.3.26522.148" />

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are we introducing a new package dependency for Microsoft.PowerShell.Command.Diagnostics?

<ItemGroup>
<!-- the following package(s) are from https://github.com/dotnet/corefx -->
<PackageReference Include="System.ServiceProcess.ServiceController" Version="11.0.0-rc.1.26425.128" />
<PackageReference Include="System.Diagnostics.EventLog" Version="11.0.0-rc.3.26522.148" />

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here, why we are introducing a new package dependency for "Command.Mangement"?

Comment on lines +10 to +14
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="5.9.0">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.Win32.SystemEvents" Version="11.0.0-rc.3.26522.148" />

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here.

<PackageReference Include="System.ComponentModel.Composition.Registration" Version="11.0.0-rc.3.26522.148" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="11.0.0-rc.3.26522.148" />
<PackageReference Include="System.Data.Odbc" Version="11.0.0-rc.3.26522.148" />
<PackageReference Include="System.Data.OleDb" Version="11.0.0-rc.3.26522.148" />

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here. Lots of new dependencies get added to SDK.csproj.

</PropertyGroup>

<ItemGroup>
<PackageReference Include="System.Diagnostics.EventLog" Version="11.0.0-rc.3.26522.148" />

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here.

Comment on lines +19 to +21
<PackageReference Include="Microsoft.NETCore.Platforms" Version="1.1.2" />
<PackageReference Include="System.Collections.Immutable" Version="10.0.14" />
<PackageReference Include="System.Reflection.Metadata" Version="10.0.14" />

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here.

<PackageReference Include="System.DirectoryServices" Version="11.0.0-rc.3.26522.148" />
<PackageReference Include="System.Management" Version="11.0.0-rc.3.26522.148" />
<PackageReference Include="System.Security.Cryptography.Pkcs" Version="11.0.0-rc.3.26522.148" />
<PackageReference Include="System.Security.Cryptography.ProtectedData" Version="11.0.0-rc.3.26522.148" />

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here.

Comment on lines +11 to +13
<PackageReference Include="Microsoft.Diagnostics.Tracing.TraceEvent" Version="3.1.30" />
<PackageReference Include="Microsoft.NETCore.Platforms" Version="1.1.2" />
<PackageReference Include="System.Management" Version="9.0.22" />

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here.

@daxian-dbw

Dongbo Wang (daxian-dbw) commented Nov 3, 2026 •

Copy link
Copy Markdown
Member

IIRC, we add all transitive package dependencies in release branches, but not for the GitHub master branch.

[UPDATE] Justin Chung (@jshigetomi), I confirmed with Travis in the maintainer meeting -- the GitHub master should not have transitive dependencies in the .csproj files. To update packages for GitHub master, we need to run a "Release Prep" workflow targeting master.

Also, for RC releases, we are not merging the release branch to GitHub master. Any fixes that were made in the release branch need to be ported to GitHub master.

@microsoft-github-policy-service microsoft-github-policy-service Bot added the Waiting on Author The PR was reviewed and requires changes or comments from the author before being accept label Nov 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Backport-7.4.x-Consider Backport-7.5.x-Consider Backport-7.6.x-Consider CL-BuildPackaging Indicates that a PR should be marked as a build or packaging change in the Change Log Waiting on Author The PR was reviewed and requires changes or comments from the author before being accept

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants