refactor(make): корень — про стенд, генератор — за своей дверью
- Зачем: - корневые цели смешивали два уровня: пять из шестнадцати начинались с cd generator. - цель, названная общерепозиторной, охватывала 31 файл Python из 34: даги и Superset не видел ни линт, ни типы. - Что: - lint, typecheck, test, docs и inventory переехали в новый generator/Makefile. - корневой lint заведён по коду стенда — dags и infra/superset — с явными путями и закреплённой версией ruff. - заведён корневой ruff.toml: тот же список правил, target-version по младшему Python в образах стенда. - цели корня сгруппированы по использованию, осталось двенадцать. - два файла дагов переформатированы под новую проверку. - карта проверок, оба README, спека генератора и AGENTS.md приведены к двум дверям. - Проверка: - make lint; make config-test — зелёные. - make -C generator lint; typecheck; test — зелёные, 407 тестов. - ruff check --show-files: из корня ровно три файла стенда, из generator/ — только его. - цена корневого lint замерена (0,4 с) и вписана в карту проверок. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
# Настройка ruff для кода стенда — дагов и Superset. У генератора своя,
|
||||
# в `generator/pyproject.toml`: конфиг ruff ищется вверх по дереву от файла,
|
||||
# поэтому ближний к генератору выигрывает и этот его не подменяет.
|
||||
#
|
||||
# Здесь отдельный файл, а не `pyproject.toml`, потому что пакета в корне нет:
|
||||
# корневой `pyproject.toml` завёл бы в репозитории второй проект `uv` — с
|
||||
# локом и окружением, — которого стенду не нужно.
|
||||
|
||||
# На каком Python побежит код, ruff сам не знает: у генератора он берёт ответ
|
||||
# из `requires-python`, а у стенда спрашивать некого — даги и Superset живут
|
||||
# внутри образов. Замер 9 августа 2026 года: `apache/airflow:3.3.0` несёт
|
||||
# Python 3.13.14, `apache/superset:6.1.0` — 3.10.20. Стоит младшая из двух,
|
||||
# иначе ruff предложил бы Superset синтаксис, которого его Python не знает.
|
||||
# Совпадает со значением ruff по умолчанию, и записано именно поэтому:
|
||||
# сменится умолчание — проверка не поедет следом молча.
|
||||
target-version = "py310"
|
||||
|
||||
[lint]
|
||||
select = ["E", "F", "I", "UP", "B"]
|
||||
Reference in New Issue
Block a user