Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions .drive/projects/prisma-cli-v8/deferred.md
Original file line number Diff line number Diff line change
Expand Up @@ -227,8 +227,15 @@ CLI does not do, and each restarts as engine work if wanted:

## Upstream, not ours to land

- **alchemy-run/node-utils#6** (scope exit hooks to owned locks) is
open. Vendored as a pnpm patch in composer
- **alchemy-run/node-utils#6** (scope exit hooks to owned locks).
**Closed by composer 0.13.0 (2026-08-25):** the release chain
delivered — alchemy 2.0.0-beta.74 carries the node-utils fix and
composer #254 retired the vendored patch, so a `prisma` install now
resolves a node-utils that registers no import-time signal listener.
The canary (`packages/cli/tests/composer-isolation.test.ts`) now
asserts zero listeners, so a regression in that chain says so. The
original entry follows for the record.
Was: open. Vendored as a pnpm patch in composer
(`patches/@alchemy.run__node-utils@0.0.5.patch`, applied to both
`lib/lockfile.js` and `src/lockfile.ts` because the exports map
sends bun to `src/`). **Delete the patch when the release chain
Expand Down
6 changes: 3 additions & 3 deletions packages/cli/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -50,19 +50,19 @@
"dependencies": {
"@manypkg/tools": "^2.1.2",
"@prisma/cli-engine": "workspace:0.2.3",
"@prisma/composer-cli": "0.12.0",
"@prisma/composer-cli": "0.13.0",
"@prisma/compute-sdk": "0.39.0",
"@prisma/credentials-store": "^7.8.0",
"@prisma/management-api-sdk": "1.55.0",
"@prisma/orm-toolchain": "8.0.0-rc.5",
"@prisma/orm-toolchain": "8.0.0-rc.6",
"@vercel/detect-agent": "^1.2.3",
"better-result": "^2.9.2",
"dotenv": "^17.4.2",
"execa": "^9.6.1",
"open": "^11.0.0"
},
"devDependencies": {
"@prisma/composer": "0.11.0",
"@prisma/composer": "0.13.0",
"@repo/cli-conformance": "workspace:8.0.0-rc.9",
"@repo/cli-telemetry": "workspace:8.0.0-rc.9",
"@repo/tsconfig": "workspace:8.0.0-rc.9",
Expand Down
4 changes: 2 additions & 2 deletions packages/cli/scripts/conformance.ts
Original file line number Diff line number Diff line change
Expand Up @@ -122,15 +122,15 @@ async function tarball(): Promise<readonly Finding[]> {
exceptions: [
{
familyPackage: "@prisma/composer-cli",
familyPin: "0.2.0",
familyPin: "0.2.2",
shellPin: "0.2.3",
reason: "engine 0.2.3 must publish before composer-cli can peer it",
removeWhen:
"composer-cli releases peering 0.2.3 and the follow-up bump PR pins that release",
},
{
familyPackage: "@prisma/orm-toolchain",
familyPin: "0.2.0",
familyPin: "0.2.2",
shellPin: "0.2.3",
reason: "engine 0.2.3 must publish before orm-toolchain can peer it",
removeWhen:
Expand Down
13 changes: 7 additions & 6 deletions packages/cli/tests/composer-isolation.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ describe("composer's family costs an unrelated command nothing", () => {
expect(report.signalListeners).toEqual({ SIGINT: 0, SIGTERM: 0 });
}, 120_000);

test("canary: the executor import a composer command makes loads the constellation, and one signal listener per signal comes with it", async () => {
test("canary: the executor import a composer command makes loads the constellation, and no signal listener comes with it", async () => {
Comment thread
coderabbitai[bot] marked this conversation as resolved.
const report = await runProbe("canary");

expect(report.constellation.length).toBeGreaterThan(0);
Expand All @@ -91,10 +91,11 @@ describe("composer's family costs an unrelated command nothing", () => {
expect(report.constellation.some((id) => id.startsWith("effect/"))).toBe(
true,
);
// The unpatched @alchemy.run/node-utils registers these at import time
// and never removes them; their handlers exit 130/143 themselves. The
// count is what the deferred entry on that patch reports, so it is
// asserted rather than only recorded.
expect(report.signalListeners).toEqual({ SIGINT: 1, SIGTERM: 1 });
// Zero since composer 0.13.0: alchemy 2.0.0-beta.74 carries the
// node-utils fix (alchemy-run/node-utils#6) that used to register a
// SIGINT and SIGTERM listener at import time, whose handlers exited
// 130/143 out from under the engine's own teardown. Asserted so a
// regression in that chain reintroducing the listeners says so.
expect(report.signalListeners).toEqual({ SIGINT: 0, SIGTERM: 0 });
}, 120_000);
});
4 changes: 2 additions & 2 deletions packages/prisma/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,11 @@
"dependencies": {
"@manypkg/tools": "^2.1.2",
"@prisma/cli-engine": "workspace:0.2.3",
"@prisma/composer-cli": "0.12.0",
"@prisma/composer-cli": "0.13.0",
"@prisma/compute-sdk": "0.39.0",
"@prisma/credentials-store": "^7.8.0",
"@prisma/management-api-sdk": "1.55.0",
"@prisma/orm-toolchain": "8.0.0-rc.5",
"@prisma/orm-toolchain": "8.0.0-rc.6",
"@vercel/detect-agent": "^1.2.3",
"better-result": "^2.9.2",
"dotenv": "^17.4.2",
Expand Down
Loading
Loading