Skip to content

Decide Whether an Installed Launcher Takes the Command or the Wrapper Name #3199

Closed

Description

@ptr727

Question

Which name does an extensionless launcher for a Python tool take when it is installed onto PATH or into a system slot?

The standard agreed in #3140, now written into CODESTYLE.md "Script and Utility File Names" on #3198, carries two clauses that both reach that file and give it different names:

  • Installed commands: an extensionless executable on PATH or in a system slot is named as a command, lowercase-hyphenated with no extension, whatever language it is written in. That gives fetch-report.
  • Wrapper exemption: a thin launcher whose only job is to run a Python tool keeps that tool's stem. That gives fetch_report.

Neither clause says which wins, so a reader or the follow-up audit check (#3141) can apply either and call the other a violation. The local strict review on #3198 raised this, and the issue's own text leaves it open, so it is not the agent's to settle.

Options

  1. Recommended: an installed extensionless command always takes the command convention, and the wrapper exemption covers only launchers that keep an extension. A name on PATH is what a person types, so it should read like every other installed Linux command, while the exemption's purpose, keeping fetch_report.py, .sh, and .ps1 grouped in the tree, is already met by the launchers that keep their extension. Effect on State the Fleet Standard for Script and Utility File Names #3198: one added sentence on the wrapper exemption, then the pull request continues its review loop.
  2. The wrapper exemption wins: an installed launcher keeps the Python tool's snake_case stem. This keeps the tool's name identical everywhere, at the cost of an installed command that does not look like one. Effect on State the Fleet Standard for Script and Utility File Names #3198: one added sentence on the installed-commands clause.
  3. Leave the text as agreed, with the precedence unstated. Nothing changes on State the Fleet Standard for Script and Utility File Names #3198, and the ambiguity goes to whoever writes Add a File-Naming Audit Check and Secret-Stem Casing #3141's audit check.

Belongs to

Activity

  1. added
    decisionA question waiting on the maintainer, alone or beside whatever else the issue carries
    on Oct 18, 2026
  2. ptr727 commented on Oct 18, 2026

    @ptr727
    OwnerAuthor

    Answered by the maintainer: option 1. An installed extensionless command always follows the command convention, and the wrapper exemption covers only launchers that keep an extension. This lands as one sentence on the wrapper exemption in CODESTYLE.md "Script and Utility File Names" on #3198.

  3. removed
    decisionA question waiting on the maintainer, alone or beside whatever else the issue carries
    on Oct 18, 2026
  4. ptr727 commented on Oct 18, 2026

    @ptr727
    OwnerAuthor

    Follow-up answer from the maintainer, raised by the local strict review on #3198: a launcher that keeps its extension but is installed onto PATH or into a system slot, such as a Windows .cmd shim, is an installed command too, so it takes the command name (fetch-report.cmd). The wrapper exemption covers only a launcher run by its path.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions