pnpm change

Додано у: v11.13.0

Записує намір зміни: на які пакунки впливає зміна, тип підвищення версії для кожного з них, а також короткий опис, який стає записом у журналі змін. Файл намірів записується в теку .changeset/ у форматі changesets.

pnpm change [--bump <type>] [--summary <text>] [<pkg>...]
pnpm change status
pnpm change check

Зміни намірів згодом обробляються командою pnpm version -r. Повний опис робочого процесу див. у розділі Управління релізами.

Використання#

Запустіть програму без аргументів, щоб інтерактивно записати наміри:

pnpm change

Вам буде потрібно відповісти на три запитання:

  1. На які пакунки впливає ця зміна? Пакунки, до яких були внесені зміни після злиття гілки base з гілкою main (або master), позначені як попередньо вибрані.
  2. Які пакунки повинні отримати оновлення до нової основної версії?, а потім те саме для minor. Усе, що залишилося, додається як patch.
  3. Короткий опис зміни, який стане записом у журналі змін.

У результаті утворюється файл, наприклад, .changeset/calm-cats-resolve.md:

.changeset/calm-cats-resolve.md
---
"@example/core": minor
"@example/cli": patch
---

Added a `--watch` flag to the build command.

Збережіть цей файл разом зі своїми змінами.

Передача імен пакунків разом з опціями --bump та --summary фіксує намір без запиту підтвердження, що зручно при використанні скриптів:

pnpm change --bump patch --summary "Fixed a crash on empty input" @example/core

Підкоманди#

status#

Показує заплановані зміни та план випуску, який вони передбачають.

pnpm change status
Pending change intents:
  .changeset/calm-cats-resolve.md

Release plan:
  @example/core: 1.2.0 → 1.3.0 (minor, via intent)
  @example/cli: 0.4.1 → 0.4.2 (patch, via intent+dependencies)

Причиною кожного підвищення є один із таких факторів: intent (намір зміни, визначений пакунком), dependencies (залежність, включена в результаті поширення), fixed (компаньйон виправленої групи) або epic (перебазування епіку).

Private packages ("private": true) are never checked against the registry for a first release, so their pending change intents always show up as bumps, and a workspace of only private packages needs no registry access to plan a release.

check#

Added in: v11.26.0

Validate the pending change intents, and check the versions committed in the workspace against the epic bands and fixed group lockstep declared in pnpm-workspace.yaml.

pnpm change check

Unlike pnpm change status, which reports the release the pending intents produce, check plans the release from the pending intents without reporting it, and checks only the versions already in the manifests. An intent that would fail at release time, such as one naming a package outside the workspace, fails the command. Run it on every pull request: a package whose version drifted out of its epic's band, or out of step with its fixed group, fails the command. Every violation is listed, including ones in packages the current release does not touch.

Параметри#

--bump <type>#

Тип підвищення для вказаних пакунків: none, patch, minor або major. none records an explicit decline: the change needs no release.

--summary <text>#

Короткий опис запису в журналі змін. Разом із назвами пакунків виконує команду в неінтерактивному режимі.

Посилання на пакуни за їх теками#

Якщо два проєкти робочого простору мають однакову назву, на пакунок можна посилатися, вказавши його відносний шлях у робочому просторі з префіксом ./:

---
"./packages/cli": minor
---

Це єдине доповнення, яке pnpm вносить до формату наборів змін. Команда pnpm change автоматично вносить його, якщо назва є неоднозначною.