Skip to content

[release/v7.5] Merge the v7.6.0-preview.5 release branch back to master#26958

Merged
adityapatwardhan merged 1 commit intoPowerShell:release/v7.5from
adityapatwardhan:backport/release/v7.5/26180-9fef02695
Mar 9, 2026
Merged

[release/v7.5] Merge the v7.6.0-preview.5 release branch back to master#26958
adityapatwardhan merged 1 commit intoPowerShell:release/v7.5from
adityapatwardhan:backport/release/v7.5/26180-9fef02695

Conversation

@adityapatwardhan
Copy link
Member

Backport of #26180 to release/v7.5

Triggered by @adityapatwardhan on behalf of @daxian-dbw

Original CL Label: CL-BuildPackaging

/cc @PowerShell/powershell-maintainers

Impact

REQUIRED: Choose either Tooling Impact or Customer Impact (or both). At least one checkbox must be selected.

Tooling Impact

  • Required tooling change
  • Optional tooling change (include reasoning)

Updates release pipeline templates: Store publishing now uses StoreAppPublish-Private endpoint with separate per-channel publish tasks, fixes changelog URL generation regex, adds Start-PSBootstrap to SDK/global-tools validation, and updates SBConfig.json and image references.

Customer Impact

  • Customer reported
  • Found internally

Regression

REQUIRED: Check exactly one box.

  • Yes
  • No

This is not a regression.

Testing

Pipeline/build changes — verified via CI pipeline execution on the backport branch.

Risk

REQUIRED: Check exactly one box.

  • High
  • Medium
  • Low

Build and release pipeline changes from the v7.6.0-preview.5 merge-back. Includes Store publishing improvements (unified StoreAppPublish-Private endpoint, per-channel publish tasks), changelog URL generation fixes, and SDK bootstrap additions. CHANGELOG kept as-is for v7.5.

Merge Conflicts

6 files had conflicts. Resolution: (1) PowerShell-Release-Official.yml — trivial whitespace, took theirs. (2) channelSelection.yml — kept ours (v7.5 has improved PublishToChannels approach). (3) package-create-msix.yml — took theirs (simplified single StoreAppPublish-Private endpoint). (4) release-MSIX-Publish.yml — took theirs (separate LTS/Stable/Preview publish tasks with direct AppID references). (5) release-validate-sdk.yml — took theirs (added Start-PSBootstrap + DOTNET_NOLOGO). (6) CHANGELOG/preview.md — kept ours entirely (v7.6.0-preview.5 changelog doesn't belong on v7.5).

@adityapatwardhan adityapatwardhan requested a review from a team as a code owner March 9, 2026 19:09
Copilot AI review requested due to automatic review settings March 9, 2026 19:09
@adityapatwardhan adityapatwardhan added the CL-BuildPackaging Indicates that a PR should be marked as a build or packaging change in the Change Log label Mar 9, 2026
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Backports build/release pipeline template updates from the v7.6.0-preview.5 merge-back into release/v7.5, primarily focusing on MSIX Store publishing changes and release validation improvements.

Changes:

  • Updates Store publishing to use a unified StoreAppPublish-Private endpoint with separate per-channel publish tasks.
  • Fixes changelog URL anchor generation logic for tags (preview detection + anchor formatting).
  • Adds Start-PSBootstrap -Scenario Dotnet to SDK/global-tools validation and updates StoreBroker config defaults.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
.pipelines/templates/windows-hosted-build.yml Adjusts the set of modules copied into the Windows global tool package.
.pipelines/templates/release-validate-sdk.yml Adds bootstrap/init steps for SDK validation; updates environment settings.
.pipelines/templates/release-validate-globaltools.yml Adds bootstrap/init steps before validating dotnet global tools.
.pipelines/templates/release-githubNuget.yml Fixes changelog URL generation for tag push guidance.
.pipelines/templates/release-MSIX-Publish.yml Refactors Store publish to run distinct LTS/Stable/Preview publishing tasks.
.pipelines/templates/package-create-msix.yml Updates StoreBroker packaging to align with the unified publish endpoint + updates PDP/SBConfig handling.
.pipelines/templates/channelSelection.yml Minor template formatting changes (but currently includes a conflict marker).
.pipelines/store/SBConfig.json Updates StoreBroker defaults (PDP include + publish mode).
.pipelines/PowerShell-Release-Official.yml Updates Linux SDK validation image and minor formatting tweaks.

Comment on lines 227 to 228
Write-Host "##vso[task.setvariable variable=ServiceConnection]$($config.ServiceEndpoint)"
Write-Host "##vso[task.setvariable variable=SBConfigPath]$($sbConfigPath)"
Copy link

Copilot AI Mar 9, 2026

Choose a reason for hiding this comment

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

ServiceConnection is being set from $config.ServiceEndpoint, but it isn't referenced anywhere else in this template (the StoreBroker tasks now use hard-coded StoreAppPublish-Private). Consider removing this variable assignment (and the unused per-channel ServiceEndpoint config values) to avoid confusion about which endpoint is actually used.

Copilot uses AI. Check for mistakes.
Comment on lines 4 to 9
$metadata = Get-Content "$(Build.SourcesDirectory)/PowerShell/tools/metadata.json" -Raw | ConvertFrom-Json


>>>>>>> 9fef02695 (Merge the v7.6.0-preview.5 release branch back to master)

$LTS = $metadata.LTSRelease.PublishToChannels
Copy link

Copilot AI Mar 9, 2026

Choose a reason for hiding this comment

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

This template contains an unresolved merge-conflict marker (>>>>>>> ...). That will break YAML parsing when the template is included; please remove the marker and resolve the merge properly.

Copilot uses AI. Check for mistakes.
Comment on lines +128 to +131
- pwsh: |
Get-Content -Path "$(System.DefaultWorkingDirectory)/SBLog.txt" -ErrorAction SilentlyContinue
displayName: Upload Store Failure Log
condition: failed()
Copy link

Copilot AI Mar 9, 2026

Choose a reason for hiding this comment

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

This step is labeled "Upload Store Failure Log", but it only prints the contents of SBLog.txt and doesn't publish it as an artifact or attach it anywhere. Either rename the step to reflect its behavior (e.g., "Print Store Failure Log") or add an explicit artifact upload/publish step if the intent is to persist the log.

Copilot uses AI. Check for mistakes.
Comment on lines 265 to 272
$modulesToCopy = @(
'PowerShellGet'
'PackageManagement'
'Microsoft.PowerShell.PSResourceGet'
'Microsoft.PowerShell.Archive'
'PSReadLine'
'ThreadJob'
'Microsoft.PowerShell.ThreadJob'
)
Copy link

Copilot AI Mar 9, 2026

Choose a reason for hiding this comment

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

The module folder list switched from 'ThreadJob' to 'Microsoft.PowerShell.ThreadJob'. In this repo, the PSGallery module dependency is referenced as the NuGet package 'ThreadJob' (src/Modules/PSGalleryModules.csproj), and the corresponding module folder is typically 'ThreadJob'. Using 'Microsoft.PowerShell.ThreadJob' here is likely to make Copy-Item fail because the source module folder won't exist. Consider reverting to 'ThreadJob' (or otherwise align this entry with the actual folder name under the built 'Modules' directory).

Copilot uses AI. Check for mistakes.
Comment on lines +55 to 60
Import-Module "$repoRoot/build.psm1" -Force -Verbose
Start-PSBootstrap -Scenario Dotnet

$env:DOTNET_NOLOGO=1
>>>>>>> 9fef02695 (Merge the v7.6.0-preview.5 release branch back to master)

Copy link

Copilot AI Mar 9, 2026

Choose a reason for hiding this comment

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

This file contains an unresolved merge-conflict marker (>>>>>>> ...). YAML parsing will fail and the pipeline template won't run until this marker is removed and the conflict is properly resolved.

Copilot uses AI. Check for mistakes.
Comment on lines 51 to +56
- pwsh: |
$repoRoot = "$(Build.SourcesDirectory)"

$env:DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1

Import-Module "$repoRoot/build.psm1" -Force -Verbose
Start-PSBootstrap -Scenario Dotnet
Copy link

Copilot AI Mar 9, 2026

Choose a reason for hiding this comment

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

$repoRoot is set to $(Build.SourcesDirectory), but other release templates in this repo consistently reference the repo content under $(Build.SourcesDirectory)/PowerShell (for example, release-SetTagAndChangelog.yml and release-validate-globaltools.yml). With the current value, Import-Module "$repoRoot/build.psm1" and Set-Location $repoRoot/test/hosting are likely to point at the wrong path in the release pipeline layout. Update $repoRoot (and the insert-nuget-config repoRoot parameter if needed) to the same .../PowerShell root used elsewhere.

Copilot uses AI. Check for mistakes.
Comment on lines 232 to 239
- task: MS-RDX-MRO.windows-store-publish.package-task.store-package@3
displayName: 'Create StoreBroker Package (Preview)'
condition: eq(variables['PREVIEW'], 'true')
displayName: 'Create StoreBroker Package'
inputs:
serviceEndpoint: 'StoreAppPublish-Preview'
sbConfigPath: '$(SBConfigPath)'
sourceFolder: '$(BundleDir)'
contents: '*.msixBundle'
outSBName: 'PowerShellStorePackage'
pdpPath: '$(System.DefaultWorkingDirectory)/PowerShell/.pipelines/store/PDP/PDP'
pdpMediaPath: '$(System.DefaultWorkingDirectory)/PowerShell/.pipelines/store/PDP/PDP-Media'

- task: MS-RDX-MRO.windows-store-publish.package-task.store-package@3
displayName: 'Create StoreBroker Package (Stable/LTS)'
condition: or(eq(variables['STABLE'], 'true'), eq(variables['LTS'], 'true'))
serviceEndpoint: 'StoreAppPublish-Private'
inputs:
serviceEndpoint: 'StoreAppPublish-Stable'
serviceEndpoint: 'StoreAppPublish-Private'
>>>>>>> 9fef02695 (Merge the v7.6.0-preview.5 release branch back to master)
sbConfigPath: '$(SBConfigPath)'
Copy link

Copilot AI Mar 9, 2026

Choose a reason for hiding this comment

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

This file contains an unresolved merge-conflict marker (>>>>>>> ...) and also has duplicate inputs: keys under the same task. Either of these will break YAML parsing / task configuration; please resolve the conflict and ensure the task has a single inputs: mapping.

Copilot uses AI. Check for mistakes.
Comment on lines +189 to +196
# Create namespace manager for XML with default namespace
$nsManager = New-Object System.Xml.XmlNamespaceManager($pdpXml.NameTable)
$nsManager.AddNamespace("pd", "http://schemas.microsoft.com/appx/2012/ProductDescription")

$appStoreNameElement = $pdpXml.SelectSingleNode("//pd:AppStoreName", $nsManager)
if ($appStoreNameElement) {
$appStoreNameElement.InnerText = $config.AppStoreName
Write-Verbose -Verbose "Updated AppStoreName to: $($config.AppStoreName)"
$appStoreNameElement.SetAttribute("_locID", $config.AppStoreName)
Write-Verbose -Verbose "Updated AppStoreName _locID to: $($config.AppStoreName)"
Copy link

Copilot AI Mar 9, 2026

Choose a reason for hiding this comment

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

The PDP update logic now sets the AppStoreName element’s _locID attribute to values like PowerShell / PowerShell-LTS, but it does not set the element text. In the checked-in PDP.xml, <AppStoreName _locID="PowerShell-Private"> currently has no inner text, so this change likely won’t update the Store name as intended. If the goal is to update the Store display name, set the element content (or clarify/update both _locID and the text consistently with how StoreBroker expects this value).

Copilot uses AI. Check for mistakes.
The v7.6.0-preview.5 release is done. Merge the release branch back to master using a merge commit.
@adityapatwardhan adityapatwardhan force-pushed the backport/release/v7.5/26180-9fef02695 branch from 9463030 to 7dbceaa Compare March 9, 2026 19:31
@adityapatwardhan adityapatwardhan merged commit 89227ac into PowerShell:release/v7.5 Mar 9, 2026
34 checks passed
@adityapatwardhan adityapatwardhan deleted the backport/release/v7.5/26180-9fef02695 branch March 9, 2026 20:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CL-BuildPackaging Indicates that a PR should be marked as a build or packaging change in the Change Log

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants