|
|
|
|
|
by simonw
773 days ago
|
|
That's why it's celebrated as a valuable skill - it's hard! Did you read this? https://lethain.com/migrations/ I have decades of experience and I'm just about reaching the point now where a migration like this doesn't intimidate me. |
|
In my opinion, the solution lies in append-only software as dependencies. Append-only means you never break an existing contract in a new version. If you need to do a traditional "breaking change" you instead add a new API, but ship all old APIs with the software. In other words - enable teams to upgrade to the latest of anything without risking breaking anything and then updating their API contracts as necessary. This creates the least friction. Of course, it's a long way for every dependency and every transitive dependency to adopt such a model.