Как проект проверяет своё использование
Этот раздел описывает проверки, которые выполняет проект на SIMAI Framework. Проекту не нужно повторять проверки Framework (Как Framework проверяет себя); ему нужно подтвердить три вещи: он работает на закреплённом выпуске, пользуется им правильно, а опубликованный сайт показывает именно его.
Готовой программы, которая выполняет эти проверки за любой проект, Framework
не поставляет. Проверки закрепления и опубликованного сайта проект пишет в
своём репозитории по правилам ниже.
Из инструментов Framework проекту нужен sf-upgrade; его запускают из рабочей
копии исходников Framework на ревизии того выпуска, на который проект
переходит (см. Инструмент sf-upgrade).
Закрепление выпуска
Проект закрепляет выпуск Framework, а если подключён пакет продукта, — и квитанцию пакета, точными ревизиями и хешами файлов в своём lock-файле. Проверка проекта отклоняет:
- закрепление, которое отстаёт от того, что лежит в поставке;
- пакет продукта, квитанция которого называет не тот выпуск Framework, что закреплён рядом.
Опубликованное — это то, что получает браузер
Файлы в репозитории проекта и зелёные проверки не доказывают, что страница в браузере работает на том же выпуске. Поэтому проверяется сам опубликованный сайт.
- Включайте идентификатор выпуска в путь к файлам поставки или в метки кеша
cacheVersionиpluginListVersion(см. Подключение к проекту): тогда новая публикация меняет все адреса и браузер не держит прежнюю копию. - Проверка опубликованного сайта запрашивает каждую страницу по HTTP, читает адрес её поставки и хеширует то, что реально отдаётся.
- Обязательно проверять сайт, а не файлы в репозитории.
Использование на страницах
На каждой изменённой странице:
SF.deprecations.list()пуст — компоненты не прочитали ни одного прежнего имени через псевдоним (это не полный список, см. Что устарело на работающей странице);node scripts/sf-upgrade.mjs <проект>, запущенный из исходников Framework, ничего не находит;- в консоли нет ошибок загрузки, все компоненты определены;
- проверены клавиатура и фокус, обе темы, настольная и мобильная ширина, оба направления письма, если проект их поддерживает;
- для каждого порта хоста пройден набор проверок той версии, которую проект заявляет, и записаны версия набора, ревизия проекта и результат.
Что не является доказательством
- Работа примера в Playground: она не подтверждает совместимость с выпуском проекта.
- Зелёные тесты проекта на другом выпуске.
- Отсутствие ошибок в консоли без проверки внешнего вида: если внешний шаблон не найден, компонент без ошибки рисует встроенный.
Дефект Framework в проекте
- Найденный дефект Framework проект сообщает в Issues репозитория
simai/ui-sourceвместе с выпуском, на котором он найден, и замером, а не держит у себя постоянное исправление. - Временное исправление в проекте записывается вместе с выпуском, на котором его можно удалить.
Смотрите также
- Выпуск и запись о выпуске, Версии: как закрепить выпуск — идентификатор выпуска и закрепление.
- Жизненный цикл изменений и совместимость–Как обновить проект — прежние имена,
SF.deprecationsиsf-upgrade. - Порты и наборы проверок — порты хоста и наборы проверок.
- Как Framework проверяет себя — что уже проверено на стороне Framework.