Skip to content

Need to normalize PowerShell notices #20570

@reinhart1010

Description

@reinhart1010

A couple of months ago I noticed that we have three versions of PowerShell notices.

First, my original proposal (modified from android/ commands that can only be run under adb) as back as #6621 (used in 31 commands and subsequent translations):

# Example-Command

> Command Description.
> Note: This command can only be used through PowerShell.

The second, simplified version (5 commands and translations):

# Example-Command

> Command Description.
> This command can only be run under PowerShell.

And the third one (5 commands and translations),

# Example-Command

> A PowerShell utility (or external module) to ...

This relatively recent format has been placed in windows/add-appxpackage, windows/pswindowsupdate, windows/remove-appxpackage, and subsequent translations.

I think it's OK to document external PowerShell modules like the PSWindowsUpdate and to have clear separation between a tldr page for PowerShell Modules and Cmdlets (treated as "commands" as in here). But unlike Unix-based command-line utilities (like git) that prefers prefixes or subcommands (like git blame and git pull), PowerShell modules prefers to name Cmdlets with common suffixes (like Get-DataSet, Write-DataSet, Delete-DataSet).

So my question here is how to decide:

  1. Normalize PowerShell notices for pages documenting a specific Module?
    • When the module name is long, should we refer to the shortened/common instead of long ones (like DataModule instead of Com.Example.DataModule)? How about alias pages?
  2. Normalize PowerShell notices for pages documenting a specific Cmdlet or Function?
    • Every Cmdlet and Function is guaranteed to belong to a module, like Invoke-WebRequest belongs to Microsoft.PowerShell.Utility.
  3. Document conflicting commands between PowerShell and non-PowerShell modules?
    • Very common example: PowerShell add aliases on top of classic Command Prompt commands (e.g., rmdir becomes an alias of Remove-Item).
    • Possible rare scenario: An optional PowerShell module adding aliases on top of classic Command Prompt commands.
    • Or just move powershell to a separate platform (see Let's document: PowerShell #6621)?
  4. How to declare that a given Module has its Cmdlets?
    • Some subcommands such as Get-DataSet have their own usage documentation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    decisionA (possibly breaking) decision regarding tldr-pages content, structure, infrastructure, etc.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions