Interesting approach, how long does your typical feature branch live? How do you handle conflicts between N feature branches running in parallel and possibly wanting to release in an unknown order or at an unknown future time?<p>What I've seen on a lot of projects is freezing the deps <i>forever</i> and because of this, any package upgrades can cause a bunch of problems, so they're avoided.<p>I've come to is freezing the deps using pip-compile, doing incremental updates as-needed, and doing a full update every quarter or two. We have a lot of short-lived branches and being on python 2.7, the libs aren't changing a whole lot anymore, so this seems to be about the right cadence for us.