Hacker News new | ask | show | jobs
by ajconway 1369 days ago
Bazel doesn't have any user-facing java dependency.

> what real extra benefit Bazel brings in here

Builds are hermetic by default, so unless the developer chooses to escape the sandbox, everything is guaranteed to build on other machines with no additional setup.

(Also, I genuinely hate when I have to manually install build dependencies system-wide and pray that there will not be any conflicts. Having everything pinned to specific sha256 or git hashes by design is a breath of fresh air)

1 comments

I used a M1 Mac to try to build tensorflow and tensorflow-text and it is very untrue that everything is guaranteed to build on other machines with no additional setup.

The parenthesized comment is funnier to me because I had to download a specific bazel version to build.

That is true, Bazel itself is still evolving, and there have been breaking changes between versions. Sometimes the required version number is placed in a .bazelversion file, which makes Bazelisk your top-level dependency.

I'd expect Tensorflow to have some non-hermetic build actions, but if choosing a specific Bazel version was the only thing that was required to build it, that's awesome!

It was definitely not the only thing that was required to build, but that may be as much Apple's fault as bazel's.
> The parenthesized comment is funnier to me because I had to download a specific bazel version to build.

If you use bazelisk to provide your `bazel` command, it'll download the appropriate Bazel version for the repo you're trying to build.

https://github.com/bazelbuild/bazelisk

So, more tools on top of your tools. And this couldn't be a part of bazel proper for the dame reason MS built a separate tool to discover paths for their tools: overengineering