Add units to --remote_timeout

Implements #7224.

Maintains backwards compatibility by allowing unit-less values, defaulting to seconds.

Open issues are these Int casts [here](https://github.com/bazelbuild/bazel/compare/master...bnczk:remote-timeout-units?expand=1#diff-2f15328ea07078b2109edd1d4e288c82R111) and [here](https://github.com/bazelbuild/bazel/compare/master...bnczk:remote-timeout-units?expand=1#diff-2f15328ea07078b2109edd1d4e288c82R123).
As the netty channel in `HttpCacheClient` only accepts ints as millisecond timeout, this cast is necessary as `Duration` returns a long.
We could either
- don't use `Duration`, only `int` directly (still exposes an overflow as the current implementation of `HttpCacheClient` multiplies the seconds by 1000 to get milliseconds)
- let the converter check if the `long` to `int` conversion throws an exception and throw an explicit `OptionsParsingException`
- allow it to fail during the cast

Closes #11713.

PiperOrigin-RevId: 324584686
8 files changed
tree: a21801e8a7a5daa9362638b30c5bc5fce376f4ff
  1. .bazelci/
  2. examples/
  3. scripts/
  4. site/
  5. src/
  6. third_party/
  7. tools/
  8. .bazelrc
  9. .gitattributes
  10. .gitignore
  11. AUTHORS
  12. BUILD
  13. CHANGELOG.md
  14. CODEOWNERS
  15. combine_distfiles.py
  16. combine_distfiles_to_tar.sh
  17. compile.sh
  18. CONTRIBUTING.md
  19. CONTRIBUTORS
  20. distdir.bzl
  21. ISSUE_TEMPLATE.md
  22. LICENSE
  23. README.md
  24. 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 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.

Getting Started

Documentation

Contributing to Bazel

See CONTRIBUTING.md

Build status