3 ms·
(I work on Bazel) Starlark (Skylark) is used for a huge number of rules. The community has written and used in production lots of rules, such as Closure, Docke
by laurentlb 8y ago
(I work on Bazel)
Starlark (Skylark) is used for a huge number of rules. The community has written and used in production lots of rules, such as Closure, Docker, Go, Haskell, Kotlin, Kubernetes, NodeJS, Rust, Scala, Swift, Typescript.
We stopped creating native rules many years ago and we are actively migrating them to Starlark. I'd replace the phrase "real rules" with "legacy rules".
If you hit critical limitations when writing rules, feel free to ask on the mailing-list (or on a GitHub issue).
- paulddraper 8y agoThanks for your work Laurent! > The community has written and used in production lots of rules I know. I've written them. [1] Github pauldraper > If you hit critical limitations when writing rules, feel free to ask on the mailing-list I have, and you've responded. [2] And a year later it is still is unclear to me whether Starlark is going to get tree artifact actions, or dependency discovery (pruning), which C++ uses to great effect. I proposed a solution to both problems. [3] Oscar from Stripe presented a proposal at the first Bazel Conf. I've concluded that either (1) I'm using the wrong channels or (2) Bazel isn't that aware/interested in Starlark parity. TBH, the number of responses that are ignorant of the dependency discovery disparity alone shows me how unaware Bazel is of the Skylark-only deficiencies. Great project (seriously), but when your bread-and-butter compiled languages* (Java, C++, Objective C) aren't using the same system as everyone else, it's only natural. Again, great project. [1] https://github.com/higherkindness/rules_scala https://github.com/higherkindness/rules_scala [2] https://groups.google.com/forum/#!msg/bazel-discuss/8eAMN3Whp2Q/sgWpqz7wCAAJ https://groups.google.com/forum/#!msg/bazel-discuss/8eAMN3Wh... [3] https://docs.google.com/document/d/16iogGwUlISoN2WLha2TAaUdpYCjRiVQ2sRQ7--INxkg https://docs.google.com/document/d/16iogGwUlISoN2WLha2TAaUdp... * Go is in Starlark but has essentially required the complex Gazelle build tool to be layered on top of Bazel.
- laurentlb 8y agoIt's mostly a prioritization issue (we can't work on everything we'd like to have). But there's a very recent discussion that seems related: https://groups.google.com/d/msg/bazel-dev/oFRdGdrm8DM/Gr0Yz39nHQAJ https://groups.google.com/d/msg/bazel-dev/oFRdGdrm8DM/Gr0Yz3...
- paulddraper 8y agoOooh...thanks