microsoft / microsoft/winget-cli

Move packages with "InstallerAbortsTerminal" to the end of the list for "upgrade --all"

Open
#4,908 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Command-Upgrade Issue-Feature
Dominant language
C++
Stars
26.4k
Forks
1.8k
Avg merge
1d 11h
Merged PRs (30d)
15

Description

Description of the new feature / enhancement

When I run winget upgrade --all with a set of packages and PowerShell is in the middle of the list, WinGet doesn't finish installing the packages.

It appears the upgrade is killing the WinGet process when PowerShell gets upgraded (note MSIX packages get delayed registration). This is happening with the MSI version of the PowerShell installer.

The WinGet manifest schema has an "InstallerAbortsTerminal" property to try and warn users about the risk of the terminal being aborted for an upgrade, and that could be used in the case of PowerShell.

WinGet should sequence upgrades for packages with this property specified to the end of the list of packages to be upgraded.

Proposed technical implementation details

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the upgrade --all flow and trace how package manifests expose the InstallerAbortsTerminal property. Confirm how packages are currently ordered, then verify that packages with the property are upgraded last and that the remaining packages still complete when PowerShell is included.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
cli
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.