Andrewyx/Upgrade Bazel 8 - #3459
Conversation
…x/Software into Andrewyx/Upgrade_bazel_8
itsarune
left a comment
There was a problem hiding this comment.
Nice work! Left some more comments
…into Andrewyx/Upgrade_bazel_8
…x/Software into Andrewyx/Upgrade_bazel_8
…re into Andrewyx/Upgrade_bazel_8
williamckha
left a comment
There was a problem hiding this comment.
@itsarune I talked with Andrew and the remaining issues can be worked on after merging this PR in. The commented out copts for treating warnings as errors are especially tricky to fix right now, since Bazel does not have good support for suppressing warnings from external header-only libraries (this poorly documented external_include_paths feature is supposed to do the trick, but we can't figure out how to mark external dependencies). I'm not sure why we aren't getting these warnings from external deps on master, maybe because we upgraded them?
Ideally I would like to get this PR merged by this weekend since we will be onboarding new members.
Please fill out the following before requesting review on this PR
Description
This PR contains the initial migration work for moving our code base from Bazel 5.4.0 -> Bazel 8.
Prominent components which have been changed involve the following:
WORKSPACEtoMODULEsystemnanopbto 0.4.9.1 via the Bazel Central Registry (BCR)protobufto 6.31.1 via BCRplatformio_rulesto most recent versionnanopb.bzlruleRefactor/Chores Made:
starlarkdirectory for custom rules or macrostoolchainsdir.bazelrcto speed up compile timesInfrastructure Changes:
setup_software.shuses Bazelisk to manage bazel versions now automaticallysetup_software.shpullsprotoc, the proto compiler, via python now from thegrpcio-toolspip packagesetup_software.shnow also sets up python dev headers for aarch64 hosts (for the sack of bazel hermeticity)Unblocks:
Testing Done
Resolved Issues
Resolves #2592, #3382, #3483
Length Justification and Key Files to Review
Review Checklist
It is the reviewers responsibility to also make sure every item here has been covered
.hfile) should have a javadoc style comment at the start of them. For examples, see the functions defined inthunderbots/software/geom. Similarly, all classes should have an associated Javadoc comment explaining the purpose of the class.TODO(or similar) statements should either be completed or associated with a github issueNotes:
https://groups.google.com/g/bazel-discuss/c/3Q_GEqNZrC0
https://bazel.build/extending/toolchains
https://blog.bazel.build/2017/02/27/protocol-buffers.html#implicit-dependencies-and-proto-toolchains