microsoft / microsoft/winget-cli

Support file composition for WinGet Configure

Open
#3,797 2 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

I'd like to be able to reference one file from another to use with winget configure. When WinGet's configure command processes a file with one or more references, it applies the union of all configurations described.

This would become even more powerful with #3554

This would support the following scenarios and possibly more:

  1. I want to break up my files for readability. For example, I have nodejs and several web tools in one file for the frontend, and the dotnet sdk and tools in another. This makes finding specific resources easier.
  2. I have a project based on a different project with additional requirements. For example, I have a project that uses electron - I can reference the electron project DSC and then add my additional requirements to my own repository without having to duplicate and maintain the base file. When the electron project changes its requirements, my configuration does not need to be updated.
  3. I have a multi-repository project and want to compartmentalize the configuration files but use a common core that can be updated independently.
  4. I can share configurations with people for specific scenarios and they can compose those into full machine setups (DevBox) or project setups without having to do partial compares if I publish changes. For example, I provide a config that will set up OhMyPosh and some related tools for great kubernetes visibility. Another person can download that and reference it rather than
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

No files or tests are named. Start at the WinGet Configure command entry point and trace how configuration files are loaded and processed. Done means one configuration can reference another and the command applies the union of all referenced configurations, with coverage for the scenarios described in the issue.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
cli, devops
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.