From 6683e526d8ba71a1f696a9e89c4a18a1d58a5bd0 Mon Sep 17 00:00:00 2001 From: Matysh Date: Sat, 22 Aug 2026 18:33:17 +0300 Subject: [PATCH] docs: put the smoke shortlist into the gate rules Issue: #241 User-Visible: no --- .github/workflows/process.yml | 20 +++++++++++++------- PROCESS.md | 7 +++++-- package.json | 1 + 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/.github/workflows/process.yml b/.github/workflows/process.yml index 5469af2a..93bfc1d4 100644 --- a/.github/workflows/process.yml +++ b/.github/workflows/process.yml @@ -360,13 +360,19 @@ jobs: с красным job `docs` до следующей задачи (#237). По необходимости, и «необходимость» определяется diff'ом и AC: - - браузерные смоки `demo/smoke_*.mjs` — названные в AC плюс - относящиеся к тронутым поверхностям. Их 163; прогон всех уместен - только когда задача действительно задевает всё. Выбирать по теме - недостаточно: регресс #234 поймал `smoke_wall_junctions`, который - по названию про стыки стен, а не про толщину отрезка. Надёжнее - grep — искать в `demo/smoke_*.mjs` имена изменённых функций и - полей, и прогонять найденное; + - браузерные смоки `demo/smoke_*.mjs` — названные в AC плюс те, + что печатает `node scripts/smoke-select.mjs --base --head `. + Их 167; прогон всех уместен только когда задача действительно + задевает всё. Выбирать по теме недостаточно: регресс #234 поймал + `smoke_wall_junctions`, который по названию про стыки стен, а не + про толщину отрезка. Инструмент печатает три вида ответа, и они + разные: «прямое совпадение» — смок называет изменённый символ, + «зарегистрированная связь» — смок проверяет следствие контракта, + не называя его, «НЕОПРЕДЕЛЁННОСТЬ» — связь не доказана, и это не + разрешение ничего не прогонять. Вывод инструмента прикладывается + к комментарию ревью вместе с решением по каждой строке: прогнал + либо не прогнал и почему. Слабые связи (одно распространённое + имя) — повод посмотреть, а не обязанность прогонять; - `npm run golden:verify` — если diff может изменить видимый результат: рендер, геометрия, стили, слои; - `python -m pytest tests_backend -q` — если тронут diff --git a/PROCESS.md b/PROCESS.md index 46c90ecb..d8676c61 100644 --- a/PROCESS.md +++ b/PROCESS.md @@ -538,6 +538,7 @@ npx tsc --noEmit npm test npm run build && cmp dist/houseplan-card.js custom_components/houseplan/frontend/houseplan-card.js \ && cmp dist/houseplan-card.js demo/srv/assets/houseplan-card.js +node scripts/smoke-select.mjs --base origin/dev --head HEAD # какие смоки относятся к диффу node demo/smoke_<целевые>.mjs npm run golden:verify # если менялся визуал node scripts/check-docs.mjs # если менялся src/** @@ -547,8 +548,10 @@ python -m pytest tests_backend -q # py3.13, если менялся бэке **Объём гейтов на код-ревью соразмерен задаче** (issue #127). Всегда: `typecheck`, `npm test`, `npm run build` со сверкой трёх копий бандла, а при любом diff'е по `src/**` — ещё и `node scripts/check-docs.mjs`. По -необходимости, определяемой diff'ом и AC: браузерные смоки (их 163 — прогон всех -уместен только когда задача задевает всё), `golden:verify` при изменении видимого +необходимости, определяемой diff'ом и AC: браузерные смоки (их 167 — прогон всех +уместен только когда задача задевает всё; какие относятся к диффу, печатает +`node scripts/smoke-select.mjs --base origin/dev --head HEAD`, и его вывод +прикладывается к ревью вместе с решением по каждой строке), `golden:verify` при изменении видимого результата, `pytest tests_backend` при правках в Python, performance-профили при названном в AC влиянии. **Полные наборы — предрелизный гейт, а не гейт ревью.** diff --git a/package.json b/package.json index 2e28d0be..524f05ff 100755 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "watch": "rollup -c --watch", "typecheck": "tsc --noEmit", "test": "tsc -p tsconfig.test.json && node scripts/fix-test-build.mjs && node --test test/*.test.mjs", + "smokes:select": "node scripts/smoke-select.mjs", "inventory": "node scripts/inventory.mjs", "audit:config": "node scripts/config-audit.mjs", "benchmark:large-house": "node demo/benchmark_large_house.mjs",