microsoft / microsoft/winget-cli
Ability to specify a default installer type in the manifest
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
If two or more installers are equally suitable in terms of architecture, scope and other parameters etc, there should be a way to specify a default installer type for fresh install scenarios in the manifest. WinGet's current behavior relies on the ordering of the installers in the manifest, where WinGet selects whichever matching installer appears first. I'm aware of --installer-type but the average user would want to have the best experience with default args
Example
As reported in https://github.com/microsoft/winget-pkgs/issues/125309, the manifest contains both portable and nullsoft installers that are equal in terms of arch, scope etc. In fresh install flow, winget selects the installer that is defined first in the manifest. Re-ordering the manifest would make it choose the other installer.
Steps to reproduce to verify that behavior would be:
-
Locally clone winget-pkgs and install Streetwriters.Notesnook
winget install -m manifests/s/Streetwriters/Notesnook/2.4.0Notice it selects the portable installer (defined earlier in the manifest)
-
Re-order the installer nodes
-
Install the manifest locally again. Notice it will select the nullsoft installer this time.
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 with the local Streetwriters.Notesnook manifest and the existing --installer-type behavior, then reproduce installer selection with the winget install -m command while reordering installer nodes. Done means a manifest can specify a preferred installer type and fresh installs consistently select it when installers otherwise match.
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
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100