I had a bad brush with the single version rule at work, and I’d like to warn you so that you can avoid the pain it caused me.
The best thing about monorepos is that they require the author of any given change to make the entire repository’s tests pass before committing that change. This puts the onus of managing incompatible changes on the original author, which:
- Centralizes the responsibility of solving incompatibilities onto the person or team with the most knowledge of the change.
- (In the best case) exposes any incorrect assumptions they may have about their change early-on in the process.
Largely as a result of the above property, monorepos obviate most of the overhead around dependency versioning. When dependencies are consumed at HEAD, it is no longer necessary to maintain separate artifact versioning, and the build and release pipelines for intermediate artifacts (e.g. base images, lib