feat(make): sync-statements, statements-check и test-sync-statements в check (#120)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
df85505735
commit
bb7c1a0c07
15
Makefile
15
Makefile
@ -7,7 +7,7 @@ CHANGE ?= slice-0-skeleton
|
||||
# Текущая версия модели данных — по ней рисуются диаграммы (make diagrams)
|
||||
DBML ?= model/data-model-v5.18.dbml
|
||||
|
||||
.PHONY: venv validate-contracts validate-openspec test-snapshot test-sync-web test-sync-statements sync-web check diagrams
|
||||
.PHONY: venv validate-contracts validate-openspec test-snapshot test-sync-web test-sync-statements sync-web sync-statements statements-check check diagrams
|
||||
|
||||
# Зависимости скриптов проверки контракта — jsonschema и PyYAML (перечни кодов форм contracts/statement-code-orders.yaml)
|
||||
venv:
|
||||
@ -38,7 +38,18 @@ test-sync-statements:
|
||||
sync-web:
|
||||
scripts/sync-web.sh $(SYNC_ARGS)
|
||||
|
||||
check: validate-contracts validate-openspec test-snapshot test-sync-web
|
||||
# Копия пакета arm_statements в хост одной командой (worktree, issue, PR); SYNC_ARGS="--host arm-core [--check|--dry-run|--in-place]"
|
||||
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-web test-sync-statements
|
||||
|
||||
# Диаграммы model/diagrams/part01…09.{svg,png} из $(DBML); нужен npx (Node.js), зависимостей Python нет
|
||||
diagrams:
|
||||
|
||||
@ -133,7 +133,10 @@ PR убедитесь, что `docs` и `fixtures` доступны (пропу
|
||||
| `make venv` | `.venv` (Python 3.11, `uv`) с `jsonschema` — единственной зависимостью скриптов |
|
||||
| `make validate-contracts` | `python scripts/validate_contracts.py`: примеры `contracts/examples/` против трёх схем JSON Schema 2020-12 (3 схемы, 8 примеров); код 1 при любой ошибке |
|
||||
| `make validate-openspec` | `openspec validate slice-0-skeleton --strict` (другое изменение: `make validate-openspec CHANGE=<id>`) |
|
||||
| `make check` | обе проверки выше |
|
||||
| `make check` | все проверки выше и `test-snapshot`, `test-sync-web`, `test-sync-statements` |
|
||||
| `make test-sync-statements` | сценарии `sync-statements.sh` на синтетических репозиториях: коды `--check`, `--in-place`, `--dry-run`, отказ при прямой правке |
|
||||
| `make sync-statements` | копия пакета `arm_statements` в хост одной командой (worktree, issue, PR); `SYNC_ARGS="--host arm-core [--check\|--dry-run\|--in-place]"` |
|
||||
| `make statements-check` | обзор свежести копий по трём хостам рядом (`arm-core`, `tabular-parser`, `scan-gateway`): строка итога на хост; в `check` не входит |
|
||||
|
||||
Без `make`: `python scripts/validate_contracts.py` (нужен `jsonschema`) и `openspec validate <id> --strict`.
|
||||
Менять `contracts/**` нужно осознанно: байтовые копии схем лежат в `api/contracts/` каждого сервиса, после правки их
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user