как решили:
1. Компоненты выпускаются пачками, и обновляются пачками. Тестируется полностью вся пачка компонентов. Дизайн-ревью проходит тоже разом вся пачка. Установить одну зависимость и обновлять её, гораздо легче, чем десятки.
2. Компоненты делятся на пачки по смыслу: core где лежат основные атомы и молекулы, timing всякие компоненты для работы с датами и временем, editor компоненты для richtext editor, banking всё для банка, карточки и акции. Эти пачки могут шариться между разными проектами.
3. У каждого проекта есть внутри своя библиотека компонентов, которая не является пакетом и не имеет своей версии. Но которая зависит от каких-то пачек.
4. Стараемся сводить количество пачек к минимуму. Чтобы не порождать проблемы зависимостей: чтобы получить новую банковскую карточку, нужно установить новый core, а это тянет за собой обновление внутренней библиотеки компонентов.
5. Тщательно следим за semver в пачках. Major release как можно реже. Собираем breaking в отдельном RFC и релизим много ломающих изменений разом. Поддерживаем только одну предыдущую версию.
6. При каждом релизе и дизайн-ревью генерируем карту состояний для каждого компонента, карту всех компонентов, также объединяем созданные компоненты в наборы, и запускаем в разных размерах экранов, для всего этого делается скриншот тесты через percy. То есть всегда четко видно, какие компоненты и где изменились. Аналогичная процедура есть для Props API каждого компонента. Генерируем автоматический diff для набора пропс каждого компонента и в релизе видно что изменилось.