Skip to content

Commit 8181445

Browse files
committed
Add a restricted set of clippy lints, required to pass
This sets up CI to check clippy with a restricted set of clippy groups. Some of the default groups have some excessive sets of lints that are either wrong or style choices that I would prefer to not mess over at this time. The lint groups can be adjusted later if it looks like something that would be helpful.
1 parent 14aeb0c commit 8181445

File tree

6 files changed

+20
-4
lines changed

6 files changed

+20
-4
lines changed

.github/workflows/main.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,16 @@ jobs:
8888
- name: Build and run tests (+ GUI)
8989
run: cargo test --locked --target x86_64-unknown-linux-gnu --test gui
9090

91+
# Ensure there are no clippy warnings
92+
clippy:
93+
runs-on: ubuntu-latest
94+
steps:
95+
- uses: actions/checkout@v4
96+
- name: Install Rust
97+
run: bash ci/install-rust.sh stable x86_64-unknown-linux-gnu
98+
- run: rustup component add clippy
99+
- run: cargo clippy --workspace --all-targets --no-deps -- -D warnings
100+
91101
# The success job is here to consolidate the total success/failure state of
92102
# all other jobs. This job is then included in the GitHub branch protection
93103
# rule which prevents merges unless all other jobs are passing. This makes
@@ -101,6 +111,7 @@ jobs:
101111
- rustfmt
102112
- aarch64-cross-builds
103113
- gui
114+
- clippy
104115
runs-on: ubuntu-latest
105116
steps:
106117
- run: jq --exit-status 'all(.result == "success")' <<< '${{ toJson(needs) }}'

Cargo.toml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
[workspace]
22
members = [".", "examples/remove-emphasis/mdbook-remove-emphasis"]
33

4+
[workspace.lints.clippy]
5+
all = { level = "allow", priority = -2 }
6+
correctness = { level = "warn", priority = -1 }
7+
complexity = { level = "warn", priority = -1 }
8+
needless-lifetimes = "allow" # Remove once 1.87 is stable, https://github.com/rust-lang/rust-clippy/issues/13514
9+
410
[package]
511
name = "mdbook"
612
version = "0.4.48"
@@ -91,3 +97,6 @@ test = false
9197
name = "gui"
9298
path = "tests/gui/runner.rs"
9399
crate-type = ["bin"]
100+
101+
[lints]
102+
workspace = true

src/book/mod.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
//!
66
//! [1]: ../index.html
77
8-
#[allow(clippy::module_inception)]
98
mod book;
109
mod init;
1110
mod summary;

src/preprocess/links.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,6 @@ enum RangeOrAnchor {
148148
}
149149

150150
// A range of lines specified with some include directive.
151-
#[allow(clippy::enum_variant_names)] // The prefix can't be removed, and is meant to mirror the contained type
152151
#[derive(PartialEq, Debug, Clone)]
153152
enum LineRange {
154153
Range(Range<usize>),

src/renderer/html_handlebars/hbs_renderer.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,6 @@ impl HtmlHandlebars {
207207
Ok(())
208208
}
209209

210-
#[allow(clippy::let_and_return)]
211210
fn post_process(
212211
&self,
213212
rendered: String,

tests/rendered_output.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -780,7 +780,6 @@ mod search {
780780
}
781781

782782
#[test]
783-
#[allow(clippy::float_cmp)]
784783
fn book_creates_reasonable_search_index() {
785784
let temp = DummyBook::new().build().unwrap();
786785
let md = MDBook::load(temp.path()).unwrap();

0 commit comments

Comments
 (0)