- Зачем:
- этап 2 начинается с формы: контракт схемы — источник истины и для
генерации событий, и для DDL хранилища, а имена пакета и модулей
задают границы всем следующим тикетам этапа.
- Что:
- заведён uv-проект generator/ (pyproject.toml и uv.lock в git; numpy,
pytest и ruff), пакет clickstream_generator.
- schema.py — контракт: чистые данные о 47 колонках выгрузки (имя
Метрики, тип ClickHouse, тип numpy, имя для DDS, группа); порядок
несёт сам кортеж COLUMNS, отдельного поля с номером нет намеренно.
- schema_doc.py собирает из контракта описание выгрузки
docs/formats/clickstream-event.md — по нему пишется сторона
хранилища; документ руками не правится.
- тесты: инварианты контракта (состав, уникальность, заполненность,
согласие типов и порядок групп) и свежесть описания выгрузки.
- цели make lint, make test и make docs; README, AGENTS.md и
CONTEXT.md дополнены генератором, форматами и словарной статьёй.
- Проверка:
- make test (248 тестов), make lint, make config-test;
- make docs, затем git diff --exit-code docs/ — пусто.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
43 lines
849 B
Makefile
43 lines
849 B
Makefile
COMPOSE ?= docker compose
|
|
|
|
.PHONY: up down clean ps logs config-test lint test docs smoke smoke-cluster smoke-guards
|
|
|
|
up:
|
|
$(COMPOSE) up --detach --build --wait --wait-timeout 600
|
|
|
|
down:
|
|
$(COMPOSE) down --remove-orphans
|
|
|
|
clean:
|
|
$(COMPOSE) down --volumes --remove-orphans
|
|
|
|
ps:
|
|
$(COMPOSE) ps
|
|
|
|
logs:
|
|
$(COMPOSE) logs --follow
|
|
|
|
config-test:
|
|
COMPOSE_BIN="$(COMPOSE)" ./scripts/config-test.sh
|
|
./tests/stand-smoke-static.sh
|
|
|
|
lint:
|
|
cd generator && uv run ruff check && uv run ruff format --check
|
|
|
|
test:
|
|
cd generator && uv run pytest
|
|
|
|
docs:
|
|
cd generator && uv run python -m clickstream_generator.schema_doc \
|
|
../docs/formats/clickstream-event.md
|
|
|
|
smoke:
|
|
COMPOSE_BIN="$(COMPOSE)" ./scripts/stand-smoke.sh
|
|
|
|
smoke-cluster:
|
|
./scripts/clickhouse-smoke.sh
|
|
|
|
smoke-guards:
|
|
./tests/smoke-guards.sh
|
|
COMPOSE_BIN="$(COMPOSE)" ./tests/stand-smoke-guards.sh
|