fix(deps): build composer-cli against @prisma/cli-engine 0.6.2, the engine the next prisma CLI ships - #325
Conversation
…ngine 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. composer-cli 0.23.0 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 composer 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. 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>
|
✅ Gizmo reviewed ca4e67c — posted 0 inline comment(s) this pass. Open findings: none Change walkthroughThis PR moves every |
commit: |
There was a problem hiding this comment.
New findings: 🟡 1 minor · trace
Findings outside the diff
- 🟡 Minor · consistency pnpm-lock.yaml — External @prisma/orm-toolchain@8.0.0-rc.13 still peers cli-engine 0.6.1, so workspace installs now report a peer mismatch until its follow-up release
The bump moves every in-repo pin to 0.6.2, but the external@prisma/orm-toolchain@8.0.0-rc.13package (pinned bypackages/1-prisma-cloud/1-extensions/target,packages/1-prisma-cloud/2-shared-modules/auth, andpackages/9-public/composer-prisma-cloud) still declares"@prisma/cli-engine": "0.6.1"as a peer in its published manifest. pnpm resolves the peer against the single 0.6.2 copy — the lockfile's peer suffixes all read@prisma/cli-engine@0.6.2(...)— so no second engine copy exists andpnpm installsucceeds, but it emits a peer-dependency mismatch warning for each of those packages until the matching@prisma/orm-toolchainrelease that peers 0.6.2 lands. The PR description tracks this follow-up (prisma/prisma-cli#314), so this is a known transient rather than a defect, recorded here so reviewers see why installs warn.
Recommended fix: Land the coordinated@prisma/orm-toolchainrelease that peers@prisma/cli-engine0.6.2 and bump the workspace's8.0.0-rc.13pins in a follow-up, as planned in prisma/prisma-cli#314.
At a glance
The peer dependency of
@prisma/composer-cli, inpackages/9-public/composer-cli/package.json:"peerDependencies": { - "@prisma/cli-engine": "0.6.1" + "@prisma/cli-engine": "0.6.2" },What engine 0.6.2 changes, shown with the example from prisma/prisma-cli#313 (a CLI named
prisma-test):What this pull request does
It moves every pin of
@prisma/cli-enginein this repository from0.6.1to0.6.2and refreshes the lockfile. No source file changes.Background
@prisma/cli-engineis the package that runs the commands of theprismaCLI. It is released from prisma/prisma-cli. The commands come from other packages.@prisma/composer-cliis one of them, and@prisma/orm-toolchainis the other.A command package and the
prismaCLI 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/composer-clideclares the engine as a peer dependency at one exact version, and theprismaCLI 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
prismarelease ships that engine. Its release check refuses a command package that peers a different engine version.@prisma/composer-cli0.25.0 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
A command does not know the name of the CLI that runs it, so it writes the placeholder
{bin}in a hint. 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.In this repository
{bin}appears only in the help examples of thedeploy,destroy,dev, andlogcommands. Engine 0.6.1 already replaced those. So the output of the composer commands does not change, and no test expectation changes.What was checked
All commands ran locally on the branch tip, on macOS.
pnpm install --frozen-lockfilepnpm buildpnpm lintpnpm lint:depspnpm lint:castspnpm typecheckpnpm check:cli-engine-pinpnpm check:publish-depspnpm check:family-static-graphpnpm check:skill-packagingpnpm check:npm-effect-resolutionpnpm check:floor-importspnpm test:scriptspnpm turbo run test:typespnpm turbo run test --filter=@internal/local-targetpnpm turbo run test --filter='!@internal/local-target'pnpm check:cli-engine-pinprinted:OK — @prisma/cli-engine@0.6.2 is exact, agreed across manifests, external in the CLI tarball, and absent from the library.The task that failed is
@prisma/integration-tests. Its scripttest/local-dev-store.integration.tsstops withno main.js/main.mjs found in bundle dir .../examples/store/.prisma-composer/artifacts/storefront. The same script fails with the same error on an unchanged checkout ofmain(commita2544c31) on the same machine. It was not run in CI before this pull request was opened.What depends on this
@prisma/composer-climust be released after this merges. A release is a separate pull request that runspnpm bump-minor. The next version is 0.26.0.@prisma/orm-toolchainrelease, prisma/prisma-cli pins both and deletes its two temporary exceptions (Remove the engine 0.6.2 conformance exceptions once both families peer 0.6.2 prisma-cli#314).Linked issue
Refs prisma/prisma-cli#314 and prisma/prisma-cli#313.
Agent: keen-finch-33
🤖 Generated with Claude Code