Skip to content

TML-3340: close out the one-config-file project - #30654

Merged
wmadden merged 18 commits into
mainfrom
composer-one-config-file-closeout
Oct 8, 2026
Merged

wmadden merged 18 commits into
mainfrom
composer-one-config-file-closeout

Conversation

@wmadden-electric

@wmadden-electric wmadden-electric commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor
$ git diff --stat main...HEAD | tail -1
 25 files changed, 1 insertion(+), 2833 deletions(-)

This closes the one-config-file project. It deletes the project's working folder, projects/one-config-file/, and fixes one duplicate number in the failure-mode catalogue. Linear: TML-3340.

The project moved Prisma Composer's configuration out of its own prisma-composer.config.ts into the composer section of prisma.config.ts, and deleted Composer's standalone prisma-composer binary. Prisma 8 now has one CLI and one config file. The rest of this description is the close-out record the Drive process asks for: what was checked, where each decision now lives, and where each unfinished item is tracked.

What was delivered

PR What it did
prisma/composer#328 Composer's configuration is the composer section of prisma.config.ts. The old file and configPath are refused.
prisma/composer#331 The prisma-composer binary is gone. Docs, examples and the shipped skill say prisma deploy and prisma dev. Released as Composer 0.26.0.
prisma/prisma-cli#330 The prisma host runs Composer 0.26.0. Released as prisma@8.0.0-rc.20.
prisma/web#8387 The public Composer docs describe the composer section.
prisma/composer#332 Found during testing: prisma dev and prisma deploy failed in pnpm projects. Merged, not yet released (TML-3520).
prisma/composer#333 An emulator test race that made CI flaky, plus PRISMA_COMPOSER_EMULATORS_DIR.

Three more PRs came out of this close-out and are open:

Definition of Done

Item Verdict Evidence
orm-demo has one config file, and prisma deploy and prisma dev run against it from the host Met, with deviations examples/orm-demo has only prisma.config.ts. prisma dev from the host build reached ready (slice 3 QA). A real prisma deploy of orm-demo succeeds in Composer's e2e workflow on main, using the published host with the workspace family. No deploy ran from the host build itself, because no service token was available.
The old file and configPath get their diagnostics Met, with a deviation CONFIG.FILE_RETIRED and CONFIG.FIELD_RETIRED, exit 2, from the host binary. Shown with prisma dev, because deploy checks credentials before reading the config. Both commands use the same validator.
A broken effect install fails with CLI.CONFIG_UNREADABLE, and prisma --version still works Met, with the same deviation Slice 3 QA, step 5.
Published packages have no bin and no stale name Met @prisma/composer-cli and @prisma/composer 0.28.0 declare no bin. Their unpacked tarballs name the old file only in the messages that refuse it.
A CI check keeps the old name out Met pnpm lint:retired-binary-name runs in CI. Its test plants a mention and expects a failure.
TML-3340 Done, web pages updated Met TML-3340 is Done with a closing comment. One page missed by #8387 is fixed in prisma/web#8415.
The consolidation plan says deploy and dev stay bare Met projects/consolidate-clis/cli-consolidation-plan.md, and now ADR-0050 in prisma/composer.
Retro run, ADR merged, folder deleted Met once #347 and this PR merge The retro's lesson is failure mode F42. ADR-0049 is merged. ADR-0050 is in #347.
Repository references to the folder removed Met Nothing outside the folder links to it.
Manual QA for each user-facing slice Met, with a deviation Slice 3 has a QA transcript. Slices 1 and 2 recorded their manual QA in the Verification sections of #328 and #331.

Where each decision lives now

Every decision recorded in the deleted spec and design notes has a home outside the folder:

  • Composer's configuration is the composer section, validated by the section, with the old file and field refused: ADR-0049, and the CONFIG code list in ADR-0044.
  • The effect version pre-flight is deleted; a broken tree fails with the engine's error: ADR-0049. #347 adds the four rejected alternatives, which until now were only in Field names for 1:N relations are lost in the DMMF #328's description.
  • The binary is retired, and destroy and log stay programmatic: ADR-0050 in #347.
  • deploy and dev stay bare commands; destroy is not mounted: ADR-0050, and the consolidation plan.
  • The examples' destroy scripts keep --production and --stage: ADR-0050 records this as a repository-internal script grammar, not a public command.
  • Examples and CI run the published host with a workspace override: gotchas.md and scripts/check-cli-engine-pin*.mjs in prisma/composer, which enforce it.
  • Composer runs the alchemy installed beside @prisma/composer: ADR-0007's amendment and docs/design/10-domains/deploy-cli.md in prisma/composer.

Deferred items and their tickets

Ticket Item
TML-3520 Release Composer 0.29.0 and pin it in the host, so prisma@latest gets the pnpm fix.
TML-3521 Teardown and logs have no prisma command.
TML-3522 Two checkouts of one app still share a local Postgres server.
TML-3523 A compute emulator test is too tight on time and flakes under load.
TML-3524 Composer's examples pin an older prisma host than latest.
TML-3525 Drop the exact effect pin once effect 4 is stable or Alchemy pins its peer.
TML-3526 dependency-cruiser skips the examples' prisma.config.ts.
TML-3527 Edge cases in how Composer starts Alchemy.
TML-3528 prisma/asks and prisma/streams still use the retired config or command.

Two smaller review notes are accepted without tickets. The prisma-cli conformance check needs a new exception on each joint engine release, which is visible when it happens. Windows edge cases are out of scope, because Windows is documented as unsupported for local tooling.

What this PR deletes

Every file under projects/one-config-file/ is transient under drive/project/README.md: the spec, plan, design notes, retro log, README, and each slice's spec, plan, grounding notes, reviews and QA transcript. None is methodology to migrate. The decisions are mapped above. The full files stay readable in the history of #30536.

The failure-mode number

The retro added its lesson to drive/calibration/failure-modes.md as F39. #30613 had already used F39 two days earlier. This PR renumbers ours to F42, the next free number.

Agent: saruman-38

🤖 Generated with Claude Code

wmadden-electric and others added 17 commits September 30, 2026 15:43
Composer keeps a second config file and a second binary. The spec, design
notes and plan record the decisions made with Will on 2026-09-30: the
composer section of prisma.config.ts holds the whole configuration, the
effect pre-flight is deleted in favour of the engine's fail-fast
diagnostic, the prisma-composer binary goes, and no new command is
mounted. The consolidation plan is corrected to say deploy and dev stay
bare commands.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
Grounding in prisma/composer found that the generated stack files import
the config file in the Alchemy child, that the programmatic operations
find their config by walking up from the entry, and that the engine
merges sections across a config chain. The slice spec decides each: the
section's provenance path travels with its value, the programmatic
operations take the config as an input, and the section merges whole.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
The two review passes and the round-2 verification for
prisma/composer#328, plus the grounding map the slice spec was written
from.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
Grounding found that CI and the docs-site deploy run the binary, that
the published host pins an older Composer, and that four integration
tests spawn it. The examples and CI run the real prisma host with a
workspace override, and CI teardown becomes a script over the
programmatic destroy.

Co-Authored-By: Claude Fable 5.1 <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 Fable 5.1 <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 Fable 5.1 <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 Fable 5.1 <noreply@anthropic.com>
Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
The host's shipped skill, five prisma/web pages and the web's account of
the deleted effect pre-flight join slice 3's scope. The host needs a
release, not only a pin bump, for prisma@latest to carry Composer 0.26.0.

Co-Authored-By: Claude Fable 5.1 <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 Fable 5.1 <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 Fable 5.1 <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 Fable 5.1 <noreply@anthropic.com>
Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
…y design pass

Co-Authored-By: Claude Fable 5.1 <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 Fable 5.1 <noreply@anthropic.com>
Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
A branch-only CI failure must be reproduced and root-caused, never
rescheduled around.

Co-Authored-By: Claude Fable 5.1 <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 Fable 5.1 <noreply@anthropic.com>
Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
Every slice and side fix has merged and TML-3340 is Done. The decision
lives in prisma/composer ADR-0049, the lesson in
drive/calibration/failure-modes.md, and the deferred items in the
consolidation plan and ADR-0049, so the project folder goes.

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>
@wmadden-electric
wmadden-electric requested a review from a team as a code owner October 8, 2026 07:01
@coderabbitai

coderabbitai Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

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: 1aa837fd-fe0d-4460-8dfd-8906c12957fb
📥 Commits

Reviewing files that changed from the base of the PR and between abd9f6d and 620cf0a.

📒 Files selected for processing (1)
  • drive/calibration/failure-modes.md

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


📝 Walkthrough

Walkthrough

The failure-mode entry previously numbered F39 is now numbered F42. Its title and body are unchanged.

Changes

Failure-mode documentation

Layer / File(s) Summary
Renumber the failure-mode entry
drive/calibration/failure-modes.md
The heading changes from F39 to F42. The entry title and body are unchanged.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~2 minutes

Change: Other

Suggested reviewers: wmadden

Merge Risk: ⚪ Minimal · up to 620cf

Only the failure-mode label changes from F39 to F42, with current references consistent. No actionable merge risk remains.

Architecture Summary

Architecture risk: 🔵 Low · up to 620cf

The change affects 1 system.

Changed systems: drive

Architecture concerns
No architecture-level concerns identified.

Review details

Systems and components

  • observed — drive (service) was modified; 1 changed file maps to changed impact.

Before / after behavior

  • observed — Modified behavior in drive/calibration/failure-modes.md: The heading is renumbered from F39 to F42; the entry title and content are unchanged.
🚥 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 0…
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 identifies the main objective: completing and closing the one-config-file project. It is concise and specific.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

#30536 added it as F39, but #30613 had already used F39 two days
earlier, so the catalogue had two entries with one number. F42 is the
next free number.

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>
@wmadden-electric wmadden-electric changed the title Close out the one-config-file project: delete projects/one-config-file Close out the one-config-file project: delete its folder and fix a duplicate failure-mode number Oct 8, 2026
@wmadden-electric wmadden-electric changed the title Close out the one-config-file project: delete its folder and fix a duplicate failure-mode number TML-3340: close out the one-config-file project Oct 8, 2026
@wmadden
wmadden added this pull request to the merge queue Oct 8, 2026
Merged via the queue into main with commit 364a720 Oct 8, 2026
20 checks passed
@wmadden
wmadden deleted the composer-one-config-file-closeout branch October 8, 2026 14:59
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