Skip to content

fix(deps): build orm-toolchain against @prisma/cli-engine 0.6.2, which prints the CLI name where hints showed {bin} - #30503

Merged
wmadden merged 3 commits into
mainfrom
claude/engine-0.6.2
Sep 30, 2026
Merged

wmadden merged 3 commits into
mainfrom
claude/engine-0.6.2

Conversation

@wmadden-electric

@wmadden-electric wmadden-electric commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

At a glance

The peer dependency of @prisma/orm-toolchain, in packages/9-public/@prisma/orm-toolchain/package.json:

-    "@prisma/cli-engine": "0.6.1",
+    "@prisma/cli-engine": "0.6.2",

The last line of prisma migration status, from the integration test migration-status-diagnostics.e2e.test.ts. The test CLI is named prisma-test:

-⚠ 1 pending — run `{bin} db migrate --to 3137387cf388`
+⚠ 1 pending — run `prisma-test db migrate --to 3137387cf388`

What this pull request does

It moves every pin of @prisma/cli-engine in this repository from 0.6.1 to 0.6.2, refreshes the lockfile, and updates the tests that expected a literal {bin} in the output of a command. No source file changes.

Background

@prisma/cli-engine is the package that runs the commands of the prisma CLI. It is released from prisma/prisma-cli. The commands come from other packages. @prisma/orm-toolchain is one of them, and @prisma/composer-cli is the other.

A command package and the prisma CLI must use the same copy of the engine. With two copies, the types and the runtime classes of one copy do not match the other. So @prisma/orm-toolchain declares the engine as a peer dependency at one exact version, and the prisma CLI carries the only real dependency. If the versions differ, the install fails, or npm installs a second copy.

Why the version moves

prisma/prisma-cli#313 released engine 0.6.2. The next prisma release ships that engine. Its release check refuses a command package that peers a different engine version. @prisma/orm-toolchain 8.0.0-rc.13 peers 0.6.1, so prisma/prisma-cli currently holds a temporary exception for it. prisma/prisma-cli#314 tracks the removal of that exception.

What engine 0.6.2 changes

The libraries in this repository do not know the name of the CLI that runs them. So they write the placeholder {bin} in a hint, for example {bin} db migrate. docs/CLI Style Guide.md already says that the CLI replaces the placeholder before a user sees it.

Engine 0.6.1 replaced {bin} only in help examples and in redirect messages. Engine 0.6.2 also replaces it in next actions, warnings, errors, and the text of summary and list blocks. It does so in human output, --json output, and --format markdown output. It leaves a command's own result data as written.

What changes in the tests

Two kinds of test mention {bin}.

  • Tests that run a command through the engine see the rendered output. 17 expectations in packages/1-framework/3-tooling/cli/test/orm/ and 12 in test/integration/test/ now expect prisma-test.
  • Tests of the error factories, and tests that read a command's own result data, still expect {bin}. The libraries keep writing the placeholder, and those tests did not change.

Upgrade instructions

  • upgrade-instructions/pending/engine-pin-moves-to-0-6-2/app/
  • upgrade-instructions/pending/engine-pin-moves-to-0-6-2/extension/

Both tell a reader who pins the engine to move the pin, and that a script or a test that matches a literal {bin} in the CLI's output must match the CLI name.

What was checked

All commands ran locally, on macOS.

Command Result
pnpm install --frozen-lockfile passed
pnpm build passed
pnpm typecheck:packages, pnpm typecheck:examples passed
The 18 lint commands of the CI Lint job, and pnpm test:scripts passed
pnpm check:error-reference passed
pnpm check:release-notes --mode pr --prev origin/main passed
pnpm check:upgrade-coverage --mode pr --prev origin/main --head HEAD passed
pnpm check:conformance passed
pnpm fixtures:check passed
pnpm check:clean-tree passed
pnpm test:e2e 123 of 123 tests passed
pnpm --filter @internal/cli test 1758 of 1758 tests passed

pnpm check:conformance ended with: every @prisma/cli-engine pin agrees.

pnpm test:packages and pnpm test:integration each ran in full once, before the test expectations were updated. After the update, the tests that had failed were run again, not the two full suites. The results:

  • The 17 tests in the CLI package and the 10 integration tests that failed on {bin} pass.
  • Two tests timed out in the full run and pass when run alone: completion-provider.test.ts and render-typescript.roundtrip.test.ts.
  • The tests that pack the published packages and install them fail with High-risk trust downgrade for "@vercel/detect-agent@1.2.5". These are all-shells-tarball.test.ts, module-identity.test.ts, cross-shell-tarball.test.ts, extension-tarball.test.ts, and facade-tarball.test.ts. all-shells-tarball.test.ts fails with the same error on an unchanged checkout of main (commit 75c1460515). The others were not run on main.
  • driver-adapters-error-forwarding.test.ts fails with Expect test to fail. It fails in the same way on the same unchanged checkout of main.

pnpm test:examples, the coverage job, and the Supabase acceptance job were not run locally.

What depends on this

Linked issue

Refs prisma/prisma-cli#314 and prisma/prisma-cli#313.

Agent: keen-finch-33
🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features
    • CLI guidance now displays the invoked command name in suggested actions, warnings, errors, and summaries across human-readable, JSON, and Markdown output.
  • Documentation
    • Added upgrade guidance for projects and extensions pinned to the previous CLI engine version.

wmadden-electric and others added 3 commits September 28, 2026 09:24
…engine the prisma CLI ships

The prisma CLI ships @prisma/cli-engine 0.6.2 from prisma/prisma-cli#313, and its release check refuses a command family built against a different engine: npm would install two engines. @prisma/orm-toolchain 8.0.0-rc.12 peers engine 0.6.1.

Every engine pin moves from 0.6.1 to 0.6.2. Engine 0.6.2 substitutes {bin} in next actions, diagnostics, errors, and summary and list blocks, and changes no API the ORM calls, so there are no source changes.

pnpm-lock.yaml is not in this commit. It can be refreshed only after 0.6.2 is on npm.

Upgrade instructions: upgrade-instructions/pending/engine-pin-moves-to-0-6-2/app/ and upgrade-instructions/pending/engine-pin-moves-to-0-6-2/extension/.

Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…ckfile

Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Engine 0.6.2 replaces {bin} with the name of the running CLI in next actions, diagnostics, errors, and summary and list blocks. The tests that run a command through the engine now expect `prisma-test`, the name the test CLI uses. Tests of the error factories still expect {bin}, because the libraries keep writing the placeholder.

The upgrade instructions for the engine pin now say what a reader sees change.

Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@wmadden-electric
wmadden-electric requested a review from a team as a code owner September 29, 2026 12:10
@coderabbitai

coderabbitai Bot commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: prisma/orm/.coderabbit.yml

Review profile: CHILL

Plan: Advanced

Run ID: de0f6a47-7faa-422b-8920-239e680bfe53

📥 Commits

Reviewing files that changed from the base of the PR and between ea6d913 and ffd1e29.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (45)
  • apps/lsp-playground/package.json
  • apps/telemetry-backend/package.json
  • examples/bundle-size/package.json
  • examples/mongo-blog-leaderboard/package.json
  • examples/mongo-demo/package.json
  • examples/multi-extension-monorepo/package.json
  • examples/paradedb-demo/package.json
  • examples/prisma-8-cloudflare-worker/package.json
  • examples/prisma-8-demo-sqlite/package.json
  • examples/prisma-8-demo/package.json
  • examples/prisma-8-postgis-demo/package.json
  • examples/prisma7-adoption/package.json
  • examples/react-router-demo/package.json
  • examples/retail-store/package.json
  • examples/supabase/package.json
  • packages/1-framework/3-tooling/cli/package.json
  • packages/1-framework/3-tooling/cli/test/orm/contract-print.test.ts
  • packages/1-framework/3-tooling/cli/test/orm/db-init.test.ts
  • packages/1-framework/3-tooling/cli/test/orm/db-sign.test.ts
  • packages/1-framework/3-tooling/cli/test/orm/db-update.test.ts
  • packages/1-framework/3-tooling/cli/test/orm/db-verify.test.ts
  • packages/1-framework/3-tooling/cli/test/orm/define-command.test.ts
  • packages/1-framework/3-tooling/cli/test/orm/migrate.test.ts
  • packages/1-framework/3-tooling/cli/test/orm/migration-plan.test.ts
  • packages/1-framework/3-tooling/cli/test/orm/migration-status.test.ts
  • packages/1-framework/3-tooling/cli/test/orm/ref-set.test.ts
  • packages/1-framework/3-tooling/config-loader/package.json
  • packages/3-extensions/paradedb/package.json
  • packages/3-extensions/pgvector/package.json
  • packages/3-extensions/postgis/package.json
  • packages/3-extensions/supabase/package.json
  • packages/9-public/@prisma/orm-toolchain/package.json
  • test/e2e/framework/test/fixtures/package.json
  • test/e2e/framework/test/sqlite/fixtures/package.json
  • test/integration/package.json
  • test/integration/test/cli-journeys/marker-read-errors-legacy-init.e2e.test.ts
  • test/integration/test/cli-journeys/migration-status-diagnostics.e2e.test.ts
  • test/integration/test/cli-journeys/sign-the-database.e2e.test.ts
  • test/integration/test/cli.db-verify.e2e.test.ts
  • test/integration/test/cli.migrate-external-space.e2e.test.ts
  • test/integration/test/fixtures/cli/cli-e2e-test-app/package.json
  • test/integration/test/fixtures/cli/cli-integration-test-app/package.json
  • test/integration/test/marker-read-errors.e2e.test.ts
  • upgrade-instructions/pending/engine-pin-moves-to-0-6-2/app/instructions.md
  • upgrade-instructions/pending/engine-pin-moves-to-0-6-2/extension/instructions.md

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 8 remain after this review.


📝 Walkthrough

Walkthrough

This change updates @prisma/cli-engine pins from 0.6.1 to 0.6.2 across package declarations and fixtures. CLI tests now expect prisma-test in suggested commands, and upgrade instructions describe the version update and output changes.

Changes

CLI engine update

Layer / File(s) Summary
Update CLI engine pins
apps/*/package.json, examples/*/package.json, packages/1-framework/3-tooling/{cli,config-loader}/package.json, packages/3-extensions/*/package.json, packages/9-public/@prisma/orm-toolchain/package.json, test/e2e/framework/test/**/package.json, test/integration/package.json, test/integration/test/fixtures/cli/*/package.json
These package declarations and fixtures now specify @prisma/cli-engine version 0.6.2 instead of 0.6.1.
Update CLI output expectations
packages/1-framework/3-tooling/cli/test/orm/*.test.ts, test/integration/test/**/*.e2e.test.ts
Tests expect suggested commands to use prisma-test instead of {bin}. The external-space test also parses the updated command prefixes.
Document the version update
upgrade-instructions/pending/engine-pin-moves-to-0-6-2/{app,extension}/instructions.md
The instructions describe updating direct engine pins and document the output changes across the listed formats and contexts.

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix

Suggested reviewers: wmadden

Merge Risk: ⚪ Minimal · up to ffd1e

The update displays the configured CLI name in rendered guidance while preserving {bin} in source result data. Pins and runtime requirements are consistent, so no actionable merge risk remains.

Architecture Summary

Architecture risk: 🔵 Low · up to ffd1e

The change affects 8 systems.

Changed systems: examples, packages/1-framework, test, packages/3-extensions, upgrade-instructions, apps/lsp-playground, apps/telemetry-backend, packages/9-public

Architecture concerns
No architecture-level concerns identified.

Review details

Systems and components

  • observed — examples (service) was modified; 13 changed files map to changed impact.
  • observed — packages/1-framework (library) was modified; 12 changed files map to changed impact.
  • observed — test (service) was modified; 11 changed files map to changed impact.
  • observed — packages/3-extensions (library) was modified; 4 changed files map to changed impact.

Before / after behavior

  • observed — Modified behavior in apps/lsp-playground/package.json: Updated the @prisma/cli-engine devDependency version from 0.6.1 to 0.6.2.
  • observed — Modified behavior in apps/telemetry-backend/package.json: Updated the @prisma/cli-engine devDependency version from 0.6.1 to 0.6.2.
  • observed — Modified behavior in examples/bundle-size/package.json: Updated the @prisma/cli-engine dev dependency version from 0.6.1 to 0.6.2.
  • observed — Modified behavior in examples/mongo-blog-leaderboard/package.json: Updated the @prisma/cli-engine dev dependency version from 0.6.1 to 0.6.2.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: updating the ORM toolchain to @prisma/cli-engine 0.6.2 so CLI output uses the invoked CLI name instead of {bin}.
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

Comment @coderabbitai help to get the list of available commands.

@pkg-pr-new

pkg-pr-new Bot commented Sep 29, 2026

Copy link
Copy Markdown

Open in StackBlitz

@prisma/orm-extension-arktype-json

npm i https://pkg.pr.new/@prisma/orm-extension-arktype-json@30503

@prisma/orm-extension-middleware-cache

npm i https://pkg.pr.new/@prisma/orm-extension-middleware-cache@30503

@prisma/orm-extension-paradedb

npm i https://pkg.pr.new/@prisma/orm-extension-paradedb@30503

@prisma/orm-extension-pgvector

npm i https://pkg.pr.new/@prisma/orm-extension-pgvector@30503

@prisma/orm-extension-postgis

npm i https://pkg.pr.new/@prisma/orm-extension-postgis@30503

@prisma/orm-extension-supabase

npm i https://pkg.pr.new/@prisma/orm-extension-supabase@30503

@prisma/orm-family-mongo

npm i https://pkg.pr.new/@prisma/orm-family-mongo@30503

@prisma/orm-family-sql

npm i https://pkg.pr.new/@prisma/orm-family-sql@30503

@prisma/orm-framework

npm i https://pkg.pr.new/@prisma/orm-framework@30503

@prisma/orm-mongo

npm i https://pkg.pr.new/@prisma/orm-mongo@30503

@prisma/orm-postgres

npm i https://pkg.pr.new/@prisma/orm-postgres@30503

@prisma/orm-sqlite

npm i https://pkg.pr.new/@prisma/orm-sqlite@30503

@prisma/orm-target-mongo

npm i https://pkg.pr.new/@prisma/orm-target-mongo@30503

@prisma/orm-target-postgres

npm i https://pkg.pr.new/@prisma/orm-target-postgres@30503

@prisma/orm-target-sqlite

npm i https://pkg.pr.new/@prisma/orm-target-sqlite@30503

@prisma/orm-toolchain

npm i https://pkg.pr.new/@prisma/orm-toolchain@30503

commit: ffd1e29

@github-actions

Copy link
Copy Markdown
Contributor

size-limit report 📦

Path Size
postgres / no-emit 206.19 KB (0%)
postgres / emit 184.78 KB (0%)
mongo / no-emit 191.05 KB (0%)
mongo / emit 170.62 KB (0%)
cf-worker / no-emit 229.06 KB (0%)
cf-worker / emit 205.04 KB (0%)

@wmadden-electric
wmadden-electric added this pull request to the merge queue Sep 30, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Sep 30, 2026
@wmadden
wmadden added this pull request to the merge queue Sep 30, 2026
@wmadden
wmadden removed this pull request from the merge queue due to a manual request Sep 30, 2026
@wmadden
wmadden merged commit 64f6c3e into main Sep 30, 2026
27 checks passed
@wmadden
wmadden deleted the claude/engine-0.6.2 branch September 30, 2026 06:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants