Repository navigation
fix(deps): alchemy back to beta.78 so npm stops nesting prisma@8.0.0-rc.15; release v0.29.1 - #349
Conversation
…ma@8.0.0-rc.15 alchemy 2.0.0-beta.80 and later declare optional peers on exactly prisma@8.0.0-rc.15 and @prisma/orm-postgres@8.0.0-rc.11. Any other prisma version fails the peer, so npm installs a full nested prisma@8.0.0-rc.15 (with @prisma/cli-engine 0.4.0) under @prisma/composer and @prisma/composer-cli. The prisma CLI's conformance check then fails on that nested engine. This reverts the dependency part of #348 and restores the pins it removed: alchemy 2.0.0-beta.78, effect 4.0.0-rc.115 and the exact @effect/* pins. beta.79 also lacks the peers, but its alchemy/Prisma entry fails to load without @alchemy.run/frontend-frameworks, and Composer imports alchemy/Prisma. beta.78 and beta.79 only work on effect rc.115, which still needs the @effect/vitest pin to keep npm on one effect copy. ORM 8.0.0-rc.17 and cli-engine 0.7.0 from #345 stay. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: willbot <w.a.madden+machine@gmail.com> Signed-off-by: Will Madden <madden@prisma.io>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: willbot <w.a.madden+machine@gmail.com> Signed-off-by: Will Madden <madden@prisma.io>
|
✅ Gizmo reviewed b23e837 — posted 0 inline comment(s) this pass. Open findings: none Change walkthroughThis PR backs Dependency revert. packages/9-public/composer/package.json and Guardrails and docs. Failure messaging. The install-timeout diagnostic in |
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configuration
Comment |
commit: |
…in the dedupe check's timeout message Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: willbot <w.a.madden+machine@gmail.com> Signed-off-by: Will Madden <madden@prisma.io>
`8.0.0-rc.21` → `8.0.0-rc.22` This release ships the CLI on the latest Composer and ORM releases: | Package | Before | After | | --- | --- | --- | | `@prisma/composer-cli`, `@prisma/composer` | `0.28.0` | `0.29.1` | | `@prisma/orm-toolchain` | `8.0.0-rc.17` (from #340) | `8.0.0-rc.17` | | `@prisma/cli-engine` (packed) | `0.7.0` | `0.7.0` | Composer 0.29.1 and ORM rc.17 both peer engine `0.7.0`, the engine `main` packs, so the conformance check passes with no exceptions. ## Why 0.29.1 and not 0.29.0 Composer 0.29.0 moved to `alchemy@2.0.0-beta.81`. That `alchemy` declares an optional peer dependency on exactly `prisma@8.0.0-rc.15`. This CLI publishes as `prisma`, so npm nested a full `prisma@8.0.0-rc.15` (with engine `0.4.0`) inside Composer, and conformance failed. [prisma/composer#349](prisma/composer#349) (0.29.1) puts `alchemy` back on `2.0.0-beta.78`. The upstream fix is [alchemy-run/alchemy#2154](alchemy-run/alchemy#2154). ## Checks run locally - `pnpm build`, `pnpm typecheck`, `pnpm lint`: pass. - `pnpm --filter @prisma/cli test`: 1027 passed, 1 skipped. - `pnpm check:conformance`: 5 subjects checked, nothing to report. ## Merging ships the release Merging this PR changes the root version on `main`. The `Publish to npm` workflow then publishes `@prisma/cli-engine` and `@prisma/cli` under `latest` and creates a pre-release GitHub Release with generated notes. See [`docs/oss/versioning.md`](docs/oss/versioning.md). Agent: tagore-84 🤖 Generated with [Claude Code](https://claude.com/claude-code) Signed-off-by: willbot <w.a.madden+machine@gmail.com> Signed-off-by: Will Madden <madden@prisma.io> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Composer 0.29.0 makes npm install a second, older Prisma CLI inside Composer. With the current CLI and Composer 0.29.0:
The cause is alchemy. From
2.0.0-beta.80, alchemy declares optional peers on exactlyprisma@8.0.0-rc.15and@prisma/orm-postgres@8.0.0-rc.11. (alchemy wrotecatalog:in its peerDependencies, and pnpm turned that into an exact version at publish.) No otherprismaversion satisfies that peer, so npm nestsprisma@8.0.0-rc.15under alchemy. The Prisma CLI's conformance check then fails on the nested@prisma/cli-engine@0.4.0. This blocks the next CLI release.Decision: go back to
alchemy@2.0.0-beta.78and the exacteffectpins we had before #348, and release this as 0.29.1.This PR has two commits:
fix(deps): reverts the dependency part of Upgrade alchemy to beta.81 and use effect ^4.0.0, dropping the @effect/vitest runtime dependency #348. It restoresalchemy@2.0.0-beta.78,effect@4.0.0-rc.115, the exact@effect/*pins,@distilled.cloud/prisma@1.0.0-rc.12, theeffect/unstable/http/*import paths, the exact-version rule incheck-npm-effect-resolution.mjs, and the docs and skills. ORM8.0.0-rc.17and@prisma/cli-engine0.7.0from chore(deps): move Composer to Prisma ORM 8.0.0-rc.17 and CLI engine 0.7.0 #345 stay.chore(release): v0.29.1:node scripts/set-version.ts 0.29.1plus the lockfile, and the auth example's contract, which embeds the version (as in chore(release): v0.29.0 #346). Merging this PR publishes 0.29.1.After this PR, with the packed tarballs:
(I ran this before the version bump, so the tarballs were 0.29.0. The
prisma@8.0.0-rc.21subtree is the CLI's own pins; the next CLI release moves them.) No nestedprismaunder Composer, only@prisma/cli-engine@0.7.0under Composer, and oneeffectcopy (4.0.0-rc.115) in the whole tree.Why beta.78 and not beta.79
beta.79 also lacks the prisma peers, but its
alchemy/Prismaentry imports the optional peer@alchemy.run/frontend-frameworksand fails to load without it. Composer importsalchemy/Prisma(the Prisma Cloud descriptors). With beta.79, thelocal-targettests fail withCannot find module '@alchemy.run/frontend-frameworks/core'. b5e2518 chose beta.78 over beta.79 for the same reason.Why the effect pins come back
beta.78 was built against
effect@4.0.0-rc.115. It importseffect/unstable/http/*, whicheffect4.0 moved toeffect/http/*, so it can't run oneffect4.0.x. It also lists@effect/vitestas a runtime dependency with an open range. Without our exact pin, npm picks@effect/vitest@4.0.2, which needseffect ^4.0.2and pulls a secondeffect. So@effect/vitestgoes back into@prisma/composer's dependencies until we can move to an alchemy without the prisma peers.Verification
pnpm build,pnpm typecheck,pnpm lint: pass.pnpm testwithout the integration package: 65/65 tasks pass.check:npm-effect-resolution: every healthy npm install resolves oneeffect@4.0.0-rc.115, and the adversarial tree fails as expected.check:cli-engine-pin,check:publish-deps,check:family-static-graph,check:skill-packaging,check:orm-pins: pass.test:scripts: 229 pass, 1 fails locally:check-cli-engine-pin-host.test.mjs"fails when the family cannot be resolved from the host" getsERR_FS_EISDIRfromrmSyncon its temp fixture. That test doesn't touch dependencies; CI will show whether it's local only.Alternatives considered
prismapeers ranges instead of exact versions. That PR is being opened separately, but it can't ship on our schedule. When it does, we can move forward to a newer alchemy and drop theeffectpins again.@alchemy.run/frontend-frameworksas a dependency. Rejected: it adds a dependency only to load an entry that beta.78 loads without it, and beta.79 still needs the sameeffectpins.Agent: tagore-84
🤖 Generated with Claude Code