turbo 2.11.8-canary.2 → 2.11.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -18,7 +18,7 @@ Turborepo configuration, task behavior, and CLI commands can vary between instal
18
18
 
19
19
  The block tells agents to resolve the `turbo` package from the repository or relevant workspace instead of assuming it is at the root `node_modules/turbo`. It points them to that package's `docs/README.md` first, then to the relevant pages under `docs/`. These bundled pages match the installed version and work without network access.
20
20
 
21
- Turborepo creates `AGENTS.md` if needed and updates only its uniquely marked block, preserving existing project instructions and other tools' managed blocks. The block is re-added before repository-scoped commands when an agent is detected. Set `"agentGuidance": false` in the root `turbo.json` or `turbo.jsonc` to opt out; this does not remove an existing block. Keep the generated block committed with your work to avoid an uncommitted change on a later agent invocation. New projects created from the default starter include it from the start.
21
+ Turborepo creates `AGENTS.md` if needed and updates only its uniquely marked block, preserving existing project instructions and other tools' managed blocks. Set `"agentGuidance": true` in the root `turbo.json` or `turbo.jsonc` to opt in; this does not remove an existing block. Keep the generated block committed with your work to avoid an uncommitted change on a later agent invocation. New projects created from the default starter include it from the start.
22
22
 
23
23
  ## Agent Skill
24
24
 
@@ -148,7 +148,7 @@ With zero configuration, Turborepo creates task hashes using:
148
148
 
149
149
  - The selected member's source files, plus its internal dependency sources for `check` and `test`
150
150
  - Every member's source files when verification runs through the workspace package, and the whole repository for a root pytest task because pytest controls collection
151
- - Root uv files (`pyproject.toml`, `uv.toml`, `.python-version`) and supported tool configuration such as `ruff.toml`, `mypy.ini`, `pyrightconfig.json`, `pytest.ini`, and `ty.toml`
151
+ - Root uv files (`pyproject.toml`, `uv.toml`, `.python-version`) and supported tool configuration such as `ruff.toml`, `mypy.ini`, `pyrightconfig.json`, `pytest.ini`, and `ty.toml`. Ruff and pytest configuration (including `conftest.py`) in directories between the root and a member are included too.
152
152
  - Relevant uv and pip environment variables
153
153
  - The resolved external dependency closure from `uv.lock`, scoped to each member
154
154
  - The uv and Python interpreter identities. If Turborepo cannot resolve them, uv tasks remain runnable but implicit caching is disabled with a warning.
@@ -152,9 +152,42 @@ The built-in `format` task also includes `rustfmt.toml`, `.rustfmt.toml`, and `R
152
152
 
153
153
  Project-specific hashing inputs must be accounted for manually. This includes:
154
154
 
155
- - Environment variables must read by build scripts still need to be declared in the task's [`env`](/docs/reference/configuration#env) configuration
155
+ - Environment variables read by build scripts still need to be declared in the task's [`env`](/docs/reference/configuration#env) configuration
156
156
  - File inputs that are not included by default. Use [`inputs`](/docs/reference/configuration#inputs) to define your own file inputs and [`$TURBO_DEFAULT$`](/docs/reference/configuration#turbo_default) to preserve zero-configuration file inputs
157
157
 
158
+ Files that a crate reads from outside its own directory and outside its local dependency crates are not part of the default inputs. Common sources are:
159
+
160
+ - `include_str!`, `include_bytes!`, and `include!` with a path that leaves the crate, such as `include_str!("../../shared/schema.json")` or a path built from `env!("CARGO_MANIFEST_DIR")`
161
+ - `#[path = "..."]` modules outside the crate
162
+ - Build scripts that read files elsewhere in the repository (these also need `cargo:rerun-if-changed` for Cargo itself)
163
+
164
+ Without a declaration, editing such a file does not change the task hash, and Turborepo restores the previous result from cache. Declaring the files on one crate's task is not enough: every task that compiles the crate reads them too, including the tasks of crates that depend on it and workspace-wide `test`, `check`, and `lint`. Declare them on each of those tasks:
165
+
166
+ ```json title="./turbo.json"
167
+ {
168
+ "tasks": {
169
+ "build": {
170
+ "inputs": ["$TURBO_DEFAULT$", "$TURBO_ROOT$/shared/schema/**"]
171
+ },
172
+ "test": {
173
+ "inputs": ["$TURBO_DEFAULT$", "$TURBO_ROOT$/shared/schema/**"]
174
+ },
175
+ "check": {
176
+ "inputs": ["$TURBO_DEFAULT$", "$TURBO_ROOT$/shared/schema/**"]
177
+ },
178
+ "lint": {
179
+ "inputs": ["$TURBO_DEFAULT$", "$TURBO_ROOT$/shared/schema/**"]
180
+ }
181
+ }
182
+ }
183
+ ```
184
+
185
+ In a repository that also has JavaScript packages, these task-wide keys apply to those packages as well. That is safe but causes extra cache misses. To avoid it, declare the inputs as `<package>#<task>` entries for each affected crate instead.
186
+
187
+ Explicit input globs hash files from the filesystem, including gitignored ones, so keep them narrow. A glob over a whole package directory also picks up its `.turbo` logs, `node_modules`, and build output.
188
+
189
+ To find these files, check the `.d` dep-info file Cargo writes next to each build artifact (for example, `target/debug/my-crate.d`). It lists every file the compile read, including files read by dependency crates. It only exists after Cargo has actually compiled the crate, not after Turborepo restored it from cache.
190
+
158
191
  ### Output caching
159
192
 
160
193
  Automatic output caching stores only the exact final `bin`, `cdylib`, and `staticlib` deliverables. It does not cache Cargo's incremental `target/` state or use profile or target wildcards.
@@ -117,19 +117,19 @@ When set to `true`, disables the update notification that appears when a new ver
117
117
 
118
118
  ### `agentGuidance`
119
119
 
120
- Default: `true`
120
+ Default: `false`
121
121
 
122
- When an AI coding agent is detected, `turbo` maintains a managed block in the repository-root `AGENTS.md` that points to the documentation bundled with the installed `turbo` package. The guidance is refreshed before repository-scoped commands, and only Turborepo's own block is updated. Existing instructions and other tools' blocks are preserved.
122
+ When an AI coding agent is detected, `turbo` can maintain a managed block in the repository-root `AGENTS.md` that points to the documentation bundled with the installed `turbo` package. The guidance is refreshed before repository-scoped commands, and only Turborepo's own block is updated. Existing instructions and other tools' blocks are preserved.
123
123
 
124
- This is a root-only option; it cannot be set in package-level `turbo.json` files. Use it in either `turbo.json` or `turbo.jsonc` to stop future automatic updates:
124
+ This is a root-only option; it cannot be set in package-level `turbo.json` files. Use it in either `turbo.json` or `turbo.jsonc` to opt in to automatic updates:
125
125
 
126
126
  ```json title="./turbo.json"
127
127
  {
128
- "agentGuidance": false
128
+ "agentGuidance": true
129
129
  }
130
130
  ```
131
131
 
132
- Opting out does not delete an existing `AGENTS.md` file or Turborepo block. Existing repositories receive the guidance on a later `turbo` invocation when an agent is detected. New projects created from the default starter include it immediately.
132
+ Opting out does not delete an existing `AGENTS.md` file or Turborepo block. Existing repositories receive or refresh the guidance only after opting in. New projects created from the default starter include it immediately.
133
133
 
134
134
  ### `concurrency`
135
135
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "turbo",
3
- "version": "2.11.8-canary.2",
3
+ "version": "2.11.8",
4
4
  "description": "Turborepo is the build system for coding agents.",
5
5
  "homepage": "https://turborepo.dev",
6
6
  "bugs": "https://github.com/vercel/turborepo/issues",
@@ -19,12 +19,12 @@
19
19
  ],
20
20
  "main": "./bin/turbo",
21
21
  "optionalDependencies": {
22
- "@turbo/darwin-64": "2.11.8-canary.2",
23
- "@turbo/darwin-arm64": "2.11.8-canary.2",
24
- "@turbo/linux-64": "2.11.8-canary.2",
25
- "@turbo/linux-arm64": "2.11.8-canary.2",
26
- "@turbo/windows-64": "2.11.8-canary.2",
27
- "@turbo/windows-arm64": "2.11.8-canary.2"
22
+ "@turbo/darwin-64": "2.11.8",
23
+ "@turbo/darwin-arm64": "2.11.8",
24
+ "@turbo/linux-64": "2.11.8",
25
+ "@turbo/linux-arm64": "2.11.8",
26
+ "@turbo/windows-64": "2.11.8",
27
+ "@turbo/windows-arm64": "2.11.8"
28
28
  },
29
29
  "scripts": {
30
30
  "postversion": "node bump-version.js"
package/schema.json CHANGED
@@ -16,7 +16,7 @@
16
16
  ]
17
17
  },
18
18
  "agentGuidance": {
19
- "description": "Controls whether turbo maintains a root `AGENTS.md` block for AI agents.\n\nDefaults to `true`. Set to `false` to opt out of future automatic updates.",
19
+ "description": "Controls whether turbo maintains a root `AGENTS.md` block for AI agents.\n\nDefaults to `false`. Set to `true` to opt in to future automatic updates.",
20
20
  "anyOf": [
21
21
  {
22
22
  "$ref": "#/definitions/Boolean"