develwoutacause’s avatardevelwoutacause’s Twitter Archive—№ 391

        1. 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.
      1. …in reply to @develwoutacause
        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"
    1. …in reply to @develwoutacause
      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.
  1. …in reply to @develwoutacause
    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.