Skip to content

Commit

Permalink
Fix for Rust examples 8 - 9 (#548)
Browse files Browse the repository at this point in the history
Last batch of fixed up Rust examples.
Example 8 got a major makeover b/c the latest rules_rust separated into
multiple sub-modules,
which required quite some refactoring. 
Resolves #540

---------

Signed-off-by: Marvin Hansen <[email protected]>
  • Loading branch information
marvin-hansen authored Feb 10, 2025
1 parent 7a5d490 commit e8437ef
Show file tree
Hide file tree
Showing 203 changed files with 2,869 additions and 129,360 deletions.
6 changes: 6 additions & 0 deletions .bazelci/tutorial-rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,20 +50,26 @@ tasks:
name: "Rust Vendored Deps"
platform: ubuntu2204
working_directory: ../rust-examples/07-deps-vendor
run_targets: # This step is needed to generate the vendor directory required for the build to succeed.
- "//thirdparty:crates_vendor"
build_targets:
- "//..."
skip_in_bazel_downstream_pipeline: "https://github.com/bazelbuild/examples/issues/540"
rust-08-grpc-client-server-linux:
name: "Rust grpc"
platform: ubuntu2204
working_directory: ../rust-examples/08-grpc-client-server
run_targets: # This step is needed to generate the vendor directory required for the build to succeed.
- "//thirdparty:crates_vendor"
build_targets:
- "//..."
skip_in_bazel_downstream_pipeline: "https://github.com/bazelbuild/examples/issues/540"
rust-08-grpc-client-server-macos:
name: "Rust grpc"
platform: macos_arm64
working_directory: ../rust-examples/08-grpc-client-server
run_targets: # This step is needed to generate the vendor directory required for the build to succeed.
- "//thirdparty:crates_vendor"
build_targets:
- "//..."
skip_in_bazel_downstream_pipeline: "https://github.com/bazelbuild/examples/issues/540"
Expand Down
2 changes: 1 addition & 1 deletion rust-examples/.bazelversion
Original file line number Diff line number Diff line change
@@ -1 +1 @@
7.2.1
8.0.1
82 changes: 82 additions & 0 deletions rust-examples/01-hello-world/.bazelrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
###############################################################################
## Bazel Configuration Flags
##
## `.bazelrc` is a Bazel configuration file.
## https://bazel.build/docs/best-practices#bazelrc-file
###############################################################################

# Required on windows
# https://bazel.build/reference/command-line-reference#flag--enable_platform_specific_config
common --enable_platform_specific_config

# https://bazel.build/docs/windows#symlink
startup --windows_enable_symlinks
build:windows --enable_runfiles

###############################################################################
## Build configuration
###############################################################################

# Required for cargo_build_script support before Bazel 7
build --incompatible_merge_fixed_and_default_shell_env

# Enable C++ toolchain resolution.
build --incompatible_enable_cc_toolchain_resolution

# Debug toolchain resolution. Uncomment when needed.
# build --toolchain_resolution_debug='@bazel_tools//tools/cpp:toolchain_type

# Don't create bazel-* symlinks in the WORKSPACE directory.
# Instead, set a prefix and put it in .gitignore
# Uncomment when needed.
# build --symlink_prefix=target-bzl/

# Non-empty glob test is disabled because some Bazels deps fail the test.
# Only use locally and uncomment before pushing to CI.
# build --incompatible_disallow_empty_glob

# This flag improves execution throughput by executing more actions in parallel.
# Number should be no more than twice the number of CPU cores.
# Uncomment when needed.
# build --jobs=32

###############################################################################
## Common configuration
###############################################################################

# Enable Bzlmodby default
common --enable_bzlmod

# Write build outputs in a platform-specific directory;
# avoid outputs being wiped and rewritten when switching between platforms.
common --experimental_platform_in_output_dir

# Enable misc. performance optimizations.
# https://www.buildbuddy.io/blog/debugging-slow-bazel-builds/
# https://www.buildbuddy.io/blog/how-bazel-7-0-makes-your-builds-faster/
common --nolegacy_important_outputs
common --verbose_failures
common --noexperimental_merged_skyframe_analysis_execution

# Enable a more detailed performance profile
common --noslim_profile
common --experimental_profile_include_target_label
common --experimental_profile_include_primary_output

###############################################################################
## Test configuration
###############################################################################

# Reduce test output to just error cases and report timeout warnings.
test --test_output=errors
test --verbose_failures

###############################################################################
## Custom user flags
##
## This should always be the last thing in the `.bazelrc` file to ensure
## consistent behavior when setting flags in that file as `.bazelrc` files are
## evaluated top to bottom.
###############################################################################

try-import %workspace%/user.bazelrc
1 change: 1 addition & 0 deletions rust-examples/01-hello-world/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/bazel-*
6 changes: 3 additions & 3 deletions rust-examples/01-hello-world/MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ module(
)

# https://github.com/bazelbuild/rules_rust/releases
bazel_dep(name = "rules_rust", version = "0.47.1")
bazel_dep(name = "rules_rust", version = "0.57.1")

# Rust toolchain
RUST_EDITION = "2021"
RUST_EDITION = "2021" # NOTE: 2024 edition will be released with Rust 1.85.0

RUST_VERSION = "1.79.0"
RUST_VERSION = "1.84.1"

rust = use_extension("@rules_rust//rust:extensions.bzl", "rust")
rust.toolchain(
Expand Down
Loading

0 comments on commit e8437ef

Please sign in to comment.