Skip to content

Commit

Permalink
Merge pull request #4823 from epage/template
Browse files Browse the repository at this point in the history
chore: Update from '_rust/main' template
  • Loading branch information
epage authored Apr 3, 2023
2 parents d34b51a + feddd12 commit 0deb422
Show file tree
Hide file tree
Showing 19 changed files with 140 additions and 110 deletions.
10 changes: 10 additions & 0 deletions .clippy.toml
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
[workspace]
resolver = "2"
members = [
"clap_bench",
"clap_builder",
Expand Down
5 changes: 3 additions & 2 deletions LICENSE-APACHE
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
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
Loading

0 comments on commit 0deb422

Please sign in to comment.