Google is continuing to invest in the open-source Bazel build system, to make it easier for developers to build code for deployment.
At the recent BazelCon virtual event, Jeff Cox (pictured), engineering director at Google, outlined the past, present and future direction for Bazel, which has its roots in Google's Blaze build system that is only available for internal use within Google. Google first decided to open source Bazel in 2014, with an initial code release in 2015, Cox said. The most recent release came out on Nov. 10 with the general availability of Bazel 4.0.
Google uses an approach commonly referred to as a monorepo, which is a single code repository for all of its code, according to Cox. Google also builds all of its applications from source code and does not use checked-in binary code.
"So rather than having long-lived feature branches, all developers are continuously vetting their code and checking it in," he said. "In this environment, everybody should be able to edit, build and test just about everything, and the result in our view is improved productivity across the business."
Google in recent years has been increasingly open sourcing code projects such as TensorFlow, which is a popular machine learning technology. However, those open-source projects cannot use Blaze, since it's for internal use at Google only. So there was a need to have an open-source build system.
"Externalizing Blaze as Bazel allows our build stack to be used by open-source projects and by third-party contributors," Cox said. "Another important point is by externalizing Blaze as Bazel, we're validating in the market the value of our tool."
Cox noted that inside Google, developers don't really have a choice for a build tool and they generally have to use Blaze. With the Bazel build system and its external audience, developers will choose to use or not use the tool if it fits requirements. Bazel is not a fork of Blaze; rather, the two build systems continue to co-evolve and share the large majority of their implementation, he said.
"Today, Bazel is used by a growing number of open-source projects by enterprises that really depend on Bazel for the success of their business, just as Google does," Cox said.
Bazel in 2020 and Beyond
The core vision of Bazel is to enable any software developer to efficiently build, test and package any project of any size or complexity with tooling that's easy to adopt and extend, according to Cox. To that end, over the course of 2020, the Bazel build system has benefited from improved performance as well as more openness, though Cox admitted there is still work to do.
"As the project has grown and more and more users use it, we've accumulated a backlog of pull requests and GitHub issues," Cox said. "This is something that we really want to do a better job in addressing next year. Similarly, we have to acknowledge that our roadmap has not been as up-to-date and real as we would have liked, so it has been harder for our external community to know where Bazel is headed."