Pvm это утилита, которая позволяет автоматизировать релиз npm-пакетов в репозитории по мержу в мастер.
Все что требуется от разработчика – создать мерж-реквест с нужными правками, всю работу по публикации и изменению версий pvm возьмет на себя.
Рассмотрим в качестве примера цикл обновления группы пакетов:
Создаем feature-ветку, изменяем группу пакетов.
Обновляем версии изменившихся пакетов.
Смотрим по дереву зависимостей пакеты, которые зависят от изменившихся, и обновляем версии им тоже.
Пишем ченжлог.
Фиксируем новые версии пакетов, создаем релизный тег.
Оповещаем о релизе в слак.
Это не единственный возможный поддерживаемый flow разработки, но суть одна:
PVM позволяет автоматизировать все шаги этого процесса, кроме первого.
Pvm может работать полностью в автоматическим режиме, как часть вашего CI/CD процесса.
Чем конкретно умеет управлять pvm, чтобы обеспечивать автоматизацию релизов:
версии пакетов, с учетом зависимостей между ними
создание релизного тега
генерация описания релиза (release notes)
обновление ченжлога
публикация пакетов в хранилище/реестр
формирование и отправка нотификации в слак о релизе
Pvm покрыт интеграционными тестами, покрывающие различные сценарии использования,
так что вы можете быть спокойны за релизный процесс – он в безопасности.
Pvm поддерживает репозитории как со множеством пакетов (монорепозитории), так и репозитории представляющие только один пакет.