Live data from Hacker News

Bazel Fawlty

danmux.com

51–52 of 52 posts

Re: Bazel Fawlty

#51
post #50
post #43

Earlier quoted context omitted.

> Have you tried Nix? It's like Bazel, but without incremental builds. Well, depending on how granular you expect your incremental builds to be, it can indeed have "incremental builds". Any build step that produces a derivation that ends up in the nix store will be lazily evaluated and not regenerated if its input parameters haven't changed. You could go down the route of outputting each compiled object file as a der…

> You could go down the route of outputting each compiled object file as a derivation... You could, but I believe you would find that Nix becomes pretty inefficient in that scenario. There is a surprising amount of overhead involved in setup/teardown of network namespaces and the other various sandbox features, and that cost is incurred for each individual derivation. It's a reasonable tradeoff for Nix when used as a…

Yes it's all interesting stuff.

But, one way of looking at it, that's just ("just") an implementation issue. No ideas fundamental to Nix would have to be changed to find a faster way of implementing derivation isolation, hopefully any solution to problems like this could be transparent to people who had written build systems in Nix and not require significant rewrites...?

Even so, incremental builds wouldn't be an all-or-nothing scenario. A project could be divided up into a number of separately buildable partitions, each built as a separate derivation. Deciding how granular to make your incremental..ism would just be a tradeoff of overhead vs. amount of rebuilding saved.

Re: Bazel Fawlty

#52

Earlier quoted context omitted.

I can speak for Java only. Most of my Java project, which are using Spring Boot and lots of libraries, gradle (previous is maven) works just fine. If there's any build issue, assume that it's not compilation issue, I just delete the `build/` and `.gradle` folders, then `./gradlew clean build` again. I've took a hard look as bazel, for what they claim to be fast, correct, but the complicated setup and document just pu…

Your comment makes it sound like you don't run your build process in a continuous integration environment.

I do. In fact, I'm working on several Spring Boot services that has CI/CD configured on Gitlab. The workflow from push, build, test, release docker image and deploy are all automatic on Gitlab CI.
Post reply on HN