turbo
9a9033b3 - feat: Task-level `extends` field (#11259)

Commit
80 days ago
feat: Task-level `extends` field (#11259) ## What? Adds task-level `extends` field to Package Configuration task definitions, allowing workspaces to exclude specific tasks from inheritance. ## Why? Enables workspaces to opt-out of inherited tasks from root/parent configs. Previously, if root defined `lint`, all workspaces inherited it. Now workspaces can exclude tasks they don't need. ## How? - `"extends": false` (no other config) → task excluded entirely for workspace - `"extends": false` (with other config) → fresh task definition, no inheritance - `extends` disallowed in root `turbo.json` (validation error added) - Exclusions propagate through extends chain - Modified engine/builder.rs to track exclusion state through inheritance resolution - Added `validate_no_task_extends_in_root` validator - Updated JSON schema with `extends` boolean field ## Testing instructions Added testing all around this functionality and have manually tested many situations to see how the API feels.
Author
Parents
Loading