[deps] Upgrade Bazel to 9.2.0 and migrate to Bzlmod - #427
Merged
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Description
Upgrade the repository-wide Bazel toolchain from 8.6.0 to 9.2.0 and migrate EnvPool from the removed
WORKSPACEdependency model to Bzlmod..bazelversion,Makefile, Docker images, CI, documentation, and clang-tidy discovery on Bazel 9.2.0.WORKSPACEwithMODULE.bazel, a checked-in module lockfile, Python 3.12/3.13/3.14 toolchains, and isolated normal/Jumanji/MyoSuite pip hubs.rules_foreign_ccfixes for Bazel 9cc_importand Bzlmod pkg-config repository names.bazel test //...does not redundantly rebuild every native extension under three Python transitions..bazelversionchanges.Motivation and Context
Bazel 9 removes the legacy WORKSPACE path used by the current build. Landing the toolchain and module-system migration separately establishes a clean base for later Freedoom, libjpeg-turbo, SDL, and OpenCV upgrades.
Types of changes
Implemented Tasks
Checklist
Exact-source verification
Source commit:
6ca1d7c5ff03866e7adbebdc1018824f3c71b388. Every validation below checks this exact public GitHub commit and Bazel 9.2.0.macOS ARM64: 9 lint checks; 98/98 uncached Bazel test targets; development wheel; Python 3.12/3.13/3.14 release wheels, isolated installation,
uv pip check, and complete installed-wheelmake release-testfor each version; 42 successful stages and a clean final checkout.envpool-1.2.6-cp312-cp312-macosx_11_0_arm64.whlenvpool-1.2.6-cp313-cp313-macosx_11_0_arm64.whlenvpool-1.2.6-cp314-cp314-macosx_11_0_arm64.whlLinux x86_64 devbox: 10 lint checks including full-target clang-tidy; 98/98 uncached Bazel coverage targets; LCOV summary, badge, and HTML coverage site; development wheel; Python 3.12/3.13/3.14 release wheels, isolated installation,
uv pip check, and complete installed-wheelmake release-test; Qt-absent Procgen checks against all three wheels.envpool-1.2.6-cp312-cp312-manylinux_2_39_x86_64.whlenvpool-1.2.6-cp313-cp313-manylinux_2_39_x86_64.whlenvpool-1.2.6-cp314-cp314-manylinux_2_39_x86_64.whlLinux ARM64 Ubuntu: 98/98 uncached Bazel test targets on a real aarch64 Ubuntu VM, using the workflow's Clang 20 compiler and software EGL setup. Official MuJoCo oracle compiler matching preserves strict dynamics alignment across DMC manipulator, all 28 robotics/Egg variants, and MyoSuite; G1 rough terrain alone uses the scoped 1.01 render threshold.
Official x86_64 Linux release image: actual
quay.io/pypa/manylinux_2_28_x86_64(AlmaLinux 8.10, glibc 2.28, official GCC toolchain); Python 3.12 wheel build and installation,pip check, full installed-wheelmake release-test, Qt package removal, andmake PROCGEN_QT_RUNTIME=absent release-test-procgen-qtall pass.envpool-1.2.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whlOfficial aarch64 Linux release image: actual
quay.io/pypa/manylinux_2_28_aarch64(AlmaLinux 8.10, glibc 2.28, official GCC toolchain); Python 3.12 wheel build and installation,pip check, full installed-wheelmake release-test, Qt package removal, andmake PROCGEN_QT_RUNTIME=absent release-test-procgen-qtall pass.envpool-1.2.6-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whlWindows x86_64 hardware: repository cloned directly from public
https://github.com/sail-sg/envpool.git; 98/98 uncached Bazel test targets; Python 3.12/3.13/3.14 release wheels, installation,pip check, and complete installed-wheelmake release-testfor each version; all wheels contain 17 native modules; the machine's originalLongPathsEnabled=0policy is preserved and task-owned drive mappings were cleaned.envpool-1.2.6-cp312-cp312-win_amd64.whlenvpool-1.2.6-cp313-cp313-win_amd64.whlenvpool-1.2.6-cp314-cp314-win_amd64.whlCoverage Summary
Hosted CI limitation
GitHub Actions cannot currently start hosted jobs because the repository account is billing-locked: "The job was not started because your account is locked due to a billing issue." The complete lint, test, coverage, and release workflows above were therefore reproduced against the final commit on real macOS ARM64, real Windows x86_64, Linux x86_64, Linux ARM64, and both official manylinux_2_28 release images. Restoring the account is still required for GitHub itself to display passing hosted checks.
New Environment Checklist
Not applicable: this PR upgrades Bazel and its build dependency model without adding an environment family.