Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
lintcheck: move out of clippy-dev into own crate
- Loading branch information
1 parent
99afc6e
commit 2546e6f
Showing
8 changed files
with
199 additions
and
59 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,7 @@ | ||
[alias] | ||
uitest = "test --test compile-test" | ||
dev = "run --target-dir clippy_dev/target --package clippy_dev --bin clippy_dev --manifest-path clippy_dev/Cargo.toml --" | ||
dev-lintcheck = "run --target-dir clippy_dev/target --package clippy_dev --bin clippy_dev --manifest-path clippy_dev/Cargo.toml --features lintcheck -- lintcheck" | ||
dev-lintcheck = "run --target-dir lintcheck/target --package lintcheck --bin lintcheck --manifest-path lintcheck/Cargo.toml -- " | ||
|
||
[build] | ||
rustflags = ["-Zunstable-options"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
[package] | ||
name = "lintcheck" | ||
version = "0.0.1" | ||
authors = ["Matthias Krüger <matthias.krueger@famsik.de>"] | ||
edition = "2018" | ||
|
||
[dependencies] | ||
clap = "2.33" | ||
flate2 = {version = "1.0.19"} | ||
fs_extra = {version = "1.2.0"} | ||
rayon = {version = "1.5.0"} | ||
serde = {version = "1.0", features = ["derive"]} | ||
serde_json = {version = "1.0"} | ||
tar = {version = "0.4.30"} | ||
toml = {version = "0.5"} | ||
ureq = {version = "2.0.0-rc3"} | ||
|
||
[features] | ||
deny-warnings = [] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
# Clippy Dev Tool | ||
|
||
The Clippy Dev Tool is a tool to ease Clippy development, similar to `rustc`s | ||
`x.py`. | ||
|
||
Functionalities (incomplete): | ||
|
||
## `lintcheck` | ||
|
||
Runs clippy on a fixed set of crates read from | ||
`clippy_dev/lintcheck_crates.toml` and saves logs of the lint warnings into the | ||
repo. We can then check the diff and spot new or disappearing warnings. | ||
|
||
From the repo root, run: | ||
|
||
``` | ||
cargo run --target-dir clippy_dev/target --package clippy_dev \ | ||
--bin clippy_dev --manifest-path clippy_dev/Cargo.toml --features lintcheck -- lintcheck | ||
``` | ||
|
||
or | ||
|
||
``` | ||
cargo dev-lintcheck | ||
``` | ||
|
||
By default the logs will be saved into | ||
`lintcheck-logs/lintcheck_crates_logs.txt`. | ||
|
||
You can set a custom sources.toml by adding `--crates-toml custom.toml` or using | ||
`LINTCHECK_TOML="custom.toml"` where `custom.toml` must be a relative path from | ||
the repo root. | ||
|
||
The results will then be saved to `lintcheck-logs/custom_logs.toml`. | ||
|
||
### Configuring the Crate Sources | ||
|
||
The sources to check are saved in a `toml` file. There are three types of | ||
sources. | ||
|
||
1. Crates-io Source | ||
|
||
```toml | ||
bitflags = {name = "bitflags", versions = ['1.2.1']} | ||
``` | ||
Requires a "name" and one or multiple "versions" to be checked. | ||
|
||
2. `git` Source | ||
````toml | ||
puffin = {name = "puffin", git_url = "https://github.com/EmbarkStudios/puffin", git_hash = "02dd4a3"} | ||
```` | ||
Requires a name, the url to the repo and unique identifier of a commit, | ||
branch or tag which is checked out before linting. There is no way to always | ||
check `HEAD` because that would lead to changing lint-results as the repo | ||
would get updated. If `git_url` or `git_hash` is missing, an error will be | ||
thrown. | ||
|
||
3. Local Dependency | ||
```toml | ||
clippy = {name = "clippy", path = "/home/user/clippy"} | ||
``` | ||
For when you want to add a repository that is not published yet. | ||
|
||
#### Command Line Options (optional) | ||
|
||
```toml | ||
bitflags = {name = "bitflags", versions = ['1.2.1'], options = ['-Wclippy::pedantic', '-Wclippy::cargo']} | ||
``` | ||
|
||
It is possible to specify command line options for each crate. This makes it | ||
possible to only check a crate for certain lint groups. If no options are | ||
specified, the lint groups `clippy::all`, `clippy::pedantic`, and | ||
`clippy::cargo` are checked. If an empty array is specified only `clippy::all` | ||
is checked. | ||
|
||
**Note:** `-Wclippy::all` is always enabled by default, unless `-Aclippy::all` | ||
is explicitly specified in the options. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
[crates] | ||
# some of these are from cargotest | ||
cargo = {name = "cargo", versions = ['0.49.0']} | ||
iron = {name = "iron", versions = ['0.6.1']} | ||
ripgrep = {name = "ripgrep", versions = ['12.1.1']} | ||
xsv = {name = "xsv", versions = ['0.13.0']} | ||
# commented out because of 173K clippy::match_same_arms msgs in language_type.rs | ||
#tokei = { name = "tokei", versions = ['12.0.4']} | ||
rayon = {name = "rayon", versions = ['1.5.0']} | ||
serde = {name = "serde", versions = ['1.0.118']} | ||
# top 10 crates.io dls | ||
bitflags = {name = "bitflags", versions = ['1.2.1']} | ||
# crash = {name = "clippy_crash", path = "/tmp/clippy_crash"} | ||
libc = {name = "libc", versions = ['0.2.81']} | ||
log = {name = "log", versions = ['0.4.11']} | ||
proc-macro2 = {name = "proc-macro2", versions = ['1.0.24']} | ||
quote = {name = "quote", versions = ['1.0.7']} | ||
rand = {name = "rand", versions = ['0.7.3']} | ||
rand_core = {name = "rand_core", versions = ['0.6.0']} | ||
regex = {name = "regex", versions = ['1.3.2']} | ||
syn = {name = "syn", versions = ['1.0.54']} | ||
unicode-xid = {name = "unicode-xid", versions = ['0.2.1']} | ||
# some more of dtolnays crates | ||
anyhow = {name = "anyhow", versions = ['1.0.38']} | ||
async-trait = {name = "async-trait", versions = ['0.1.42']} | ||
cxx = {name = "cxx", versions = ['1.0.32']} | ||
ryu = {name = "ryu", version = ['1.0.5']} | ||
serde_yaml = {name = "serde_yaml", versions = ['0.8.17']} | ||
thiserror = {name = "thiserror", versions = ['1.0.24']} | ||
# some embark crates, there are other interesting crates but | ||
# unfortunately adding them increases lintcheck runtime drastically | ||
cfg-expr = {name = "cfg-expr", versions = ['0.7.1']} | ||
puffin = {name = "puffin", git_url = "https://github.com/EmbarkStudios/puffin", git_hash = "02dd4a3"} | ||
rpmalloc = {name = "rpmalloc", versions = ['0.2.0']} | ||
tame-oidc = {name = "tame-oidc", versions = ['0.1.0']} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters