New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove Bazel #99561
Remove Bazel #99561
Conversation
/triage accepted |
/approve as well, thanks for dilligence in closing this out |
Hey @BenTheElder, Thanks for your hard work on this. I have one question, SIG Instrumentation depended on bazel for forbidding imports of particular libraries (visible_to), thus ensuring that contributors will use Kubernetes alternatives (context #89267). What is the current replacement for this bazel feature? |
Good question, there's not a direct analog, but we have some related alternatives available:
For this particular case of "restrict imports of a vendored library" internal does not apply but import boss should work. I can help sort this out. EDIT: import boss is pretty close to a direct equivilant, for the purposes of go package imports specifically. |
... And apologies for the lapse in coverage in the meantime. Clearly an oversight on my part. I'll look at equivilant rules shortly. Import-Boss is what we typically use to restrict package visibility within the project, but typically for packages within our own sources. It may need some adapation to cover vendor / external packages. |
#99876 to track visibility rules -> |
|
Hi all: please direct general discussion to the KEP if possible for better visibility. This PR is only one peice of implementing it. kubernetes/enhancements#2420 (comment) The KEP answers your questions I think. Bazel is not in use in this repo from 1.21 / this PR forward. Bazel was not used for releases, only CI and optionally for development. This is discussed in more detail in the KEP. |
What type of PR is this?
/kind cleanup
What this PR does / why we need it:
Removes the bazel build system, reducing Kubernetes to maintaining one build system for this repo per: kubernetes/enhancements#2420
Which issue(s) this PR fixes:
Fixes #88553
Special notes for your reviewer:
The third commit "
hack/update-bazel.sh
" is fully automated, and is an enourmous diff. I recommend reviewing this PR commit by commit, skipping that one. The first commit implements the automation to produce this commit.Explicitly holding this PR, we need to send out a widespread announcement including additional notice of this change and instructions for how contributors should handle this. We need to wait before merging this (will send that tomorrow) given the scope of the change.
This PR also will not merge due to
pull-kubernetes-bazel-build
andpull-kubernetes-bazel-test
which still running on all PRs asRequired
for now, which will fail./hold
All other known technical blockers for this change are resolved. See kubernetes/enhancements#2420 for more details.
Does this PR introduce a user-facing change?
Technically this is not user facing, as our releases have always shipped with make, and is not under our deprecation policies as an API change would be. However those building from source should be aware of this change.
Interested downstream users can still build with bazel themselves if they wish, but we will not be carrying the patch load for this upstream going forward, instead focusing on the single system we use to ship releases.
Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:
/sig testing
/sig release
(this is going to tag all the SIGs anyhow, since it touches nearly all directories, we should probably remove those?)