microsoft / microsoft/winget-cli

Argument for network.downloader switch

Open
#5,494 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

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.

  1. 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).
  2. Like Pins, allow an application to be pinned as a wininit package (this would take care of both the initial install and updates)
  3. 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

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 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.