Make config_feature_flag's default_value optional.

With this change, if the default_value is not set, but the flag
has been given a value by a configuration transition, that value
is used and no error is produced.

If the default_value is not set and the flag has not been given
a value by a configuration transition, the rule produces an
error (as it did before, but now the error is different).

config_feature_flags with default_values behave as they did before.
(use the default value if no configured value is set, otherwise use
the configured value)

Also transition the Optional used in feature flags from Guava to
Java 8.

RELNOTES: config_feature_flag's default_value is optional. It is
only an error to have a config_feature_flag with no default_value
if that config_feature_flag has not been set in the configuration
it is being evaluated in.
PiperOrigin-RevId: 178418907
6 files changed
tree: 6fde1faec4d91466ad4542e21a04bf55dac02900
  1. examples/
  2. scripts/
  3. site/
  4. src/
  5. third_party/
  6. tools/
  7. .gitattributes
  8. .gitignore
  9. AUTHORS
  10. BUILD
  11. CHANGELOG.md
  12. combine_distfiles.py
  13. combine_distfiles_to_tar.sh
  14. compile.sh
  15. CONTRIBUTING.md
  16. CONTRIBUTORS
  17. ISSUE_TEMPLATE.md
  18. LICENSE
  19. README.md
  20. WORKSPACE
README.md

Bazel

{Fast, Correct} - Choose two

Build and test software of any size, quickly and reliably.

  • Speed up your builds and tests: Bazel only rebuilds 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.

Getting Started

Documentation

Contributing to Bazel

See CONTRIBUTING.md

Build Status

Bazel is released in ‘Beta’. See the product roadmap to learn about the path toward a stable 1.0 release.