There is an awesome service called libraries.io. First and foremost I use that to track changes in my dependencies.
When there is a minor or micro chance (second or third number in the version), the upgrade is straight forward, or at least it should be.
Major upgrades are a real PITA whatever you do, but if the developers are kind enough, they deprecate symbols on the way, and even add some of the new functions if possible. If I go through a major upgrade, I switch to the new version without a code change and run my tests. If you have a good test suite, you will see immediately where you need to change your code.