Repository navigation
Merge v7.7.0-rc1 release branch back into GitHub master - #28292
Justin Chung (jshigetomi) wants to merge 7 commits into
Conversation
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 -->
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
There was a problem hiding this comment.
🟡 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
| <PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="5.9.0"> | ||
| <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | ||
| <PrivateAssets>all</PrivateAssets> | ||
| </PackageReference> |
| </PropertyGroup> | ||
|
|
||
| <ItemGroup> | ||
| <PackageReference Include="System.Configuration.ConfigurationManager" Version="11.0.0-rc.3.26522.148" /> |
There was a problem hiding this comment.
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" /> |
There was a problem hiding this comment.
Same here, why we are introducing a new package dependency for "Command.Mangement"?
| <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" /> |
| <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" /> |
There was a problem hiding this comment.
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" /> |
| <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" /> |
| <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" /> |
| <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" /> |
|
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 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. |


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:
global.json,DotnetRuntimeMetadata.json, andCHANGELOG/v7.7/dependencychanges.json, ensuring the codebase builds with the latest SDK. [1] [2] [3]System.Diagnostics.EventLog,System.ServiceProcess.ServiceController,System.Drawing.Common, etc.) to align with the new SDK across all relevant.csprojfiles. [1] [2] [3] [4] [5] [6] [7] [8]Build and Pipeline Improvements:
Az.Storage9.7.2 from thePowerShellGalleryMirrorrepository and ensure the module is imported before use, increasing build reliability. [1] [2] [3] [4] [5] [6]build.psm1to remove intermediate build directories (obj) from test packages, preventing unnecessary files from being included.Documentation and Changelog:
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
Build and Pipeline Improvements
Az.Storagefrom a mirrored repository, improving reliability and consistency in release and build info upload jobs. [1] [2] [3] [4] [5] [6]Documentation
PR Context
PR Checklist
.h,.cpp,.cs,.ps1and.psm1files have the correct copyright header