Skip to content

Specification: Native DSC v3 Resources in WinGet Client#6291

Draft
denelon wants to merge 1 commit into
microsoft:masterfrom
denelon:spec/dsc-resource-implementation
Draft

Specification: Native DSC v3 Resources in WinGet Client#6291
denelon wants to merge 1 commit into
microsoft:masterfrom
denelon:spec/dsc-resource-implementation

Conversation

@denelon

@denelon denelon commented Jun 17, 2026

Copy link
Copy Markdown
Collaborator

📖 Description

Specification for native DSC v3 command-based resources shipped with the WinGet client. Includes Package, PackageList, Source, Settings, and Pin resources. The PackageList resource enables declaring an entire machine's desired package state in a single resource block. Eliminates the ~92s adapter overhead per resource invocation.

Authored with GitHub Copilot assistance.

🔗 References

Related Issues:

🔍 Validation

Spec document — no code changes to validate.

✅ Checklist

📋 Issue Type

  • Bug fix
  • Feature
  • Task
Microsoft Reviewers: Open in CodeFlow

Specification for native command-based DSC v3 resources shipped with
the WinGet client, including Package, PackageList, Source, Settings,
and Pin resources. Eliminates ~92s adapter overhead per resource.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
| Resource Type | Purpose | DSC Operations |
|--------------|---------|----------------|
| `Microsoft.WinGet/Package` | Single package desired state | Get, Set, Test |
| `Microsoft.WinGet/PackageList` | Declarative list of packages | Get, Set, Test |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Feels like this could just be an extension of Microsoft.WinGet/Package where the parameters could be lists instead of single values, or settings is itself a list type?

| `ensure` | enum | No | `present` \| `absent` |
| `trustLevel` | enum | No | `none` \| `trusted` |

### Microsoft.WinGet/Settings

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How do admin settings get set?

winget dsc list # List available resources
```

The `winget dsc` subcommand is NOT intended for direct user interaction — it implements the DSC v3 protocol for the runtime to invoke. It does not appear in `winget --help` by default (hidden command, visible with `--verbose`).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

winget dsc is currently an alias for winget configure

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants