Skip to content

Commit e2f1328

Browse files
authored
Merge branch 'main' into fix/diff
2 parents 0d1246d + 445df7e commit e2f1328

File tree

525 files changed

+67343
-18279
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

525 files changed

+67343
-18279
lines changed

.config/nextest.toml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Nextest configuration for Turborepo
2+
# See https://nexte.st/book/configuration.html
3+
4+
[test-groups]
5+
# turborepo-process tests should run serially to avoid resource contention
6+
# and timing issues, especially on macOS where PTY devices are limited
7+
turborepo-process-serial = { max-threads = 1 }
8+
9+
# Integration tests that spawn turbo binaries should run serially to avoid
10+
# race conditions with binary detection and stdout/stderr capture
11+
turborepo-integration-serial = { max-threads = 1 }
12+
13+
# turborepo-dirs tests should run serially to avoid race conditions
14+
# with environment variable manipulation
15+
turborepo-dirs-serial = { max-threads = 1 }
16+
17+
[[profile.default.overrides]]
18+
# Run all tests in the turborepo-process crate serially
19+
filter = 'package(turborepo-process)'
20+
test-group = 'turborepo-process-serial'
21+
22+
[[profile.default.overrides]]
23+
# Run integration tests that use check_json_output! serially
24+
# These tests spawn turbo processes and parse JSON from stdout
25+
filter = 'package(turbo) and (test(boundaries) or test(query) or test(ls))'
26+
test-group = 'turborepo-integration-serial'
27+
28+
[[profile.default.overrides]]
29+
# Run all tests in the turborepo-dirs crate serially
30+
# These tests manipulate environment variables
31+
filter = 'package(turborepo-dirs)'
32+
test-group = 'turborepo-dirs-serial'
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Deep-dive on this GitHub issue. Find the problem and generate a plan.
2+
Do not write code. Explain the problem clearly and propose a comprehensive plan
3+
to solve it.
4+
5+
Run `gh issue view <number>`, where `<number>` is the number for the issue provided in context. If one is not provided, ask for it.

.cursor/worktrees.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"setup-worktree": [
3+
"pnpm install"
4+
]
5+
}

.devcontainer/Dockerfile

Lines changed: 69 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,72 @@
1-
# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.233.0/containers/go/.devcontainer/base.Dockerfile
2-
3-
# [Choice] Go version (use -bullseye variants on local arm64/Apple Silicon): 1, 1.16, 1.17, 1-bullseye, 1.16-bullseye, 1.17-bullseye, 1-buster, 1.16-buster, 1.17-buster
4-
ARG VARIANT="1.18-bullseye"
5-
FROM mcr.microsoft.com/vscode/devcontainers/go:0-${VARIANT}
6-
7-
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
8-
&& apt-get -y install --no-install-recommends \
9-
# Chromium for running Turbopack benchmarks
10-
chromium \
11-
# Used for plotters graph visualizations in turbopack benchmarks
12-
libfontconfig1-dev
13-
14-
# Add hyperfine, a useful benchmarking tool
15-
RUN dpkgArch="$(dpkg --print-architecture)"; \
16-
wget "https://github.com/sharkdp/hyperfine/releases/download/v1.12.0/hyperfine_1.12.0_${dpkgArch}.deb" && dpkg -i "hyperfine_1.12.0_${dpkgArch}.deb"
17-
18-
#
19-
# Everything below is run as the vscode user. If superuser permissions are necessary,
20-
# run it before this. Otherwise, prefer running as the vscode user.
21-
#
22-
USER vscode
1+
# Use Ubuntu 22.04 LTS as base image
2+
FROM mcr.microsoft.com/vscode/devcontainers/base:ubuntu-22.04
3+
4+
# Set environment variables
5+
ENV DEBIAN_FRONTEND=noninteractive
6+
ENV RUSTUP_HOME=/usr/local/rustup
7+
ENV CARGO_HOME=/usr/local/cargo
8+
ENV PATH=/usr/local/cargo/bin:$PATH
9+
ENV RUST_VERSION=nightly-2025-06-20
10+
11+
# Install system dependencies
12+
RUN apt-get update && apt-get install -y \
13+
# Build essentials
14+
build-essential \
15+
pkg-config \
16+
# LLD linker (required on Linux per CONTRIBUTING.md)
17+
lld \
18+
# Protocol Buffers compiler
19+
protobuf-compiler \
20+
# Cap'n Proto
21+
capnproto \
22+
libcapnp-dev \
23+
# Testing utilities (optional but useful)
24+
jq \
25+
zstd \
26+
# SSL development libraries
27+
libssl-dev \
28+
# Additional utilities
29+
curl \
30+
wget \
31+
git \
32+
ca-certificates \
33+
gnupg \
34+
lsb-release \
35+
&& rm -rf /var/lib/apt/lists/*
36+
37+
# Install Node.js v22 (using NodeSource repository for exact version control)
38+
RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \
39+
&& apt-get install -y nodejs \
40+
&& rm -rf /var/lib/apt/lists/*
2341

24-
# [Choice] Node.js version: none, lts/*, 16, 14, 12, 10
25-
ARG NODE_VERSION="none"
26-
RUN if [ "${NODE_VERSION}" != "none" ]; then umask 0002 && sh -c ". /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION}" 2>&1; fi
42+
# Install pnpm globally (specific version as per package.json)
43+
RUN npm install -g [email protected]
44+
45+
# Install Rust with the specific nightly version and components
46+
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- \
47+
--default-toolchain ${RUST_VERSION} \
48+
--profile minimal \
49+
--component rustfmt,clippy \
50+
-y \
51+
&& chmod -R a+w $RUSTUP_HOME $CARGO_HOME
52+
53+
# Create cache directories for better performance
54+
RUN mkdir -p /home/vscode/.cache /usr/local/cargo \
55+
&& chown -R vscode:vscode /home/vscode/.cache /usr/local/cargo
56+
57+
# Set the default user to vscode
58+
USER vscode
2759

28-
RUN sh -c ". /usr/local/share/nvm/nvm.sh && npm install -g vercel yarn yalc pnpm nodemon" 2>&1
60+
# Verify installations
61+
RUN node --version \
62+
&& npm --version \
63+
&& pnpm --version \
64+
&& rustc --version \
65+
&& cargo --version \
66+
&& protoc --version \
67+
&& capnp --version \
68+
&& jq --version \
69+
&& zstd --version \
70+
&& which lld
2971

30-
# The installer from https://rustup.rs/ homepage, with the following changes:
31-
# * `-y` to accept without interactivity
32-
# * `--default-toolchain none` to avoid installing stable rust. Our specific toolchain is installed post-create.
33-
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain none
72+
WORKDIR /workspace

.devcontainer/devcontainer.json

Lines changed: 41 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,51 @@
1-
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
2-
// https://github.com/microsoft/vscode-dev-containers/tree/v0.233.0/containers/go
31
{
4-
"name": "turbo (go, node, rust)",
2+
"name": "Turborepo Development Environment",
53
"build": {
64
"dockerfile": "Dockerfile",
7-
"args": {
8-
// Update the VARIANT arg to pick a version of Go: 1, 1.18, 1.17
9-
// Append -bullseye or -buster to pin to an OS version.
10-
// Use -bullseye variants on local arm64/Apple Silicon.
11-
"VARIANT": "1.18-bullseye",
12-
// Options
13-
"NODE_VERSION": "lts/*"
14-
}
5+
"context": "."
156
},
167
"runArgs": [
178
"--cap-add=SYS_PTRACE",
189
"--security-opt",
1910
"seccomp=unconfined"
2011
],
21-
// Add the IDs of extensions you want installed when the container is created.
22-
"extensions": [
23-
"bradlc.vscode-tailwindcss",
24-
"christian-kohler.npm-intellisense",
25-
"dbaeumer.vscode-eslint",
26-
"eamodio.gitlens",
27-
"EditorConfig.EditorConfig",
28-
"esbenp.prettier-vscode",
29-
"github.copilot",
30-
"github.vscode-pull-request-github",
31-
"golang.go",
32-
"heybourn.headwind",
33-
"rust-lang.rust-analyzer",
34-
"silvenon.mdx",
35-
"windmilleng.vscode-go-autotest",
36-
"yzhang.markdown-all-in-one"
37-
],
38-
// Use 'forwardPorts' to make a list of ports inside the container available locally.
39-
// "forwardPorts": [],
40-
41-
// Use 'postCreateCommand' to run commands after the container is created.
42-
"postCreateCommand": "cargo --version",
43-
// Invoking `cargo` will eagerly install the toolchain specified in rust-toolchain file
44-
45-
// Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
46-
"remoteUser": "vscode",
4712
"features": {
48-
"docker-in-docker": "latest",
49-
"git": "latest",
50-
"github-cli": "latest"
51-
}
52-
}
13+
"ghcr.io/devcontainers/features/github-cli:1": {},
14+
"ghcr.io/devcontainers/features/git:1": {}
15+
},
16+
"customizations": {
17+
"vscode": {
18+
"extensions": [
19+
"rust-lang.rust-analyzer",
20+
"bradlc.vscode-tailwindcss",
21+
"esbenp.prettier-vscode",
22+
"ms-vscode.vscode-json",
23+
"ms-vscode.vscode-typescript-next",
24+
"tamasfe.even-better-toml",
25+
"vadimcn.vscode-lldb"
26+
],
27+
"settings": {
28+
"rust-analyzer.cargo.buildScripts.enable": true,
29+
"rust-analyzer.checkOnSave.command": "clippy",
30+
"rust-analyzer.rustfmt.rangeFormatting.enable": true,
31+
"editor.defaultFormatter": "esbenp.prettier-vscode",
32+
"editor.formatOnSave": true,
33+
"[rust]": {
34+
"editor.defaultFormatter": "rust-lang.rust-analyzer"
35+
},
36+
"[toml]": {
37+
"editor.defaultFormatter": "tamasfe.even-better-toml"
38+
},
39+
"typescript.preferences.importModuleSpecifier": "relative",
40+
"javascript.preferences.importModuleSpecifier": "relative"
41+
}
42+
}
43+
},
44+
"forwardPorts": [3000, 3001, 9000, 9001],
45+
"postCreateCommand": "pnpm install && rustup component add llvm-tools-preview",
46+
"remoteUser": "vscode",
47+
"mounts": [
48+
"source=${localWorkspaceFolder}/.devcontainer/cache,target=/home/vscode/.cache,type=bind,consistency=cached",
49+
"source=${localWorkspaceFolder}/.devcontainer/cargo,target=/usr/local/cargo,type=bind,consistency=cached"
50+
]
51+
}

.github/ISSUE_TEMPLATE/0-turborepo-bug-report.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: Turborepo bug report
22
description: Create a bug report
3-
labels: ["kind: bug", "needs: triage"]
3+
labels: ["kind: bug"]
44

55
body:
66
- type: markdown
@@ -15,7 +15,7 @@ body:
1515
- type: checkboxes
1616
attributes:
1717
label: Verify canary release
18-
description: "Please install the canary version of `turbo` (e.g. `npm install turbo@canary`) to try the canary version of Turborepo. It includes all features and fixes that have not been released to the stable version yet. Some issues may already be fixed in the canary version, so please verify that your issue reproduces before opening a new issue."
18+
description: "Please install the canary version of `turbo` using your package manager (e.g. `npm install turbo@canary`) to try the canary version of Turborepo. It includes all features and fixes that have not been released to the stable version yet. Some issues may already be fixed in the canary version, so please verify that your issue reproduces before opening a new issue."
1919
options:
2020
- label: I verified that the issue exists in the latest Turborepo canary release.
2121
required: true
@@ -70,7 +70,7 @@ body:
7070
- type: markdown
7171
attributes:
7272
value: |
73-
Another way you can help the maintainers is to pinpoint the `canary` version of `turbo` that introduced the issue. Check out our [releases](https://github.com/vercel/turborepo/releases), and try to find the first `canary` release that introduced the issue. While not required, this will help us narrow down the scope of the issue, and possibly point to the PR/code change that introduced it. You can install a specific version of `turbo` by running `npm install turbo@<version>`.
73+
Another way you can help the maintainers is to pinpoint the `canary` version of `turbo` that introduced the issue. Check out our [releases](https://github.com/vercel/turborepo/releases), and try to find the first `canary` release that introduced the issue. While not required, this will help us narrow down the scope of the issue, and possibly point to the PR/code change that introduced it. You can install a specific version of `turbo` by running `npm install turbo@<version>` or the equivalent for your package manager.
7474
- type: textarea
7575
attributes:
7676
label: Additional context

.github/actions/cargo-sweep/.eslintignore

Lines changed: 0 additions & 1 deletion
This file was deleted.

.github/actions/cargo-sweep/.eslintrc.js

Lines changed: 0 additions & 3 deletions
This file was deleted.

.github/actions/cargo-sweep/.gitignore

Lines changed: 0 additions & 1 deletion
This file was deleted.

.github/actions/cargo-sweep/action.yml

Lines changed: 0 additions & 6 deletions
This file was deleted.

0 commit comments

Comments
 (0)