Brussels / 3 & 4 February 2024


Packaging Bazel and Bazel-based packages

Bazel is a build system to rule them all. It tries to enforce purity on it's own, and has not been built around the idea that it could be used inside another build system, like... Nix! This makes it really difficult to package, and even more difficult to make it cooperate with Nix to build other packages.

This talk will build upon on my experience packaging and testing Bazel 7.0.0 for nixpkgs. Going through the most interesting fixes required to make it work, we will also discuss hermeticity in both build systems, dependencies pinning with lockfiles, sandboxing, caching, remote execution and then some more.

Packaging Bazel for Nix has been an intense experience, and you will get all the nice bits without the hard work !


Guillaume Maudoux