@chuck Monorepos have one use case, which in the experience of many developers is the only relevant one: when you just want a modular structure in your code, but effectively deliver a single monolithic product.

There are many, many constellations in which that's not true.

And then, this is also highly dependent on your implementation language and build/packaging system. Some languages make modules and packages largely equivalent. A monorepo is actually overkill here.

@jens @chuck Facebook and Google both use gigantic monorepos. Neither "effectively delivers a single monolithic product."

@jens @chuck Actually that's wrong. Facebook mostly does. Google definitely does not, though.

@freakazoid @chuck You know how they say exceptions prove the rule? You know that you just picked the two biggest exceptions?

@jens @chuck The word "prove" in that particular idiom actually means "challenge". Which I think is accurate in this case.

@freakazoid @chuck That's fair.

All I'm trying to get at is that mentioning an unusual counter example or two doesn't substantially alter the rule. But I'm also not going to pretend that this rule must absolutely apply everywhere, just... as a rule.

Google AFAIK doesn't actually have everything in a huge monorepo. I have never worked there, but I guess could ask. I wonder how representative the Android (AOSP) is.

Here, they use android.googlesource.com/tools ...

@freakazoid @chuck ... which is explicitly *not* working on a monorepo, but used to orchestrate multiple individual repos as one.

I guess from a usage point of view, it acts like a monorepo, but it still allows composition of individual repos into one such virtual monorepo.

I really wonder how representative it is. Gotta ask my insiders 🤔

@jens @chuck I worked at Google for 3 years. Their open source stuff, including Android is not managed as part of their monorepo.

Sign in to participate in the conversation
Finkhäuser Social

A private instance for the Finkhäuser family.