mirror of
https://github.com/astral-sh/ruff.git
synced 2025-07-07 21:25:08 +00:00
Make ecosystem all check more generic (#4629)
* Don't assume unique repo names in ecosystem checks This fixes a bug where previously repositories with the same name would have been overwritten. I tested with `scripts/check_ecosystem.py -v --checkouts target/checkouts_main .venv/bin/ruff target/release/ruff` and ruff 0.0.267 that changes are shown. I confirmed with `scripts/ecosystem_all_check.sh check --select RUF008` (next PR) that the checkouts are now complete. * Make ecosystem all check more generic This allows passing arguments to the ecosystem all check script, e.g. you can now do `scripts/ecosystem_all_check.sh check --select RUF008`. Tested with ``` $ cat target/ecosystem_all_results/*.stdout.txt | head src/fi_parliament_tools/parsing/data_structures.py:33:17: RUF008 Do not use mutable default values for dataclass attributes src/fi_parliament_tools/parsing/data_structures.py:76:17: RUF008 Do not use mutable default values for dataclass attributes src/fi_parliament_tools/parsing/data_structures.py:178:17: RUF008 Do not use mutable default values for dataclass attributes Found 3 errors. braid_triggers/tasks.py:46:17: RUF008 Do not use mutable default values for dataclass attributes Found 1 error. src/boards/RaspberryPi3.py:15:22: RUF008 Do not use mutable default values for dataclass attributes src/boards/board.py:21:26: RUF008 Do not use mutable default values for dataclass attributes src/boards/board.py:22:32: RUF008 Do not use mutable default values for dataclass attributes src/boards/board.py:23:37: RUF008 Do not use mutable default values for dataclass attributes $ cat target/ecosystem_all_results/*.stdout.txt | wc -l 115 ```
This commit is contained in:
parent
30e90838d0
commit
38297c08b4
3 changed files with 17 additions and 18 deletions
|
@ -6,6 +6,7 @@ It's a less elaborate, more hacky version of check_ecosystem.py
|
||||||
|
|
||||||
import json
|
import json
|
||||||
import subprocess
|
import subprocess
|
||||||
|
import sys
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from subprocess import CalledProcessError
|
from subprocess import CalledProcessError
|
||||||
from typing import NamedTuple, Optional
|
from typing import NamedTuple, Optional
|
||||||
|
@ -22,8 +23,9 @@ class Repository(NamedTuple):
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
def main() -> None:
|
||||||
|
ruff_args = sys.argv[1:]
|
||||||
checkouts = Path("checkouts")
|
checkouts = Path("checkouts")
|
||||||
out_dir = Path("ecosystem_fix_all_results")
|
out_dir = Path("ecosystem_all_results")
|
||||||
github_search_json = Path("github_search.jsonl")
|
github_search_json = Path("github_search.jsonl")
|
||||||
# Somehow it doesn't like plain ruff
|
# Somehow it doesn't like plain ruff
|
||||||
ruff = Path.cwd().joinpath("ruff")
|
ruff = Path.cwd().joinpath("ruff")
|
||||||
|
@ -54,14 +56,6 @@ def main() -> None:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
try:
|
try:
|
||||||
ruff_args = [
|
|
||||||
"check",
|
|
||||||
"--no-cache",
|
|
||||||
"--exit-zero",
|
|
||||||
"--select",
|
|
||||||
"ALL",
|
|
||||||
"--fix",
|
|
||||||
]
|
|
||||||
output = subprocess.run(
|
output = subprocess.run(
|
||||||
[ruff, *ruff_args, "."],
|
[ruff, *ruff_args, "."],
|
||||||
cwd=project_dir,
|
cwd=project_dir,
|
|
@ -1,9 +1,14 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# This is @konstin's setup for checking an entire checkout of ~2.1k packages for
|
# This is @konstin's setup for checking an entire checkout of ~3k packages for
|
||||||
# panics, autofix errors and similar problems.
|
# panics, autofix errors and similar problems.
|
||||||
#
|
#
|
||||||
# We put this in a docker container because processing random scraped code from GitHub is
|
# We put this in a docker container because processing random scraped code from GitHub is
|
||||||
# [kinda dangerous](https://moyix.blogspot.com/2022/09/someones-been-messing-with-my-subnormals.html)
|
# [kinda dangerous](https://moyix.blogspot.com/2022/09/someones-been-messing-with-my-subnormals.html)
|
||||||
|
#
|
||||||
|
# Usage:
|
||||||
|
# ```
|
||||||
|
# scripts/ecosystem_all_check.sh check --select RUF200
|
||||||
|
# ```
|
||||||
|
|
||||||
# https://stackoverflow.com/a/246128/3549270
|
# https://stackoverflow.com/a/246128/3549270
|
||||||
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
||||||
|
@ -11,16 +16,16 @@ SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
||||||
time docker run --rm -it \
|
time docker run --rm -it \
|
||||||
-w /app \
|
-w /app \
|
||||||
-v "${SCRIPT_DIR}/../target/checkouts:/app/checkouts" \
|
-v "${SCRIPT_DIR}/../target/checkouts:/app/checkouts" \
|
||||||
-v "${SCRIPT_DIR}/../target/ecosystem_fix_all_results:/app/ecosystem_fix_all_results" \
|
-v "${SCRIPT_DIR}/../target/ecosystem_all_results:/app/ecosystem_all_results" \
|
||||||
-v "${SCRIPT_DIR}/../target/release/ruff:/app/ruff" \
|
-v "${SCRIPT_DIR}/../target/x86_64-unknown-linux-musl/release/ruff:/app/ruff" \
|
||||||
-v "${SCRIPT_DIR}/../ecosystem_all.py:/app/ecosystem_all.py" \
|
-v "${SCRIPT_DIR}/../ecosystem_all.py:/app/ecosystem_all.py" \
|
||||||
-v "${SCRIPT_DIR}/../github_search.jsonl:/app/github_search.jsonl" \
|
-v "${SCRIPT_DIR}/../github_search.jsonl:/app/github_search.jsonl" \
|
||||||
-v "${SCRIPT_DIR}/../.venv-3.11:/app/.venv" \
|
-v "${SCRIPT_DIR}/../.venv-3.11:/app/.venv" \
|
||||||
-v "${SCRIPT_DIR}/ecosystem_fix_all_check_entrypoint.sh:/app/ecosystem_fix_all_check_entrypoint.sh" \
|
-v "${SCRIPT_DIR}/ecosystem_all_check_entrypoint.sh:/app/ecosystem_all_check_entrypoint.sh" \
|
||||||
-v "${SCRIPT_DIR}/ecosystem_fix_all_check.py:/app/ecosystem_fix_all_check.py" \
|
-v "${SCRIPT_DIR}/ecosystem_all_check.py:/app/ecosystem_all_check.py" \
|
||||||
python:3.11 ./ecosystem_fix_all_check_entrypoint.sh
|
python:3.11 ./ecosystem_all_check_entrypoint.sh "$@"
|
||||||
|
|
||||||
# grep the autofix errors
|
# grep the autofix errors
|
||||||
grep -R "the rule codes" "${SCRIPT_DIR}/../target/ecosystem_fix_all_results" | sort > "${SCRIPT_DIR}/../target/autofix-errors.txt"
|
grep -R "the rule codes" "${SCRIPT_DIR}/../target/ecosystem_all_results" | sort > "${SCRIPT_DIR}/../target/autofix-errors.txt"
|
||||||
# Make sure we didn't have an early exit
|
# Make sure we didn't have an early exit
|
||||||
echo "Done"
|
echo "Done"
|
|
@ -1,9 +1,9 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Wrapper for ecosystem_fix_all_check.py
|
# Wrapper for ecosystem_all_check.py
|
||||||
|
|
||||||
if [ ! -d ".venv/bin" ]; then
|
if [ ! -d ".venv/bin" ]; then
|
||||||
python -m venv .venv
|
python -m venv .venv
|
||||||
.venv/bin/pip install tqdm
|
.venv/bin/pip install tqdm
|
||||||
fi
|
fi
|
||||||
|
|
||||||
.venv/bin/python ecosystem_fix_all_check.py
|
.venv/bin/python ecosystem_all_check.py "$@"
|
Loading…
Add table
Add a link
Reference in a new issue