Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
8172c3d
Revert "Split rustdoc test compilation and execution (#4034)"
dzbarsky Jun 5, 2026
badd884
Remove WORKSPACE support (#4005)
UebelAndre May 1, 2026
328f0b0
feat: Add BPF triple constraint mapping (#3696)
tamird May 1, 2026
da27a26
Remove unneeded code
dzbarsky May 15, 2026
e10dc7c
Rearrange link paths on Windows to reduce size overruns and fix errors
dzbarsky Jan 20, 2026
4673a85
Revert "Fix stamping for rules that don't have a stamp attribute (#38…
dzbarsky Feb 7, 2026
ce0120c
Revert "Switch stamping detection to ctx.configuration.stamp_binaries…
dzbarsky Feb 7, 2026
84624f8
Fix process-wrapper link lib handling when using argfiles
dzbarsky Feb 16, 2026
406c29a
Rewrite process_wrapper_bootstrap to cc
dzbarsky Feb 18, 2026
4e375c6
Attempt to fix CopyFile for windows
dzbarsky Feb 18, 2026
aacc9c1
Apply lint config in exec configuration (#2)
isaacparker0 Feb 20, 2026
0b1a8c2
Fix up rules_rust bzl_library targets
dzbarsky Feb 20, 2026
b512a90
rust-analyzer: include Bazel package dir in crate source include_dirs…
isaacparker0 Feb 20, 2026
e52ae07
Improve proc_macro_deps ergonomics
dzbarsky Sep 9, 2025
472927a
Always use param file for process wrapper
dzbarsky Feb 25, 2026
8e61696
Avoid hashing RustAnalyzerInfo in rust_analyzer alias mapping
dzbarsky Feb 26, 2026
1a418bd
Convert wrappers to symbolic macros
dzbarsky Feb 26, 2026
091a53f
Handle toolchain registration when not registered as a bazel_dep
dzbarsky Feb 28, 2026
257b5b7
Replace the --rustc-quit-on-rmeta / .rmeta approach with Buck2-style …
walter-zeromatter Feb 26, 2026
1908639
Cleanup some process_wrapper code
dzbarsky Mar 2, 2026
8fecaa7
Fix prost to be compatible with multiplatform
dzbarsky Mar 13, 2026
405e500
Improve toolchain make var env expansion
dzbarsky Apr 5, 2026
bf6e67e
Improve rust compilation messages
dzbarsky Apr 9, 2026
f9f447a
Add rust_test sharding support (#13)
bolinfest Apr 15, 2026
b37447b
Add per-crate rustc flag trimming
dzbarsky Apr 26, 2026
1bdcba5
Fix Windows GNU staticlib output naming
dzbarsky Apr 26, 2026
c0255dd
Move processwrapper to rust toolchain
dzbarsky Dec 19, 2025
c79abc7
Capture process wrapper exit codes
dzbarsky Apr 26, 2026
ef0d5d8
Provision hermetic SDKROOT
dzbarsky Apr 27, 2026
0d87bf8
Internalize macos SDK dep
dzbarsky Apr 30, 2026
9b29dbd
rustdoc_test should not do compilation at test time
dzbarsky May 2, 2026
f0e1578
Fix CcInfo collection through CrateGroupInfo
dzbarsky May 3, 2026
ad28b8e
Expose macOS SDK from llvm module
dzbarsky May 3, 2026
f1466d8
Loongarch64 and sparc support
dzbarsky May 3, 2026
e66de50
Avoid vendored crates for rust-analyzer binary
dzbarsky Apr 1, 2026
466a2e2
Don't force passing proc_macro_deps via macro
dzbarsky May 4, 2026
5663e7c
Remove cargo build script rundir support
dzbarsky May 5, 2026
7767d45
Shorten cargo build script manifest runfiles paths
dzbarsky May 5, 2026
4835166
Simplify prost/pyo3 setup
dzbarsky May 5, 2026
8d75f5b
Fix dynamic_runtime_libs support in dylibs
dzbarsky May 5, 2026
4f7a809
Separate build script data from compile_data (#21)
michaelm-openai May 8, 2026
4679246
Add RUSTC_BOOTSTRAP guardrail for -Zno-codegen pipelining (#19)
walter-zeromatter May 8, 2026
ca38890
Add direct_pyi_files and transitive_pyi_files to py_pyo3_library PyIn…
dillydill123 May 9, 2026
55d1b47
Fix tests
dzbarsky May 9, 2026
b5e06c8
Add CI configs
dzbarsky May 9, 2026
372862b
More CI sanitization
dzbarsky May 10, 2026
a741d00
Windows runtime lib linkage test expectation fixes
dzbarsky May 11, 2026
04b27cc
Cleanup tool_path arg to construct_arguments
dzbarsky May 11, 2026
2c674e0
Include tool runfiles in Rust toolchains
dzbarsky May 11, 2026
7fd15bd
Generalize captured-output-test-runner
dzbarsky May 12, 2026
c87c34b
Expose injectable rustc compile helper
dzbarsky May 12, 2026
fb069ce
Fix oso_prefix
dzbarsky May 14, 2026
cd277ed
Better wasm-bindgen support
dzbarsky May 16, 2026
e037a4c
Bump rules_rs for tests
dzbarsky May 17, 2026
b898f4a
vscode test workspace CI fixes
dzbarsky May 17, 2026
72c2335
BPF linker support
dzbarsky Jun 5, 2026
3750e2c
Bootstrap processwrapper should expand SDKROOT
dzbarsky Jun 6, 2026
0ff9646
Backpressure non-hermetic build script paths
dzbarsky Jun 7, 2026
7157e16
Remove cargo build script fallback C++ tools
dzbarsky Jun 7, 2026
25d74b0
Stop setting duplicative CARGO_PKG env vars
dzbarsky Oct 6, 2025
e296c9f
Do not silently remove $AR when it is libtool
dzbarsky Jun 7, 2026
aecc328
Add cc_runtime_linkage attribute for static C++ runtime in shared lib…
walter-zeromatter Jun 10, 2026
6d6c89b
Only default SDKROOT if cc toolchain doesn't set one
dzbarsky Jun 12, 2026
c2a3b44
Avoid bazel crash with apple_support toolchain
dzbarsky Jun 13, 2026
2eeb2a3
Better libtool error handling
dzbarsky Jun 13, 2026
773b241
Add distributed ThinLTO support
dzbarsky Jun 13, 2026
57b2235
Fix cross-platform Bazel Test failures (#26)
dzbarsky Jun 13, 2026
ca11ecb
Fix path-mapped action arguments after rebase
dzbarsky Jun 14, 2026
3ba30d1
Omit unused private LTO arguments
dzbarsky Jun 14, 2026
23d5138
Restore common Cargo package environment variables
dzbarsky Jun 14, 2026
7267b51
Another AR fixup
dzbarsky Jun 15, 2026
430a9db
Improve pdb support when using cc_common.link
dzbarsky Jun 17, 2026
257fc56
Only reject existing non-hermetic build script paths
dzbarsky Jun 17, 2026
95441e0
Check non-hermetic path list components
dzbarsky Jun 17, 2026
8a2219c
Test public Starlark dependencies
dzbarsky Jun 17, 2026
0a4149d
Use target compilation mode for Cargo build scripts (#24)
dzbarsky Jun 22, 2026
2577f68
rustc: include proc-macro dep transitive rlibs in proc-macro link inputs
walter-zeromatter Jun 24, 2026
729e90b
rustc: propagate nested proc-macro dep outputs
walter-zeromatter Jun 24, 2026
8365c57
rustc: narrow proc-macro dependency inputs
walter-zeromatter Jun 25, 2026
7aee4c9
rustc: use Cargo artifact closure for linking
walter-zeromatter Jun 25, 2026
57cb14f
rustc: keep proc-macro internals scoped
walter-zeromatter Jun 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 2 additions & 1 deletion .bazelci/presubmit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ min_rust_version_shell_commands: &min_rust_version_shell_commands
- sed -i 's|^rust\.toolchain(|rust.toolchain(versions = ["1.85.0"],\n|' MODULE.bazel
nightly_flags: &nightly_flags
- "--//rust/toolchain/channel=nightly"
- "--//rust/settings:experimental_compile_rustdoc_tests=True"
nightly_aspects_flags: &nightly_aspects_flags
- "--//rust/toolchain/channel=nightly"
- "--config=rustfmt"
Expand Down Expand Up @@ -360,6 +359,8 @@ tasks:
test_targets: *default_linux_targets
coverage_targets: *default_linux_targets
post_shell_commands: *coverage_validation_post_shell_commands
run_targets:
- //test:build_script_path_mapping_test_binary
linux_docs:
name: Docs
platform: ubuntu2204
Expand Down
7 changes: 6 additions & 1 deletion .bazelignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,10 @@ crate_universe/private/bootstrap
crate_universe/tests/integration
docs
examples
extensions
extensions/bindgen
extensions/mdbook
extensions/prost/private/tests
extensions/pyo3/test
extensions/pyo3/tools
extensions/wasm_bindgen/test
test/integration
18 changes: 18 additions & 0 deletions .bazelrc
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ build --nobuild_runfile_links

# https://bazel.build/reference/command-line-reference#flag--enable_platform_specific_config
common --enable_platform_specific_config
common:linux --host_platform=//platforms:local_gnu
common:windows --host_platform=//platforms:local_windows_msvc

# Enable the only currently supported report type
# https://bazel.build/reference/command-line-reference#flag--combined_report
Expand Down Expand Up @@ -50,6 +52,22 @@ build:unpretty --output_groups=+rust_unpretty
# https://github.com/rust-lang/rust/issues/43364
build:unpretty --config=nightly

# Use a shared repository cache location. GitHub Actions persists this path
# between runs, and it is also a reasonable local default.
common --repository_cache=~/.cache/bazel-repo
common --repo_contents_cache=~/.cache/bazel-repo/contents

# BuildBuddy remote cache / BES settings used by CI via `--config=remote`.
common:remote --bes_backend=grpcs://remote.buildbuddy.io
common:remote --bes_results_url=https://app.buildbuddy.io/invocation/
common:remote --remote_cache=grpcs://remote.buildbuddy.io
common:remote --remote_cache_compression
common:remote --experimental_remote_downloader=grpcs://remote.buildbuddy.io
common:remote --remote_download_outputs=minimal

# Allows tests that shell out to Bazel/Bazelisk to find their cache directory.
test --test_env=XDG_CACHE_HOME

# Disable cc toolchains to test rust targets can be built without one.
build:no_cc_toolchain --repo_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1
build:no_cc_toolchain --repo_env=BAZEL_NO_APPLE_CPP_TOOLCHAIN=1
Expand Down
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,6 @@ examples/sys/complex/3rdparty/crates/** linguist-generated
extensions/bindgen/3rdparty/crates/** linguist-generated
extensions/prost/private/3rdparty/crates/** linguist-generated
extensions/wasm_bindgen/3rdparty/crates/** linguist-generated
test/unpretty/*.unpretty.expanded.rs text eol=lf
tools/rust_analyzer/3rdparty/crates/** linguist-generated
util/import/3rdparty/crates/** linguist-generated
92 changes: 92 additions & 0 deletions .github/workflows/bazel_test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
name: Bazel Test

on:
push:
branches:
- main
pull_request:
types:
- opened
- synchronize
- reopened
merge_group:
workflow_dispatch:
workflow_call:
secrets:
BUILDBUDDY_API_KEY:
required: false

permissions:
contents: read

concurrency:
group: bazel-test-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}

jobs:
test:
name: bazel test //... (${{ matrix.platform }})
runs-on: ${{ matrix.os }}
timeout-minutes: 120
strategy:
fail-fast: false
matrix:
include:
- platform: linux
os: ubuntu-latest
- platform: macos
os: macos-latest
- platform: windows
os: windows-latest

steps:
- uses: actions/checkout@v6

- name: Mount Bazel repository cache
uses: actions/cache@v4
with:
path: |
~/.cache/bazel-repo
key: bazel-repo-${{ matrix.platform }}-${{ hashFiles('MODULE.bazel', 'MODULE.bazel.lock', '.bazelrc', '**/*.bzl', '**/BUILD', '**/BUILD.bazel') }}
restore-keys: |
bazel-repo-${{ matrix.platform }}-

- name: Configure Windows Bazel
if: runner.os == 'Windows'
shell: pwsh
run: |
'startup --output_base=C:/b' | Out-File -FilePath user.bazelrc -Encoding utf8
'startup --windows_enable_symlinks' | Out-File -FilePath user.bazelrc -Append -Encoding utf8

- name: bazel test //...
shell: bash
env:
USE_BAZEL_VERSION: 9.1.0
BUILDBUDDY_API_KEY: ${{ secrets.BUILDBUDDY_API_KEY }}
run: |
REMOTE_ARGS=()
if [[ -n "${BUILDBUDDY_API_KEY:-}" ]]; then
REMOTE_ARGS+=(--remote_header="x-buildbuddy-api-key=${BUILDBUDDY_API_KEY}")
else
echo "BUILDBUDDY_API_KEY is not set; using BuildBuddy remote cache without an auth header."
fi

PLATFORM_ARGS=()
if [[ "${RUNNER_OS}" == "macOS" ]]; then
case "${RUNNER_ARCH}" in
ARM64) MACOS_PLATFORM="@llvm//platforms:macos_aarch64" ;;
X64) MACOS_PLATFORM="@llvm//platforms:macos_x86_64" ;;
*) echo "Unsupported macOS runner architecture: ${RUNNER_ARCH}"; exit 1 ;;
esac
PLATFORM_ARGS+=("--extra_toolchains=@llvm//toolchain:all")
PLATFORM_ARGS+=("--platforms=${MACOS_PLATFORM}")
PLATFORM_ARGS+=("--@rules_cc//cc/toolchains/args/archiver_flags:use_libtool_on_macos=False")
fi

bazel \
--bazelrc="$GITHUB_WORKSPACE/.github/github.bazelrc" \
test \
--config=remote \
"${REMOTE_ARGS[@]}" \
"${PLATFORM_ARGS[@]}" \
//...
21 changes: 0 additions & 21 deletions .github/workflows/docs.yaml

This file was deleted.

18 changes: 0 additions & 18 deletions .github/workflows/formatting.yaml

This file was deleted.

118 changes: 24 additions & 94 deletions MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -9,40 +9,34 @@ module(
## Core
###############################################################################

bazel_dep(name = "bazel_lib", version = "3.0.0")
bazel_dep(name = "bazel_features", version = "1.32.0")
bazel_dep(name = "bazel_skylib", version = "1.8.2")
bazel_dep(name = "platforms", version = "1.1.0")
bazel_dep(name = "protobuf", version = "28.3", repo_name = "com_google_protobuf")
bazel_dep(name = "rules_cc", version = "0.2.4")
bazel_dep(name = "rules_license", version = "1.0.0")
bazel_dep(name = "rules_proto", version = "7.1.0")
bazel_dep(name = "rules_python", version = "1.6.3")
bazel_dep(name = "rules_shell", version = "0.6.1")
bazel_dep(name = "apple_support", version = "1.24.1")
bazel_dep(name = "llvm", version = "0.7.7")

###############################################################################
## Compatibility
###############################################################################

bazel_dep(name = "rules_rs", version = "0.0.82")

osx = use_extension("@llvm//extensions:osx.bzl", "osx")
use_repo(osx, "macos_sdk")

internal_deps = use_extension("//rust/private:internal_extensions.bzl", "i")
use_repo(
internal_deps,
"rrra",
"rrra__anyhow-1.0.102",
"rrra__camino-1.2.2",
"rrra__clap-4.6.0",
"rrra__env_logger-0.11.10",
"rrra__itertools-0.14.0",
"rrra__log-0.4.29",
"rrra__serde-1.0.228",
"rrra__serde_json-1.0.149",
"rules_rust_tinyjson",
)

cargo_internal_deps = use_extension("//cargo/private:internal_extensions.bzl", "i")
use_repo(
cargo_internal_deps,
"rrc",
"rrc__cargo-util-schemas-0.3.1",
"rrc__cargo_toml-0.22.3",
"rrc__pathdiff-0.1.0",
"rrc__semver-1.0.25",
"rrc__toml-0.8.20",
)

rust = use_extension("//rust:extensions.bzl", "rust")
rust.toolchain(edition = "2021")
use_repo(rust, "rust_toolchains")
Expand All @@ -51,6 +45,16 @@ register_toolchains(
"@rust_toolchains//:all",
)

rules_rs_toolchains = use_extension("@rules_rs//rs/toolchains:module_extension.bzl", "toolchains", dev_dependency = True)
rules_rs_toolchains.toolchain(name = "default_rust_toolchains")
rules_rs_toolchains.toolchain(name = "r")
use_repo(rules_rs_toolchains, "default_rust_toolchains", "r")

register_toolchains(
"@r//:all",
dev_dependency = True,
)

rust_host_tools = use_extension("//rust:extensions.bzl", "rust_host_tools")
rust_host_tools.host_tools(
name = "rust_host_tools",
Expand All @@ -66,7 +70,6 @@ use_repo(
"buildkite_config",
"generated_inputs_in_external_repo",
"libc",
"rrtd",
"rrtd__anyhow-1.0.100",
"rrtd__blake3-1.8.2",
"rrtd__clap-4.5.50",
Expand All @@ -77,85 +80,12 @@ use_repo(
"rrtd__tracing-0.1.41",
"rrtd__tracing-subscriber-0.3.20",
"rrtd__walkdir-2.5.0",
"rtra",
"rtra__serde-1.0.228",
"rtra__serde_json-1.0.150",
"rtvsc",
"rtvsc__serde-1.0.228",
"rtvsc__serde_json-1.0.150",
"rules_rust_toolchain_test_target_json",
)

bazel_dep(name = "rules_python", version = "1.5.1", dev_dependency = True)
bazel_dep(name = "rules_testing", version = "0.7.0", dev_dependency = True)
bazel_dep(name = "bazel_ci_rules", version = "1.0.0", dev_dependency = True)

###############################################################################
## Crate Universe
###############################################################################

crate_universe_internal_deps = use_extension(
"//crate_universe/private:internal_extensions.bzl",
"cu",
)
use_repo(
crate_universe_internal_deps,
"cargo_bazel.buildifier-darwin-amd64",
"cargo_bazel.buildifier-darwin-arm64",
"cargo_bazel.buildifier-linux-amd64",
"cargo_bazel.buildifier-linux-arm64",
"cargo_bazel.buildifier-windows-amd64.exe",
"cui",
"cui__anyhow-1.0.98",
"cui__camino-1.1.9",
"cui__cargo-lock-10.1.0",
"cui__cargo-platform-0.1.9",
"cui__cargo_metadata-0.19.2",
"cui__cargo_toml-0.22.3",
"cui__cfg-expr-0.18.0",
"cui__clap-4.5.37",
"cui__crates-index-3.7.0",
"cui__glob-0.3.2",
"cui__hex-0.4.3",
"cui__indoc-2.0.6",
"cui__itertools-0.14.0",
"cui__maplit-1.0.2",
"cui__normpath-1.3.0",
"cui__once_cell-1.21.3",
"cui__pathdiff-0.2.3",
"cui__regex-1.11.1",
"cui__semver-1.0.26",
"cui__serde-1.0.219",
"cui__serde_json-1.0.140",
"cui__serde_starlark-0.1.17",
"cui__sha2-0.10.8",
"cui__spdx-0.10.8",
"cui__tempfile-3.19.1",
"cui__tera-1.20.0",
"cui__textwrap-0.16.2",
"cui__toml-0.9.5",
"cui__tracing-0.1.41",
"cui__tracing-subscriber-0.3.19",
"cui__url-2.5.4",
"cui__walkdir-2.5.0",
)

crate_universe_internal_non_repro_deps = use_extension(
"//crate_universe/private:internal_extensions.bzl",
"cu_nr",
)
use_repo(
crate_universe_internal_non_repro_deps,
"cargo_bazel_bootstrap",
)

crate_universe_internal_dev_deps = use_extension(
"//crate_universe/private:internal_extensions.bzl",
"cu_dev",
dev_dependency = True,
)
use_repo(
crate_universe_internal_dev_deps,
"cross_rs",
"cross_rs_host_bin",
)
14 changes: 0 additions & 14 deletions cargo/3rdparty/BUILD.bazel

This file was deleted.

Loading
Loading