This practice was abandoned, but I don't know the reasoning for why it was abandoned.
This practice was abandoned, but I don't know the reasoning for why it was abandoned.
* library maintainers must make sure they don't introduce any regressions to any users at all. There's no major version number that you can increment to let people know that something has changed. Development necessarily slows.
* Library users must deal with any breakage in any library they use. Breakage can happen at any time because everybody effectively builds from HEAD. There are complicated systems in place for tracking ranges of bad CL numbers
Monorepo isn't entirely to blame for this, but it certainly doesn't help. I've been at Google 15 years and I'm tired of this.
Let's say you want to make a change to the filesystem. You can change the client libraries today, but old client libraries are going to be in production for weeks, or longer. Your filesystem service has to be backwards compatible with some weeks or months of filesystem libraries.
Another problem Google has is that people feel the need to change things in order to get promoted.
I don't think the bad-versions tracking outside Google is any less complicated than the bad-CL-ranges tracking inside Google.
I believe he said that he wrote this article to avoid repeating the same convo again and again....