microsoft / winget-cli

WinGet is the Windows Package Manager. This project includes a CLI (Command Line Interface), PowerShell modules, and a COM (Component Object Model) API (Application Programming Interface).
https://learn.microsoft.com/windows/package-manager/
MIT License
23.2k stars 1.45k forks source link

Make Microsoft.WinGet.Client PowerShell cmdlets "singular" in name #4680

Closed denelon closed 1 month ago

denelon commented 3 months ago

Description of the new feature / enhancement

The following cmdlets are plural in name and should be singular:

Proposed technical implementation details

No response

denelon commented 3 months ago

These should be made into "singular" names, and the "plural" name should become an alias so users who have scripted against this aren't broken.

jantari commented 3 months ago

[...] the "plural" name should become an alias so users who have scripted against this aren't broken.

F*** 'em. Break it now while it's still fresh, you don't wanna become the ShellFolders of the 21st century. No alias!

kilasuit commented 2 months ago

@denelon I'll add this into the following PR #4716

ThomasNieto commented 2 months ago

There is an anti-pattern when putting all "settings" into a single cmdlet. Ideally there would be a cmdlet(s) to set the individual setting.

Here are some examples that aren't real WinGet values.

Disable-WinGetHashValidation
Enable-WinGetHashValidation

Set-WinGetTimeout
Get-WinGetTimeout

Lets take Get-WinGetSettings cmdlet. The output is not user friendly at all. First it returns a case sensitive hashtable. The is not a good way to parse the settings at a glance. There is not an easy way for me to determine which settings I can set with Set-WinGetSettings since it takes a hashtable which could be anything.