At work, I am creating a component library for devs. I love it. But as with any sufficiently large company, timelines are a constant pressure. Especially on the developers consuming our library.
This means we don't always have the luxury of coming with the perfect API, planning, and executing. I've been coding long enough now that I've developed a pretty solid instinct when it comes to API design. Pretty solid....not perfect.
So as we build this plane as it is taking off, we need a way to not let imperfect decisions bog us down from making any changes in the future. This means we do have to be able to make breaking changes. It's part of software, so pretending you are going to never have to accommodate it is just lying to yourself. But nothing will suck momentum and excitement out of your library than constantly breaking things for developers who are under their own deadlines. Sure the devs will still use it, because they are directed to, but man will they complain about it behind your back. So how do you reconcile these two realities?
You buckle down and do the grunt work of migrating the code for them.
Now this is no fun. It means you embed yourself into their repo, their process, their workflows. It is draining, it is annoying. And it is completely within my authority to give a big shrug emoji and say "too bad, fix it." But you will gain an unbelievable amount of goodwill. Even though you are still in fact causing a disruption to their workflow. I think this is because this is so opposite of what every developer has come to expect, that it will utterly shock them.
I know this doesn't scale. As more teams start to use our library, manually going in and updating every usage of a component would consume entire weeks of time. But at that point, when we have stabilized our APIs, gotten real usage of the components, the breakages should slow down. And at that point, we will invest in tooling to help automate breaking changes (see the awesome tooling Nx provides). But until then, do the grunt work, shock your consumers, reap the rewards.