3 ms·
We wanted something like Blaze (Google's system); at the time we were using Buck which didn't satisfy us (e.g. only one output per genrule, no directories; and
by archangel_one 6y ago
We wanted something like Blaze (Google's system); at the time we were using Buck which didn't satisfy us (e.g. only one output per genrule, no directories; and it was more or less impossible to write first-class support for a new language without modifying the core system). Subsequently Bazel got released but we still find that a bit lacking in some areas; e.g. the CLI, the JVM reliance and some of Starlark (e.g. it maintains Python 2 syntax compatibility so can't have type annotations).
We'd also tried Gradle previously but that was pretty awful for anything non-Java which made it a non-starter.
To be clear, I'm one of the original implementors, although I imagine that was obvious already...
- bertr4nd 6y agoI’m not sure if the feature was added after you started building Please but Buck does support multiple outputs from a genrule now. It’s kind of hacky though; you write a genrule that produces a directory containing said multiple outputs, and then you can write rules to extract the subcomponents. (I don’t know why I feel compelled to point this out. I worked on Buck for about a year, several years back. )
- laurentlb 6y agofyi, Starlark dropped compatibility with Python 2 two years ago (https://github.com/bazelbuild/starlark/issues/27 https://github.com/bazelbuild/starlark/issues/27) People interested in type annotations can check this discussion: https://github.com/bazelbuild/starlark/issues/106 https://github.com/bazelbuild/starlark/issues/106 For most purposes, Bazel dependency on Java is an implementation detail (users don't need to install a JVM), although you might notice it if you need to bootstrap Bazel. (I co-designed Starlark and I used to work on Bazel)
- karmakaze 6y agoAt first this wasn't a singular clear answer I was hoping for, but the many points being made here make it clear that it's a complex area and there's room for another advanced/high-perf build system to cover a broader range of usage.