Live data from Hacker News

Bazel – Correct, reproducible, fast builds for everyone

bazel.io

31–40 of 185 posts

Re: Bazel – Correct, reproducible, fast builds for everyone

#31
post #17

Correct, reproducible, fast builds for everyone not running Windows

s/not running Windows/not running Windows or refusing to install a free VM/

5 or 6 years ago I had to have Windows to run CAD software, but I found it easier to have a virtualbox install w/ Ubuntu in it for software development than trying to write code on Windows. The performance was good enough an the usability was pretty good. I imagine it has only gotten better since then.

Re: Bazel – Correct, reproducible, fast builds for everyone

#32
post #4

Working at Google, Blaze is one of the technologies that amazes me most. Any engineer can build any Google product from source on any machine just by invoking a Blaze command. I may not want to build GMail from source (could take a while) but it's awesome to know that I can. I think this could be hugely useful to very large open source projects (like databases or operating systems) that may be intimidating for contri…

Yes, Blaze and a hojillion computers will give you a spiffy build system. The public now has the former, but not the latter :)

One piece at a time! Also, who is to say that Google's way of orchestrating those hojillion computers is best? Separating the two pieces, as has been done here, makes it possible for others to create different (and maybe better) orchestrations.

Re: Bazel – Correct, reproducible, fast builds for everyone

#33
post #25

Is this the tool that Google uses to build its Golang source? Or is that something else which is not available?

You can build golang from source pretty easily. If I remember right, it's just downloading the tarball and running ./all.bash or something like that.

Re: Bazel – Correct, reproducible, fast builds for everyone

#34
Surprisingly, significant parts of the code is not open source. According to this page, http://bazel.io/docs/governance.html,

   Is Bazel developed fully in the open?

   Unfortunately not. We have a significant amount of code
   that is not open source; in terms of rules, only ~10% of 
   the rules are open source at this point. We did an 
   experiment where we marked all changes that crossed the
   internal and external code bases over the course of a few 
   weeks, only to discover that a lot of our changes still 
   cross both code bases.

Re: Bazel – Correct, reproducible, fast builds for everyone

#35
I had a bit of a read but I didn't find where it explains (code or doc) how it achieves reproducible builds.

It seems like a stricter, huge make-like harness (in fact it reminds me of the mozilla firefox python build system a bit).

It's not bad by any means, but it seems like to me it doesn't "magically" fix the "be reproducible" problem at all (which is what it seem to claim)

Am I missing something?

Re: Bazel – Correct, reproducible, fast builds for everyone

#37
post #23

A couple of questions: * If I have a Maven-based project with heavy reliance on pre-built jars from Maven Central, what's the recipe to port it to Bazel? * Related, if I have multiple github repos, say a couple open source libraries and a couple private repos, what's a good recipe in conjunction to Bazel?

Check out http://bazel.io/docs/build-encyclopedia.html#maven_jar. In the root of your build, specify the jars you want from maven and then add them as dependencies in your BUILD files. The first time you run "bazel build", they'll be downloaded and cached from then on. It's somewhat limited in functionality at the moment, but should work for basic "download and depend on a jar".

For multiple Github repos, use http://bazel.io/docs/build-encyclopedia.html#http_archive or http://bazel.io/docs/build-encyclopedia.html#new_http_archiv... (depending on if it's a Bazel repository or not). Let us know if you have any questions or issues!

Re: Bazel – Correct, reproducible, fast builds for everyone

#38
post #25

Is this the tool that Google uses to build its Golang source? Or is that something else which is not available?

The Golang source code for the server code at google is built with this tool. The rules that accomplish this are rather complex due to their interactions with our C++ libraries, and predates the open source "Go" tool. The experience with the Google internal rules, motivated some of the choices in the "go" tool, I believe.

If you're interested, hanwen wrote a bunch rules with similar semantics as the internal rules, see https://github.com/google/bazel/tree/master/base_workspace/e... .

It would be nice to make these semantics match the external ones better, but it requires us to open up more tooling, so people won't need to write BUILD files.

Re: Bazel – Correct, reproducible, fast builds for everyone

#39

Surprisingly, significant parts of the code is not open source. According to this page, http://bazel.io/docs/governance.html , Is Bazel developed fully in the open? Unfortunately not. We have a significant amount of code that is not open source; in terms of rules, only ~10% of the rules are open source at this point. We did an experiment where we marked all changes that crossed the internal and external code bases ov…

[deleted]

Re: Bazel – Correct, reproducible, fast builds for everyone

#40
post #22
post #4

Working at Google, Blaze is one of the technologies that amazes me most. Any engineer can build any Google product from source on any machine just by invoking a Blaze command. I may not want to build GMail from source (could take a while) but it's awesome to know that I can. I think this could be hugely useful to very large open source projects (like databases or operating systems) that may be intimidating for contri…

I've started at Google 4 months ago, and it's one of the best things to discover. Now open-sourced :)

Though not really open source ;)
Post reply on HN