Migrating Twitter's monorepo from Pants to Bazel
summary
Twitter migrates its monorepo Source (20 million hand‑crafted lines and ~10× generated code, mostly Scala, plus Java, Python, NodeJS, Go and C/C++) from Pants to Bazel. Migration uses a translation layer that maps each Pants target to Bazel macros and loads them in Bazel prelude so existing build files run unchanged; a pilot proves some teams use Bazel daily and are happy. Remaining hard work centers on dependency resolution — experimenting with designs to support multiple incompatible versions across ~2,000 engineers.
AI-written summary · about
chapters (7)
- 0:00Monorepo migration intro
- 1:44Why Twitter’s monorepo is large
- 2:47Pants versus Bazel differences
- 5:16Gradual migration strategy
- 8:11Handling model differences
- 10:20Next steps for teams
- 14:53Acknowledgments
related talks
25mInteroperating Bazel and Other Build Systems
43mBazel Migration Patterns
41mThe wait is over. How to successfully migrate to Bazel from Maven or Gradle
22mBazel
45mLiving at HEAD with Bazel
42mMake local development (with Bazel) great again!
23mWhy you need a build system, and why it should be Bazel
23mPolyglot Builds with Bazel
