Skip to content

feat(effect)!: promote to stable as @orpc/effect - #2321

Open
dinwwwh wants to merge 1 commit into
mainfrom
claude/lucid-cerf-p2nxs3
Open

dinwwwh wants to merge 1 commit into
mainfrom
claude/lucid-cerf-p2nxs3

Conversation

@dinwwwh

@dinwwwh dinwwwh commented Oct 23, 2026

Copy link
Copy Markdown
Member

Drops the experimental- prefix from the Effect integration. packages/effect is now published as @orpc/effect. This follows the @orpc/msw rename in #2258 and the v2 promotions in #1593.

Changes

  • packages/effect/package.json: renamed to @orpc/effect.
  • Root package.json devDependency and pnpm-lock.yaml: lockfile regenerated with pnpm 12.4.2. The only change is the moved importer entry.
  • Package tables in the root README.md and all 29 packages/*/README.md files. The old name was the widest cell in the first column, so the formatter narrowed the whole column. That's why each README shows about 15 changed lines.
  • packages/effect/README.md: npm link and weekly-downloads badge.
  • packages/effect/src/context.ts: JSDoc import examples.
  • apps/content/docs/integrations/effect.mdx: install command (npm install @orpc/effect@beta effect, keeping the @beta convention every v2 page uses) and all imports.
  • apps/content/docs/api-reference.mdx: package row.
  • apps/content/docs/migrations/from-v1.mdx: adds @orpc/experimental-effect → @orpc/effect to the renamed-packages table.

The only "experimental" wording about Effect in the docs was the package name itself. The only remaining experimental-effect reference is the migration-table row.

Pre-stable fixes

Landed on main:

Not on main yet, with no open PR:

  • Effect Schema output direction: toStandardSchema still returns Schema<Encoded, Type> for .output(), so handlers return the encoded form.
  • JSON Schema converter fix
  • toStandardSchema hardening
  • Peer floor bump: peerDependencies.effect is still >=4.0.0, while tests run against ^4.0.5.
  • Wire-level tests

The package is still on 2.0.0-beta, so the stability promise starts at the 2.0.0 release, not at this merge. Whether these must land before this PR merges is the maintainer's call.

npm registry steps (maintainer only, not run)

Current state: @orpc/effect is unclaimed (404). @orpc/experimental-effect has latest: 1.14.11 and beta: 2.0.0-beta.45. 1.14.11 is deprecated as "Published by mistake (contains v2 code). Please upgrade to 1.14.12 or v2." But 1.14.12 doesn't exist, and 1.14.11 pins @orpc/server, @orpc/contract, @orpc/shared and @orpc/json-schema at exactly 1.14.11.

  1. Claim the name before the next release. release.yaml publishes through trusted publishing (OIDC), which can only be set up on a package that already exists. For @orpc/msw, the first versions were published by hand, then 2.0.0-beta.45 came from the workflow. Same here, from this branch:
    pnpm i
    pnpm --filter @orpc/effect publish --access public --tag beta --no-git-checks
    Then add the GitHub Actions trusted publisher (middleapi/orpc, release.yaml) in the @orpc/effect settings on npmjs.com. As with @orpc/msw, the first publish also sets latest.
  2. After the first @orpc/effect publish, deprecate every version of the old name. This also replaces the 1.14.11 message that points to the nonexistent 1.14.12:
    npm deprecate @orpc/experimental-effect "Renamed to @orpc/effect"
  3. Optional: latest on the old name still points to the broken 1.14.11, so a plain npm install @orpc/experimental-effect installs it, now with the rename warning. To send plain installs to the last v2 build instead:
    npm dist-tag add @orpc/experimental-effect@2.0.0-beta.45 latest

Test plan

  • pnpm lint
  • pnpm type:check
  • pnpm test: 289 files and 4044 tests passed, 72 skipped; Bun 142/0; Cloudflare 74/74
  • pnpm docs:validate: 0 JSDoc errors across 231 symbols, blume validate --strict found no broken links
  • pnpm --filter @orpc/effect prepack builds, and npm pack --dry-run reports @orpc/effect@2.0.0-beta.45

Generated by Claude Code

Drop the `experimental-` prefix from the Effect integration's package
name and update the root devDependency, lockfile, READMEs, docs and
JSDoc examples to match. The v1 migration guide now lists the rename
alongside the other promoted packages.

BREAKING CHANGE: `@orpc/experimental-effect` is renamed to `@orpc/effect`.
Update your dependency and imports to the new package name.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XRN3JRAKNk8bhHBEHAjjSJ
@macroscopeapp

macroscopeapp Bot commented Oct 23, 2026

Copy link
Copy Markdown

Macroscope skipped reviewing this pull request. Per-review cost limit exceeded (workspace setting).

This review would cost an estimated $18.81, which exceeds your per-review limit of $10.00.

The top 3 files driving up this estimate:

File Diff Size Estimate
packages/effect/README.md 12.95KB $0.65
README.md 12.28KB $0.61
packages/ai-sdk/README.md 12.28KB $0.61

Tip

To get this pull request reviewed, you can:

  1. Comment @macroscope-app on this PR to request a manual review (monthly spend limits still apply).
  2. Exclude the file(s) above from review by adding a pattern to your .macroscope/ignore.md — note that creating this file replaces Macroscope's built-in default ignores rather than extending them.
  3. Raise your cost limit in your workspace billing settings.

Turn off this reminder going forward

@macroscopeapp

macroscopeapp Bot commented Oct 23, 2026

Copy link
Copy Markdown

Approvability

Verdict: Needs Human Approval

Macroscope's review found this PR requires human approval — The PR consistently renames the Effect integration package and updates its documentation and workspace metadata without changing implementation logic. However, removing @orpc/experimental-effect is a breaking public package change for existing consumers and merits human review of the release and migration plan.

Needs human approval because:

  • Per-review cost limit exceeded (workspace setting). Approvability relies on correctness review in order to determine eligibility

Review your spending limits in Billing settings, or comment @macroscope-app review this PR to bypass the limit and review now. You can add or adjust custom eligibility rules. Learn more.

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ No new issues found.

Reviewed changes — complete rename of the Effect integration package from @orpc/experimental-effect to @orpc/effect.

  • Package identity — packages/effect/package.json name → @orpc/effect (version unchanged at 2.0.0-beta.45); root package.json devDependency and pnpm-lock.yaml root importer key moved (lockfile importers are path-keyed, so only the root key changes — correct).
  • Source JSDoc — two WithEffectContext @example import lines in packages/effect/src/context.ts.
  • Docs — integrations/effect.mdx (install command keeps the @beta convention; all imports updated), api-reference.mdx package row, and the intended @orpc/experimental-effect → @orpc/effect row in migrations/from-v1.mdx.
  • READMEs — packages/effect/README.md npm link + weekly-downloads badge, plus the framework-integration table reflowed across the root and 29 package READMEs (the old name was the widest first-column cell).

I verified the rename is complete: grep experimental-effect across the repo returns only the migration-table row, and no package.json, tsconfig, workflow, playground, or test still references the old name. This is a mechanical rename with no behavioral surface.

Pullfrog  | View workflow run | Using deepseek-v4.1-flash (free via Pullfrog for OSS) | 𝕏

@codspeed

codspeed Bot commented Oct 23, 2026

Copy link
Copy Markdown
Contributor

Merging this PR will not alter performance

1 warning

⚠️ 5 benchmarks are dominated by system calls

System calls cannot be simulated consistently and are left out of the measure. The reported value understates the real cost. Switch to the Walltime instrument to measure them.

Learn more about system calls

See affected benchmarks

✅ 28 untouched benchmarks
⏩ 2 skipped benchmarks1


Comparing claude/lucid-cerf-p2nxs3 (f15b438) with main (23fc494)

Open in CodSpeed

Footnotes

  1. 2 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩

@pkg-pr-new

pkg-pr-new Bot commented Oct 23, 2026

Copy link
Copy Markdown
More templates

@orpc/ai-sdk

npm i https://pkg.pr.new/middleapi/orpc/@orpc/ai-sdk@2321

@orpc/arktype

npm i https://pkg.pr.new/middleapi/orpc/@orpc/arktype@2321

@orpc/bun

npm i https://pkg.pr.new/middleapi/orpc/@orpc/bun@2321

@orpc/client

npm i https://pkg.pr.new/middleapi/orpc/@orpc/client@2321

@orpc/cloudflare

npm i https://pkg.pr.new/middleapi/orpc/@orpc/cloudflare@2321

@orpc/contract

npm i https://pkg.pr.new/middleapi/orpc/@orpc/contract@2321

@orpc/effect

npm i https://pkg.pr.new/middleapi/orpc/@orpc/effect@2321

@orpc/evlog

npm i https://pkg.pr.new/middleapi/orpc/@orpc/evlog@2321

@orpc/hibernation

npm i https://pkg.pr.new/middleapi/orpc/@orpc/hibernation@2321

@orpc/json-schema

npm i https://pkg.pr.new/middleapi/orpc/@orpc/json-schema@2321

@orpc/experimental-lock

npm i https://pkg.pr.new/middleapi/orpc/@orpc/experimental-lock@2321

@orpc/mcp

npm i https://pkg.pr.new/middleapi/orpc/@orpc/mcp@2321

@orpc/msw

npm i https://pkg.pr.new/middleapi/orpc/@orpc/msw@2321

@orpc/nest

npm i https://pkg.pr.new/middleapi/orpc/@orpc/nest@2321

@orpc/next

npm i https://pkg.pr.new/middleapi/orpc/@orpc/next@2321

@orpc/node

npm i https://pkg.pr.new/middleapi/orpc/@orpc/node@2321

@orpc/openapi

npm i https://pkg.pr.new/middleapi/orpc/@orpc/openapi@2321

@orpc/opentelemetry

npm i https://pkg.pr.new/middleapi/orpc/@orpc/opentelemetry@2321

@orpc/pinia-colada

npm i https://pkg.pr.new/middleapi/orpc/@orpc/pinia-colada@2321

@orpc/pino

npm i https://pkg.pr.new/middleapi/orpc/@orpc/pino@2321

@orpc/publisher

npm i https://pkg.pr.new/middleapi/orpc/@orpc/publisher@2321

@orpc/ratelimit

npm i https://pkg.pr.new/middleapi/orpc/@orpc/ratelimit@2321

@orpc/server

npm i https://pkg.pr.new/middleapi/orpc/@orpc/server@2321

@orpc/shared

npm i https://pkg.pr.new/middleapi/orpc/@orpc/shared@2321

@orpc/swr

npm i https://pkg.pr.new/middleapi/orpc/@orpc/swr@2321

@orpc/tanstack-query

npm i https://pkg.pr.new/middleapi/orpc/@orpc/tanstack-query@2321

@orpc/trpc

npm i https://pkg.pr.new/middleapi/orpc/@orpc/trpc@2321

@orpc/valibot

npm i https://pkg.pr.new/middleapi/orpc/@orpc/valibot@2321

@orpc/zod

npm i https://pkg.pr.new/middleapi/orpc/@orpc/zod@2321

commit: f15b438

@codecov

codecov Bot commented Oct 23, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
orpc f15b438 Commit Preview URL

Branch Preview URL
Oct 23 2026, 02:38 PM

This branch has not been deployed

No deployments
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