turbo 2.11.10 → 2.11.11-canary.2
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/bin/turbo +12 -0
- package/docs/crafting-your-repository/constructing-ci.mdx +1 -1
- package/docs/guides/ci-vendors/vercel.mdx +8 -2
- package/docs/guides/skipping-tasks.mdx +1 -1
- package/docs/guides/tools/prisma.mdx +1 -1
- package/docs/guides/tools/shadcn-ui.mdx +12 -12
- package/docs/reference/configuration.mdx +18 -0
- package/docs/reference/query.mdx +1 -1
- package/docs/reference/run.mdx +1 -1
- package/package.json +7 -7
- package/schema.json +7 -2
package/bin/turbo
CHANGED
|
@@ -537,9 +537,18 @@ function runTurboChild(env, useCtrlCPipe) {
|
|
|
537
537
|
}
|
|
538
538
|
};
|
|
539
539
|
|
|
540
|
+
const handleSighup = () => {
|
|
541
|
+
if (!child.killed) {
|
|
542
|
+
child.kill("SIGHUP");
|
|
543
|
+
}
|
|
544
|
+
};
|
|
545
|
+
|
|
540
546
|
const cleanup = () => {
|
|
541
547
|
process.off("SIGINT", handleSigint);
|
|
542
548
|
process.off("SIGTERM", handleSigterm);
|
|
549
|
+
if (process.platform !== "win32") {
|
|
550
|
+
process.off("SIGHUP", handleSighup);
|
|
551
|
+
}
|
|
543
552
|
process.stdin.off("data", handleInput);
|
|
544
553
|
restoreStdin();
|
|
545
554
|
ctrlCPipe?.destroy();
|
|
@@ -547,6 +556,9 @@ function runTurboChild(env, useCtrlCPipe) {
|
|
|
547
556
|
|
|
548
557
|
process.on("SIGINT", handleSigint);
|
|
549
558
|
process.on("SIGTERM", handleSigterm);
|
|
559
|
+
if (process.platform !== "win32") {
|
|
560
|
+
process.on("SIGHUP", handleSighup);
|
|
561
|
+
}
|
|
550
562
|
|
|
551
563
|
child.once("error", (error) => {
|
|
552
564
|
cleanup();
|
|
@@ -93,7 +93,7 @@ As your codebase and CI grow, you may start to look for more ways to get even fa
|
|
|
93
93
|
<Step>
|
|
94
94
|
### Checkout the repository
|
|
95
95
|
|
|
96
|
-
Start by cloning your repository. A clone with sufficient history is necessary for comparisons — if the checkout is too shallow, all packages will be considered changed. For example,
|
|
96
|
+
Start by cloning your repository. A clone with sufficient history is necessary for comparisons — if the checkout is too shallow, all packages will be considered changed. For example, a blobless clone with full history (`git clone --filter=blob:none`, without `--depth`) gives the comparison the history it needs. With `actions/checkout`, set `filter: blob:none` and `fetch-depth: 0`.
|
|
97
97
|
|
|
98
98
|
By default, `turbo query affected` compares against the merge-base with your default branch.
|
|
99
99
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Vercel
|
|
3
|
-
description: Learn how to
|
|
3
|
+
description: Learn how to deploy your Turborepo and run tasks with Vercel CI.
|
|
4
4
|
product: turborepo
|
|
5
5
|
type: integration
|
|
6
|
-
summary: Deploy your Turborepo on Vercel with zero-config Remote Caching.
|
|
6
|
+
summary: Deploy your Turborepo on Vercel and run tasks with Vercel CI using zero-config Remote Caching.
|
|
7
7
|
prerequisites:
|
|
8
8
|
- /docs/guides/ci-vendors
|
|
9
9
|
related:
|
|
@@ -19,6 +19,12 @@ To deploy your Turborepo on Vercel, [create a new project](https://vercel.com/ne
|
|
|
19
19
|
|
|
20
20
|
For more information about deploying your Turborepo to Vercel, [visit the Vercel documentation](https://vercel.com/docs/monorepos/turborepo).
|
|
21
21
|
|
|
22
|
+
## Vercel CI
|
|
23
|
+
|
|
24
|
+
[Vercel CI](https://vercel.com/docs/ci) runs your Turborepo tasks, such as tests, linting, and type checks, when you push code. It uses your Task Graph to run tasks in dependency order, skips unaffected tasks, and reuses cached results with zero-config Vercel Remote Cache. Each task runs in its own isolated compute instance.
|
|
25
|
+
|
|
26
|
+
To get started, follow the [Vercel CI setup instructions](https://vercel.com/docs/ci) to enable CI for your repository and select which tasks to run. For more details, see the [configuration reference](https://vercel.com/docs/ci/configuration) for task dependencies and resource sizing, and the [environment variables guide](https://vercel.com/docs/ci/environment-variables) for secrets and other values your tasks need.
|
|
27
|
+
|
|
22
28
|
## Filtered installs
|
|
23
29
|
|
|
24
30
|
You can speed up installs by only installing the dependencies for the application being deployed and its Workspace dependencies. Set a custom Install Command in the application's `vercel.json` or [in your project's Build and Deployment settings](https://vercel.com/d?to=%2F%5Bteam%5D%2F%5Bproject%5D%2Fsettings%2Fbuild-and-deployment%23framework-settings&title=Build+and+Deployment+settings):
|
|
@@ -26,7 +26,7 @@ Ideally, you would do a quick check to see if any of that work needs to happen i
|
|
|
26
26
|
checkout. If the checkout is too shallow, then all packages will be considered
|
|
27
27
|
changed.
|
|
28
28
|
|
|
29
|
-
For example,
|
|
29
|
+
For example, a blobless clone with full history (`git clone --filter=blob:none`, without `--depth`) gives `turbo query affected` the history it needs. With `actions/checkout`, set `filter: blob:none` and `fetch-depth: 0`.
|
|
30
30
|
|
|
31
31
|
</Callout>
|
|
32
32
|
|
|
@@ -13,7 +13,7 @@ import { CreateTurboCallout } from "./create-turbo-callout.tsx";
|
|
|
13
13
|
|
|
14
14
|
[Prisma](https://www.prisma.io/) unlocks a new level of developer experience when working with databases thanks to its intuitive data model, automated migrations, type-safety & auto-completion.
|
|
15
15
|
|
|
16
|
-
[Their official guide](https://www.prisma.io/docs/guides/turborepo) describes how to integrate Prisma into a Turborepo, including:
|
|
16
|
+
[Their official guide](https://www.prisma.io/docs/guides/deployment/turborepo) describes how to integrate Prisma into a Turborepo, including:
|
|
17
17
|
|
|
18
18
|
- Prisma client initialization
|
|
19
19
|
- Packaging the client as an [Internal Package](/docs/core-concepts/internal-packages)
|
|
@@ -18,7 +18,7 @@ To get started with shadcn/ui in a new monorepo, run:
|
|
|
18
18
|
<Tab value="pnpm">
|
|
19
19
|
|
|
20
20
|
```bash title="Terminal"
|
|
21
|
-
pnpm dlx shadcn@
|
|
21
|
+
pnpm dlx shadcn@latest init
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
</Tab>
|
|
@@ -26,7 +26,7 @@ pnpm dlx shadcn@canary init
|
|
|
26
26
|
<Tab value="yarn">
|
|
27
27
|
|
|
28
28
|
```bash title="Terminal"
|
|
29
|
-
npx shadcn@
|
|
29
|
+
npx shadcn@latest init
|
|
30
30
|
```
|
|
31
31
|
|
|
32
32
|
</Tab>
|
|
@@ -34,7 +34,7 @@ npx shadcn@canary init
|
|
|
34
34
|
<Tab value="npm">
|
|
35
35
|
|
|
36
36
|
```bash title="Terminal"
|
|
37
|
-
npx shadcn@
|
|
37
|
+
npx shadcn@latest init
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
</Tab>
|
|
@@ -42,7 +42,7 @@ npx shadcn@canary init
|
|
|
42
42
|
<Tab value="bun">
|
|
43
43
|
|
|
44
44
|
```bash title="Terminal"
|
|
45
|
-
bunx shadcn@
|
|
45
|
+
bunx shadcn@latest init
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
</Tab>
|
|
@@ -50,7 +50,7 @@ bunx shadcn@canary init
|
|
|
50
50
|
<Tab value="nub">
|
|
51
51
|
|
|
52
52
|
```bash title="Terminal"
|
|
53
|
-
nubx shadcn@
|
|
53
|
+
nubx shadcn@latest init
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
</Tab>
|
|
@@ -58,7 +58,7 @@ nubx shadcn@canary init
|
|
|
58
58
|
<Tab value="aube">
|
|
59
59
|
|
|
60
60
|
```bash title="Terminal"
|
|
61
|
-
aubx shadcn@
|
|
61
|
+
aubx shadcn@latest init
|
|
62
62
|
```
|
|
63
63
|
|
|
64
64
|
</Tab>
|
|
@@ -74,7 +74,7 @@ To add a component, run:
|
|
|
74
74
|
<Tab value="pnpm">
|
|
75
75
|
|
|
76
76
|
```bash title="Terminal"
|
|
77
|
-
pnpm dlx shadcn@
|
|
77
|
+
pnpm dlx shadcn@latest add [COMPONENT]
|
|
78
78
|
```
|
|
79
79
|
|
|
80
80
|
</Tab>
|
|
@@ -82,7 +82,7 @@ pnpm dlx shadcn@canary add [COMPONENT]
|
|
|
82
82
|
<Tab value="yarn">
|
|
83
83
|
|
|
84
84
|
```bash title="Terminal"
|
|
85
|
-
npx shadcn@
|
|
85
|
+
npx shadcn@latest add [COMPONENT]
|
|
86
86
|
```
|
|
87
87
|
|
|
88
88
|
</Tab>
|
|
@@ -90,7 +90,7 @@ npx shadcn@canary add [COMPONENT]
|
|
|
90
90
|
<Tab value="npm">
|
|
91
91
|
|
|
92
92
|
```bash title="Terminal"
|
|
93
|
-
npx shadcn@
|
|
93
|
+
npx shadcn@latest add [COMPONENT]
|
|
94
94
|
```
|
|
95
95
|
|
|
96
96
|
</Tab>
|
|
@@ -98,7 +98,7 @@ npx shadcn@canary add [COMPONENT]
|
|
|
98
98
|
<Tab value="bun">
|
|
99
99
|
|
|
100
100
|
```bash title="Terminal"
|
|
101
|
-
bunx shadcn@
|
|
101
|
+
bunx shadcn@latest add [COMPONENT]
|
|
102
102
|
```
|
|
103
103
|
|
|
104
104
|
</Tab>
|
|
@@ -106,7 +106,7 @@ bunx shadcn@canary add [COMPONENT]
|
|
|
106
106
|
<Tab value="nub">
|
|
107
107
|
|
|
108
108
|
```bash title="Terminal"
|
|
109
|
-
nubx shadcn@
|
|
109
|
+
nubx shadcn@latest add [COMPONENT]
|
|
110
110
|
```
|
|
111
111
|
|
|
112
112
|
</Tab>
|
|
@@ -114,7 +114,7 @@ nubx shadcn@canary add [COMPONENT]
|
|
|
114
114
|
<Tab value="aube">
|
|
115
115
|
|
|
116
116
|
```bash title="Terminal"
|
|
117
|
-
aubx shadcn@
|
|
117
|
+
aubx shadcn@latest add [COMPONENT]
|
|
118
118
|
```
|
|
119
119
|
|
|
120
120
|
</Tab>
|
|
@@ -308,6 +308,24 @@ Enable experimental features that will become the default behavior in future ver
|
|
|
308
308
|
cache](/docs/crafting-your-repository/caching).
|
|
309
309
|
</Callout>
|
|
310
310
|
|
|
311
|
+
#### `hashFilePermissions`
|
|
312
|
+
|
|
313
|
+
Default: `false`
|
|
314
|
+
|
|
315
|
+
Include executable permissions in file hashes for task inputs and global dependencies. With this flag enabled, changing an input file from non-executable to executable, or back, changes the task hash even when its contents stay the same.
|
|
316
|
+
|
|
317
|
+
On Unix, a regular file is executable if any owner, group, or other executable bit is set. On Windows, regular files are treated as non-executable. Symlink permissions and read or write permission bits do not affect hashes.
|
|
318
|
+
|
|
319
|
+
Enabling this flag changes all task hashes. Existing cache entries are not reused. With the flag disabled, Turborepo preserves content-only file hashing.
|
|
320
|
+
|
|
321
|
+
```jsonc title="./turbo.json"
|
|
322
|
+
{
|
|
323
|
+
"futureFlags": {
|
|
324
|
+
"hashFilePermissions": true,
|
|
325
|
+
},
|
|
326
|
+
}
|
|
327
|
+
```
|
|
328
|
+
|
|
311
329
|
#### `errorsOnlyShowHash`
|
|
312
330
|
|
|
313
331
|
Default: `false`
|
package/docs/reference/query.mdx
CHANGED
|
@@ -241,7 +241,7 @@ turbo query affected [flags]
|
|
|
241
241
|
checkout. If the checkout is too shallow, then all packages will be considered
|
|
242
242
|
changed.
|
|
243
243
|
|
|
244
|
-
For example,
|
|
244
|
+
For example, a blobless clone with full history (`git clone --filter=blob:none`, without `--depth`) gives `turbo query affected` the history it needs. With `actions/checkout`, set `filter: blob:none` and `fetch-depth: 0`.
|
|
245
245
|
|
|
246
246
|
</Callout>
|
|
247
247
|
|
package/docs/reference/run.mdx
CHANGED
|
@@ -69,7 +69,7 @@ By default, the flag is equivalent to `--filter=...[main...HEAD]`. This consider
|
|
|
69
69
|
checkout. If the checkout is too shallow, then all packages will be considered
|
|
70
70
|
changed.
|
|
71
71
|
|
|
72
|
-
For example,
|
|
72
|
+
For example, a blobless clone with full history (`git clone --filter=blob:none`, without `--depth`) gives `--affected` the history it needs. With `actions/checkout`, set `filter: blob:none` and `fetch-depth: 0`.
|
|
73
73
|
|
|
74
74
|
</Callout>
|
|
75
75
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "turbo",
|
|
3
|
-
"version": "2.11.
|
|
3
|
+
"version": "2.11.11-canary.2",
|
|
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.
|
|
23
|
-
"@turbo/darwin-arm64": "2.11.
|
|
24
|
-
"@turbo/linux-64": "2.11.
|
|
25
|
-
"@turbo/linux-arm64": "2.11.
|
|
26
|
-
"@turbo/windows-64": "2.11.
|
|
27
|
-
"@turbo/windows-arm64": "2.11.
|
|
22
|
+
"@turbo/darwin-64": "2.11.11-canary.2",
|
|
23
|
+
"@turbo/darwin-arm64": "2.11.11-canary.2",
|
|
24
|
+
"@turbo/linux-64": "2.11.11-canary.2",
|
|
25
|
+
"@turbo/linux-arm64": "2.11.11-canary.2",
|
|
26
|
+
"@turbo/windows-64": "2.11.11-canary.2",
|
|
27
|
+
"@turbo/windows-arm64": "2.11.11-canary.2"
|
|
28
28
|
},
|
|
29
29
|
"scripts": {
|
|
30
30
|
"postversion": "node bump-version.js"
|
package/schema.json
CHANGED
|
@@ -444,6 +444,11 @@
|
|
|
444
444
|
"default": false,
|
|
445
445
|
"type": "boolean"
|
|
446
446
|
},
|
|
447
|
+
"hashFilePermissions": {
|
|
448
|
+
"description": "Include file executable permissions in task hashes. Disabled by default. Enabling this flag changes all task hashes. On Unix, any executable bit marks a regular file as executable. On Windows, files are non-executable. Symlink permissions and other permission bits do not affect hashes.",
|
|
449
|
+
"default": false,
|
|
450
|
+
"type": "boolean"
|
|
451
|
+
},
|
|
447
452
|
"longerSignatureKey": {
|
|
448
453
|
"description": "Enforce a minimum length of 32 bytes for `TURBO_REMOTE_CACHE_SIGNATURE_KEY` when `remoteCache.signature` is enabled. Short keys weaken the HMAC-SHA256 signature, making brute-force tag collision feasible.",
|
|
449
454
|
"default": false,
|
|
@@ -1155,9 +1160,9 @@
|
|
|
1155
1160
|
]
|
|
1156
1161
|
},
|
|
1157
1162
|
"ToolPolicy": {
|
|
1158
|
-
"description": "How `turbo setup` prepares a toolchain's tools. `managed` provisions the locked version for this repository. `
|
|
1163
|
+
"description": "How `turbo setup` prepares a toolchain's tools. `managed` provisions the locked version for this repository. `skip` neither provisions nor verifies the tool, which also skips the toolchain's dependencies.",
|
|
1159
1164
|
"type": "string",
|
|
1160
|
-
"enum": ["managed", "
|
|
1165
|
+
"enum": ["managed", "skip"]
|
|
1161
1166
|
},
|
|
1162
1167
|
"ToolchainSetupPolicy": {
|
|
1163
1168
|
"description": "Setup policy for one toolchain. Omitted values use the root `setup` values, then the inferred default.",
|