Commit graph

5657 commits

Author SHA1 Message Date
Ed Page
05aecf8248 refactor(help): Remove more redundant required checks
Made redundant in #3689 but missed updating these.
2022-05-05 20:33:39 -05:00
Ed Page
dcda237ecc
Merge pull request #3689 from epage/usage
fix(error): Don't duplicate args in usage
2022-05-05 19:52:19 -05:00
Ed Page
e23c786f62 refactor(help): Remove redundant required check
With us moving the required de-duplication up a level, it made this
check redundant.  By removing this check, we're more likely to have an
item in the `incls` which forces a smart usage and reduces the chance of
an `[ARGS]` or `[OPTIONS]`, so a couple of tests changed.
2022-05-05 17:02:49 -05:00
Ed Page
f7c2deaa47 fix(help): Don't show hidden arguments for conflicts
This makes it consistent with other errors where we show arguments to
the user.
2022-05-05 12:16:56 -05:00
Ed Page
2375a8ec2a
Merge pull request #3693 from epage/template
fix(help): Use display name instead of bin name (unstable-v4)
2022-05-05 12:01:01 -05:00
Ed Page
e4c096ea99 fix(help): Use display name instead of bin name (unstable-v4)
This will mean we won't have an awkard `.exe` in the middle on Windows

This means users can have a display name for their application rather
than it being dependent on the binary name it was run as

This means users can manually set it to use spaces instead of dashes for
separating things out.

Fixes #992
Fixes #1474
Fixes #1431
2022-05-04 20:46:49 -05:00
Ed Page
16791ab0a7 test(help): Update for display name change 2022-05-04 20:46:49 -05:00
Ed Page
41a8a5b351
Merge pull request #3692 from epage/break
fix(help): Don't wrap URLs
2022-05-04 16:47:33 -05:00
Ed Page
c7ff695581 fix(help): Don't wrap URLs
Confusingly, there are two similar but slightly different settings in
`textwrap`.  We need both set.

Fixes #3222
2022-05-04 16:00:08 -05:00
Ed Page
fff1b116eb
Merge pull request #3691 from epage/dash
fix(v4): Disallow leading dashes in long's
2022-05-04 15:53:00 -05:00
Ed Page
d3e36b1c90 fix(v4): Disallow leading dashes in long's
This is a step towards #3309.  We want to make longs and long aliases
more consistent in how they handle leading dashes.  There is more
flexibility offered in not stripping and it matches the v3 short
behavior of only taking the non-dash form.  This starts the process by
disallowing it completely so people will catch problems with it and
remove their existing leading dashes.  In a subsequent breaking release
we can remove the debug assert and allow triple-leading dashes.
2022-05-04 15:38:08 -05:00
Ed Page
8bea44d745 docs(help): Document name help_template variable 2022-05-04 14:43:58 -05:00
Ed Page
4da6374727
Merge pull request #3690 from epage/exclusive
fix(parser): Exclusive overrides required
2022-05-04 13:26:32 -05:00
Ed Page
61b8bbd218 fix(parser): Exclusive overrides required
`Arg::exclusive` is just another way of defining conflicts, so a
present-exclusive arg should override required like other conflicts.

Instead of going through the message of enumerating all other arguments
as exclusive, I shortcutted it and special case exclusive in the
required check like we do with conflicts.  The big downside is the
implicit coupling between the code paths rather than having a consistent
abstraction for covering conflicts.

This isn't a breaking change because if someone defined an exclusive arg
as a sibling to a required arg, the exclusive arg could never be used,
it always errored, and so no valid application can be written with it.

Fixes #3595
2022-05-04 12:25:44 -05:00
Ed Page
88472224dc perf(parser): Short-circuit exclusive validation 2022-05-04 12:13:51 -05:00
Ed Page
dedbabd402 fix(error): Don't duplicate args in usage
Gave up trying to decipher the existing logic for safe ways to
de-duplicate manually and switched to an `IndexSet` to enforce only one
of each argument exists.

Fixes #3556
2022-05-04 11:05:37 -05:00
Ed Page
7deb724e08
Merge pull request #3687 from clap-rs/dependabot/github_actions/actions/checkout-3
chore(deps): bump actions/checkout from 2 to 3
2022-05-04 08:24:09 -05:00
dependabot[bot]
269cde50d5
chore(deps): bump actions/checkout from 2 to 3
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-04 13:09:07 +00:00
Ed Page
7c90d68101
Merge pull request #3686 from clap-rs/dependabot/github_actions/actions/setup-python-3
chore(deps): bump actions/setup-python from 2 to 3
2022-05-04 08:08:39 -05:00
dependabot[bot]
a377f60011
chore(deps): bump actions/setup-python from 2 to 3
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 2 to 3.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-04 12:54:13 +00:00
Ed Page
cd102a29ea
Merge pull request #3685 from turrisxyz/feat/dependabot-github-actions
chore: Included githubactions in the dependabot config
2022-05-04 07:53:41 -05:00
naveensrinivasan
fcd78724f8
chore: Included githubactions in the dependabot config
This should help with keeping the GitHub actions updated on new releases. This will also help with keeping it secure.

Dependabot helps in keeping the supply chain secure https://docs.github.com/en/code-security/dependabot

GitHub actions up to date https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot

https://github.com/ossf/scorecard/blob/main/docs/checks.md#dependency-update-tool
Signed-off-by: naveensrinivasan <172697+naveensrinivasan@users.noreply.github.com>
2022-05-03 21:36:38 -05:00
Ed Page
efd2253660
Merge pull request #3683 from epage/multicall
docs(multicall): Expand documentation in prep for stablization
2022-05-03 16:44:37 -05:00
Ed Page
aa6026f43c docs(multicall): Expand documentation in prep for stablization 2022-05-03 16:26:01 -05:00
Ed Page
f48c29c888
Merge pull request #3682 from epage/tutorial
docs(tutorial): Link the derive API to the builder API
2022-05-03 16:22:03 -05:00
Ed Page
8824ad0df0 docs(tutorial): Link derive to builder API 2022-05-03 15:44:54 -05:00
Ed Page
253e579781 docs(tutorial): Gradually add concepts for args 2022-05-03 15:40:11 -05:00
Ed Page
97a5c27d74 docs(tutorial): Clarify subcommand wording 2022-05-03 15:40:08 -05:00
Ed Page
396ea15a41 docs(tutorial): Link Parser attributes with Command functions 2022-05-03 15:40:04 -05:00
Ed Page
a1d0f05091
Merge pull request #3680 from epage/exe
fix(help): Offer a html_template variable for display name
2022-05-03 14:50:51 -05:00
Ed Page
3cfea3223b fix(help): Offer a html_template variable for display name
This is a step towards #992.  When help renders the application name, it
uses the `bin` template variable which is just the `bin` name with
spaces converted to ` `.  While having `app.exe sub` makes sense,
`app.exe-sub` does not.

To get around needing this for usage, we've created a `display_name`
field that is fairly similar but
- The root name is the `name` and not `bin_name`
- We always join with `-`

This means that the derived `bin_name` will only show up in usage.

For now, the default template has not been updated as that is a minor
compatibility change and should be in a minor release, at least.  I was
worried this would be a full breaking change.  The main case I was
worried about was cargo subcommands but our tests show they should just
work.
2022-05-03 14:34:47 -05:00
Ed Page
0240ec5493 chore: Release 2022-05-02 13:02:10 -05:00
Ed Page
5543315d3b docs: Update chaneglog 2022-05-02 13:02:03 -05:00
Ed Page
d33812f8a7
Merge pull request #3677 from epage/multicall
fix(multicall): Polish user messages
2022-05-02 12:59:19 -05:00
Ed Page
af3b789e4c fix(multicall): Consistently skip multicall bin in help 2022-05-02 11:50:30 -05:00
Ed Page
8cd59fa4e5 fix(multicall): More consistent whitespace in errors 2022-05-02 11:01:14 -05:00
Ed Page
f9fdb99ee8 fix(multicall): Disallow args on multicall binary
Set expectations for how this can be used and to make sure the right
errors are given.
2022-05-02 09:33:09 -05:00
Ed Page
ce727f1951 fix(error): Render actual usage for unrecognized subcommands
For some reason this code path diverged and manually constructed a
usage, not following any of our patterns for doing so.
2022-05-02 09:25:44 -05:00
Ed Page
5cd1a4070b fix(multicall): Show subcommands are required 2022-05-02 09:13:44 -05:00
Ed Page
414ae57a2a fix(multicall): Improve bad multicall binary error
By removing all arguments, we've switched from an "unrecognized
argument" error to a "unrecognized subcommand" error.  While the wording
has room for improvement, its at least progress on #2862.
2022-05-02 09:12:12 -05:00
Ed Page
86b0ea6ad4
Merge pull request #3675 from epage/repl
docs: Add REPL example
2022-05-02 06:47:45 -05:00
Ed Page
ec4735a44e docs: Add REPL example
This is to help in cases like #3668 and #3673
2022-05-02 06:27:57 -05:00
Ed Page
ff53b087e0 chore: Remove dead code 2022-05-02 05:52:18 -05:00
Ed Page
5e02ac1c19 chore: Release 2022-04-30 20:21:33 -05:00
Ed Page
f7b00adacf docs: Update chaneglog 2022-04-30 20:21:22 -05:00
Ed Page
b37c0a1f0f
Merge pull request #3670 from epage/panic
fix(builder): Fully recurse when building
2022-04-30 20:20:15 -05:00
Ed Page
0ecb6f4869 fix(builder): Fully recurse when building
Besides addressing the panic from assuming things were built when they
weren't, this should fix some completion issues for some people.

Fixes #3669
2022-04-30 20:02:06 -05:00
Ed Page
c6849e2ebd fix(debug): Moe detail 2022-04-30 19:07:42 -05:00
Ed Page
3ca1b77094 chore: Fix manifest 2022-04-30 06:37:57 -05:00
Ed Page
b01256be36 chore: Release 2022-04-30 06:36:33 -05:00