diff --git a/dev/checks.md b/dev/checks.md index 678c7b5..4d53699 100644 --- a/dev/checks.md +++ b/dev/checks.md @@ -5,13 +5,14 @@ (`openspec/changes/slice-0-skeleton/specs/quality-checks/spec.md`), решение D-8. Все цели запускаются **из корня репозитория сервиса** (`arm-core`, `tabular-parser`, `scan-gateway`); рецепты сами -переходят в `api/` и используют окружение `api/.venv`. Компоуз-инфраструктура — `docs/dev/docker-compose.yml` +переходят в `api/` и используют окружение `api/.venv`. Инфраструктура compose — `docs/dev/docker-compose.yml` (см. [`README.md`](README.md)); в workspace и в worktree `.wt/<срез>/` она лежит рядом как `../docs/dev/`. ## Общие цели -Одинаковый набор и одинаковая семантика во всех трёх сервисных репозиториях. Репозиторий вправе добавлять свои цели -(см. ниже), но не меняет смысл общих. +Одинаковый набор целей во всех трёх сервисных репозиториях; семантика, описанная ниже, — эталонная (реализации +расходятся в деталях, см. «Известные расхождения реализаций»). Репозиторий вправе добавлять свои цели (см. ниже), но +не меняет смысл общих. | Цель | Что делает | Нужен Docker / compose | |---|---|---| @@ -23,7 +24,8 @@ | `make check-full` | `make check` + `make test-integration` + сборка docker-образа (`docker build`); для `arm-core` — расширенный набор, см. ниже | да, `make up` и Docker | | `make up` | поднимает инфраструктуру из `../docs/dev/docker-compose.yml`; постоянные сервисы `postgres`, `nats`, `minio` | Docker | -Сводка шагов `make check`: `ruff check .` → `ruff format --check .` → `mypy src` → `pytest -m "not integration"`. +Сводка шагов `make check`: `ruff check .` → `ruff format --check .` → `mypy src` (в `arm-core` — `mypy src scripts`) → +`pytest -m "not integration"`. Любой ненулевой код останавливает цель на этом шаге, следующие не выполняются. `make check` не требует Docker, PostgreSQL, NATS и сети. @@ -76,7 +78,7 @@ docker compose -f ../docs/dev/docker-compose.yml --project-name arm-ka run --rm | Что | Где ищется | Что пропускается без него | |---|---|---| | `docs` | `../docs` или каталог из `ARM_KA_DOCS` | тест идентичности контракта `api/contracts/` с `docs/contracts/`; в `arm-core` ещё сверка с DBML в тестах (`dbml-check` как цель `make` требует DBML и падает без него) | -| `fixtures` | `../fixtures` или каталог из `ARM_KA_FIXTURES` | тесты с маркером `fixtures` (реальные данные, внутренний доступ): причина пропуска — «ARM_KA_FIXTURES недоступен …» | +| `fixtures` | `../fixtures` или каталог из `ARM_KA_FIXTURES` (в `arm-core`; в остальных сервисах — см. «Известные расхождения реализаций») | тесты с маркером `fixtures` (реальные данные, внутренний доступ): причина пропуска — «ARM_KA_FIXTURES недоступен …» (в `arm-core`) | Пример (docs и fixtures лежат не рядом): @@ -113,7 +115,8 @@ PR убедитесь, что `docs` и `fixtures` доступны (пропу ## Порядок перед PR 1. Поднять инфраструктуру: `make up` (в репозитории сервиса). Убедиться, что `docs` и `fixtures` доступны (рядом или через - `ARM_KA_DOCS`, `ARM_KA_FIXTURES`). + `ARM_KA_DOCS`, `ARM_KA_FIXTURES` — последняя поддерживается только в `arm-core`, см. «Известные расхождения + реализаций»). 2. `make check` — быстрые проверки. Исправлять до зелёного. 3. `make check-full` — полная проверка (интеграционные тесты, образ; для `arm-core` — ещё DBML, миграции, `web`). 4. Если менялись `contracts/`, `model/` или спека в репозитории `docs`: в нём `make check`, затем в каждом затронутом