From 792042ffad9c77c611cd3e0ab3788259cfc8d270 Mon Sep 17 00:00:00 2001 From: Andrey Epifancev Date: Sun, 4 Oct 2026 05:27:00 +0400 Subject: [PATCH] =?UTF-8?q?docs(dev):=20checks.md=20=E2=80=94=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=BC=D0=B5=D1=87=D0=B0=D0=BD=D0=B8=D1=8F=20=D1=80=D0=B5?= =?UTF-8?q?=D0=B2=D1=8C=D1=8E=20=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B8=204.1?= =?UTF-8?q?=20(T1.1=E2=80=93T1.4)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Уточнены: fixtures только в arm-core, mypy scripts у arm-core, формулировка про инфраструктуру compose и «одинаковую семантику» целей. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2 --- dev/checks.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) 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`, затем в каждом затронутом