scripts/regression: полная регрессия main всех репозиториев перед выкладкой (#179) #180

Merged
aep merged 2 commits from feat/179-regression-suite into main 2026-10-28 13:30:35 +03:00
Owner

Closes #179.

Что

make regress (scripts/regression/regress.sh): один вход для полной регрессии main всех репозиториев workspace перед выкладкой. Не останавливается на первой ошибке, итог — admin/regression/<дата_время>/summary.md (SHA, статус и время шагов, счётчики pytest, отчёт стенда, банк первички). Описание — scripts/regression/README.md.

Этапы: preflight → venv → static (docs make check, lint+unit всех, dbml) → web (чистая копия, npm ci --dry-run + установка без lock) → integration (с циклом миграций) → fixtures (golden парсера) → images → e2e ядра → stand (изолированный compose-проект arm-ka-regress, сценарий по API по expected.json) → ui (Playwright по 12 экранам) → bank (парсер по doc-bank, сравнение с прошлым прогоном).

Ссылки: dev/checks.md (раздел «Перед выкладкой»), чек-лист синхронизации контура (dev/contour-transfer-guide.md §8 п. 1).

Прогон на main 28.10.2026 (admin/regression/2026-10-28_1209)

47 из 49 шагов зелёные; стенд — 62 проверки, все зелёные; UI — 12 экранов зелёные; doc-bank — 2152 файла, ухудшений 0 (против индекса 20.10 — 112 needs_check → done).

Красные (находки, не этого PR):

  • arm-core test-integration: test_mapping_golden::test_all_golden_snapshots_mapped — коды 68.01.1, 91.02.1 из синтетики s47 (fixtures #33) не внесены в KNOWN_OUT_OF_PLAN. Main ядра красный с момента слияния fixtures #33.
  • arm-core web/package-lock.json не содержит lucide-react@0.263.1 из package.json — npm ci падает (EUSAGE). Контур не задевает (снимок без lock), но установка снаружи невоспроизводима; плюс lock собран на linux — по нему не ставятся darwin-бинарники biome/rspack/canvas.

Rulings I made

  • R-1: скрипты — в docs (scripts/regression/), рядом с sync-statements.sh/prepare-contour-snapshot.sh: сквозная проверка нескольких репозиториев.
  • R-2: стенд — отдельный compose-проект arm-ka-regress на своих портах (18000/18001/18002, 15432, 14222, 19000), down -v после ui; общий arm-ka не трогается (integration и e2e пользуются его инфраструктурой, тесты создают свои БД).
  • R-3: фронт проверяется в чистой временной копии web/, без записи в main; npm ci — только --dry-run как проверка lock, остальные шаги — на установке без lock (как контур).
  • R-4: шахматка в ожиданиях — ручной выбор «Дт 62 / Кт 60», как test_intercompany_matrix_golden; предустановленные правила (после #175 правило 6 включает 76.06/76.АВ) — только в снимке. Встречная пара 2 346 459,08 / 2 346 459,05 сверена с файлами (3 коп. в самих книгах).
  • R-5: расхождения снимков стенда и doc-bank с прошлым прогоном не красные — их просматривает человек.
  • R-6: pylib_ai_arm_statements (AURORA-1677) в прогон не включён до выпуска.

🤖 Generated with Claude Code

Closes #179. ## Что `make regress` (`scripts/regression/regress.sh`): один вход для полной регрессии `main` всех репозиториев workspace перед выкладкой. Не останавливается на первой ошибке, итог — `admin/regression/<дата_время>/summary.md` (SHA, статус и время шагов, счётчики pytest, отчёт стенда, банк первички). Описание — `scripts/regression/README.md`. Этапы: preflight → venv → static (docs `make check`, lint+unit всех, dbml) → web (чистая копия, `npm ci --dry-run` + установка без lock) → integration (с циклом миграций) → fixtures (golden парсера) → images → e2e ядра → stand (изолированный compose-проект `arm-ka-regress`, сценарий по API по `expected.json`) → ui (Playwright по 12 экранам) → bank (парсер по doc-bank, сравнение с прошлым прогоном). Ссылки: `dev/checks.md` (раздел «Перед выкладкой»), чек-лист синхронизации контура (`dev/contour-transfer-guide.md` §8 п. 1). ## Прогон на main 28.10.2026 (`admin/regression/2026-10-28_1209`) 47 из 49 шагов зелёные; стенд — 62 проверки, все зелёные; UI — 12 экранов зелёные; doc-bank — 2152 файла, ухудшений 0 (против индекса 20.10 — 112 needs_check → done). Красные (находки, не этого PR): - **arm-core `test-integration`**: `test_mapping_golden::test_all_golden_snapshots_mapped` — коды `68.01.1`, `91.02.1` из синтетики `s47` (fixtures #33) не внесены в `KNOWN_OUT_OF_PLAN`. Main ядра красный с момента слияния fixtures #33. - **arm-core `web/package-lock.json`** не содержит `lucide-react@0.263.1` из `package.json` — `npm ci` падает (EUSAGE). Контур не задевает (снимок без lock), но установка снаружи невоспроизводима; плюс lock собран на linux — по нему не ставятся darwin-бинарники biome/rspack/canvas. ## Rulings I made - R-1: скрипты — в docs (`scripts/regression/`), рядом с `sync-statements.sh`/`prepare-contour-snapshot.sh`: сквозная проверка нескольких репозиториев. - R-2: стенд — отдельный compose-проект `arm-ka-regress` на своих портах (18000/18001/18002, 15432, 14222, 19000), `down -v` после ui; общий `arm-ka` не трогается (integration и e2e пользуются его инфраструктурой, тесты создают свои БД). - R-3: фронт проверяется в чистой временной копии `web/`, без записи в main; `npm ci` — только `--dry-run` как проверка lock, остальные шаги — на установке без lock (как контур). - R-4: шахматка в ожиданиях — ручной выбор «Дт 62 / Кт 60», как `test_intercompany_matrix_golden`; предустановленные правила (после #175 правило 6 включает 76.06/76.АВ) — только в снимке. Встречная пара 2 346 459,08 / 2 346 459,05 сверена с файлами (3 коп. в самих книгах). - R-5: расхождения снимков стенда и doc-bank с прошлым прогоном не красные — их просматривает человек. - R-6: pylib_ai_arm_statements (AURORA-1677) в прогон не включён до выпуска. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
aep added 2 commits 2026-10-28 11:37:25 +03:00
regress.sh — один вход: preflight (main = origin/main, чистые, нет чужих потребителей NATS), venv, lint+unit
всех репозиториев и docs make check, фронт в чистой копии (npm ci --dry-run как проверка lock, установка без
lock), интеграционные с циклом миграций, реальные данные парсера, образы, e2e ядра, изолированный стенд с нуля
(compose-проект arm-ka-regress на своих портах) со сценарием по API, UI-смоук Playwright, парсер по doc-bank.
Не останавливается на первой ошибке; итог — summary.md с SHA и статусом шагов.

Контрольные цифры — expected.json (qa-guide §7.1–7.3, прогоны 08.10/14.10, golden шахматки); снимки свода,
шахматки и форм сравниваются с прошлым прогоном. Ссылки из dev/checks.md и чек-листа синхронизации контура.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
aep merged commit 3a91d050f2 into main 2026-10-28 13:30:35 +03:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: RSHB/arm-ka-docs#180
No description provided.