Восемнадцатая партия бэклога: запись с прежним текстом сообщения и сверка зеркал - #121
Merged
Merged
Conversation
Запись с прежней формулировкой удерживает находку того же правила в том же файле, если её текст не подходит ни под одну нынешнюю формулировку, а значения в нём те же, в тех же кавычках и в том же порядке. Точный текст расходуется первым, сообщение без значений сопоставляется только по тексту. Проверка называет такие записи (строка отчёта, baseline_reworded в json и в MCP lint_paths), а --write-baseline переносит их причины на новый текст. Конвейер CI сверяет и зеркала страниц сайта документации: sync-docs.mjs запускается в задаче docs, и отставшее зеркало роняет проверку.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Два пункта бэклога: запись списка принятых перестаёт совпадать, когда правило меняет текст сообщения, и никто не сверяет зеркала страниц сайта документации с их источниками.
Запись с прежним текстом сообщения
Запись списка принятых опознаётся по файлу, правилу и тексту сообщения, а текст принадлежит правилу. Одно из правил недавно изменило формулировку, и на живом проекте принятая находка с причиной вернулась как новая, а её запись стала устаревшей.
Теперь у сопоставления есть второй проход. Запись, которую не израсходовал точный текст, удерживает находку того же правила в том же файле, если выполнены оба условия:
Второе условие отсекает чужие находки: имя в кавычках служит опознавательным признаком, а одиночная буква нет. Первое не даёт записи с нынешним текстом удержать другую находку. Так бывает у правила с двумя сообщениями, где у одного значений больше: исчезнувшая длинная находка не прикроет появившуюся короткую. Сообщение без значений сопоставляется только по тексту, потому что две такие находки нечем различить.
Проверка называет такие записи: строкой в текстовом отчёте, ключами
baseline_rewordedиbaseline_reworded_entriesв сводке json и в ответе MCPlint_paths.--write-baselineзаписывает находку под новым текстом и переносит причину записи. Страницаlintingв обеих редакциях говорит об этом.Зеркала страниц документации
scripts/sync-docs.mjsкопирует README расширения и журналы изменений вdocs/, а сборка сайта делает свои копии. Поэтому отставшее зеркало видно только на GitHub: одно отстало на два абзаца и нашлось случайно. Задачаdocsв CI теперь запускает генератор после генераторов страниц команд и включает зеркала вgit diff --exit-code.Проверки
tests/test_baseline_reworded.pyсначала падали: уapplyне было параметраreworded, находка не удерживалась, причина при перезаписи терялась. Среди них есть тесты на отказ: другие значения, другой порядок, запись с нынешним текстом другого сообщения, сообщение без значений.mainодно: запись с прежним текстом удержала свою находку. Других совпадений второй проход не дал.langguard,purity_scanиcheck_docsс каталогом данных – ноль замечаний.