Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Add rust linting commands to scripts-dev/lint.sh #14822

Merged
merged 4 commits into from
Jan 12, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/14822.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add `cargo fmt` and `cargo clippy` to the lint script.
33 changes: 33 additions & 0 deletions scripts-dev/lint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -101,10 +101,43 @@ echo
# Print out the commands being run
set -x

# Ensure the sort order of imports.
isort "${files[@]}"

# Ensure Python code conforms to an opinionated style.
python3 -m black "${files[@]}"

# Ensure the sample configuration file conforms to style checks.
./scripts-dev/config-lint.sh

# Catch any common programming mistakes in Python code.
# --quiet suppresses the update check.
ruff --quiet "${files[@]}"

# Catch any common programming mistakes in Rust code.
#
# --bins, --examples, --lib, --tests combined explicitly disable checking
# the benchmarks, which can fail due to `#![feature]` macros not being
# allowed on the stable rust toolchain (rustc error E0554).
#
# --allow-staged and --allow-dirty suppress clippy raising errors
# for uncommitted files. Only needed when using --fix.
#
# -D warnings disables the "warnings" lint.
#
# Using --fix has a tendency to cause subsequent runs of clippy to recompile
# rust code, which can slow down this script. Thus we run clippy without --fix
# first which is quick, and then re-run it with --fix if an error was found.
if ! cargo-clippy --bins --examples --lib --tests -- -D warnings > /dev/null 2>&1; then
cargo-clippy \
--bins --examples --lib --tests --allow-staged --allow-dirty --fix -- -D warnings
fi

# Ensure the formatting of Rust code.
cargo-fmt

# Ensure all Pydantic models use strict types.
./scripts-dev/check_pydantic_models.py lint

# Ensure type hints are correct.
mypy