Skip to main content

publish-npm-version

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".

Zur Installation springen

Quellinformationen

Repository
prisma/prisma-cli
Letzte Quellaktivität
12. August 2026 um 17:21
Erkannte Sprache von SKILL.md
Englisch
Sterne
21
Forks
2

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
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".
# 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.
Auf GitHub ansehen