microsoft / microsoft/winget-cli
Move packages with "InstallerAbortsTerminal" to the end of the list for "upgrade --all"
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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