chore: Upgrade Turborepo from 1 to 2.5#23101
Conversation
WalkthroughReplaces Turbo CLI --scope with --filter across package scripts, Dockerfile prune commands, and README; upgrades turbo to ^2.5.5; adds embed-tests and embed-tests-quick scripts. Renames turbo.json top-level pipeline to tasks and adds STRIPE_TEAM_MONTHLY_PRICE_ID to globalEnv. Simplifies packages/trpc/tsconfig.json by moving path mappings into compilerOptions and reducing aliases to "~/*". Removes --include-dependencies from a README and a docs build example. No application API or exported/public code signatures changed. Tip 🔌 Remote MCP (Model Context Protocol) integration is now available!Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats. 📜 Recent review detailsConfiguration used: CodeRabbit UI 💡 Knowledge Base configuration:
You can enable these sources in your CodeRabbit configuration. 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (8)
✨ Finishing Touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
CodeRabbit Configuration File (
|
|
Hey there and thank you for opening this pull request! 👋🏼 We require pull request titles to follow the Conventional Commits specification and it looks like your proposed title needs to be adjusted. Details: |
Graphite Automations"Add consumer team as reviewer" took an action on this PR • (08/14/25)1 reviewer was added to this PR based on Keith Williams's automation. |
There was a problem hiding this comment.
Actionable comments posted: 3
🧹 Nitpick comments (2)
turbo.json (1)
252-500: Nit: consider reducing “cache”: false where safe to regain incremental speed.A large number of tasks are set to
cache: false. In Turbo v2 the cache is more robust and repo-wide env hashing is already handled byenv/globalEnv. Re-enabling cache for read-only tasks (e.g., lint, type-check, certain builds) can significantly cut CI times.I can help identify safe tasks to re-enable caching and add output patterns where missing.
package.json (1)
127-127: Consider moving turbo to devDependencies.Turbo is a build orchestration tool and isn’t required at runtime. Keeping it in
devDependenciescan reduce production install surface.Apply this change:
- Remove
"turbo"fromdependencies.- Add
"turbo": "^2.5.5"underdevDependencies.I can prepare a follow-up diff if you’d like this change in this PR.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these settings in your CodeRabbit configuration.
⛔ Files ignored due to path filters (2)
.yarn/releases/yarn-3.4.1.cjsis excluded by!**/.yarn/**yarn.lockis excluded by!**/yarn.lock,!**/*.lock
📒 Files selected for processing (4)
apps/api/v1/README.md(1 hunks)infra/docker/api/Dockerfile(1 hunks)package.json(3 hunks)turbo.json(1 hunks)
🧰 Additional context used
🪛 LanguageTool
apps/api/v1/README.md
[grammar] ~202-~202: There might be a mistake here.
Context: ...om/api --include-dependencies --no-depsOUTPUT DIRECTORY:apps/api/.next` In G...
(QB_NEW_EN)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: required
🔇 Additional comments (4)
infra/docker/api/Dockerfile (1)
29-40: Double-check Docker prune usage with Turbo’s Docker workflow.You invoke
turbo prune --dockerbut never switch to or copy from the prunedoutdirectory that prune generates. The canonical flow is:
- prune → switches to
/app/out(or copy from/app/out) → install → build.If the intention is to leverage prune to minimize install surface, ensure the Dockerfile follows the Turbo v2 Docker guide pattern; otherwise, running prune here may be a no-op for size reduction.
Would you like me to propose a minimal rework of this stage to correctly use the pruned output and reduce image size?
turbo.json (1)
252-500: Migration from pipeline → tasks looks consistent; scoped task keys need validation.The structure under
tasksmirrors the prior pipeline. However, the presence of keys like@calcom/prisma#buildand@calcom/web#buildat the root requires confirmation that Turbo v2 supports package-scoped task configuration at the root-leveltasksblock (as opposed to per-package overrides).If you have Turbo v2 locally, please validate the config with the CLI or docs. I can also provide a follow-up patch moving package-specific overrides into the respective packages’ turbo config if needed.
package.json (2)
37-45: Good adoption of multi-filter syntax in dev scripts.Using multiple
--filterflags is the right approach in Turbo v2. Quoting filter values in JSON scripts is also correct.
31-31: LGTM: build:ai migrated to --filter.This aligns with Turbo v2 syntax and will target only @calcom/ai tasks as intended.
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
packages/trpc/tsconfig.json (1)
22-22: Consider modern module resolution strategy.
"moduleResolution": "node"works, but if this package emits/consumes ESM or interoperates with Next.js tooling,NodeNextorBundlercan provide more accurate resolution and type behavior (especially for package exports). Optional, but worth a follow-up in a tooling PR.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (1)
packages/trpc/tsconfig.json(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Install dependencies / Yarn install & cache
🔇 Additional comments (1)
packages/trpc/tsconfig.json (1)
22-36: Good move:pathsnow correctly lives undercompilerOptions.This aligns with TS config schema and ensures the mappings actually take effect (they’re ignored at the top level).
|
@volnei Are these CodeRabbit suggestions worth addressing? |
keithwillcode
left a comment
There was a problem hiding this comment.
Type checks are failing, likely due to the tRPC tsconfig.json change
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (1)
packages/trpc/tsconfig.json (1)
22-22: Optional: consider TS 5 “bundler” moduleResolutionSticking with "node" is fine, but with TS 5 and modern bundlers (Next.js, etc.), "bundler" often yields better alignment with ESM/resolution and TS path aliases. This is optional and may be a breaking change if your toolchain expects "node".
If you choose to switch:
- "moduleResolution": "node", + "moduleResolution": "bundler",Before changing, confirm your Next.js/tsconfig setup aligns with this and that local/editor tooling (tsserver) resolves modules as expected.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
⛔ Files ignored due to path filters (1)
yarn.lockis excluded by!**/yarn.lock,!**/*.lock
📒 Files selected for processing (1)
packages/trpc/tsconfig.json(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: Tests / Unit
- GitHub Check: Type check / check-types
- GitHub Check: Linters / lint
🔇 Additional comments (1)
packages/trpc/tsconfig.json (1)
23-25: Alias fix looks good — confirm baseUrl is set (add locally if not)packages/trpc/tsconfig.json now defines the "~/*" alias but it extends "@calcom/tsconfig/react-library.json". I couldn't find that extended config in the repo, so I can't confirm whether it sets "baseUrl". Either add baseUrl here or confirm the extended config provides it.
- File to update: packages/trpc/tsconfig.json
Apply this minimal change if you want the alias to resolve locally:
"moduleResolution": "node", + "baseUrl": ".", "paths": { "~/*": ["./*"] }
|
@volnei Seeing |
|
Also another issue over in API v1 https://github.com/calcom/cal.com/actions/runs/16996013756/job/48186978709?pr=23101#step:9:475 |
E2E results are ready! |
What does this PR do?
Upgrade Turborepo from version 1.2 to 2.5.
turbo.jsonconfiguration to align with v2 syntax and behaviors.Why?
next dev), improving feedback loop during development.