Skip to content

Migration Resources

Challenges

Migrating to Bazel, remote caching, and/or remote execution does present a few challenges:

  • There will be a learning curve as people migrate to a new build language or change their code to make it compatible with remote caching/execution.
  • The technical migration enforces hermeticity and reproducibility of builds. This also requires a cultural migration that values these properties.
  • If the build works well, no one knows. If it breaks, everyone is mad. Some people will be mad until you've resolved any breakages associated with the migration. This also includes updating continuous integration worker provisioning (Bazel may increase memory usage), documentation, and training.

Best Practices

Here are a few key practices that can ease your Bazel migration:

Language and build tool-specific resources

Here are some presentations and articles describing successful migrations for specific languages and their associated build tools. You may wish to check the Bazel User Guide: Migrating to Bazel page as well.

Java: Gradle to Bazel

Java: Maven to Bazel

C++: CMake to Bazel