4 ms·
During my 18 months at Google circa 2015, I used the following repos: google3, Android, ChromeOS, and Chrome browser. 1 is 4 for large values of 1, after all.
by ridiculous_fish 8y ago
During my 18 months at Google circa 2015, I used the following repos: google3, Android, ChromeOS, and Chrome browser. 1 is 4 for large values of 1, after all.
One telling question is whether there have been any efforts to unify these repos. Monorepos can come about passively, through uncontrolled growth. But if you truly believe in the monorepo, surely you'll knock down the barriers and unify the distinct repos. Has Google done that?
If they've actively chosen not to, why not? Is Android separate from google3 for hysterical raisins, or on sound principles, or some mix? Is there a cross platform repo for shared code?
- saagarjha 8y agoThe last three are open-source, so doesn't it make sense to keep them out of the google3 monorepo?
- tylerl 8y agoYeah no. It's because the development model is part of the product for things like chromium and Android. You can add to your list a number of other codebases; kubernetes has it's source of truth at GitHub, for example. These all add complexity, and not in a good way. With enough small repos you lose the ability to centrally monitor dependencies and make sweeping fixes. For example it becomes difficult to do things like safely patch your entire codebase all in one go to defend against the next embargoed vulnerability, where you have weeks or days to deploy a fix to all your products before it goes public.
- joshuamorton 8y agoBut k8s does live inside third party. And then there's stuff like tensorflow, where the source of truth is in the monorepo, but PRs via github are accepted and merged in.
- joshuamorton 8y agoIt's mostly historical reasons, and that they gain relatively little from merging them, but it costs a lot. No one in Google3 depends on Chrome or Android source, and nothing in the Chrome or AOSP projects depends on Google3. Android and chrome are both on weird git systems, and that doesn't work well in Google3. There'd be a huge amount of work to merge them, and for what...exactly?