One for all, all for one: The Journey to Android Monorepo
summary
Migrates 100+ repositories into a single monorepo while preserving git history and blame, using a repo-merge script that snapshots daily and a one-weekend code freeze to flip over; translates Gradle to Buck with Okbuck to keep builds fast and incremental; enforces API stability with a Gradle API-check plugin and coordinates merges with a speculative submit queue that runs tests on merged states; post-migration repo has ~75k files, ~45k commits, ~350 MB and ~680 Gradle modules.
AI-written summary · about
chapters (11)
- 0:00Introduction and context
- 1:31Multi-repo challenges at Uber
- 8:07Why consider a monorepo
- 10:18Migration feasibility and concerns
- 13:27Staging and tooling development
- 16:37Code freeze and rollout
- 18:42Migration results and metrics
- 20:27Benefits of the monorepo
- 23:15Keeping master green with SubmitQ
- 24:59Downsides and ongoing work
- 27:47Key takeaways and Q&A
related talks
16mHow We Moved to a Monorepo
40mMonorepo or Polyrepo: What's the Right Choice for You?
26mUntangling the Monorepo: Moving to Go Modules
28mConsolidate, Enhance, Scale: End-to-End Angular Monorepo Management with Nx
43mBetter, Faster, and Stronger CI/CD Pipeline
01h 00mAndroid builds
31mDude, Where's My Build? Android CI/CD
01h 00mLarge-Scale Changes at Google: Lessons Learned From 5 Yrs of Mass Migrations
