I noticed an issue when scanning through #715 in which a partial upgrade via upgradeSequential can result in bumping the version number incorrectly.
Not a big deal, but basically upgradeSequential computes the next package-set version from the entire changeSet (including failed changes). So if the change set includes a failed major bump and only patch-level updates succeeded, the computed version can still jump major because it saw the failed major change. The resulting package set contents would only reflect patch updates, but the version would indicate a major change that never actually landed.
Ideally we would compute the next version from succeeded instead of the changeSet.