Skip to main content

Сквозные версии

Иногда нужно связать группу пакетов или вообще все пакеты в репозитории одной версией. Для этого в pvm есть настройки versioning.unified и versioning.unified_versions_for.

Настройка versioning.unified основная, и также влияет на тип релизного тега, но к нему вернемся позже.

По умолчанию versioning.unified равна false, а versioning.unified_versions_for пустому массиву, что означает что все пакеты имеют независимые версии.

Чтобы объединить все пакеты одной версией достаточно выставить versioning.unified в true:

[versioning]
unified = true

Если нужно объеденить одной версией только часть пакетов вместо булевого значения можно передать список селекторов пакетов:

[versioning]
unified = [
'/packages/core/*'
'/src/**/*',
]

Если у вас более сложный случай и требуется больше чем одной группы, либо чтобы эта группа не влияла на формирование имени релизного тега используйте настройку versioning.unified_versions_for.

Например, можно задать несколько независимых групп пакетов, каждая из которых будет иметь свою сквозную версию. Каждая группа задается с помощью селектора пакетов или массива из таких селекторов:

[versioning]
unified_versions_for = [
'/packages/core/*',
['react', 'react-*'],
]

В данном примере у нас две независимых группы, в каждой из которых будет одна версия на все пакеты в ней:

  1. Все пакеты в директории packages/core.
  2. Пакет react, а также все пакеты которые начинаются на react-.