[release/v7.4.14] .NET Resolution and Store Publishing Updates #26930
Merged
jshigetomi merged 4 commits intoPowerShell:release/v7.4.14from Mar 2, 2026
Merged
Conversation
…l#26910) Co-authored-by: Justin Chung <[email protected]>
…er (PowerShell#26920) Co-authored-by: Dongbo Wang <[email protected]> Co-authored-by: Copilot <[email protected]>
…ure. (PowerShell#26895) Co-authored-by: Justin Chung <[email protected]>
…ranch back to master (PowerShell#26927)
Contributor
There was a problem hiding this comment.
Pull request overview
Backports MSIX Store publishing pipeline improvements to release/v7.4, primarily to enrich Store listing metadata and make publishing steps more resilient.
Changes:
- Update StoreBroker JSON to include a changelog link and prepend the current
ReleaseTagversion to the app description. - Adjust changelog anchor generation logic for the link fragment.
- Update Store publish tasks to use Stable/Preview service connections, dynamically select
AppID, and continue on publish errors.
Comments suppressed due to low confidence (3)
.pipelines/templates/release-MSIX-Publish.yml:87
- There are a couple of trailing spaces in the inline script (e.g., after
'true'and afterelse {). Please remove trailing whitespace to avoid noisy diffs and keep scripts consistent.
$IsStable = '$(STABLE)' -eq 'true'
$IsPreview = '$(PREVIEW)' -eq 'true'
Write-Verbose -Verbose "Channel Selection - LTS: $(LTS), Stable: $(STABLE), Preview: $(PREVIEW)"
$currentChannel = if ($IsLTS) { 'LTS' }
elseif ($IsStable) { 'Stable' }
elseif ($IsPreview) { 'Preview' }
else {
Write-Error "No valid channel detected"
.pipelines/templates/release-MSIX-Publish.yml:66
- The description update prepends a "Version:" header every time this job runs. If the stage/job is re-run using the same StoreBroker JSON from artifacts, this will stack multiple version headers in the Store listing. Consider making this update idempotent (e.g., detect/remove an existing leading "Version:" block before prepending, or only prepend when the current ReleaseTag isn’t already present).
# Add PowerShell version to the top of the description
$description = $json.listings.'en-us'.baseListing.description
$version = "$(ReleaseTag)"
$updatedDescription = "Version: $version`n`n$description"
$json.listings.'en-us'.baseListing.description = $updatedDescription
.pipelines/templates/release-MSIX-Publish.yml:134
- With
continueOnError: trueon the Store publish tasks, the job may finish as succeeded-with-issues and any follow-up diagnostics gated onfailed()won’t run. To preserve failure visibility, consider adding analways()/succeededOrFailed()step after these tasks to surface StoreBroker logs (e.g., print/copySBLog.txtwhen present) or otherwise emit a clear warning/error summary when the publish task fails.
- task: MS-RDX-MRO.windows-store-publish.publish-task.store-publish@3
displayName: 'Publish StoreBroker Package (Stable/LTS)'
condition: and(ne('${{ parameters.skipMSIXPublish }}', 'true'), or(eq(variables['STABLE'], 'true'), eq(variables['LTS'], 'true')))
continueOnError: true
inputs:
serviceEndpoint: 'StoreAppPublish-Stable'
appId: '$(AppID)'
inputMethod: JsonAndZip
jsonPath: '$(Pipeline.Workspace)\SBOutDir\PowerShellStorePackage.json'
zipPath: '$(Pipeline.Workspace)\SBOutDir\PowerShellStorePackage.zip'
numberOfPackagesToKeep: 2
jsonZipUpdateMetadata: true
targetPublishMode: 'Immediate'
- task: MS-RDX-MRO.windows-store-publish.publish-task.store-publish@3
displayName: 'Publish StoreBroker Package (Preview)'
condition: and(ne('${{ parameters.skipMSIXPublish }}', 'true'), eq(variables['PREVIEW'], 'true'))
continueOnError: true
inputs:
serviceEndpoint: 'StoreAppPublish-Preview'
appId: '$(AppID)'
inputMethod: JsonAndZip
jsonPath: '$(Pipeline.Workspace)\SBOutDir\PowerShellStorePackage.json'
zipPath: '$(Pipeline.Workspace)\SBOutDir\PowerShellStorePackage.zip'
numberOfPackagesToKeep: 2
jsonZipUpdateMetadata: true
targetPublishMode: 'Immediate'
12 tasks
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.
Backport of #26895 and #26920 to release/v7.4
Triggered by @jshigetomi
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
Improves the v7.4 MSIX release pipeline by adding version information to app description and enabling error continuation in store publish tasks for better error handling and release visibility.
Customer Impact
Regression
REQUIRED: Check exactly one box.
This is not a regression.
Testing
Verified by running MSIX release pipeline on main branch. Changes to store publish tasks have been tested and confirmed to improve pipeline resilience and release note visibility without breaking existing functionality.
Risk
REQUIRED: Check exactly one box.
This modifies critical MSIX release pipeline steps. However, the changes have been tested in main and are localized to improving store publishing error handling and release note visibility. The variable syntax update aligns with best practices.