Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR changes our Bazel build so the dependencies we use in build scripts are more hygenic. Specifically, it moves the
codegen
module from theore
crate into a newore-build
crate, and tweaks our generatedBUILD.bazel
files.Bazel builds a Cargo Build Script, and it's dependencies, in the exec configuration which is the config for the host currently running the build. So when a crate is used in a build script it generally gets built twice, once for the platform the build is targeting, and once for the host running the build. Previously we were using the
ore
crate in a few build scripts, which results inore
and all of it's dependencies being build twice. With remote caching this isn't too bad, but it resulted in unnecessary fetching from S3, and whenore
is changed, unnecessary re-building.When building
environmentd
,clusterd
, andbalancerd
at the same time, the number of Bazel actions is reduced from 4,692 to 3,947.Motivation
Faster builds
Tips for reviewers
Just review the first commit, the second is just the changes from running
bin/bazel gen
Checklist
$T ⇔ Proto$T
mapping (possibly in a backwards-incompatible way), then it is tagged with aT-proto
label.