-
Observation about maintaining libraries in large #Monorepos: You must explicitly and aggressively reject any possibly unsupported use case. If you don't, users will do those unsupported things without your knowledge, and you'll be forced to support them with every future change.
-
In a traditional, versioned multi-repo system, a library can just make a change and its up to its users to upgrade and pay the cost of any breakages caused by previously unsupported behavior. The library can just close any bugs with "This is not supported, do it at your own risk"
-
But in a monorepo, the library maintainer is responsible for not breaking all downstream users. Even if you *say* something is unsupported, when users do it and their tests fail from your future changes, you're forced into supporting it anyways.
-
Takeaway: Identify and reject any and all possible mistakes or misuses of your library as best as you can. Otherwise you may end up forced to support broken user code that never should have worked in the first place.
develwoutacause’s Twitter Archive—№ 388