Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

App::about and Arg::help are inconsistent #3075

Open
epage opened this issue Dec 7, 2021 · 0 comments
Open

App::about and Arg::help are inconsistent #3075

epage opened this issue Dec 7, 2021 · 0 comments
Labels
A-builder Area: Builder API C-enhancement Category: Raise on the bar on expectations M-breaking-change Meta: Implementing or merging this will introduce a breaking change. S-waiting-on-decision Status: Waiting on a go/no-go before implementing

Comments

@epage
Copy link
Member

epage commented Dec 7, 2021

We have App::about, Arg::help and PossibleValue::help.

Should these be more consistent?

See a prior discussion for more context


Original Issue after epage/clapng#17

Transfered from clap-rs

When a user "knows" what they are looking for, they browse directly to it. As a user with clap3, when I'm looking to set the help description for an argument, I'm looking for help something in the Arg table of contents, but it wasn't there until beta.5 and its deprecated (Issue: #1823, PR: #1840). So in a way, #2718 has been helping but its of limited time until the next major release.

We have conflicting needs:

  • We want consistency within clap so its easier to move from one piece to another (the old Arg::help is analogous to App::about)
  • We want to be clear in our terms (does help refer to just a help description or the entire help, especially a problem in App)
  • We want to be discoverable
    • Which about hasn't been for me
    • In terms of past clap users, "do nothing" is discoverable
    • In terms of past structopt users, they don't care since they use doc comments :)
    • In terms of what people might be familiar with:
      • python's argparse's equivalent is App::description and Arg::help
      • golang's kong's equivalent is App::description and Arg::help
      • cpp's boost::program_option's equivalent is Arg::description
      • rust's gumpdrop's equivalent is Arg::help

The question is what do we prioritize and how should we resolve this?

I figured a discussion would be more appropriate rather than trying to lump this in with #2164

@epage epage added M-breaking-change Meta: Implementing or merging this will introduce a breaking change. C: args A-builder Area: Builder API and removed C: args labels Dec 7, 2021
@epage epage added S-waiting-on-decision Status: Waiting on a go/no-go before implementing C-enhancement Category: Raise on the bar on expectations labels Dec 13, 2021
remi-dupre pushed a commit to remi-dupre/aoc that referenced this issue Dec 14, 2021
…#17)

* clap update from 3.0.0-beta.2 to rc.3 renamed Args::about() to help()

See [#3075] (clap-rs/clap#3075)
and [CHANGELOG] (https://github.com/clap-rs/clap/blob/ee2d70f8ef40025beb2ef901e39119ed1f809533/CHANGELOG.md?plain=1#L109)

* Revert to App::about(), and typo in comment
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-builder Area: Builder API C-enhancement Category: Raise on the bar on expectations M-breaking-change Meta: Implementing or merging this will introduce a breaking change. S-waiting-on-decision Status: Waiting on a go/no-go before implementing
Projects
None yet
Development

No branches or pull requests

1 participant