-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.pre-commit-config.yaml
More file actions
87 lines (80 loc) · 3.12 KB
/
Copy path.pre-commit-config.yaml
File metadata and controls
87 lines (80 loc) · 3.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
---
default_language_version:
node: system
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: cef0300fd0fc4d2a87a85fa2093c6b283ea36f4b # 5.0.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-toml
- id: check-merge-conflict
- id: mixed-line-ending
- id: detect-aws-credentials
args: ["--allow-missing-credentials"]
- id: detect-private-key
- repo: https://github.com/igorshubovych/markdownlint-cli
rev: 192ad822316c3a22fb3d3cc8aa6eafa0b8488360 # 0.45.0
hooks:
- id: markdownlint
- repo: local
hooks:
- id: cargo-test
name: cargo-test
language: system
entry: cargo test --locked
stages: [pre-commit, pre-merge-commit]
pass_filenames: false
files: \.rs$|Cargo\.(toml|lock)
- id: cargo-rustfmt
name: cargo-rustfmt
language: system
entry: cargo fmt --all -- --check
stages: [pre-commit, pre-merge-commit]
pass_filenames: false
files: \.rs$
- id: cargo-clippy
name: cargo-clippy
language: system
entry: cargo clippy --locked --all-targets -- -D warnings
stages: [pre-commit, pre-merge-commit]
pass_filenames: false
files: \.rs$
# Broken intra-doc links are warnings, not errors, so they reach docs.rs
# silently — and docs.rs is this crate's shop window, since a driver
# author reads the Backend trait docs before writing any code. -D warnings
# promotes them. Runs in well under a second because the dependency graph
# is already built by the hooks above.
#
# `--all-features` is load-bearing, not tidiness. `conformance` and
# `test_support` are gated on `#[cfg(any(test, feature = "test-support"))]`,
# and rustdoc documents the lib target *without* `cfg(test)` — so without
# this flag neither module is documented and neither is checked. The
# cargo-clippy hook above does not have the gap, because `--all-targets`
# builds the test target and that sets `cfg(test)`. Cargo.toml points
# docs.rs at `features = ["test-support"]`, so those are exactly the
# modules whose broken links ship to the shop window. One did: the
# conformance module's link to `info_group_inconsistencies` rendered as
# broken text while every local and CI run reported clean.
- id: cargo-doc
name: cargo-doc
language: system
entry: env RUSTDOCFLAGS=-Dwarnings cargo doc --locked --no-deps --all-features
stages: [pre-commit, pre-merge-commit]
pass_filenames: false
files: \.rs$|Cargo\.(toml|lock)
- id: cargo-sort
name: cargo-sort
language: system
entry: cargo sort --grouped --check
stages: [pre-commit, pre-merge-commit]
pass_filenames: false
files: Cargo\.toml$
- id: cargo-deny
name: cargo-deny
language: system
entry: cargo deny --locked check
stages: [pre-commit, pre-merge-commit]
pass_filenames: false
files: Cargo\.(toml|lock)|deny\.toml