microsoft / microsoft/winget-cli
Argument for network.downloader switch
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
As it stands right now, Wingets default network.downloader is do. This is great for me in an enterprise environment, however I have run into an issue with a couple of applications rate limiting installs and updates from their CDN (Foxit being one of them) because of the utilization of do breaking those requests up into chunks, making it so 20 computers reaching out turns into 4k+ requests for the install.
The request would be a couple of items that would alleviate an issue like this when it comes up.
- Add an argument that can be passed to Winget on install or update that specifies the network.downloader function (--use-wininit or --use-do for those that have wininit as default).
- Like Pins, allow an application to be pinned as a wininit package (this would take care of both the initial install and updates)
- Both. This is a lot, im sure, but both would be handy.
As it stands right now, I have to change the settings.json to wininit for that specific install, and change it back, unless I want to install the application another way, and then updates run into the same rate limit when attempting to update the application with Winget, requiring admin credentials to run the updater on each machine individually.
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 by tracing how Winget handles install and update arguments, the network.downloader setting in settings.json, and the existing Pins behavior. Determine how per-command downloader selection and a package-level wininit pin would fit those entry points, then verify that installs and later updates use the selected behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- cli, networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100