Backend & APISûr100100/100

Publish Npm Version (Prisma)

Cuts the next release of the unified Prisma CLI: bumps the root package.json version (on the Prisma 8 RC line: 8.0.0-rc.N → rc.N+1), propagates it to every lockstep workspace package, and opens a PR titled "chore(release): bump to <next-version>". When the maintainer merges the PR, the `Publish to npm` workflow ships @prisma/cli-engine and @prisma/cli under dist-tag `latest` (RC versions get a pre-release GitHub Release). Use when a maintainer asks to "cut the next RC", "cut the next release", "bump to the next version", "open a release PR", or "prepare a publish PR".

ou envoie-le directement à ton agent.

Installer dans ton projet

$ curl -fsSL https://arboristhree.xyz/cli/install-skill.mjs -o /tmp/arboris-install-skill.mjs && node /tmp/arboris-install-skill.mjs publish-npm-version__prisma-prisma-cli__skills-contrib-82d1c2417cc4
Prisma
prisma/prisma-cli
Contenu à copier
---
name: publish-npm-version
description: >-
  Cuts the next release of the unified Prisma CLI: bumps the root
  package.json version (on the Prisma 8 RC line: 8.0.0-rc.N → rc.N+1),
  propagates it to every lockstep workspace package, and opens a PR
  titled "chore(release): bump to <next-version>". When the maintainer
  merges the PR, the `Publish to npm` workflow ships @prisma/cli-engine
  and @prisma/cli under dist-tag `latest` (RC versions get a
  pre-release GitHub Release). Use when a maintainer asks to "cut the
  next RC", "cut the next release", "bump to the next version", "open
  a release PR", or "prepare a publish PR".
metadata:
  origin: Prisma
---

# Publish next npm version

## Audience

Maintainers of the unified Prisma CLI with permission to push branches
and open PRs in prisma/prisma-cli. The skill runs locally, never as a
GitHub Action — a locally opened PR triggers CI normally, which is the
point of a reviewable release PR.

## Background reading

Read [`docs/oss/versioning.md`](../../docs/oss/versioning.md) first. It
covers the source-of-truth model (root `package.json` `version`), the
lockstep guarantee (`@prisma/compute` excluded by ruling), the Prisma 8 RC
line, the dist-tag convention, and the release procedure this skill is
one step of. One note specific to this
repo: the lockstep excludes `@prisma/compute` by operator ruling.

## Pre-flight

No requirement to be on `main` or have a clean tree — all work happens
in a fresh worktree off `origin/main`. Confirm `git fetch origin main`
succeeds; if not, stop and surface the issue.

## Procedure

1. **Fetch and determine the target version.**

   ```bash
   git fetch origin main
   CURRENT=$(git show origin/main:package.json | node -e 'process.stdout.write(JSON.parse(require("fs").readFileSync(0,"utf8")).version)')
   NEXT=$(node -e "import('./scripts/determine-version-utils.ts').then(m => process.stdout.write(m.computeNextReleaseVersion(process.argv[1])))" "$CURRENT")
   echo "$CURRENT → $NEXT"
   ```

   `$NEXT` names the branch and PR; step 3 recomputes the authoritative
   value inside the fresh worktree and the two must agree.

2. **Create a fresh worktree off `origin/main`.**

   ```bash
   git worktree add -b "release/$NEXT" "../release-$NEXT" origin/main
   cd "../release-$NEXT"
   ```

3. **Bump.** `pnpm install --frozen-lockfile --ignore-scripts` if the
   worktree has no `node_modules`, then `pnpm bump-version`. Confirm the
   version it wrote matches `$NEXT`; on mismatch the worktree's value is
   authoritative — remove worktree and branch, restart from step 1.

4. **Check the lockfile moved.** `pnpm bump-version` refreshes
   `pnpm-lock.yaml` itself, because internal deps are pinned
   `workspace:<version>` and a stale lockfile fails every later frozen
   install with `ERR_PNPM_OUTDATED_LOCKFILE`. If it is missing from the
   diff, stop — the bump did not finish.

5. **Sanity-check the diff.** Only `package.json` files and
   `pnpm-lock.yaml`; manifests change exactly `version` +
   `workspace:<old> → workspace:<new>`; the excluded
   `packages/compute/package.json` is untouched.

6. **Commit** everything in one commit:

   ```text
   chore(release): bump to <version>
   ```

7. **Push the branch** to `origin`.

8. **Open the PR** with `gh pr create`. Use the title:

   ```text
   Bump to version <version>
   ```

   Body: previous → new version; link
   [`docs/oss/versioning.md`](../../docs/oss/versioning.md); note that
   **merging this PR ships the release** — the squashed push to `main`
   changes the root version with the release marker, the `Publish to
   npm` workflow publishes `@prisma/cli-engine` then `@prisma/cli`
   under `latest`, and a GitHub Release (pre-release on the RC line) is
   created with generated notes. This repo has no committed
   release-notes file gate; review the generated notes on the Release
   after merge.

9. **Stop and report** the PR URL and the worktree path. Do not merge —
   the merge is the human gate that triggers the publish. The
   maintainer removes the worktree after merge
   (`git worktree remove ../release-<version>`).

## Idempotency

`pnpm bump-version` reads the root version from `git show
HEAD:package.json`, so re-running in the same worktree cannot
double-bump. The skill as a whole is not idempotent: step 2 fails if
the branch/worktree already exist — remove them
(`git worktree remove ../release-$NEXT`; `git branch -D
release/$NEXT`) or continue inside the existing worktree from step 3.
Do not stack bumps.

## Out of scope

- **Merging the PR** (human gate; merging is the publish trigger).
- **Patch releases.** On the RC line a fix is just the next `rc.N`.
- **Beta tags** — hand-cut via `workflow_dispatch` of `Publish to npm`
  with the `beta` dist-tag; this skill always advances the release
  version.
- **`@prisma/compute`** — excluded from the lockstep by operator ruling
  (2026-08-10); it versions and publishes independently
  (`publish-compute.yml`) pending extraction to another repo.
Colle ce Markdown dans ton agent ou utilise les boutons ci-dessus pour l’écrire dans ton projet.

Ce que fait Publish Npm Version (Prisma)

**Merging the PR** (human gate; merging is the publish trigger).
**Patch releases.** On the RC line a fix is just the next `rc.N`.
**Beta tags** — hand-cut via `workflow_dispatch` of `Publish to npm`
**`@prisma/compute`** — excluded from the lockstep by operator ruling

Comment utiliser Publish Npm Version (Prisma)

1
Copie le prompt
Un clic copie le prompt packagé (ou l'envoie à ton agent).
2
L'agent installe le skill
Il ajoute le SKILL.md et ses ressources à ton projet.
3
Activation automatique
Le skill s'active dès que le contexte correspond.

Déclencheurs pour Publish Npm Version (Prisma)

Dis simplement à ton agent quelque chose comme :

Applique le skill publish-npm-version__prisma-prisma-cli__skills-contrib-82d1c2417cc4 à cette tâche
Utilise publish-npm-version__prisma-prisma-cli__skills-contrib-82d1c2417cc4 pour améliorer cette implémentation
Passe en revue ce sujet avec publish-npm-version__prisma-prisma-cli__skills-contrib-82d1c2417cc4

Skills liés à Publish Npm Version (Prisma)