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.
package/docs/guides/ai.mdx
CHANGED
|
@@ -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.
|
|
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
|
|
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: `
|
|
120
|
+
Default: `false`
|
|
121
121
|
|
|
122
|
-
When an AI coding agent is detected, `turbo`
|
|
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
|
|
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":
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 `
|
|
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"
|