One solution is to decompose your code into modules with stable interfaces and reference them as versioned dependencies.