chore: finish the roadmap removal and let docs-only PRs merge - #30261
Conversation
ROADMAP.html was the rendered twin of the ROADMAP.md that #30229 deleted; it still described the rc.1 plan. The legacy-name lint explained two of its temporary allowances by pointing at a roadmap section that no longer exists, and carried a file allowance for the roadmap itself; both now describe the pending identifier rename directly. Size Limit is a required status check, but the bundle-size workflow skipped the whole job on an inert diff, so every docs-only PR sat blocked on a check that never reported. The job now always runs and only its steps skip. Co-Authored-By: Claude Fable 5.1 <[email protected]> Signed-off-by: willbot <[email protected]> Signed-off-by: Will Madden <[email protected]>
|
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yml Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (5)
Included review availability: Your plan provides up to 10 included reviews per hour; 7 remain after this review. 📝 WalkthroughWalkthroughThe Bundle Size workflow now reports a status for inert diffs. The roadmap page and its lint exemption are removed. Legacy-name tests reference the pending rename. Test database helpers now use a 30-second idle timeout by default and validate it. ChangesBundle-size status reporting
Legacy-name allowance cleanup
Test database idle timeout alignment
Priority: ⬇️ Low Estimated code review effort: 3 (Moderate) | ~25 minutes Change: Bug fix Suggested reviewers: Merge Risk: ⚪ Minimal · up to The CI, legacy-name cleanup, and test-database timeout changes have no verified merge-blocking issue. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Comment |
@prisma/orm-extension-arktype-json
@prisma/orm-extension-middleware-cache
@prisma/orm-extension-paradedb
@prisma/orm-extension-pgvector
@prisma/orm-extension-postgis
@prisma/orm-extension-supabase
@prisma/orm-family-mongo
@prisma/orm-family-sql
@prisma/orm-framework
@prisma/orm-mongo
@prisma/orm-postgres
@prisma/orm-sqlite
@prisma/orm-target-mongo
@prisma/orm-target-postgres
@prisma/orm-target-sqlite
@prisma/orm-toolchain
commit: |
size-limit report 📦
|
…river pool does createDevDatabase started the dev Postgres with a one-second idle timeout while the Postgres driver pool keeps an idle client for thirty seconds, so any test pausing longer than a second between queries got a dead client back: "Connection terminated unexpectedly". Coverage-instrumented runs pause that long routinely, which is why the adapter-postgres native-enum lifecycle suite failed the Coverage job across five branches today while passing every plain shard. Three suites had already worked around it per call. The default now matches the pool, the redundant overrides go, and the returned handle exposes the setting so a test can hold the line. Co-Authored-By: Claude Fable 5.1 <[email protected]> Signed-off-by: willbot <[email protected]> Signed-off-by: Will Madden <[email protected]>
…prisma#30262) ## Linked issue n/a — no Linear ticket. Completes the rename that prisma#30248 started for prose; builds on prisma#30261. ## At a glance Every `prisma-next` identifier a user can see is renamed. Before and after, for a scaffolded project: ```text // use prisma-next → // use prisma-8 (schema header) prisma-next.md → prisma-8.md (primer at the project root) PRISMA_NEXT_DISABLE_TELEMETRY → PRISMA_DISABLE_TELEMETRY (and every other PRISMA_NEXT_* variable) ~/.config/prisma-next/ → ~/.config/prisma-8/ (per-user telemetry config) prisma-next contract emit → prisma contract emit (CLI invocations in docs, fixtures, recordings) ``` ## Summary After prisma#30248 the product was called Prisma 8 in prose, but the working name was still written into user projects and printed by the CLI: the schema header, the primer file, the environment variables, the per-user config directory, the language-server diagnostic source, the Standard Schema vendor string, the contract brand symbol, the advisory-lock domain, and about 650 fixture and doc files that spelled out `prisma-next …` commands. This PR renames all of it in one pass and tightens the legacy-name lint so the only occurrences left are the ones with a reason. ## Decision One commit. The mapping: | Surface | Before | After | |---|---|---| | Schema header | `// use prisma-next` | `// use prisma-8` | | Primer file `init` writes | `prisma-next.md` | `prisma-8.md` | | CLI environment variables | `PRISMA_NEXT_*` | `PRISMA_*` | | Per-user config directory | `prisma-next/` | `prisma-8/` | | Language-server diagnostic source | `prisma-next` | `prisma` | | Standard Schema vendor, VS Code publisher | `prisma-next` | `prisma` | | Contract brand symbol | `__prisma_next_brand__` | `__prisma_8_brand__` | | Postgres advisory-lock domain | `prisma_next.contract.marker` | `prisma_8.contract.marker` | | Example database names | `prisma_next_*` | `prisma_8_*` | | README banner image | `images/prisma-next.png` | `images/prisma-8.png` | | Telemetry docs URL | `prisma-next.dev/docs/…` | `www.prisma.io/docs/…` | | New-issue links | `github.com/prisma/prisma-next/issues/new` | `github.com/prisma/orm/issues/new` | | CLI invocations in prose, fixtures, and recordings | `prisma-next db verify` | `prisma db verify` | `prisma-8` is the slug the repo already uses for the skill, the examples, and the upgrade directories, so it is the slug for everything that needs one. Environment variables drop the infix entirely because `PRISMA_*` is what users expect and nothing else in the repo claims those names. What keeps the old name, each with a lint allowance that says why: - **Dated records**: changelog, release notes, ADRs, shipped upgrade instructions, gotcha logs, the framework-gaps review, and the `projects/` and `drive/` write-ups. - **Pinned links** into the old repository by number, Linear slugs, and links to ADRs whose filenames carry the name. - **`@cipherstash/prisma-next`**, a third party's published package name. - **Retirement proofs**: the list of old skill directories `init` deletes, and the tests asserting that no `prisma-next` bin or skill directory is installed any more. ## Behavior changes & evidence - **Schema header.** The inferred-schema printer and the `init` templates write `// use prisma-8`. The language server accepts both headers, so existing schemas keep their diagnostics and completion, and its Format action rewrites the old header to the new one. [packages/1-framework/3-tooling/language-server/src/schema-directive.ts](packages/1-framework/3-tooling/language-server/src/schema-directive.ts), [packages/1-framework/2-authoring/psl-printer/src/ast-to-print-document.ts](packages/1-framework/2-authoring/psl-printer/src/ast-to-print-document.ts). Evidence: the `renameLegacyDirective` tests, the server test that formats a legacy-headed schema, and the psl-printer tests. - **Environment variables.** Telemetry gating, the endpoint override, and the debug switch read the new names. `PRISMA_NEXT_DISABLE_TELEMETRY` is still honoured as an opt-out so nobody is silently opted back in; the endpoint and debug spellings are not. [packages/1-framework/3-tooling/cli-telemetry/src/gating.ts](packages/1-framework/3-tooling/cli-telemetry/src/gating.ts). Evidence: cli-telemetry gating tests. - **Per-user config directory.** [packages/1-framework/3-tooling/cli-telemetry/src/user-config.ts](packages/1-framework/3-tooling/cli-telemetry/src/user-config.ts). Existing users see the telemetry consent prompt once more; nothing else is lost. - **Primer file.** [packages/1-framework/3-tooling/cli/src/orm/init-scaffold.ts](packages/1-framework/3-tooling/cli/src/orm/init-scaffold.ts). Evidence: init-scaffold tests and template snapshots. - **Advisory-lock domain.** A CLI on this version and one on the previous version take different locks for the same marker. Both versions running migrations against one database at the same moment is already unsupported. - **Upgrade instructions.** Entries for the header, the environment variables, and the primer file are recorded in the rc.9 → rc.10 app and extension instructions with detection patterns, so the published upgrade skill applies the rename. ## Testing performed - `pnpm test` in cli (1437), cli-telemetry (112), language-server (312), psl-printer (63), framework-components (672), target-postgres (1607), vite-plugin-contract-emit (31), emitter (231), and `pnpm test:scripts` (507): all pass after `pnpm build`. The language-server tests hard-coded the old header's length in semantic-token arrays and span offsets; those expectations are updated. - Committed migration steps and their content-addressed contract snapshots are left untouched, since rewriting them would break their hashes; the lint treats them as dated records. - `pnpm lint:legacy-name` passes with the tightened allowances; `node --test scripts/lint-legacy-name.test.mjs` passes (14 tests, including new negative cases for the header, primer, and skill names). - `pnpm check:upgrade-coverage --mode pr --prev origin/main` passes. ## Skill update `skills/prisma-8` references and the two rc.9 → rc.10 upgrade instruction files are updated in this PR. ## Checklist - [x] All commits are signed off (`git commit -s`) per the [DCO](../CONTRIBUTING.md#developer-certificate-of-origin-dco). - [x] I read [CONTRIBUTING.md](../CONTRIBUTING.md) and the change is scoped to one logical concern. - [x] Tests are updated. - [ ] The PR title is in `TML-NNNN: <sentence-case title>` form. No Linear ticket exists for this change. - [x] The **Skill update** section above is filled in. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Signed-off-by: willbot <[email protected]> Signed-off-by: Will Madden <[email protected]> Co-authored-by: Claude Fable 5.1 <[email protected]>
…#30261) ## Linked issue n/a — no Linear ticket. Follow-up to prisma#30229 (roadmap removal) and prisma#30248 (Prisma 8 rename). ## At a glance Docs-only PRs could not enter the merge queue: `Size Limit` is a required check, and the bundle-size workflow skipped the whole job on an inert diff, so the check never reported. prisma#30229 needed an admin merge for exactly this reason. The job now always runs and only its steps skip. ## Summary Three leftovers from the roadmap removal in one commit, plus a second commit that fixes the test-database idle timeout behind today's `Connection terminated unexpectedly` failures. ### The idle-timeout mismatch `createDevDatabase` in `@repo/test-utils` started the dev Postgres with a one-second idle timeout, while the Postgres driver's pool keeps an idle client for thirty seconds. Any test that pauses more than a second between queries then gets a dead client back from the pool: `Client has encountered a connection error and is not queryable`, wrapped as `SqlConnectionError: Connection terminated unexpectedly`. Coverage instrumentation makes such pauses routine, which is why the adapter-postgres native-enum lifecycle suite failed the Coverage job on five branches today (prisma#30249's queue run, prisma#30241, `prepare-orm`, `prisma-8-skill-rc9-refresh`, prisma#30262 four times in a row) while passing every plain shard. Three suites had already worked around it with a per-call thirty- or sixty-second override and a comment explaining exactly this. The default now matches the pool (thirty seconds), the three redundant overrides are gone, the telemetry harness keeps its sixty, and the returned handle exposes the setting so the test can assert it. ### The roadmap leftovers 1. **`ROADMAP.html` is deleted.** It was the rendered twin of the `ROADMAP.md` that prisma#30229 removed and still described the rc.1 plan. 2. **`scripts/lint-legacy-name.mjs` no longer cites the deleted roadmap.** Two of its temporary allowances pointed at "ROADMAP.md § 3" as the task that retires them; they now name the pending identifier rename directly. The file-specific allowance for the roadmap itself is gone with the files, and so is its test. 3. **The `Size Limit` job always reports.** The inert-diff condition moves from the job to each step, following the pattern the CI workflow already uses for its required `Test` summary job. ## Behavior changes & evidence - **CI:** a docs-only PR now gets a green `Size Limit` check instead of a skipped one, so auto-merge can enqueue it. Evidence: this PR touches `.github/` and `scripts/`, so it is non-inert and exercises the real path; the inert path is exercised by the next docs-only PR. - **Lint:** `pnpm lint:legacy-name` still passes on main; `node --test scripts/lint-legacy-name.test.mjs scripts/lint-workflow-triggers.test.mjs` passes (29 tests). ## Skill update n/a — no user-facing surface changed. ## Checklist - [x] All commits are signed off (`git commit -s`) per the [DCO](../CONTRIBUTING.md#developer-certificate-of-origin-dco). - [x] I read [CONTRIBUTING.md](../CONTRIBUTING.md) and the change is scoped to one logical concern. - [x] Tests are updated (the lint test drops the roadmap allowance case and asserts the new pointer). - [ ] The PR title is in `TML-NNNN: <sentence-case title>` form. No Linear ticket exists for this change. - [x] The **Skill update** section above is filled in. 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Documentation** - Removed the Prisma 8 RC1 roadmap page. - **Bug Fixes** - Bundle-size checks now report consistently, including for documentation-only changes. - **Development Experience** - Improved local development database connection handling by keeping idle connections available for longer, reducing unexpected disconnects during extended development and testing sessions. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: willbot <[email protected]> Signed-off-by: Will Madden <[email protected]> Co-authored-by: Claude Fable 5.1 <[email protected]>
…prisma#30262) ## Linked issue n/a — no Linear ticket. Completes the rename that prisma#30248 started for prose; builds on prisma#30261. ## At a glance Every `prisma-next` identifier a user can see is renamed. Before and after, for a scaffolded project: ```text // use prisma-next → // use prisma-8 (schema header) prisma-next.md → prisma-8.md (primer at the project root) PRISMA_NEXT_DISABLE_TELEMETRY → PRISMA_DISABLE_TELEMETRY (and every other PRISMA_NEXT_* variable) ~/.config/prisma-next/ → ~/.config/prisma-8/ (per-user telemetry config) prisma-next contract emit → prisma contract emit (CLI invocations in docs, fixtures, recordings) ``` ## Summary After prisma#30248 the product was called Prisma 8 in prose, but the working name was still written into user projects and printed by the CLI: the schema header, the primer file, the environment variables, the per-user config directory, the language-server diagnostic source, the Standard Schema vendor string, the contract brand symbol, the advisory-lock domain, and about 650 fixture and doc files that spelled out `prisma-next …` commands. This PR renames all of it in one pass and tightens the legacy-name lint so the only occurrences left are the ones with a reason. ## Decision One commit. The mapping: | Surface | Before | After | |---|---|---| | Schema header | `// use prisma-next` | `// use prisma-8` | | Primer file `init` writes | `prisma-next.md` | `prisma-8.md` | | CLI environment variables | `PRISMA_NEXT_*` | `PRISMA_*` | | Per-user config directory | `prisma-next/` | `prisma-8/` | | Language-server diagnostic source | `prisma-next` | `prisma` | | Standard Schema vendor, VS Code publisher | `prisma-next` | `prisma` | | Contract brand symbol | `__prisma_next_brand__` | `__prisma_8_brand__` | | Postgres advisory-lock domain | `prisma_next.contract.marker` | `prisma_8.contract.marker` | | Example database names | `prisma_next_*` | `prisma_8_*` | | README banner image | `images/prisma-next.png` | `images/prisma-8.png` | | Telemetry docs URL | `prisma-next.dev/docs/…` | `www.prisma.io/docs/…` | | New-issue links | `github.com/prisma/prisma-next/issues/new` | `github.com/prisma/orm/issues/new` | | CLI invocations in prose, fixtures, and recordings | `prisma-next db verify` | `prisma db verify` | `prisma-8` is the slug the repo already uses for the skill, the examples, and the upgrade directories, so it is the slug for everything that needs one. Environment variables drop the infix entirely because `PRISMA_*` is what users expect and nothing else in the repo claims those names. What keeps the old name, each with a lint allowance that says why: - **Dated records**: changelog, release notes, ADRs, shipped upgrade instructions, gotcha logs, the framework-gaps review, and the `projects/` and `drive/` write-ups. - **Pinned links** into the old repository by number, Linear slugs, and links to ADRs whose filenames carry the name. - **`@cipherstash/prisma-next`**, a third party's published package name. - **Retirement proofs**: the list of old skill directories `init` deletes, and the tests asserting that no `prisma-next` bin or skill directory is installed any more. ## Behavior changes & evidence - **Schema header.** The inferred-schema printer and the `init` templates write `// use prisma-8`. The language server accepts both headers, so existing schemas keep their diagnostics and completion, and its Format action rewrites the old header to the new one. [packages/1-framework/3-tooling/language-server/src/schema-directive.ts](packages/1-framework/3-tooling/language-server/src/schema-directive.ts), [packages/1-framework/2-authoring/psl-printer/src/ast-to-print-document.ts](packages/1-framework/2-authoring/psl-printer/src/ast-to-print-document.ts). Evidence: the `renameLegacyDirective` tests, the server test that formats a legacy-headed schema, and the psl-printer tests. - **Environment variables.** Telemetry gating, the endpoint override, and the debug switch read the new names. `PRISMA_NEXT_DISABLE_TELEMETRY` is still honoured as an opt-out so nobody is silently opted back in; the endpoint and debug spellings are not. [packages/1-framework/3-tooling/cli-telemetry/src/gating.ts](packages/1-framework/3-tooling/cli-telemetry/src/gating.ts). Evidence: cli-telemetry gating tests. - **Per-user config directory.** [packages/1-framework/3-tooling/cli-telemetry/src/user-config.ts](packages/1-framework/3-tooling/cli-telemetry/src/user-config.ts). Existing users see the telemetry consent prompt once more; nothing else is lost. - **Primer file.** [packages/1-framework/3-tooling/cli/src/orm/init-scaffold.ts](packages/1-framework/3-tooling/cli/src/orm/init-scaffold.ts). Evidence: init-scaffold tests and template snapshots. - **Advisory-lock domain.** A CLI on this version and one on the previous version take different locks for the same marker. Both versions running migrations against one database at the same moment is already unsupported. - **Upgrade instructions.** Entries for the header, the environment variables, and the primer file are recorded in the rc.9 → rc.10 app and extension instructions with detection patterns, so the published upgrade skill applies the rename. ## Testing performed - `pnpm test` in cli (1437), cli-telemetry (112), language-server (312), psl-printer (63), framework-components (672), target-postgres (1607), vite-plugin-contract-emit (31), emitter (231), and `pnpm test:scripts` (507): all pass after `pnpm build`. The language-server tests hard-coded the old header's length in semantic-token arrays and span offsets; those expectations are updated. - Committed migration steps and their content-addressed contract snapshots are left untouched, since rewriting them would break their hashes; the lint treats them as dated records. - `pnpm lint:legacy-name` passes with the tightened allowances; `node --test scripts/lint-legacy-name.test.mjs` passes (14 tests, including new negative cases for the header, primer, and skill names). - `pnpm check:upgrade-coverage --mode pr --prev origin/main` passes. ## Skill update `skills/prisma-8` references and the two rc.9 → rc.10 upgrade instruction files are updated in this PR. ## Checklist - [x] All commits are signed off (`git commit -s`) per the [DCO](../CONTRIBUTING.md#developer-certificate-of-origin-dco). - [x] I read [CONTRIBUTING.md](../CONTRIBUTING.md) and the change is scoped to one logical concern. - [x] Tests are updated. - [ ] The PR title is in `TML-NNNN: <sentence-case title>` form. No Linear ticket exists for this change. - [x] The **Skill update** section above is filled in. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Signed-off-by: willbot <[email protected]> Signed-off-by: Will Madden <[email protected]> Co-authored-by: Claude Fable 5.1 <[email protected]>
Linked issue
n/a — no Linear ticket. Follow-up to #30229 (roadmap removal) and #30248 (Prisma 8 rename).
At a glance
Docs-only PRs could not enter the merge queue:
Size Limitis a required check, and the bundle-size workflow skipped the whole job on an inert diff, so the check never reported. #30229 needed an admin merge for exactly this reason. The job now always runs and only its steps skip.Summary
Three leftovers from the roadmap removal in one commit, plus a second commit that fixes the test-database idle timeout behind today's
Connection terminated unexpectedlyfailures.The idle-timeout mismatch
createDevDatabasein@repo/test-utilsstarted the dev Postgres with a one-second idle timeout, while the Postgres driver's pool keeps an idle client for thirty seconds. Any test that pauses more than a second between queries then gets a dead client back from the pool:Client has encountered a connection error and is not queryable, wrapped asSqlConnectionError: Connection terminated unexpectedly. Coverage instrumentation makes such pauses routine, which is why the adapter-postgres native-enum lifecycle suite failed the Coverage job on five branches today (#30249's queue run, #30241,prepare-orm,prisma-8-skill-rc9-refresh, #30262 four times in a row) while passing every plain shard.Three suites had already worked around it with a per-call thirty- or sixty-second override and a comment explaining exactly this. The default now matches the pool (thirty seconds), the three redundant overrides are gone, the telemetry harness keeps its sixty, and the returned handle exposes the setting so the test can assert it.
The roadmap leftovers
ROADMAP.htmlis deleted. It was the rendered twin of theROADMAP.mdthat Replace the stale RC1 roadmap and early-access status with the release-candidate position #30229 removed and still described the rc.1 plan.scripts/lint-legacy-name.mjsno longer cites the deleted roadmap. Two of its temporary allowances pointed at "ROADMAP.md § 3" as the task that retires them; they now name the pending identifier rename directly. The file-specific allowance for the roadmap itself is gone with the files, and so is its test.Size Limitjob always reports. The inert-diff condition moves from the job to each step, following the pattern the CI workflow already uses for its requiredTestsummary job.Behavior changes & evidence
Size Limitcheck instead of a skipped one, so auto-merge can enqueue it. Evidence: this PR touches.github/andscripts/, so it is non-inert and exercises the real path; the inert path is exercised by the next docs-only PR.pnpm lint:legacy-namestill passes on main;node --test scripts/lint-legacy-name.test.mjs scripts/lint-workflow-triggers.test.mjspasses (29 tests).Skill update
n/a — no user-facing surface changed.
Checklist
git commit -s) per the DCO.TML-NNNN: <sentence-case title>form. No Linear ticket exists for this change.🤖 Generated with Claude Code
Summary by CodeRabbit
Documentation
Bug Fixes
Development Experience