Top 13 Starlark bazel-rule Projects
-
I've seen rules_docker is looking for maintainers here ; Does this mean it doesn't use it that much internally? If so, how do they go about using other services e.g docker-compose for running external services e.g database?
-
Project mention: Turborepo 1.2: High-performance build system for monorepos | news.ycombinator.com | 2022-04-08
> Is Bazel designed in a way that make it impossible to do JS monorepos well?
Not impossible, but you really need to go all in with it and follow its conventions and practices. See this for the main docs: https://github.com/bazelbuild/rules_nodejs
One thing in particular that doesn't work well in the bazel world is doing your own stuff outside its BUILD.bazel files. If you're used to just npm install and jam some code in your package.json scripts... that doesn't usually work in the bazel world. If you have a lot of logic or tools in your build you'll likely need to go all in and make bazel starlark rules or macros that recreate that logic. Nothing is impossible, but expect to spend time getting up to speed and getting things working the bazel way.
-
Scout APM
Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.
-
Other than that, the performance of both for builds should be determined exactly by the organization of code into separate crates and the rustc invocations. Bazel generally encourages smaller crates, but that's very subtle. There is at least 1 case I can think of where rustc is overfit to cargo, in a way that is not easily replicable by bazel, which is the metadata/rlib pipelining https://github.com/bazelbuild/rules_rust/issues/228
-
I have personally run converted build systems to Bazel, and use it for personal projects as well.
Bazel 1.0 was released in October 2019. If you were using it "a few years ago", I'm guessing you were using a pre-1.0 version. There's not some cutoff where Bazel magically got easy to use, and I still wouldn't describe it as "easy", but the problem it solves is hard to solve well, and the community support for Bazel has gotten a lot better over the past years.
https://github.com/bazelbuild/rules_python
The difficulty and complexity of using Bazel is highly variable. I've seen some projects where using Bazel is just super simple and easy, and some projects where using Bazel required a massive effort (custom toolchains and the like).
-
-
-
Project mention: Updated version of Google's Haskell 101/102 training is now available on GitHub | reddit.com/r/haskell | 2021-12-21
We use Tweag's rules_bazel. Perhaps you should be in touch with them instead of the original Bazel team (:
-
SonarLint
Deliver Cleaner and Safer Code - Right in Your IDE of Choice!. SonarLint is a free and open source IDE extension that identifies and catches bugs and vulnerabilities as you code, directly in the IDE. Install from your favorite IDE marketplace today.
-
That seemed shocking, but it doesn’t appear to be true? https://github.com/bazelbuild/rules_swift/issues/536#issueco...
-
I'm a fan of Tweag's rules_nixpkgs for bazel: https://github.com/tweag/rules_nixpkgs
-
Project mention: “You don't need this overengineered goo for your project.” | news.ycombinator.com | 2021-09-07
> “You don't need this overengineered goo for your project.”
k8s is probably a great excuse to think how to compose your infrastructure and software in a declarative way - I'm still fascinated by https://demo.kubevious.io/ - It just made "click" when playing with that demo - it's not goo it's a different operating system and a different mindset.
You can do 80% with docker-compose / swarm for small projects but:
If you read HN you are in a huge bubble - gruelsome patched tomcat7 apps on Java8 with 20 properties/ini/xml config files are still popular - hosting things in docker or doing ci/cd is still not mainstream. At least in Europe in the public sector stuff where I was involved.
Sure you can mock it - but the declarative approach is powerful - if you can pull it off to have it across all your infrastructure and code with ci/cd and tests you are fast.
This alone correctly implemented https://github.com/adobe/rules_gitops solves so many problems I can't count the useless meetings we had over any of these bullet points, bazel alone would have solved most major pain points in that project. Just by beeing explizit and declarative.
Don't believe the hype but it's a powerful weapon.
-
bazel-linting-system
🌿💚 Experimental system for registering, configuring, and invoking source-code linters in Bazel.
-
-
Starlark bazel-rules related posts
- nix-shell, but make it lovely
- Does google use rules_docker internally?
- How to Use C++20 Modules with Bazel
- Advice on build scripts and tooling
- Bazel 5.0 LTS with the new external dependency subsystem "Bzlmod"
- Updated version of Google's Haskell 101/102 training is now available on GitHub
- Help me figure out writing a webapp in Go and JavaScript, with Bazel
Index
What are some of the best open-source bazel-rule projects in Starlark? This list will help you:
Project | Stars | |
---|---|---|
1 | rules_docker | 891 |
2 | rules_nodejs | 622 |
3 | rules_rust | 369 |
4 | rules_python | 338 |
5 | rules_scala | 308 |
6 | bazel-skylib | 232 |
7 | bazel-coverage-report-renderer | 227 |
8 | rules_swift | 215 |
9 | rules_nixpkgs | 140 |
10 | rules_gitops | 97 |
11 | bazel-linting-system | 91 |
12 | rules_scala | 62 |
13 | rules_cc_module | 26 |
Are you hiring? Post a new remote job listing for free.