Live data from Hacker News

Bazel – Correct, reproducible, fast builds for everyone

bazel.io

71–80 of 185 posts

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

#71
post #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, s…

There's a typo in your link. Should be:

https://github.com/google/bazel/tree/master/examples/go

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

#72
post #59

What is this lameness? https://github.com/google/bazel/tree/master/third_party - why not use gradle repos to download jars with known hashes? Sticking all those jars in the git repo is just... well, I expected better from Google.

If you have a centralized version control system such as Clearcase or SVN, it's not such a grief to have binaries in VCS, whereas its kind of a problem for git & co.

Google has a legendarily awesome centralized version control system.

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

#73
post #69

> Why doesn't Google use …? Make, Ninja: These tools give very exact control over what commands get invoked to build files, but it's up to the user to write rules that are correct. > Users interact with Bazel on a higher level. For example, it has built-in rules for "Java test", "C++ binary", and notions such as "target platform" and "host platform". The rules have been battle tested to be foolproof. But does it give…

http://bazel.io/docs/skylark/concepts.html

You can [at least internally] define custom rules to handle pretty much anything, in almost-but-not-quite-python.

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

#74
post #27

Earlier quoted context omitted.

I didn't downvote him but it sounds like "he's driving angry". He does work for that "evil" company in Redmond. :-). Maybe he can help make F# a great cross-platform language and increase the goodwill? Microsoft did an incredible job with F# but it really only runs well on Windows.

But they're already working on doing that.

I didn't say they weren't. I imagine the project needs lots of help. Is there an ETA? Will the ports be kept in sync with the Windows versions so we don't need to wait years for updates? It's a lot of work.

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

#75
post #62
post #47

Is Google departing from just throwing white papers over the wall and let community figure out the implementation details? blaze white paper was dropped a while ago and there are already two clones in Pants and Buck at Twitter and FB. It would be interesting to see how far off clones are from original implementation.

Do you have a link to that white paper? A quick search on their research site doesn't really yield any results.

I'm a developer on Bazel, and AFAIK there is no white paper. We definitely don't want to "throw it over the wall," we're going to try to push more and more development into the open over time.

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

#76
post #74

Earlier quoted context omitted.

But they're already working on doing that.

I didn't say they weren't. I imagine the project needs lots of help. Is there an ETA? Will the ports be kept in sync with the Windows versions so we don't need to wait years for updates? It's a lot of work.

> Is there an ETA?

I think their goal was a year for everything under .Net to get ported but I don't know off hand. You can already use it via Mono if you wanted to play with it today.

> Will the ports be kept in sync with the Windows versions so we don't need to wait years for updates?

It's all being opened sourced. Every week Microsoft open sources more of their .Net platform and language tools. It will be compilable on all platforms. So yes.

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

#77
post #60
post #37

Earlier quoted context omitted.

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:/…

Thanks for the tips. I'm super-hyped that blaze was open sourced, it is one of the best systems I've ever had the pleasure to work with. A couple more questions :) * Any pointers for adding Scala (sbt?) support? I'd start here: http://bazel.io/docs/skylark/rules.html . * Suppose I develop using multiple repos and http_archive. I'd like to make changes both to a library and to a project that depends on it simultaneous…

Scala support: yes, add using Skylark. Definitely let us know if you run into any rough edges, Skylark is a work-in-progress.

For multiple repos: there's no command line flag, but you could change the WORKSPACE file to use http://bazel.io/docs/build-encyclopedia.html#local_repositor.... Unfortunately, this may be of limited use to you. At the moment it's optimized/bugged to assumed that your local repos don't change, so it won't rebuild them (this is great for things like the JDK and gcc, but not so much for actual in-development repos). Feel free to file feature requests for any functionality you need, I'll be working on this a lot over the next couple months.

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

#78
post #27
post #21

Earlier quoted context omitted.

Not really sure why this is getting downvoted - it's kind of an important detail when choosing a build system if you have to do multiplatform deployment.

I didn't downvote him but it sounds like "he's driving angry". He does work for that "evil" company in Redmond. :-). Maybe he can help make F# a great cross-platform language and increase the goodwill? Microsoft did an incredible job with F# but it really only runs well on Windows.

What particular problems on non-Windows do you have with F#? I've been running F# applications in telecom, in production, on Mono, for several years.

F# doesn't really seem to be the factor there at all, it's just general .NET support. In fact, F# can do a bit better than C#, as F# actually includes a static linker.

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

#79
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.

Using a VM would only work if the individual build tools themselves run under Unix. That said, no open source project owes anybody anything.

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

#80
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…

Standard caveat: I don't speak for my employer.

Using Bazel (aka. Blaze) every day is one of the things that has made me dread ever leaving Google. Fast, reproducible builds are amazing. Once you have used this tool, it is very hard to go back. Personally, I'm thrilled that it has been open sourced.

Post reply on HN