Skip to content

[release/v7.4.14] .NET Resolution and Store Publishing Updates #26930

Merged
jshigetomi merged 4 commits intoPowerShell:release/v7.4.14from
jshigetomi:release/v7.4.14-with-cherry-picks
Mar 2, 2026
Merged

[release/v7.4.14] .NET Resolution and Store Publishing Updates #26930
jshigetomi merged 4 commits intoPowerShell:release/v7.4.14from
jshigetomi:release/v7.4.14-with-cherry-picks

Conversation

@jshigetomi
Copy link
Collaborator

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

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

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

  • Customer reported
  • Found internally

Regression

REQUIRED: Check exactly one box.

  • Yes
  • No

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.

  • High
  • Medium
  • Low

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.

@jshigetomi jshigetomi added the CL-BuildPackaging Indicates that a PR should be marked as a build or packaging change in the Change Log label Mar 2, 2026
@jshigetomi jshigetomi marked this pull request as ready for review March 2, 2026 21:15
@jshigetomi jshigetomi requested a review from a team as a code owner March 2, 2026 21:15
Copilot AI review requested due to automatic review settings March 2, 2026 21:15
@jshigetomi jshigetomi merged commit b5180d4 into PowerShell:release/v7.4.14 Mar 2, 2026
37 checks passed
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 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 ReleaseTag version 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 after else {). 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: true on the Store publish tasks, the job may finish as succeeded-with-issues and any follow-up diagnostics gated on failed() won’t run. To preserve failure visibility, consider adding an always()/succeededOrFailed() step after these tasks to surface StoreBroker logs (e.g., print/copy SBLog.txt when 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'

Copilot AI mentioned this pull request Mar 11, 2026
12 tasks
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.

4 participants