In this post I will introduce the Scalable Build Systems team at Tweag and describe our goals and our work.
We believe that correct, efficient, and reliable builds are critical for developers to work and collaborate effectively. And that the size and complexity of a project should not be bounded by its build system, but by what is best to achieve the goal of the project.
Whether you have a large codebase or a small one, whether your project is polyglot or monolingual, and whether you work in an enterprise organization or on an open source project - the build system you have available should provide correct, efficient, reliable builds.
Open Source
We believe that the open source build system Bazel takes a leap in the
right direction and establishes important values like correctness,
reproducibility, and scalability in the industry. Therefore, we invested into
the Bazel ecosystem, by contributing to Bazel extensions and to Bazel itself,
as well as into our own Bazel extensions rules_haskell
, to
build Haskell code with Bazel, and rules_sh
, to import standard
shell tools into Bazel.
To achieve reproducibility and correctness we must not stop at a project’s
boundaries, but must manage system dependencies and the developer
environment as well. Therefore, we developed rules_nixpkgs
to make
implicit dependencies explicit by providing them through
Nix.
Developer experience matters and the build system and tooling around it should help developers work more productively. Therefore, we work on developer tooling, such as automation to achieve fine-grained incremental builds with Haskell.
Our goal is to help the open source ecosystem lead the state of the art of build systems and make the necessary tools and infrastructure readily available and accessible for anyone from open source to enterprise projects.
Community
Sharing knowledge is necessary for the industry to build software effectively. You can read about our work on our blog, you can meet us in the Bazel community channels, for example in the mailing list or on Slack, and you can meet us at conferences related to Bazel.
We co-organized Bazel eXchange 2022 as a
partner of SkillsMatter. And we contributed to the program
with talks by Alexei Drake about Building Rust with
Nix+Bazel and Guillaume Maudoux about Remote execution
with rules_nixpkgs
, and the end of day panels. Don’t miss the other talks either, since the conference had an
excellent program!
We are happy to say that this first instance of Bazel eXchange was a success! We had 115 participants with a fantastic rate of 80% of sign-ups attending! The event was held online, but nonetheless, participants were very engaged, contributed great questions, and got in touch on the chat and in the networking session. We hope that the next instance of the conference can be held in person.
Continuing on our commitment to the community we are thrilled to announce that we are starting a build systems newsletter. Sign up and we will keep you up-to-date on developments in and around the Bazel ecosystem, as well as upcoming events.
Services
Do you share our vision on build systems and developer productivity? Our team has experienced, versatile engineers with a broad range of backgrounds and we are Google’s first Bazel Community Expert. We’d love to help you build your software correctly, efficiently, and reliably, and make the required tools available to everyone.
Get in touch, we can help you with the following and more:
- Assessment We assess your project, if and how it can benefit from a scalable build system, what improvements you can expect, what resources may be required, and what challenges may lie on the way.
- Migration We can lead your build system migration or help you along the way. We’ll embed our engineers in your team, collaborating with them directly on your code and sharing all relevant knowledge.
- Tuning We can tune your build system to improve its performance and boost your team’s productivity.
- Upstream We can improve the open source tools you use and contribute the changes upstream, to make them available for the industry – your potential customers and employees.
- Training We can show your team how to work productively with your new build system, and how to get the most out of these tools.
About the author
Andreas is a physicist turned software engineer. He leads the Bazel team, and maintains Tweag's open source Bazel rule sets and the capability package. He is passionate about functional programming, and hermetic and reproducible builds. He lives in Zurich and is active in the local Haskell community.
If you enjoyed this article, you might be interested in joining the Tweag team.