chore: Update from '_rust/main' template

This commit is contained in:
Ed Page 2023-03-30 01:22:54 -05:00
commit 376ae678a4
14 changed files with 110 additions and 93 deletions

View file

@ -1 +1,12 @@
msrv = "1.64.0" # MSRV 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
allow-print-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(..)`" },
]

View file

@ -4,7 +4,33 @@
], ],
"semanticCommits": "enabled", "semanticCommits": "enabled",
"configMigration": true, "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": [ "packageRules": [
{
"commitMessageTopic": "MSRV",
"matchManagers": ["regex"],
"matchPackageNames": ["rust"],
"stabilityDays": 252, // 6 releases * 6 weeks per release * 7 days per week
},
// Goals: // Goals:
// - Keep version reqs low, ignoring compatible normal/build dependencies // - Keep version reqs low, ignoring compatible normal/build dependencies
// - Take advantage of latest dev-dependencies // - Take advantage of latest dev-dependencies

View file

@ -1,9 +1,9 @@
# These settings are synced to GitHub by https://probot.github.io/apps/settings/ # These settings are synced to GitHub by https://probot.github.io/apps/settings/
repository: repository:
description: A full featured, fast Command Line Argument Parser for Rust description: "A full featured, fast Command Line Argument Parser for Rust"
homepage: docs.rs/clap homepage: "docs.rs/clap"
topics: rust cli command-line argparse clap topics: "rust cli command-line argparse clap"
has_issues: true has_issues: true
has_projects: false has_projects: false
has_wiki: false has_wiki: false

View file

@ -10,7 +10,7 @@ on:
- '**/Cargo.lock' - '**/Cargo.lock'
push: push:
branches: branches:
- main - master
env: env:
RUST_BACKTRACE: 1 RUST_BACKTRACE: 1

View file

@ -1,12 +1,18 @@
name: CI name: CI
permissions:
contents: read
on: on:
pull_request: pull_request:
push: push:
branches: ["*master"] branches:
schedule: - "*master"
- cron: '3 3 3 * *'
permissions: env:
contents: read RUST_BACKTRACE: 1
CARGO_TERM_COLOR: always
CLICOLOR: 1
jobs: jobs:
ci: ci:
@ -54,11 +60,9 @@ jobs:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: Install Rust - name: Install Rust
uses: actions-rs/toolchain@v1 uses: dtolnay/rust-toolchain@stable
with: with:
toolchain: ${{ matrix.rust }} toolchain: ${{ matrix.rust }}
profile: minimal
override: true
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
- name: Build - name: Build
run: make build-${{matrix.features}} run: make build-${{matrix.features}}
@ -101,11 +105,10 @@ jobs:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: Install rust - name: Install rust
uses: actions-rs/toolchain@v1 uses: dtolnay/rust-toolchain@stable
with: with:
toolchain: ${{ matrix.rust }} toolchain: ${{ matrix.rust }}
target: ${{ matrix.target }} targets: ${{ matrix.target }}
override: true
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
- name: Check - name: Check
run: make check-${{ matrix.features }} run: make check-${{ matrix.features }}
@ -122,11 +125,9 @@ jobs:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: Install Rust - name: Install Rust
uses: actions-rs/toolchain@v1 uses: dtolnay/rust-toolchain@stable
with: with:
toolchain: 1.64.0 # MSRV toolchain: 1.64.0 # MSRV
profile: minimal
override: true
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
- name: UI Tests - name: UI Tests
run: make test-ui-${{ matrix.features }} run: make test-ui-${{ matrix.features }}
@ -137,11 +138,9 @@ jobs:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: Install Rust - name: Install Rust
uses: actions-rs/toolchain@v1 uses: dtolnay/rust-toolchain@stable
with: with:
toolchain: 1.64.0 # MSRV toolchain: 1.64.0 # MSRV
profile: minimal
override: true
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
- name: Check documentation - name: Check documentation
env: env:
@ -154,13 +153,11 @@ jobs:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: Install Rust - name: Install Rust
uses: actions-rs/toolchain@v1 uses: dtolnay/rust-toolchain@stable
with: with:
# Not MSRV because its harder to jump between versions and people are # Not MSRV because its harder to jump between versions and people are
# more likely to have stable # more likely to have stable
toolchain: stable toolchain: stable
profile: minimal
override: true
components: rustfmt components: rustfmt
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
- name: Check formatting - name: Check formatting
@ -172,11 +169,9 @@ jobs:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: Install Rust - name: Install Rust
uses: actions-rs/toolchain@v1 uses: dtolnay/rust-toolchain@stable
with: with:
toolchain: 1.64.0 # MSRV toolchain: 1.64.0 # MSRV
profile: minimal
override: true
components: clippy components: clippy
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
- name: Lint (ultra-minimal) - name: Lint (ultra-minimal)

View file

@ -3,6 +3,14 @@
name: Lint Commits name: Lint Commits
on: [pull_request] on: [pull_request]
permissions:
contents: read
env:
RUST_BACKTRACE: 1
CARGO_TERM_COLOR: always
CLICOLOR: 1
jobs: jobs:
committed: committed:
name: Lint Commits name: Lint Commits

View file

@ -1,9 +1,17 @@
name: pre-commit name: pre-commit
permissions: {} # none
on: on:
pull_request: pull_request:
push: push:
branches: ["*master"] branches: [master]
permissions: {} # none
env:
RUST_BACKTRACE: 1
CARGO_TERM_COLOR: always
CLICOLOR: 1
jobs: jobs:
pre-commit: pre-commit:
permissions: permissions:

View file

@ -1,9 +1,16 @@
name: rust-next name: rust-next
permissions:
contents: read
on: on:
schedule: schedule:
- cron: '3 3 3 * *' - cron: '3 3 3 * *'
permissions:
contents: read env:
RUST_BACKTRACE: 1
CARGO_TERM_COLOR: always
CLICOLOR: 1
jobs: jobs:
test: test:
@ -50,11 +57,9 @@ jobs:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: Install Rust - name: Install Rust
uses: actions-rs/toolchain@v1 uses: dtolnay/rust-toolchain@stable
with: with:
toolchain: ${{ matrix.rust }} toolchain: ${{ matrix.rust }}
profile: minimal
override: true
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
- name: Build - name: Build
run: make build-${{matrix.features}} run: make build-${{matrix.features}}
@ -65,53 +70,3 @@ jobs:
- name: Test (ultra-minimal) - name: Test (ultra-minimal)
if: matrix.build == 'minimal' if: matrix.build == 'minimal'
run: make test-minimal ARGS='--manifest-path Cargo.toml' 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

View file

@ -1,9 +1,15 @@
name: Spelling name: Spelling
on: [pull_request]
permissions: permissions:
contents: read contents: read
on: [pull_request]
env:
RUST_BACKTRACE: 1
CARGO_TERM_COLOR: always
CLICOLOR: 1
jobs: jobs:
spelling: spelling:
name: Spell Check with Typos name: Spell Check with Typos

View file

@ -1,6 +1,6 @@
repos: repos:
- repo: https://github.com/pre-commit/pre-commit-hooks - repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.3.0 rev: v4.3.0
hooks: hooks:
- id: check-yaml - id: check-yaml
stages: [commit] stages: [commit]
@ -14,8 +14,13 @@ repos:
stages: [commit] stages: [commit]
- id: detect-private-key - id: detect-private-key
stages: [commit] 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 - repo: https://github.com/crate-ci/committed
rev: v1.0.1 rev: v1.0.4
hooks: hooks:
- id: committed - id: committed
stages: [commit-msg] stages: [commit-msg]

View file

@ -1,4 +1,5 @@
[workspace] [workspace]
resolver = "2"
members = [ members = [
"clap_bench", "clap_bench",
"clap_builder", "clap_builder",

View file

@ -178,7 +178,7 @@
APPENDIX: How to apply the Apache License to your work. APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following 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 replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a comment syntax for the file format. We also recommend that a
@ -186,7 +186,7 @@
same "printed page" as the copyright notice for easier same "printed page" as the copyright notice for easier
identification within third-party archives. 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"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -199,3 +199,4 @@
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and See the License for the specific language governing permissions and
limitations under the License. limitations under the License.

View file

@ -1,6 +1,4 @@
The MIT License (MIT) Copyright (c) Individual contributors
Copyright (c) 2015-2022 Kevin B. Knapp and Clap Contributors
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View file

@ -35,9 +35,12 @@ unlicensed = "deny"
# [possible values: any SPDX 3.11 short identifier (+ optional exception)]. # [possible values: any SPDX 3.11 short identifier (+ optional exception)].
allow = [ allow = [
"MIT", "MIT",
"MIT-0",
"Apache-2.0", "Apache-2.0",
"BSD-3-Clause",
"MPL-2.0",
"Unicode-DFS-2016", "Unicode-DFS-2016",
#"Apache-2.0 WITH LLVM-exception", "CC0-1.0",
] ]
# List of explicitly disallowed licenses # List of explicitly disallowed licenses
# See https://spdx.org/licenses/ for list of possible licenses # See https://spdx.org/licenses/ for list of possible licenses