arm-ka-docs/Makefile
Andrey Epifancev e70f589112 DBML v5.23 (elimination_rules_version NOT NULL), §5 без каскада, пары ВГО по версии (#164, AURORA-1536)
Решения владельца 23.10.2026 по ревью arm-core #175:
- consolidation_version.elimination_rules_version — not null, существующим
  версиям номер проставляет миграция по дате создания;
- §5: каскад по остатку отменён (21.10), правила считаются отдельно до
  разнесения строк AURORA-1751; суммы сторон со знаком, при min <= 0 процент
  не считается; отрицательные строки в упаковку не идут (NEGATIVE_AMOUNT);
  группы сортируются по проценту расхождения; выдача — список троек версии
  и детализация тройки;
- OQ-173, OQ-174, OQ-175; страница аналитика; гайд фронта §5.7.2;
  ссылки на модель и диаграммы — v5.23.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 18:34:21 +04:00

50 lines
3.1 KiB
Makefile
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Команды проверки репозитория arm-ka-docs. Запуск из корня репозитория.
# Сервисных целей (lint/test/up...) здесь нет: описание общих целей сервисов — dev/checks.md.
VENV := .venv
# Если окружение создано (`make venv`) — берём его интерпретатор, иначе системный python3 (в нём должны быть jsonschema и PyYAML)
PY := $(if $(wildcard $(VENV)/bin/python),$(CURDIR)/$(VENV)/bin/python,python3)
# Пусто — проверяются все change'и и спеки; `make validate-openspec CHANGE=<id>` — один change
CHANGE ?=
# Текущая версия модели данных — по ней рисуются диаграммы (make diagrams)
DBML ?= model/data-model-v5.23.dbml
.PHONY: venv validate-contracts validate-openspec test-snapshot test-sync-statements sync-statements statements-check check diagrams
# Зависимости скриптов проверки контракта — jsonschema и PyYAML (перечни кодов форм contracts/statement-code-orders.yaml)
venv:
uv venv --python 3.11 --allow-existing $(VENV)
uv pip install --python $(VENV)/bin/python jsonschema pyyaml
# Примеры contracts/examples/ (и examples/v1/ окна перехода) против схем JSON Schema 2020-12 + перечни кодов форм
validate-contracts:
$(PY) scripts/validate_contracts.py
# Спеки и change'и OpenSpec (нужен CLI openspec в PATH)
validate-openspec:
openspec validate $(if $(CHANGE),$(CHANGE),--all) --strict
# Снимок для контура вырезает артефакты агента на любой глубине (dev/contour-transfer-guide.md §3); нужны git и bash
test-snapshot:
STATEMENTS_PY=$(PY) scripts/test_prepare_contour_snapshot.sh
# sync-statements.sh на синтетических репозиториях: помощник проверок, копирование пакета, отказы
test-sync-statements:
STATEMENTS_PY=$(PY) scripts/test_sync_statements.sh
# Копия пакета arm_statements в хост одной командой (worktree, issue, PR); SYNC_ARGS="--host arm-core [--check|--dry-run]"
sync-statements:
STATEMENTS_PY=$(PY) scripts/sync-statements.sh $(SYNC_ARGS)
# Обзор свежести копий во всех хостах; в check не входит — читает соседние репозитории.
# Коды 0 и 10 — зелёные, любой другой — цель завершается кодом 1 после проверки всех трёх хостов.
statements-check:
@rc=0; for h in arm-core tabular-parser scan-gateway; do \
STATEMENTS_PY=$(PY) scripts/sync-statements.sh --check --host $$h || { c=$$?; [ $$c -eq 10 ] || rc=1; }; \
done; exit $$rc
check: validate-contracts validate-openspec test-snapshot test-sync-statements
# Диаграммы model/diagrams/part01…09.{svg,png} из $(DBML); нужен npx (Node.js), зависимостей Python нет
diagrams:
python3 scripts/gen_model_diagrams.py $(DBML)