fix(workers): pin Bazel version for the four worker subtrees#433
Conversation
The release image is built from an isolated subtree snapshot, where the subtree's own MODULE.bazel is the workspace root, so bazelisk resolves .bazelversion from the subtree and never sees the umbrella's root pin. The four worker subtrees ship no .bazelversion, so their release builds run whatever bazelisk considers latest: the worker-llm-credentials v1.0.6 release build downloaded Bazel 9.2.0 while the repo pins 9.1.1 and the other 15 releasable subtrees pin their own version. That makes those builds non-reproducible and lets an upstream Bazel release break them with no change in this repo. Pin all four to 9.1.1, matching the root .bazelversion. Same root cause as the missing subtree .bazelrc fixed in #432 (the snapshot does not carry umbrella root files); that PR covers .bazelrc for worker-llm-credentials only, so .bazelversion is still needed for all four. Verified: worker-utils builds clean under USE_BAZEL_VERSION=9.1.1 (bazel build //..., 2115 actions). Co-authored-by: Balaji Ganesan <bganesan@nvidia.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (4)
📝 WalkthroughWalkthroughThe pull request adds or updates ChangesBazel version pinning
Estimated code review effort: 1 (Trivial) | ~2 minutes Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
🎉 This PR is included in version nvcf-worker-init-v1.0.10 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
|
🎉 This PR is included in version nvcf-worker-utils-v1.0.8 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
|
🎉 This PR is included in version nvcf-worker-llm-credentials-v1.0.8 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
|
🎉 This PR is included in version nvcf-worker-task-v1.0.8 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
Why
Follow-up to #432, same root cause, different file.
The release image is built from an isolated subtree snapshot. In that snapshot the subtree's own
MODULE.bazelis the Bazel workspace root, so bazelisk resolves.bazelversionfrom the subtree and never sees the umbrella's root pin. Four subtrees ship no.bazelversion:.bazelversionSo their release builds run whatever bazelisk considers latest. The worker-llm-credentials v1.0.6 release build (nvcf-internal pipeline 59468597) downloaded Bazel 9.2.0, while this repo pins 9.1.1:
That is non-reproducible by construction, and it means an upstream Bazel release can break these release builds with no change in this repo. All four workers release actively (worker-init v1.0.9, worker-task v1.0.7, worker-utils v1.0.7, worker-llm-credentials v1.0.6), so all four are exposed.
#432 fixes the missing
.bazelrcfor worker-llm-credentials, but adds no.bazelversion, so this is still needed for all four.What changed
Add
.bazelversionpinned to9.1.1(matching the root.bazelversion) to worker-init, worker-llm-credentials, worker-task, and worker-utils. After this, every subtree with aMODULE.bazelcarries its own pin.Customer Release Notes
Not customer visible.
Testing
USE_BAZEL_VERSION=9.1.1 bazel build //...insrc/compute-plane-services/worker-utilscompletes successfully (2115 actions, exit 0), confirming these subtrees build on the pinned version rather than only on latest.The public mirror already carries sibling
.bazelrcand.bazelversionfiles, so no OSS allowlist change is needed for the release snapshot to pick these up.Notes
Separate pre-existing drift, not addressed here: the 15 subtrees that do pin are on
8.6.0while the root pins9.1.1. Worth converging, but it is a behavior change for those services and belongs in its own change.References
Follows #432. nvcf-internal pipeline 59468597.
Related Merge Requests/Pull Requests
#432 (adds the missing subtree
.bazelrcfor worker-llm-credentials).Dependencies
None.
Summary by CodeRabbit