mirror of
https://github.com/Matysh/houseplan-card
synced 2026-10-05 06:08:59 +00:00
Отказ подготовки называет виновника
Свидетель, который не готовится к прогону, краснил гейт той задачи, чей дифф его выбрал, даже когда причина лежала в чужом коммите: на #566 это стоило двух кругов. Теперь при исходе `setup-failure` в дифф-режиме прогоняется ОПРЕДЕЛЕНИЕ БАЗЫ на дереве базы, и раннер говорит прямо — отказ предсуществующий или внесён этим диффом. Сравнение подобного с подобным здесь принципиально: с определением из головы собственная сломанная правка реестра выглядела бы предсуществующей. Предсуществующий гейт задачи не красит (решение владельца 14.09) и не теряется: он назван машиночитаемой строкой и обязан покраснеть в ночном полном прогоне, у которого есть адресат (#472). Мутанта, которого в базе нет, оправдывать нечем по построению. Композиция чтения реестра базы и запуска мутанта живёт отдельным модулем: границу «запуск не зависит от отбора» держит тест #558, и CLI обязан остаться тонким. Issue: #568 User-Visible: no
This commit is contained in:
@@ -66,6 +66,22 @@ ledger. Compile-time проверка допустима как самостоя
|
||||
browser/backend guard нельзя. Все недоказанные исходы завершают гейт кодом 2 и
|
||||
отдельно называются в ночном отчёте.
|
||||
|
||||
С #568 `setup-failure` в дифф-режиме **атрибутируется**: раннер прогоняет
|
||||
ОПРЕДЕЛЕНИЕ БАЗЫ диапазона на дереве базы и говорит, чей это отказ.
|
||||
Предсуществующий (не готовится и на базе) гейт задачи не красит — автор не чинит
|
||||
чужое, — но называется строкой `pre-existing-setup-failures=<id,…>` и обязан
|
||||
покраснеть в ночном полном прогоне, у которого есть адресат (#472). Отказ,
|
||||
внесённый диффом, краснит как раньше; свидетеля, которого в базе нет, оправдывать
|
||||
нечем по построению. Сравнение именно подобного с подобным: с определением из
|
||||
головы своя же сломанная правка реестра выглядела бы предсуществующей.
|
||||
|
||||
Приём, который делает мутанта мёртвым молча, один и тот же: **статически**
|
||||
мёртвая ветка в `.ts` — `if (false)`, `false &&`, безусловный `return` в начале
|
||||
функции. TypeScript перестаёт помнить сужения, сделанные выше (`profile` снова
|
||||
`| null`), компиляция падает до заявленного теста. Писать ложь, ложную в
|
||||
рантайме, но не статически: `if (eps < 0)`, `String(mode) === 'mutant-never-…'`,
|
||||
`if (walls.length >= 0) return walls.slice();`. В `.mjs` этого ограничения нет.
|
||||
|
||||
В CI `changed_mutants` бежит не на каждом пуше, а по запросу (#510):
|
||||
`workflow_dispatch validate.yml -f mutants=true` (его делают ревью-конвейер на
|
||||
материале ревью и слияние на кандидате), `full=true` (ночь, кнопка), PR и кандидат
|
||||
|
||||
Reference in New Issue
Block a user