Roll back https://github.com/bazelbuild/bazel/pull/12877. *** Reason for rollback *** Too many existing config_settings already set visibility. That was never enforced before. But now they'll break if any deps don't honor that visibility. This needs better depot cleanup. I'll roll forward again behind a feature flag. *** Original change description *** Enforce visibility on select() keys Example: ``` my_rule( name = "buildme", deps = select({ "//other/package:some_config": [":mydeps"] })) ``` Today, `//other/package:some_config` is exempt from visibility checking, even though it's technically a target dep of `buildme`. While this dep is "special" vs. other deps in various ways, there's no obvious reason why it needs to be special in this way. It adds an unclear corner case... *** PiperOrigin-RevId: 354584882
{Fast, Correct} - Choose two
Build and test software of any size, quickly and reliably.
Speed up your builds and tests: Bazel rebuilds only what is necessary. With advanced local and distributed caching, optimized dependency analysis and parallel execution, you get fast and incremental builds.
One tool, multiple languages: Build and test Java, C++, Android, iOS, Go, and a wide variety of other language platforms. Bazel runs on Windows, macOS, and Linux.
Scalable: Bazel helps you scale your organization, codebase, and continuous integration solution. It handles codebases of any size, in multiple repositories or a huge monorepo.
Extensible to your needs: Easily add support for new languages and platforms with Bazel's familiar extension language. Share and re-use language rules written by the growing Bazel community.
Follow our tutorials:
See CONTRIBUTING.md