3.4 KiB
3.4 KiB
Dependencies
Перед добавлением
- Найди аналог по назначению и реализации в affected repo.
- Проверь его direct dependencies, текущий stack и native/stdlib API.
- Определи масштаб: один простой случай или повторяющаяся техническая задача.
- Используй существующее решение, если оно полностью покрывает поведение. Новый пакет оправдан меньшей общей сложностью, а не сокращением одной строки.
Повтор non-business задачи в примерно 3+ независимых местах — сигнал пересмотреть
pattern, а не требование немедленно извлечь abstraction. Сравни общий helper,
native API и зрелую небольшую dependency: parsing, serialization, dates,
debounce, class composition. Три Array.map не требуют utility library.
Не продолжай копировать boilerplate, если один принятый способ дешевле сопровождать.
Автоматические обновления
Renovate (renovate.json в каждом из пяти repos, копия без общего preset)
открывает PR в develop, автомерж выключен:
- minor/patch — группы
non-major dependencies,non-major github actions,non-major container images; major — только после approval в Dependency Dashboard; - npm-обновления ждут 3 дня после публикации (
minimumReleaseAge); не более 5 открытых PR;lockFileMaintenance— раз в месяц; - без расписания: релизы не привязаны к календарю;
- OpenSpec в manifests отсутствует (CLI ставится в CI как latest), Renovate его не обновляет.
Принятие PR — обычный review и gates repo; правило копируй во все renovate.json.
При выборе пакета
- Укажи конкретную потребность, альтернативу из текущего stack и существенную цену: совместимость, browser bundle/server runtime, maintenance/security.
- Импортируемый пакет объявляй напрямую в repo владельца; наличие в соседнем repo или транзитивном дереве не является dependency contract.
- Сохраняй exact versions и lockfile. Перед Node-командами активируй
.nvmrcчерезnvm use --silent; воспроизводимая установка —npm ciв нужном repo. - Peer-конфликты решай совместимыми версиями, без
--force/--legacy-peer-deps. Версии и compatibility принадлежат местному manifest/lockfile. - После изменения запускай relevant install/type/build/behavior checks и
npm auditпри изменении зависимостей. Не добавляй второй analyzer, когда задача решается настройкой существующего; карта проверок.