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

chore: Update from '_rust/main' template #4823

Merged
merged 16 commits into from Apr 3, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
10 changes: 10 additions & 0 deletions .clippy.toml
@@ -1 +1,11 @@
msrv = "1.64.0" # MSRV
warn-on-all-wildcard-imports = true
allow-expect-in-tests = true
allow-unwrap-in-tests = true
allow-dbg-in-tests = true
disallowed-methods = [
{ path = "std::option::Option::map_or", reason = "use `map(..).unwrap_or(..)`" },
{ path = "std::option::Option::map_or_else", reason = "use `map(..).unwrap_or_else(..)`" },
{ path = "std::result::Result::map_or", reason = "use `map(..).unwrap_or(..)`" },
{ path = "std::result::Result::map_or_else", reason = "use `map(..).unwrap_or_else(..)`" },
]
26 changes: 26 additions & 0 deletions .github/renovate.json5
Expand Up @@ -4,7 +4,33 @@
],
"semanticCommits": "enabled",
"configMigration": true,
"dependencyDashboard": true,
"regexManagers": [
{
"fileMatch": [
"^rust-toolchain\\.toml$",
"Cargo.toml$",
"clippy.toml$",
"\.clippy.toml$",
"^\.github/workflows/ci.yml$",
"^\.github/workflows/rust-next.yml$",
],
"matchStrings": [
"MSRV.*?(?<currentValue>\\d+\\.\\d+(\\.\\d+)?)",
"(?<currentValue>\\d+\\.\\d+(\\.\\d+)?).*?MSRV",
],
"depNameTemplate": "rust",
"packageNameTemplate": "rust-lang/rust",
"datasourceTemplate": "github-releases",
}
],
"packageRules": [
{
"commitMessageTopic": "MSRV",
"matchManagers": ["regex"],
"matchPackageNames": ["rust"],
"stabilityDays": 252, // 6 releases * 6 weeks per release * 7 days per week
},
// Goals:
// - Keep version reqs low, ignoring compatible normal/build dependencies
// - Take advantage of latest dev-dependencies
Expand Down
6 changes: 3 additions & 3 deletions .github/settings.yml
@@ -1,9 +1,9 @@
# These settings are synced to GitHub by https://probot.github.io/apps/settings/

repository:
description: A full featured, fast Command Line Argument Parser for Rust
homepage: docs.rs/clap
topics: rust cli command-line argparse clap
description: "A full featured, fast Command Line Argument Parser for Rust"
homepage: "docs.rs/clap"
topics: "rust cli command-line argparse clap"
has_issues: true
has_projects: false
has_wiki: false
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/audit.yml
Expand Up @@ -10,7 +10,7 @@ on:
- '**/Cargo.lock'
push:
branches:
- main
- master

env:
RUST_BACKTRACE: 1
Expand Down
41 changes: 18 additions & 23 deletions .github/workflows/ci.yml
@@ -1,12 +1,18 @@
name: CI

permissions:
contents: read

on:
pull_request:
push:
branches: ["*master"]
schedule:
- cron: '3 3 3 * *'
permissions:
contents: read
branches:
- "*master"

env:
RUST_BACKTRACE: 1
CARGO_TERM_COLOR: always
CLICOLOR: 1

jobs:
ci:
Expand Down Expand Up @@ -54,11 +60,9 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install Rust
uses: actions-rs/toolchain@v1
uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ matrix.rust }}
profile: minimal
override: true
- uses: Swatinem/rust-cache@v2
- name: Build
run: make build-${{matrix.features}}
Expand Down Expand Up @@ -101,11 +105,10 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install rust
uses: actions-rs/toolchain@v1
uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ matrix.rust }}
target: ${{ matrix.target }}
override: true
targets: ${{ matrix.target }}
- uses: Swatinem/rust-cache@v2
- name: Check
run: make check-${{ matrix.features }}
Expand All @@ -122,11 +125,9 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install Rust
uses: actions-rs/toolchain@v1
uses: dtolnay/rust-toolchain@stable
with:
toolchain: 1.64.0 # MSRV
profile: minimal
override: true
- uses: Swatinem/rust-cache@v2
- name: UI Tests
run: make test-ui-${{ matrix.features }}
Expand All @@ -137,11 +138,9 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install Rust
uses: actions-rs/toolchain@v1
uses: dtolnay/rust-toolchain@stable
with:
toolchain: 1.64.0 # MSRV
profile: minimal
override: true
- uses: Swatinem/rust-cache@v2
- name: Check documentation
env:
Expand All @@ -154,13 +153,11 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install Rust
uses: actions-rs/toolchain@v1
uses: dtolnay/rust-toolchain@stable
with:
# Not MSRV because its harder to jump between versions and people are
# more likely to have stable
toolchain: stable
profile: minimal
override: true
components: rustfmt
- uses: Swatinem/rust-cache@v2
- name: Check formatting
Expand All @@ -172,11 +169,9 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install Rust
uses: actions-rs/toolchain@v1
uses: dtolnay/rust-toolchain@stable
with:
toolchain: 1.64.0 # MSRV
profile: minimal
override: true
components: clippy
- uses: Swatinem/rust-cache@v2
- name: Lint (ultra-minimal)
Expand Down
8 changes: 8 additions & 0 deletions .github/workflows/committed.yml
Expand Up @@ -3,6 +3,14 @@
name: Lint Commits
on: [pull_request]

permissions:
contents: read

env:
RUST_BACKTRACE: 1
CARGO_TERM_COLOR: always
CLICOLOR: 1

jobs:
committed:
name: Lint Commits
Expand Down
12 changes: 10 additions & 2 deletions .github/workflows/pre-commit.yml
@@ -1,9 +1,17 @@
name: pre-commit

permissions: {} # none

on:
pull_request:
push:
branches: ["*master"]
permissions: {} # none
branches: [master]

env:
RUST_BACKTRACE: 1
CARGO_TERM_COLOR: always
CLICOLOR: 1

jobs:
pre-commit:
permissions:
Expand Down
65 changes: 10 additions & 55 deletions .github/workflows/rust-next.yml
@@ -1,9 +1,16 @@
name: rust-next

permissions:
contents: read

on:
schedule:
- cron: '3 3 3 * *'
permissions:
contents: read

env:
RUST_BACKTRACE: 1
CARGO_TERM_COLOR: always
CLICOLOR: 1

jobs:
test:
Expand Down Expand Up @@ -50,11 +57,9 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install Rust
uses: actions-rs/toolchain@v1
uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ matrix.rust }}
profile: minimal
override: true
- uses: Swatinem/rust-cache@v2
- name: Build
run: make build-${{matrix.features}}
Expand All @@ -65,53 +70,3 @@ jobs:
- name: Test (ultra-minimal)
if: matrix.build == 'minimal'
run: make test-minimal ARGS='--manifest-path Cargo.toml'
rustfmt:
name: rustfmt
strategy:
matrix:
rust:
- stable
- beta
continue-on-error: ${{ matrix.rust != 'stable' }}
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust }}
profile: minimal
override: true
components: rustfmt
- uses: Swatinem/rust-cache@v2
- name: Check formatting
run: cargo fmt --all -- --check
clippy:
name: clippy
strategy:
matrix:
rust:
- 1.64.0 # MSRV
- stable
continue-on-error: ${{ matrix.rust != '1.64.0' }} # MSRV
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust }}
profile: minimal
override: true
components: clippy
- uses: Swatinem/rust-cache@v2
- name: Lint (ultra-minimal)
run: make clippy-minimal ARGS='--manifest-path Cargo.toml'
- name: Lint Minimal
run: make clippy-minimal
- name: Lint All
run: make clippy-full
- name: Lint (release)
run: make clippy-release
8 changes: 7 additions & 1 deletion .github/workflows/spelling.yml
@@ -1,9 +1,15 @@
name: Spelling
on: [pull_request]

permissions:
contents: read

on: [pull_request]

env:
RUST_BACKTRACE: 1
CARGO_TERM_COLOR: always
CLICOLOR: 1

jobs:
spelling:
name: Spell Check with Typos
Expand Down
14 changes: 12 additions & 2 deletions .pre-commit-config.yaml
@@ -1,6 +1,11 @@
exclude: |
(?x)^(
tests/.*|
CHANGELOG.md
)$
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.3.0
rev: v4.3.0
hooks:
- id: check-yaml
stages: [commit]
Expand All @@ -14,8 +19,13 @@ repos:
stages: [commit]
- id: detect-private-key
stages: [commit]
- repo: https://github.com/crate-ci/typos
rev: v1.11.1
hooks:
- id: typos
stages: [commit]
- repo: https://github.com/crate-ci/committed
rev: v1.0.1
rev: v1.0.4
hooks:
- id: committed
stages: [commit-msg]
1 change: 1 addition & 0 deletions Cargo.toml
@@ -1,4 +1,5 @@
[workspace]
resolver = "2"
members = [
"clap_bench",
"clap_builder",
Expand Down
5 changes: 3 additions & 2 deletions LICENSE-APACHE
Expand Up @@ -178,15 +178,15 @@
APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
boilerplate notice, with the fields enclosed by brackets "{}"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright [yyyy] [name of copyright owner]
Copyright {yyyy} {name of copyright owner}

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand All @@ -199,3 +199,4 @@
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

4 changes: 1 addition & 3 deletions LICENSE-MIT
@@ -1,6 +1,4 @@
The MIT License (MIT)

Copyright (c) 2015-2022 Kevin B. Knapp and Clap Contributors
Copyright (c) Individual contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
4 changes: 3 additions & 1 deletion clap_builder/src/parser/arg_matcher.rs
Expand Up @@ -130,7 +130,9 @@ impl ArgMatcher {
}

pub(crate) fn check_explicit(&self, arg: &Id, predicate: &ArgPredicate) -> bool {
self.get(arg).map_or(false, |a| a.check_explicit(predicate))
self.get(arg)
.map(|a| a.check_explicit(predicate))
.unwrap_or_default()
}

pub(crate) fn start_custom_arg(&mut self, arg: &Arg, source: ValueSource) {
Expand Down