Соответствовать стандартам и обновляться
Справочник стандартов, проверки, которые его соблюдают, и что выпуск cli-core — ломающий или нет — требует от вашего инструмента.
Ваш инструмент работает сегодня. Эта страница показывает, как сохранить это, пока меняются cli-core и cli-base: где лежат правила, какие проверки их подтверждают и что делать, когда выпуск меняет то, чем пользуется ваш инструмент.
Справочник
Правила, которым следует каждый инструмент WireCat, — в
справочнике стандартов. Он входит в @wirecat/cli-base, поэтому у вашего
инструмента он лежит в node_modules/@wirecat/cli-base/docs/standards/README.md той же версии, что и проверки, которые
он запускает. Начните со списка для нового CLI: каждый шаг называет проверку, которая его
подтверждает.
Страницы, которые инструмент на общем хранилище читает первыми:
- Модель данных: сущности, записи источников,
external_id, имена полей, связи; - Хранилище: области хранилища, миграции, никакого SQL из инструмента;
- Архитектура: слои и что в каком пакете;
- Безопасность и Аккаунты: секреты и явный профиль.
Проверки
cli-dev lint(из cli-base) читает команды, которые печатает ваш инструмент, и проверяет имена, флаги, справку и правила вывода. Известные расхождения один раз записываются вlint/baseline/; список только сокращается, а исключений может быть не больше десяти.cli-dev auditсравнивает ваши команды с другими инструментами: обязательные корневые команды и один контракт для одного пути команды.- Общая настройка проверки кода (Biome с плагинами WireCat) проверяет исходники: никаких глубоких импортов во внутренности cli-core, никакой оболочки, собранной из строк.
- Правило, которое машина проверить не может, помечено в справочнике как «review only». Прочитайте его, прежде чем менять эту часть.
Версии и ломающие изменения
cli-core и cli-base выходят, как только изменение готово, и выпуск может ломать вызывающий код (WC-REL-8). До версии 1.0.0 минорная версия может ломать вызывающий код, и журнал изменений cli-core пишет, как именно, в разделе «Changed — may break callers».
Когда выходит новый cli-core:
- Прочитайте его раздел журнала изменений, начиная с ломающей части.
- Поднимите cli-core в своём инструменте в тот же день, что и другие инструменты, чтобы все открывали общее хранилище с одной схемой.
- Запустите тесты и
cli-dev lint, затем выпускайте.
Общее хранилище движется только вперёд. Новый cli-core может мигрировать файл; старая сборка тогда отказывается его открывать и говорит обновиться, вместо того чтобы прочитать его неверно (WC-STORE-10). Поэтому инструмент, оставшийся на старом cli-core, может перестать работать, когда владелец обновит другой инструмент.
Инструмент, созданный из cli-template, получает и последующие изменения шаблона командой
npx @wirecat/cli-template upgrade: см. Обновляйтесь.
Скоро
- Проверка исходников на доступ к хранилищу, чтобы инструмент, который напрямую импортирует драйвер SQLite, не проходил проверку.
Что сломается, если это пропустить
Инструмент, пропустивший обновление, читает хранилище, которое уже не понимает, и отказывается запускаться. Инструмент, отключивший правило проверки, расходится с остальными, и агенты, выучившие команды одного инструмента, ошибаются в вашем.
К началу: Основы за пять минут.