chore(tooling): pre-commit, pyproject и uv.lock — один ruff 0.15.20 (#2864) #3021

Merged
bot-backend merged 1 commit from chore/2864-ruff-pin into main 2026-08-21 11:37:24 +00:00

1 commit

Author SHA1 Message Date
9457274c92 chore(tooling): pre-commit, pyproject и uv.lock — один ruff 0.15.20 (#2864)
All checks were successful
CI Trade-In / changes (pull_request) Successful in 7s
CI / changes (pull_request) Successful in 9s
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Successful in 3m8s
CI Trade-In / backend-tests (pull_request) Successful in 5m40s
CI / backend-tests (pull_request) Successful in 17m53s
Почему: хук пинил ruff v0.7.4, CI и `uv run ruff format` брали ruff из
lock'ов (0.15.12 в backend/, 0.15.20 в tradein-mvp/). Разные версии
по-разному форматируют длинные assert-сообщения — хук переписывал
нетронутые строки и ронял коммит на каждом касании файла (сегодня трижды),
а следующий `ruff format` возвращал как было. Дрейф нигде не краснел:
`ruff format --check` намеренно не в CI.

Что: rev → v0.15.20 (тег есть), `ruff==0.15.20` в обоих pyproject (с `>=`
любой `uv lock --upgrade` снова уведёт lock от хука), `uv lock` — в
lock'ах поменялся только ruff. Гейт test_2864_ruff_version_alignment.py:
rev == версии в обоих lock'ах == пин в pyproject; на origin/main красный
по значению (v0.7.4 ≠ 0.15.12 ≠ 0.15.20). `ruff check` 0.15.20 зелёный
на обоих проектах.

Нормализация 160 файлов под 0.15.20 — отдельным PR (только формат).

Refs #2864
2026-08-21 15:25:50 +05:00