-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Lintcheck and an options for command line options #6750
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
4 commits
Select commit
Hold shift + click to select a range
2a28ea0
Add command line options option to lintcheck crates config
flip1995 dd5c9b7
lintcheck: Slight improvements to the error reporting
flip1995 e3f5846
Reformat clippy_dev README
flip1995 79d7f4c
lintcheck: Add a note that -Wclippy::all is enabled by default
flip1995 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or 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,52 +1,77 @@ | ||
# Clippy Dev Tool | ||
# Clippy Dev Tool | ||
|
||
The Clippy Dev Tool is a tool to ease Clippy development, similar to `rustc`s `x.py`. | ||
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. | ||
|
||
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`. | ||
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. | ||
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. | ||
A crates-io source: | ||
````toml | ||
bitflags = {name = "bitflags", versions = ['1.2.1']} | ||
```` | ||
Requires a "name" and one or multiple "versions" to be checked. | ||
|
||
A 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. | ||
|
||
A local dependency: | ||
````toml | ||
clippy = {name = "clippy", path = "/home/user/clippy"} | ||
```` | ||
For when you want to add a repository that is not published yet. | ||
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 hidden or 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
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.