Skip to content

Commit

Permalink
Merge branch 'main' into dont_filter_clang
Browse files Browse the repository at this point in the history
  • Loading branch information
hlopko authored Sep 30, 2024
2 parents 142cc22 + 144d34f commit 48ed83e
Show file tree
Hide file tree
Showing 1,529 changed files with 93,221 additions and 97,253 deletions.
98 changes: 96 additions & 2 deletions .bazelci/presubmit.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
minimum_bazel_version: &minimum_bazel_version "6.4.0"
minimum_bazel_version: &minimum_bazel_version "7.3.1"
aspects_flags: &aspects_flags
- "--config=rustfmt"
- "--config=clippy"
min_rust_version_shell_commands: &min_rust_version_shell_commands
- sed -i 's|^rust_register_toolchains(|rust_register_toolchains(versions = ["1.68.0"],\n|' WORKSPACE.bazel
- sed -i 's|^rust_register_toolchains(|rust_register_toolchains(versions = ["1.72.1"],\n|' WORKSPACE.bazel
nightly_flags: &nightly_flags
- "--//rust/toolchain/channel=nightly"
nightly_aspects_flags: &nightly_aspects_flags
Expand All @@ -13,6 +13,9 @@ nightly_aspects_flags: &nightly_aspects_flags
- "--config=clippy"
bzlmod_flags: &bzlmod_flags
- "--lockfile_mode=error"
bzlmod_plus_repo_names_flags: &bzlmod_plus_repo_names_flags
# `--lockfile_mode=error` is omitted because the repo names leak into the lock file.
- "--incompatible_use_plus_in_repo_names"
single_rust_channel_targets: &single_rust_channel_targets
- "--"
- "//..."
Expand All @@ -33,6 +36,21 @@ default_windows_targets: &default_windows_targets
- "//..."
- "-//test/proto/..."
- "-//test/unit/pipelined_compilation/..."
default_windows_no_runfiles_targets: &default_windows_no_runfiles_targets
- "--" # Allows negative patterns; hack for https://github.com/bazelbuild/continuous-integration/pull/245
- "//..."
# TODO: https://github.com/bazelbuild/rules_rust/issues/1156
- "-//crate_universe/..."
- "-//test/chained_direct_deps:mod3_doc_test"
- "-//test/out_dir_in_tests:demo_lib_doc_test"
- "-//test/proto/..."
- "-//test/rustc_env_files:output_test"
- "-//test/test_env_launcher:test"
- "-//test/test_env:test_manifest_dir"
- "-//test/test_env:test_run"
- "-//test/unit/pipelined_compilation/..."
- "-//test/unit/rustdoc/..."
- "-//tools/runfiles/..."
crate_universe_vendor_example_targets: &crate_universe_vendor_example_targets
- "//vendor_external:crates_vendor"
- "//vendor_local_manifests:crates_vendor"
Expand Down Expand Up @@ -75,6 +93,15 @@ tasks:
windows:
build_targets: *default_windows_targets
test_targets: *default_windows_targets
windows_no_runfiles:
name: No Runfiles
platform: windows
build_flags:
- "--noenable_runfiles"
test_flags:
- "--noenable_runfiles"
build_targets: *default_windows_no_runfiles_targets
test_targets: *default_windows_no_runfiles_targets
ubuntu2004_split_coverage_postprocessing:
name: Split Coverage Postprocessing
platform: ubuntu2004
Expand Down Expand Up @@ -168,6 +195,19 @@ tasks:
- "--config=clippy"
build_targets: *default_windows_targets
test_targets: *default_windows_targets
windows_no_runfiles_with_aspects:
name: No Runfiles With Aspects
platform: windows
build_flags:
- "--noenable_runfiles"
- "--config=rustfmt"
- "--config=clippy"
test_flags:
- "--noenable_runfiles"
- "--config=rustfmt"
- "--config=clippy"
build_targets: *default_windows_no_runfiles_targets
test_targets: *default_windows_no_runfiles_targets
windows_rolling_with_aspects:
name: "Windows Rolling Bazel Version With Aspects"
platform: windows
Expand Down Expand Up @@ -655,6 +695,14 @@ tasks:
- "//..."
test_targets:
- "//..."
musl_cross_compiling_linux_to_linux:
name: Musl cross compiling test from Linux to Linux
platform: ubuntu2204
working_directory: examples/musl_cross_compiling
build_targets:
- "//..."
test_targets:
- "//..."
nix_cross_compiling:
name: Nix cross compiling test
platform: ubuntu2204
Expand Down Expand Up @@ -745,6 +793,46 @@ tasks:
- "@rules_rust//tools/rust_analyzer:gen_rust_project"
test_targets:
- "//..."
ubuntu2004_bzlmod_plus_repo_names_bcr:
name: bzlmod BCR presubmit w/ incompatible flags
# A newer version than is specified in the .bazel_version file is needed for
# --incompatible_use_plus_in_repo_names'
bazel: *minimum_bazel_version
platform: ubuntu2004
working_directory: examples/bzlmod/hello_world
test_flags: *bzlmod_plus_repo_names_flags
run_targets:
- "//third-party:vendor"
- "@rules_rust//tools/rust_analyzer:gen_rust_project"
test_targets:
- "//..."
macos_bzlmod_plus_repo_names_bcr:
name: bzlmod BCR presubmit w/ incompatible flags
# A newer version than is specified in the .bazel_version file is needed for
# --incompatible_use_plus_in_repo_names'
bazel: *minimum_bazel_version
platform: macos
working_directory: examples/bzlmod/hello_world
test_flags: *bzlmod_plus_repo_names_flags
run_targets:
- "//third-party:vendor"
- "@rules_rust//tools/rust_analyzer:gen_rust_project"
test_targets:
- "//..."
windows_bzlmod_plus_repo_names_bcr:
name: bzlmod BCR presubmit w/ incompatible flags
# A newer version than is specified in the .bazel_version file is needed for
# --incompatible_use_plus_in_repo_names'
bazel: *minimum_bazel_version
platform: windows
working_directory: examples/bzlmod/hello_world
test_flags: *bzlmod_plus_repo_names_flags
run_targets:
- "//third-party:vendor"
build_targets:
- "@rules_rust//tools/rust_analyzer:gen_rust_project"
test_targets:
- "//..."
bzlmod_no_cargo:
name: Cargo-less bzlmod
platform: ubuntu2004
Expand All @@ -765,6 +853,12 @@ tasks:
working_directory: examples/bzlmod/proto
build_targets:
- "//..."
bzlmod_proto:
name: Proto and Prost with prebuilt protoc with bzlmod
platform: ubuntu2004
working_directory: examples/bzlmod/proto_with_toolchain
build_targets:
- "//..."
compile_one_dependency:
name: --compile_one_dependency flag
platform: ubuntu2004
Expand Down
File renamed without changes.
38 changes: 38 additions & 0 deletions .github/workflows/docs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Docs-CI/CD

on:
push:
branches:
- main
pull_request:
types:
- opened
- synchronize

jobs:
docs:
name: Docs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Install Rust
run: |
rustup set profile minimal
rustup toolchain install stable
rustup default stable
- name: Install latest mdbook
run: |
tag=$(curl 'https://api.github.com/repos/rust-lang/mdbook/releases/latest' | jq -r '.tag_name')
url="https://github.com/rust-lang/mdbook/releases/download/${tag}/mdbook-${tag}-x86_64-unknown-linux-gnu.tar.gz"
mkdir bin
curl -sSL $url | tar -xz --directory=bin
echo "$(pwd)/bin" >> $GITHUB_PATH
- name: Run tests
run: mdbook build
working-directory: docs
- name: Deploy to GitHub Pages
if: github.ref == 'refs/heads/main'
uses: JamesIves/[email protected]
with:
branch: gh-pages # The branch the action should deploy to.
folder: docs/book # The folder the action should deploy.
101 changes: 31 additions & 70 deletions BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,110 +1,86 @@
load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
load("@bazel_skylib//rules:common_settings.bzl", "string_flag")
load(
"//rust:defs.bzl",
"capture_clippy_output",
"clippy_flag",
"clippy_flags",
"error_format",
"extra_exec_rustc_flag",
"extra_exec_rustc_flags",
"extra_rustc_flag",
"extra_rustc_flags",
"no_std",
"per_crate_rustc_flag",
"rustc_output_diagnostics",
)

exports_files([
".clippy.toml",
".rustfmt.toml",
"LICENSE",
"MODULE.bazel",
"version.bzl",
])

bzl_library(
name = "bzl_lib",
srcs = [
":version.bzl",
],
visibility = ["//visibility:public"],
)

# This setting may be changed from the command line to generate machine readable errors.
error_format(
alias(
name = "error_format",
build_setting_default = "human",
actual = "//rust/settings:error_format",
visibility = ["//visibility:public"],
)

# This setting may be changed from the command line to generate rustc diagnostics.
rustc_output_diagnostics(
alias(
name = "rustc_output_diagnostics",
build_setting_default = False,
actual = "//rust/settings:rustc_output_diagnostics",
visibility = ["//visibility:public"],
)

# This setting may be used to pass extra options to clippy from the command line.
# It applies across all targets.
clippy_flags(
alias(
name = "clippy_flags",
build_setting_default = [],
actual = "//rust/settings:clippy_flags",
visibility = ["//visibility:public"],
)

clippy_flag(
alias(
name = "clippy_flag",
build_setting_default = "",
actual = "//rust/settings:clippy_flag",
visibility = ["//visibility:public"],
)

# This setting may be used to pass extra options to rustc from the command line
# in non-exec configuration.
# It applies across all targets whereas the rustc_flags option on targets applies only
# to that target. This can be useful for passing build-wide options such as LTO.
extra_rustc_flags(
alias(
name = "extra_rustc_flags",
build_setting_default = [],
actual = "//rust/settings:extra_rustc_flags",
visibility = ["//visibility:public"],
)

extra_rustc_flag(
alias(
name = "extra_rustc_flag",
build_setting_default = "",
actual = "//rust/settings:extra_rustc_flag",
visibility = ["//visibility:public"],
)

# This setting may be used to pass extra options to rustc from the command line
# in exec configuration.
# It applies across all targets whereas the rustc_flags option on targets applies only
# to that target. This can be useful for passing build-wide options such as LTO.
extra_exec_rustc_flags(
alias(
name = "extra_exec_rustc_flags",
build_setting_default = [],
actual = "//rust/settings:extra_exec_rustc_flags",
visibility = ["//visibility:public"],
)

extra_exec_rustc_flag(
alias(
name = "extra_exec_rustc_flag",
build_setting_default = "",
actual = "//rust/settings:extra_exec_rustc_flag",
visibility = ["//visibility:public"],
)

per_crate_rustc_flag(
alias(
name = "experimental_per_crate_rustc_flag",
build_setting_default = "",
actual = "//rust/settings:experimental_per_crate_rustc_flag",
visibility = ["//visibility:public"],
)

# This setting is used by the clippy rules. See https://bazelbuild.github.io/rules_rust/rust_clippy.html
label_flag(
alias(
name = "clippy.toml",
build_setting_default = "//tools/clippy:clippy.toml",
actual = "//rust/settings:clippy.toml",
visibility = ["//visibility:public"],
)

# This setting is used by the rustfmt rules. See https://bazelbuild.github.io/rules_rust/rust_fmt.html
label_flag(
alias(
name = "rustfmt.toml",
build_setting_default = "//tools/rustfmt:rustfmt.toml",
actual = "//rust/settings:rustfmt.toml",
visibility = ["//visibility:public"],
)

Expand All @@ -114,35 +90,20 @@ alias(
visibility = ["//visibility:public"],
)

capture_clippy_output(
alias(
name = "capture_clippy_output",
build_setting_default = False,
actual = "//rust/settings:capture_clippy_output",
visibility = ["//visibility:public"],
)

# This setting may be used to enable builds without the standard library.
# Currently only no_std + alloc is supported, which can be enabled with setting the value to "alloc".
# In the future we could add support for additional modes, e.g "core", "alloc,collections".
string_flag(
alias(
name = "no_std",
build_setting_default = "off",
values = [
"alloc",
"off",
],
actual = "//rust/settings:no_std",
visibility = ["//visibility:public"],
)

# A hack target to allow as to only apply the no_std mode in target config.
no_std(
name = "build_target_in_no_std",
)

# A config setting for setting conditional `cargo_features`, `deps`, based on the `:no_std` value.
config_setting(
alias(
name = "is_no_std",
flag_values = {
":build_target_in_no_std": "alloc",
},
actual = "//rust/settings:is_no_std",
visibility = ["//visibility:public"],
)
Loading

0 comments on commit 48ed83e

Please sign in to comment.